otel

package module
v0.10.11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 10, 2025 License: Apache-2.0 Imports: 28 Imported by: 7

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

Constants

This section is empty.

Variables

View Source
var HTTPPropagators = NewPropagator()

Functions

func ContextWithTraceSpan added in v0.10.3

func ContextWithTraceSpan(ctx context.Context, traceID, spanID string) context.Context

func ExtractHTTP

func ExtractHTTP(ctx context.Context, headers http.Header) context.Context

func GetGlobalTextMapPropagator added in v0.6.0

func GetGlobalTextMapPropagator() propagation.TextMapPropagator

func HTTPHandler added in v0.6.0

func HTTPHandler(hndl http.Handler, operation string) http.Handler

func HTTPMiddleware

func HTTPMiddleware(tracer Tracer, hndl http.Handler) http.Handler

func InjectHTTP

func InjectHTTP(ctx context.Context, headers http.Header)

func LogInt64 added in v0.9.0

func LogInt64(k string, v int64) log.KeyValue

func LogString added in v0.10.2

func LogString(k, v string) log.KeyValue

func LogStringValue added in v0.9.0

func LogStringValue(v string) log.Value

func LogTraceMeterLogger added in v0.9.0

func LogTraceMeterLogger(logger *log.Logger, serviceName, serviceVersion string) (Tracer, Meter)

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 LogWithSchemaURL(schemaURL string) otelslog.Option

func LogWithSource added in v0.10.2

func LogWithSource(source bool) otelslog.Option

func LogWithVersion added in v0.10.2

func LogWithVersion(version string) otelslog.Option

func LoggerEnabled added in v0.9.0

func LoggerEnabled(ctx context.Context, logger log.Logger) bool

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 NewResource(serviceName, serviceVersion string) (*resource.Resource, error)

func NewSLogHandler added in v0.9.1

func NewSLogHandler(name string, lp *LoggerProvider, options ...otelslog.Option) *otelslog.Handler

func NewSLogger added in v0.10.0

func NewSLogger(name string, lp *LoggerProvider, options ...otelslog.Option) *slog.Logger

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

func StartTrace added in v0.10.2

func StartTrace(ctx context.Context, name, traceID, spanID string) (context.Context, trace.Span)

Types

type Exporter added in v0.6.0

type Exporter interface {
	Shutdown(ctx context.Context) error
	ExportSpans(ctx context.Context, spans []sdktrace.ReadOnlySpan) error
}

type LogExporter

type LogExporter struct {
	*log.Logger
	// contains filtered or unexported fields
}

func (*LogExporter) Aggregation added in v0.4.0

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

Temporality returns the Temporality to use for an instrument kind.

type LogRecord added in v0.9.0

type LogRecord = log.Record

LogRecord is log.Record

type Logger added in v0.9.0

type Logger = olog.Logger

Logger is log.Logger

type LoggerProvider added in v0.9.0

type LoggerProvider = sdklog.LoggerProvider

LoggerProvider is sdklog.LoggerProvider

type Meter added in v0.6.0

type Meter = metric.Meter

Meter is meter.Meter

func GlobalMeter added in v0.6.0

func GlobalMeter(name string) Meter

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 Tracer

type Tracer = trace.Tracer

Tracer is trace.Tracer

func GlobalTracer

func GlobalTracer(name string) Tracer

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL