Documentation ¶
Overview ¶
Package kafkaexporter exports trace data to Kafka.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewFactory ¶
func NewFactory(options ...FactoryOption) exporter.Factory
NewFactory creates Kafka exporter factory.
Types ¶
type Config ¶
type Config struct { exporterhelper.TimeoutSettings `mapstructure:",squash"` // squash ensures fields are correctly decoded in embedded struct. exporterhelper.QueueSettings `mapstructure:"sending_queue"` configretry.BackOffConfig `mapstructure:"retry_on_failure"` // The list of kafka brokers (default localhost:9092) Brokers []string `mapstructure:"brokers"` // ResolveCanonicalBootstrapServersOnly makes Sarama do a DNS lookup for // each of the provided brokers. It will then do a PTR lookup for each // returned IP, and that set of names becomes the broker list. This can be // required in SASL environments. ResolveCanonicalBootstrapServersOnly bool `mapstructure:"resolve_canonical_bootstrap_servers_only"` // Kafka protocol version ProtocolVersion string `mapstructure:"protocol_version"` // ClientID to configure the Kafka client with. This can be leveraged by // Kafka to enforce ACLs, throttling quotas, and more. ClientID string `mapstructure:"client_id"` // The name of the kafka topic to export to (default otlp_spans for traces, otlp_metrics for metrics) Topic string `mapstructure:"topic"` // Encoding of messages (default "otlp_proto") Encoding string `mapstructure:"encoding"` // PartitionTracesByID sets the message key of outgoing trace messages to the trace ID. // Please note: does not have any effect on Jaeger encoding exporters since Jaeger exporters include // trace ID as the message key by default. PartitionTracesByID bool `mapstructure:"partition_traces_by_id"` // Metadata is the namespace for metadata management properties used by the // Client, and shared by the Producer/Consumer. Metadata Metadata `mapstructure:"metadata"` // Producer is the namespaces for producer properties used only by the Producer Producer Producer `mapstructure:"producer"` // Authentication defines used authentication mechanism. Authentication kafka.Authentication `mapstructure:"auth"` }
Config defines configuration for Kafka exporter.
type FactoryOption ¶
type FactoryOption func(factory *kafkaExporterFactory)
FactoryOption applies changes to kafkaExporterFactory.
type KeyableTracesMarshaler ¶ added in v0.92.0
type KeyableTracesMarshaler interface { TracesMarshaler Key() }
KeyableTracesMarshaler is an extension of the TracesMarshaler interface inteded to provide partition key capabilities for trace messages
type LogsMarshaler ¶
type LogsMarshaler interface { // Marshal serializes logs into sarama's ProducerMessages Marshal(logs plog.Logs, topic string) ([]*sarama.ProducerMessage, error) // Encoding returns encoding name Encoding() string }
LogsMarshaler marshals logs into Message array
type Metadata ¶
type Metadata struct { // Whether to maintain a full set of metadata for all topics, or just // the minimal set that has been necessary so far. The full set is simpler // and usually more convenient, but can take up a substantial amount of // memory if you have many topics and partitions. Defaults to true. Full bool `mapstructure:"full"` // Retry configuration for metadata. // This configuration is useful to avoid race conditions when broker // is starting at the same time as collector. Retry MetadataRetry `mapstructure:"retry"` }
Metadata defines configuration for retrieving metadata from the broker.
type MetadataRetry ¶
type MetadataRetry struct { // The total number of times to retry a metadata request when the // cluster is in the middle of a leader election or at startup (default 3). Max int `mapstructure:"max"` // How long to wait for leader election to occur before retrying // (default 250ms). Similar to the JVM's `retry.backoff.ms`. Backoff time.Duration `mapstructure:"backoff"` }
MetadataRetry defines retry configuration for Metadata.
type MetricsMarshaler ¶
type MetricsMarshaler interface { // Marshal serializes metrics into sarama's ProducerMessages Marshal(metrics pmetric.Metrics, topic string) ([]*sarama.ProducerMessage, error) // Encoding returns encoding name Encoding() string }
MetricsMarshaler marshals metrics into Message array
type Producer ¶
type Producer struct { // Maximum message bytes the producer will accept to produce. MaxMessageBytes int `mapstructure:"max_message_bytes"` // RequiredAcks Number of acknowledgements required to assume that a message has been sent. // https://pkg.go.dev/github.com/IBM/sarama@v1.30.0#RequiredAcks // The options are: // 0 -> NoResponse. doesn't send any response // 1 -> WaitForLocal. waits for only the local commit to succeed before responding ( default ) // -1 -> WaitForAll. waits for all in-sync replicas to commit before responding. RequiredAcks sarama.RequiredAcks `mapstructure:"required_acks"` // Compression Codec used to produce messages // https://pkg.go.dev/github.com/IBM/sarama@v1.30.0#CompressionCodec // The options are: 'none', 'gzip', 'snappy', 'lz4', and 'zstd' Compression string `mapstructure:"compression"` // The maximum number of messages the producer will send in a single // broker request. Defaults to 0 for unlimited. Similar to // `queue.buffering.max.messages` in the JVM producer. FlushMaxMessages int `mapstructure:"flush_max_messages"` }
Producer defines configuration for producer
type TracesMarshaler ¶
type TracesMarshaler interface { // Marshal serializes spans into sarama's ProducerMessages Marshal(traces ptrace.Traces, topic string) ([]*sarama.ProducerMessage, error) // Encoding returns encoding name Encoding() string }
TracesMarshaler marshals traces into Message array.