Documentation

Overview

    Package sarama provides functions to trace the Shopify/sarama package. (https://github.com/Shopify/sarama)

    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) 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 otelpropagation.Propagators) Option

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

                          func WithTraceProvider

                          func WithTraceProvider(provider trace.Provider) Option

                            WithTraceProvider specifies a trace provider to use for creating a tracer for spans. 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) Set

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

                                    Set sets a header.

                                    Directories

                                    Path Synopsis
                                    example module
                                    otelsarama module
                                    example Module