telemetry

package
v0.0.0-...-a670c85 Latest Latest
Warning

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

Go to latest
Published: Nov 15, 2025 License: AGPL-3.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var MiddlewareModule = fx.Options(
	fx.Provide(
		fx.Annotate(
			func() httpserver.Middleware { return NewTracingMiddleware() },
			fx.ResultTags(`group:"middleware"`),
		),
	),
	fx.Provide(
		fx.Annotate(
			func(meter metric.Meter) httpserver.Middleware { return NewMetricsMiddleware(meter) },
			fx.ResultTags(`group:"middleware"`),
		),
	),
)

MiddlewareModule provides the tracing and metrics middlewares to the fx dependency graph grouped as "middleware" so they can be collected with other middlewares.

Module wires telemetry configuration and a tracer provider.

Functions

func Meter

Meter is a helper to inject a named meter via fx for metrics instrumentation.

func NewMetricsMiddleware

func NewMetricsMiddleware(meter metric.Meter) httpserver.Middleware

NewMetricsMiddleware returns an httpserver.Middleware that records HTTP metrics for every request: duration histogram and request counter with method, route, and status.

func NewTracerProvider

func NewTracerProvider(lc fx.Lifecycle, cfg Config) (*sdktrace.TracerProvider, error)

NewTracerProvider sets up the OTLP exporter, resource, and tracer provider. It registers the provider and propagators globally and ensures graceful shutdown via fx lifecycle.

func NewTracingMiddleware

func NewTracingMiddleware() httpserver.Middleware

NewTracingMiddleware returns an httpserver.Middleware that creates a span for every incoming HTTP request using OpenTelemetry. Spans are named by method and path (e.g., "GET /health").

func Tracer

func Tracer(tp *sdktrace.TracerProvider) trace.Tracer

Tracer is a small helper to inject a named tracer via fx.

Types

type Config

type Config struct {
	Endpoint       string
	Insecure       bool
	ServiceName    string
	ServiceVersion string
	Environment    string
}

Config holds OpenTelemetry configuration loaded from environment variables.

Supported env vars (with defaults): - OTEL_EXPORTER_OTLP_ENDPOINT ("http://localhost:4317") - OTEL_EXPORTER_OTLP_INSECURE ("true" -> no TLS) - OTEL_SERVICE_NAME (module path fallback) - OTEL_SERVICE_VERSION ("dev") - OTEL_ENVIRONMENT ("local")

func NewConfig

func NewConfig() Config

NewConfig constructs telemetry config from environment.

Jump to

Keyboard shortcuts

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