All Projects → streamnative → pulsar-tracing

streamnative / pulsar-tracing

Licence: Apache-2.0 License
Tracing instrumentation for Apache Pulsar clients.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to pulsar-tracing

tgip
TGIP (TGI Pulsar) is a weekly live video streaming about Apache Pulsar and its ecosystem.
Stars: ✭ 17 (+30.77%)
Mutual labels:  messaging, pubsub, apache-pulsar
pulsar-flume-ng-sink
An Apache Flume Sink implementation to publish data to Apache pulsar
Stars: ✭ 19 (+46.15%)
Mutual labels:  messaging, pubsub, apache-pulsar
aop
AMQP on Pulsar protocol handler
Stars: ✭ 93 (+615.38%)
Mutual labels:  messaging, pubsub, apache-pulsar
microservices-demo
A Monorepo Demoing Microservices Architecture
Stars: ✭ 36 (+176.92%)
Mutual labels:  opentracing, jaeger
jaeger-node
Out of the box distributed tracing for Node.js applications.
Stars: ✭ 66 (+407.69%)
Mutual labels:  opentracing, jaeger
kubernetes-examples
A bunch of examples of how to deploy things on kubernetes
Stars: ✭ 34 (+161.54%)
Mutual labels:  opentracing, jaeger
pulsar-io-kafka
Pulsar IO Kafka Connector
Stars: ✭ 24 (+84.62%)
Mutual labels:  pubsub, apache-pulsar
Go-gRPC-RabbitMQ-microservice
Go gRPC RabbitMQ email microservice
Stars: ✭ 107 (+723.08%)
Mutual labels:  opentracing, jaeger
Pulsar Manager
Apache Pulsar Manager
Stars: ✭ 247 (+1800%)
Mutual labels:  messaging, pubsub
opentracing-utils
Convenient utilities for adding OpenTracing support in your python projects
Stars: ✭ 20 (+53.85%)
Mutual labels:  opentracing, jaeger
gafka
A full ecosystem that is built around kafka powered by golang
Stars: ✭ 96 (+638.46%)
Mutual labels:  messaging, pubsub
pulsar-helm-chart
Official Apache Pulsar Helm Chart
Stars: ✭ 122 (+838.46%)
Mutual labels:  messaging, pubsub
liftbridge-api
Protobuf definitions for the Liftbridge gRPC API. https://github.com/liftbridge-io/liftbridge
Stars: ✭ 15 (+15.38%)
Mutual labels:  messaging, pubsub
gobroker
golang wrapper for all (to-be) kinds of message brokers
Stars: ✭ 15 (+15.38%)
Mutual labels:  messaging, pubsub
Pulsar Client Go
Apache Pulsar Go Client Library
Stars: ✭ 251 (+1830.77%)
Mutual labels:  messaging, pubsub
talek
a Private Publish Subscribe System
Stars: ✭ 39 (+200%)
Mutual labels:  messaging, pubsub
Liftbridge
Lightweight, fault-tolerant message streams.
Stars: ✭ 2,175 (+16630.77%)
Mutual labels:  messaging, pubsub
Vernemq
A distributed MQTT message broker based on Erlang/OTP. Built for high quality & Industrial use cases.
Stars: ✭ 2,628 (+20115.38%)
Mutual labels:  messaging, pubsub
pulsar-adapters
Apache Pulsar Adapters
Stars: ✭ 18 (+38.46%)
Mutual labels:  messaging, pubsub
gateway
A proxy to buffer and forward metrics, events, and traces.
Stars: ✭ 94 (+623.08%)
Mutual labels:  jaeger, opentelemetry

Apache Pulsar Client Tracing Instrumentation

Tracing instrumentation for Apache Pulsar client.

OpenTracing Instrumentation

Requirements

  • Java 8
  • Pulsar client >= 2.5.0

Installation

Add Pulsar client and OpenTracing instrumentation for the Pulsar client.

<dependency>
    <groupId>org.apache.pulsar</groupId>
    <artifactId>pulsar-client</artifactId>
    <version>VERSION</version>
</dependency>
<dependency>
    <groupId>io.streamnative</groupId>
    <artifactId>opentracing-pulsar-client</artifactId>
    <version>VERSION</version>
</dependency>

Usage

Interceptors based solution

// Instantiate tracer
Tracer tracer = ...

// Optionally register tracer with GlobalTracer
GlobalTracer.register(tracer);

Producer

// Instantiate Producer with tracing interceptor.
Producer<String> producer = client
    .newProducer(Schema.STRING)
    .intercept(new TracingProducerInterceptor())
    .topic("your-topic")
    .create();

// Send messages.
producer.send("Hello OpenTracing!");

Consumer

// Instantiate Consumer with tracing interceptor.
Consumer<String> consumer = client.newConsumer(Schema.STRING)
    .topic("your-topic")
    .intercept(new TracingConsumerInterceptor<>())
    .subscriptionName("your-sub")
    .subscribe();

// Receive messages.
Message<String> message = consumer.receive();

// To retrieve SpanContext from the message(Consumer side).
SpanContext spanContext = TracingPulsarUtils.extractSpanContext(message, tracer);

License

Apache 2.0 License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].