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/config/configtelemetry"
"go.opentelemetry.io/collector/exporter"
"go.opentelemetry.io/collector/exporter/debugexporter"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/metric"
"go.opentelemetry.io/otel/metric/noop"
"go.opentelemetry.io/otel/sdk/trace"
"go.uber.org/zap"
)
func main() {
settings := &exporter.Settings{
TelemetrySettings: component.TelemetrySettings{
Logger: zap.NewExample(), // Log to STDOUT for example.
TracerProvider: otel.GetTracerProvider(),
MeterProvider: otel.GetMeterProvider(),
LeveledMeterProvider: func(configtelemetry.Level) metric.MeterProvider {
return noop.NewMeterProvider()
},
},
}
factory, err := collex.NewFactory(debugexporter.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":"Traces","resource spans":1,"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 Settings 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.