Documentation

Overview

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

    Example (AsyncProducer)
    Output:
    
    
    Example (Consumer)
    Output:
    
    
    Example (SyncProducer)
    Output:
    
    

    Index

    Examples

    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. Tracing requires at least sarama.V0_11_0_0 version which is the first version that supports headers. Only spans of successfully published messages have partition and offset tags set.

      func WrapConsumer

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

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

        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
            }

              A ConsumerMessageCarrier injects and extracts traces from a sarama.ConsumerMessage.

              func NewConsumerMessageCarrier

              func NewConsumerMessageCarrier(msg *sarama.ConsumerMessage) ConsumerMessageCarrier

                NewConsumerMessageCarrier creates a new ConsumerMessageCarrier.

                func (ConsumerMessageCarrier) ForeachKey

                func (c ConsumerMessageCarrier) ForeachKey(handler func(key, val string) error) error

                  ForeachKey iterates over every header.

                  func (ConsumerMessageCarrier) Set

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

                    Set sets a header.

                    type Option

                    type Option func(cfg *config)

                      An Option is used to customize the config for the sarama tracer.

                      func WithAnalytics

                      func WithAnalytics(on bool) Option

                        WithAnalytics enables Trace Analytics for all started spans.

                        func WithAnalyticsRate

                        func WithAnalyticsRate(rate float64) Option

                          WithAnalyticsRate sets the sampling rate for Trace Analytics events correlated to started spans.

                          func WithServiceName

                          func WithServiceName(name string) Option

                            WithServiceName sets the given service name for the intercepted client.

                            type ProducerMessageCarrier

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

                              A ProducerMessageCarrier injects and extracts traces from a sarama.ProducerMessage.

                              func NewProducerMessageCarrier

                              func NewProducerMessageCarrier(msg *sarama.ProducerMessage) ProducerMessageCarrier

                                NewProducerMessageCarrier creates a new ProducerMessageCarrier.

                                func (ProducerMessageCarrier) ForeachKey

                                func (c ProducerMessageCarrier) ForeachKey(handler func(key, val string) error) error

                                  ForeachKey iterates over every header.

                                  func (ProducerMessageCarrier) Set

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

                                    Set sets a header.