Documentation

Overview

    Package otelsarama instruments the github.com/Shopify/sarama package.

    The consumer's span will be created as a child of the producer's span.

    Context propagation only works on Kafka versions higher than 0.11.0.0 which supports record headers. (https://archive.apache.org/dist/kafka/0.11.0.0/RELEASE_NOTES.html)

    Based on: https://github.com/DataDog/dd-trace-go/tree/v1/contrib/Shopify/sarama

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    func WrapAsyncProducer

    func WrapAsyncProducer(saramaConfig *sarama.Config, p sarama.AsyncProducer, opts ...Option) sarama.AsyncProducer

      WrapAsyncProducer wraps a sarama.AsyncProducer so that all produced messages are traced. It requires the underlying sarama Config so we can know whether or not successes will be returned.

      If `Return.Successes` is false, there is no way to know partition and offset of the message.

      func WrapConsumer

      func WrapConsumer(c sarama.Consumer, opts ...Option) sarama.Consumer

        WrapConsumer wraps a sarama.Consumer wrapping any PartitionConsumer created via Consumer.ConsumePartition.

        func WrapConsumerGroupHandler

        func WrapConsumerGroupHandler(handler sarama.ConsumerGroupHandler, opts ...Option) sarama.ConsumerGroupHandler

          WrapConsumerGroupHandler wraps a sarama.ConsumerGroupHandler causing each received message to be traced.

          func WrapPartitionConsumer

          func WrapPartitionConsumer(pc sarama.PartitionConsumer, opts ...Option) sarama.PartitionConsumer

            WrapPartitionConsumer wraps a sarama.PartitionConsumer causing each received message to be traced.

            func WrapSyncProducer

            func WrapSyncProducer(saramaConfig *sarama.Config, producer sarama.SyncProducer, opts ...Option) sarama.SyncProducer

              WrapSyncProducer wraps a sarama.SyncProducer so that all produced messages are traced.

              Types

              type ConsumerMessageCarrier

              type ConsumerMessageCarrier struct {
              	// contains filtered or unexported fields
              }

                ConsumerMessageCarrier injects and extracts traces from a sarama.ConsumerMessage.

                func NewConsumerMessageCarrier

                func NewConsumerMessageCarrier(msg *sarama.ConsumerMessage) ConsumerMessageCarrier

                  NewConsumerMessageCarrier creates a new ConsumerMessageCarrier.

                  func (ConsumerMessageCarrier) Get

                    Get retrieves a single value for a given key.

                    func (ConsumerMessageCarrier) Keys

                    func (c ConsumerMessageCarrier) Keys() []string

                      Keys returns a slice of all key identifiers in the carrier.

                      func (ConsumerMessageCarrier) Set

                      func (c ConsumerMessageCarrier) Set(key, val string)

                        Set sets a header.

                        type Option

                        type Option func(*config)

                          Option specifies instrumentation configuration options.

                          func WithPropagators

                          func WithPropagators(propagators propagation.TextMapPropagator) Option

                            WithPropagators specifies propagators to use for extracting information from the HTTP requests. If none are specified, global ones will be used.

                            func WithTracerProvider

                            func WithTracerProvider(provider trace.TracerProvider) Option

                              WithTracerProvider specifies a tracer provider to use for creating a tracer. If none is specified, the global provider is used.

                              type ProducerMessageCarrier

                              type ProducerMessageCarrier struct {
                              	// contains filtered or unexported fields
                              }

                                ProducerMessageCarrier injects and extracts traces from a sarama.ProducerMessage.

                                func NewProducerMessageCarrier

                                func NewProducerMessageCarrier(msg *sarama.ProducerMessage) ProducerMessageCarrier

                                  NewProducerMessageCarrier creates a new ProducerMessageCarrier.

                                  func (ProducerMessageCarrier) Get

                                    Get retrieves a single value for a given key.

                                    func (ProducerMessageCarrier) Keys

                                    func (c ProducerMessageCarrier) Keys() []string

                                      Keys returns a slice of all key identifiers in the carrier.

                                      func (ProducerMessageCarrier) Set

                                      func (c ProducerMessageCarrier) Set(key, val string)

                                        Set sets a header.

                                        Directories

                                        Path Synopsis
                                        example module