Path: blob/main/component/otelcol/exporter/jaeger/jaeger.go
4096 views
// Package jaeger provides an otelcol.exporter.jaeger component.1package jaeger23import (4"time"56"github.com/grafana/agent/component"7"github.com/grafana/agent/component/otelcol"8"github.com/grafana/agent/component/otelcol/exporter"9"github.com/grafana/agent/pkg/river"10"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/jaegerexporter"11otelcomponent "go.opentelemetry.io/collector/component"12otelconfig "go.opentelemetry.io/collector/config"13otelpexporterhelper "go.opentelemetry.io/collector/exporter/exporterhelper"14)1516func init() {17component.Register(component.Registration{18Name: "otelcol.exporter.jaeger",19Args: Arguments{},20Exports: otelcol.ConsumerExports{},2122Build: func(opts component.Options, args component.Arguments) (component.Component, error) {23fact := jaegerexporter.NewFactory()24return exporter.New(opts, fact, args.(Arguments))25},26})27}2829// Arguments configures the otelcol.exporter.jaeger component.30type Arguments struct {31Timeout time.Duration `river:"timeout,attr,optional"`3233Queue otelcol.QueueArguments `river:"sending_queue,block,optional"`34Retry otelcol.RetryArguments `river:"retry_on_failure,block,optional"`3536Client GRPCClientArguments `river:"client,block"`37}3839var (40_ river.Unmarshaler = (*Arguments)(nil)41_ exporter.Arguments = Arguments{}42)4344// DefaultArguments holds default values for Arguments.45var DefaultArguments = Arguments{46Timeout: otelcol.DefaultTimeout,47Queue: otelcol.DefaultQueueArguments,48Retry: otelcol.DefaultRetryArguments,49Client: DefaultGRPCClientArguments,50}5152// UnmarshalRiver implements river.Unmarshaler.53func (args *Arguments) UnmarshalRiver(f func(interface{}) error) error {54*args = DefaultArguments55type arguments Arguments56return f((*arguments)(args))57}5859// Convert implements exporter.Arguments.60func (args Arguments) Convert() (otelconfig.Exporter, error) {61return &jaegerexporter.Config{62ExporterSettings: otelconfig.NewExporterSettings(otelconfig.NewComponentID("jaeger")),63TimeoutSettings: otelpexporterhelper.TimeoutSettings{64Timeout: args.Timeout,65},66QueueSettings: *args.Queue.Convert(),67RetrySettings: *args.Retry.Convert(),68GRPCClientSettings: *(*otelcol.GRPCClientArguments)(&args.Client).Convert(),69}, nil70}7172// Extensions implements exporter.Arguments.73func (args Arguments) Extensions() map[otelconfig.ComponentID]otelcomponent.Extension {74return (*otelcol.GRPCClientArguments)(&args.Client).Extensions()75}7677// Exporters implements exporter.Arguments.78func (args Arguments) Exporters() map[otelconfig.DataType]map[otelconfig.ComponentID]otelcomponent.Exporter {79return nil80}8182// GRPCClientArguments is used to configure otelcol.exporter.jaeger with83// component-specific defaults.84type GRPCClientArguments otelcol.GRPCClientArguments8586var _ river.Unmarshaler = (*GRPCClientArguments)(nil)8788// DefaultGRPCClientArguments holds component-specific default settings for89// GRPCClientArguments.90var DefaultGRPCClientArguments = GRPCClientArguments{91Headers: map[string]string{},92Compression: otelcol.CompressionTypeGzip,93WriteBufferSize: 512 * 1024,94}9596// UnmarshalRiver implements river.Unmarshaler and supplies defaults.97func (args *GRPCClientArguments) UnmarshalRiver(f func(interface{}) error) error {98*args = DefaultGRPCClientArguments99type arguments GRPCClientArguments100return f((*arguments)(args))101}102103104