Documentation
¶
Overview ¶
Package otel tries to simplify usage of OpenTelemetry.
A nice write-up of using OpenTelemetry (directly) is at https://www.komu.engineer/blogs/11/opentelemetry-and-go
Index ¶
- Variables
- func ContextWithTraceSpan(ctx context.Context, traceID, spanID string) context.Context
- func ExtractHTTP(ctx context.Context, headers http.Header) context.Context
- func GetGlobalTextMapPropagator() propagation.TextMapPropagator
- func HTTPHandler(hndl http.Handler, operation string) http.Handler
- func HTTPMiddleware(tracer Tracer, hndl http.Handler) http.Handler
- func InjectHTTP(ctx context.Context, headers http.Header)
- func LogInt64(k string, v int64) log.KeyValue
- func LogString(k, v string) log.KeyValue
- func LogStringValue(v string) log.Value
- func LogTraceMeterLogger(logger *log.Logger, serviceName, serviceVersion string) (Tracer, Meter)
- func LogTraceProvider(logger *log.Logger, serviceName, serviceVersion string) (TracerProvider, MeterProvider, func(context.Context) error, error)
- func LogWithSchemaURL(schemaURL string) otelslog.Option
- func LogWithSource(source bool) otelslog.Option
- func LogWithVersion(version string) otelslog.Option
- func LoggerEnabled(ctx context.Context, logger log.Logger) bool
- func NewLoggerProvider(loggerExporter sdklog.Exporter, res *resource.Resource, ...) *sdklog.LoggerProvider
- func NewMeterProvider(metricExporter metric.Exporter, res *resource.Resource, ...) *metric.MeterProvider
- func NewPropagator() propagation.TextMapPropagator
- func NewResource(serviceName, serviceVersion string) (*resource.Resource, error)
- func NewSLogHandler(name string, lp *LoggerProvider, options ...otelslog.Option) *otelslog.Handler
- func NewSLogger(name string, lp *LoggerProvider, options ...otelslog.Option) *slog.Logger
- func NewTracerProvider(traceExporter Exporter, res *resource.Resource, ...) *trace.TracerProvider
- func SetGlobalMeterProvider(provider MeterProvider)
- func SetGlobalTextMapPropagator(p propagation.TextMapPropagator)
- func SetGlobalTracerProvider(provider TracerProvider)
- func SetupOTLP(ctx context.Context, serviceNameAtVersion string) (otelslogHandlerProvider, func(context.Context), error)
- func SpanContextFromContext(ctx context.Context) trace.SpanContext
- func StartTrace(ctx context.Context, name, traceID, spanID string) (context.Context, trace.Span)
- type Exporter
- type LogExporter
- func (e *LogExporter) Aggregation(kind sdkmetric.InstrumentKind) sdkmetric.Aggregation
- func (e *LogExporter) Export(ctx context.Context, resource *metricdata.ResourceMetrics) error
- func (e *LogExporter) ExportSpans(ctx context.Context, data []sdktrace.ReadOnlySpan) error
- func (e *LogExporter) ForceFlush(ctx context.Context) error
- func (e *LogExporter) Shutdown(ctx context.Context) error
- func (e *LogExporter) Temporality(kind sdkmetric.InstrumentKind) metricdata.Temporality
- type LogRecord
- type Logger
- type LoggerProvider
- type Meter
- type MeterProvider
- type Tracer
- type TracerProvider
Constants ¶
This section is empty.
Variables ¶
var HTTPPropagators = NewPropagator()
Functions ¶
func ContextWithTraceSpan ¶ added in v0.10.3
func GetGlobalTextMapPropagator ¶ added in v0.6.0
func GetGlobalTextMapPropagator() propagation.TextMapPropagator
func HTTPHandler ¶ added in v0.6.0
func LogStringValue ¶ added in v0.9.0
func LogTraceMeterLogger ¶ added in v0.9.0
func LogTraceProvider ¶
func LogTraceProvider(logger *log.Logger, serviceName, serviceVersion string) (TracerProvider, MeterProvider, func(context.Context) error, error)
LogTraceProvider wraps the Logger to as a Provider.
func LogWithSchemaURL ¶ added in v0.10.2
func LogWithSource ¶ added in v0.10.2
func LogWithVersion ¶ added in v0.10.2
func LoggerEnabled ¶ added in v0.9.0
func NewLoggerProvider ¶ added in v0.9.0
func NewLoggerProvider(loggerExporter sdklog.Exporter, res *resource.Resource, options ...sdklog.BatchProcessorOption) *sdklog.LoggerProvider
NewLoggerProvider returns a log.LoggerProvider which exports using the given loggerExporter, with default 1MiB BatchProcessor.
Such a loggerExporter can be created with otlploghttp, for example.
func NewMeterProvider ¶ added in v0.6.0
func NewMeterProvider(metricExporter metric.Exporter, res *resource.Resource, options ...metric.Option) *metric.MeterProvider
NewMeterProvider returns a MeterProvider which exports using the given metricExporter, with default 1m PeriodicReader.
func NewPropagator ¶ added in v0.6.0
func NewPropagator() propagation.TextMapPropagator
func NewResource ¶ added in v0.6.0
func NewSLogHandler ¶ added in v0.9.1
func NewSLogger ¶ added in v0.10.0
func NewTracerProvider ¶ added in v0.6.0
func NewTracerProvider(traceExporter Exporter, res *resource.Resource, options ...trace.BatchSpanProcessorOption) *trace.TracerProvider
NewTraceProvider returns a TraceProvider which exports using the given traceExporter, with defailt 10s BatchSpanProcessor timeout.
func SetGlobalMeterProvider ¶ added in v0.6.0
func SetGlobalMeterProvider(provider MeterProvider)
func SetGlobalTextMapPropagator ¶ added in v0.6.0
func SetGlobalTextMapPropagator(p propagation.TextMapPropagator)
func SetGlobalTracerProvider ¶ added in v0.6.0
func SetGlobalTracerProvider(provider TracerProvider)
func SetupOTLP ¶ added in v0.10.4
func SetupOTLP(ctx context.Context, serviceNameAtVersion string) (otelslogHandlerProvider, func(context.Context), error)
SetupOTLP returns an slog.Handler and a shutdown function, iff OTEL_EXPORTER_OTLP_LOGS_ENDPOINT is specified.
VL_ACCOUNT_ID+VL_PROJECT_ID or VL_TENANT_ID is used for providing henaders (AccountID, ProjectID) for VictoriaLogs.
func SpanContextFromContext ¶ added in v0.8.2
func SpanContextFromContext(ctx context.Context) trace.SpanContext
Types ¶
type LogExporter ¶
func (*LogExporter) Aggregation ¶ added in v0.4.0
func (e *LogExporter) Aggregation(kind sdkmetric.InstrumentKind) sdkmetric.Aggregation
Aggregation returns the Aggregation to use for an instrument kind.
func (*LogExporter) Export ¶
func (e *LogExporter) Export(ctx context.Context, resource *metricdata.ResourceMetrics) error
Export serializes and transmits metric data to a receiver.
This is called synchronously, there is no concurrency safety requirement. Because of this, it is critical that all timeouts and cancellations of the passed context be honored.
All retry logic must be contained in this function. The SDK does not implement any retry logic. All errors returned by this function are considered unrecoverable and will be reported to a configured error Handler.
func (*LogExporter) ExportSpans ¶
func (e *LogExporter) ExportSpans(ctx context.Context, data []sdktrace.ReadOnlySpan) error
ExportSpans exports a batch of spans.
This function is called synchronously, so there is no concurrency safety requirement. However, due to the synchronous calling pattern, it is critical that all timeouts and cancellations contained in the passed context must be honored.
Any retry logic must be contained in this function. The SDK that calls this function will not implement any retry logic. All errors returned by this function are considered unrecoverable and will be reported to a configured error Handler.
func (*LogExporter) ForceFlush ¶ added in v0.4.0
func (e *LogExporter) ForceFlush(ctx context.Context) error
ForceFlush flushes any metric data held by an exporter.
The deadline or cancellation of the passed context must be honored. An appropriate error should be returned in these situations.
func (*LogExporter) Shutdown ¶
func (e *LogExporter) Shutdown(ctx context.Context) error
Shutdown flushes all metric data held by an exporter and releases any held computational resources.
The deadline or cancellation of the passed context must be honored. An appropriate error should be returned in these situations.
After Shutdown is called, calls to Export will perform no operation and instead will return an error indicating the shutdown state.
func (*LogExporter) Temporality ¶ added in v0.4.0
func (e *LogExporter) Temporality(kind sdkmetric.InstrumentKind) metricdata.Temporality
Temporality returns the Temporality to use for an instrument kind.
type LoggerProvider ¶ added in v0.9.0
type LoggerProvider = sdklog.LoggerProvider
LoggerProvider is sdklog.LoggerProvider
type MeterProvider ¶ added in v0.6.0
type MeterProvider = metric.MeterProvider
MeterProvider is meter.MeterProvider
func GlobalMeterProvider ¶ added in v0.6.0
func GlobalMeterProvider() MeterProvider
type TracerProvider ¶ added in v0.6.0
type TracerProvider = trace.TracerProvider
TacerProvider is trace.TraceProvider
func GlobalTracerProvider ¶ added in v0.6.0
func GlobalTracerProvider() TracerProvider