Documentation
¶
Index ¶
- Variables
- func Meter(tp *sdktrace.TracerProvider) metric.Meter
- func NewMetricsMiddleware(meter metric.Meter) httpserver.Middleware
- func NewTracerProvider(lc fx.Lifecycle, cfg Config) (*sdktrace.TracerProvider, error)
- func NewTracingMiddleware() httpserver.Middleware
- func Tracer(tp *sdktrace.TracerProvider) trace.Tracer
- type Config
Constants ¶
This section is empty.
Variables ¶
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.
var Module = fx.Options( fx.Provide(NewConfig), fx.Provide(NewTracerProvider), fx.Provide(Tracer), fx.Provide(Meter), )
Module wires telemetry configuration and a tracer provider.
Functions ¶
func Meter ¶
func Meter(tp *sdktrace.TracerProvider) metric.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 ¶
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").
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")