Documentation ¶
Overview ¶
Package collex provides OpenTelemetry Go Exporters that wrap OpenTelemetry Collector Exporters. This allows any collector exporter to be used with opentelemetry-go.
Example ¶
package main import ( "context" "log" "github.com/MrAlias/collex" "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/exporter" "go.opentelemetry.io/collector/exporter/loggingexporter" "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/sdk/trace" "go.uber.org/zap" ) func main() { settings := &exporter.CreateSettings{ TelemetrySettings: component.TelemetrySettings{ Logger: zap.NewExample(), // Log to STDOUT for example. TracerProvider: otel.GetTracerProvider(), }, } factory, err := collex.NewFactory(loggingexporter.NewFactory(), settings) if err != nil { log.Fatal(err) } ctx := context.Background() exp, err := factory.SpanExporter(ctx, nil) if err != nil { log.Fatal(err) } provider := trace.NewTracerProvider(trace.WithSyncer(exp)) tracer := provider.Tracer("github.com/MrAlias/collex") _, s := tracer.Start(ctx, "ExampleTracesExporter") s.End() if err := provider.Shutdown(ctx); err != nil { log.Fatal(err) } }
Output: {"level":"info","msg":"TracesExporter","#spans":1}
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Factory ¶
type Factory struct {
// contains filtered or unexported fields
}
Factory wraps an OpenTelemetry collector ExporterFactory and initializes new OpenTelemetry Go exporters from it.
func NewFactory ¶
NewFactory returns a new configured *Factory. If set is nil, a default CreateSettings will be used. These settings use a production ready Zap logger and a global OpenTelemetry Go TracerProvider.
func (*Factory) SpanExporter ¶
func (f *Factory) SpanExporter(ctx context.Context, cfg component.Config) (trace.SpanExporter, error)
SpanExporter returns an OpenTelemetry Go SpanExporter that can be registered with a TracerProvider. If cfg is nil the factory default configuration for the ExporterFactory is used.