package lazytelemetry
import "golazy.dev/lazytelemetry"
Functions
func EnvironmentMiddleware
EnvironmentMiddleware returns a middleware when environment configuration activates telemetry.
func EnvironmentMiddleware(options ...MiddlewareOption) (lazydispatch.Middleware, bool)
func Logger
Logger returns the slog logger attached to ctx.
func Logger(ctx context.Context) *slog.Logger
func MetricLabels
MetricLabels returns metric labels attached to ctx.
func MetricLabels(ctx context.Context) lazymetrics.Labels
func Middleware
Middleware returns the default telemetry middleware.
func Middleware(options ...MiddlewareOption) lazydispatch.Middleware
func MiddlewareFromConfig
MiddlewareFromConfig returns a middleware configured from config.
func MiddlewareFromConfig(config Config, options ...MiddlewareOption) lazydispatch.Middleware
func NewLogger
NewLogger builds a default telemetry logger from config.
func NewLogger(config Config, out io.Writer) *slog.Logger
func RequestID
RequestID returns the request id attached to ctx.
func RequestID(ctx context.Context) string
func SpanFromContext
SpanFromContext returns the active span attached to ctx.
func SpanFromContext(ctx context.Context) *lazytracing.Span
func SpanID
SpanID returns the span id attached to ctx.
func SpanID(ctx context.Context) string
func StartSpan
StartSpan starts a span and attaches it to the returned context.
func StartSpan(ctx context.Context, name string, attrs ...slog.Attr) (context.Context, *lazytracing.Span)
func TraceID
TraceID returns the trace id attached to ctx.
func TraceID(ctx context.Context) string
func WithLogAttrs
WithLogAttrs returns a context whose logger includes attrs.
func WithLogAttrs(ctx context.Context, attrs ...slog.Attr) context.Context
func WithLogGroup
WithLogGroup returns a context whose logger writes subsequent attrs in group.
func WithLogGroup(ctx context.Context, group string) context.Context
func WithLogTags
WithLogTags returns a context whose logger includes tags.
func WithLogTags(ctx context.Context, tags ...string) context.Context
func WithLogger
WithLogger attaches logger to ctx.
func WithLogger(ctx context.Context, logger *slog.Logger) context.Context
func WithMetricLabels
WithMetricLabels attaches metric labels to ctx.
func WithMetricLabels(ctx context.Context, labels lazymetrics.Labels) context.Context
func WithRequestID
WithRequestID attaches requestID to ctx.
func WithRequestID(ctx context.Context, requestID string) context.Context
Types
type BatchLogRecordProcessorConfig
BatchLogRecordProcessorConfig contains OTEL_BLRP_* values.
type BatchLogRecordProcessorConfig struct {
ScheduleDelay Duration
ExportTimeout Duration
MaxQueueSize int
MaxExportBatchSize int
}
type BatchSpanProcessorConfig
BatchSpanProcessorConfig contains OTEL_BSP_* values.
type BatchSpanProcessorConfig struct {
ScheduleDelay Duration
ExportTimeout Duration
MaxQueueSize int
MaxExportBatchSize int
}
type Config
Config contains OpenTelemetry-compatible environment configuration for GoLazy telemetry.
type Config struct {
SDKDisabled bool
Entities string
ResourceAttributes string
ServiceName string
LogLevel string
Propagators []string `var:"PROPAGATORS"`
TracesSampler string
TracesSamplerArg string
BSP BatchSpanProcessorConfig
BLRP BatchLogRecordProcessorConfig
AttributeValueLengthLimit int
AttributeCountLimit int
SpanAttributeValueLengthLimit int
SpanAttributeCountLimit int
SpanEventCountLimit int
SpanLinkCountLimit int
EventAttributeCountLimit int
LinkAttributeCountLimit int
LogrecordAttributeValueLengthLimit int `var:"LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT"`
LogrecordAttributeCountLimit int `var:"LOGRECORD_ATTRIBUTE_COUNT_LIMIT"`
TracesExporter []string
MetricsExporter []string
LogsExporter []string
Exporter ExporterConfig
MetricsExemplarFilter string
MetricExportInterval Duration
MetricExportTimeout Duration
ConfigFile string
ExperimentalConfigFile string
}
func LoadConfig
LoadConfig reads Config from the process environment.
func LoadConfig() (Config, error)
func MustLoadConfig
MustLoadConfig reads Config and panics when the environment is invalid.
func MustLoadConfig() Config
func (config Config) Enabled
Enabled reports whether telemetry should be installed.
func (config Config) Enabled() bool
func (config Config) JSONLogs
JSONLogs reports whether config asks for structured log output.
func (config Config) JSONLogs() bool
type Duration
Duration stores an OTEL duration value.
OTEL SDK values are commonly represented as milliseconds, while OTLP exporter timeout values are often written as Go-style durations such as "10s". Duration accepts both forms.
type Duration time.Duration
func (d Duration) Duration
Duration returns d as a time.Duration.
func (d Duration) Duration() time.Duration
func (d *Duration) UnmarshalText
UnmarshalText implements encoding.TextUnmarshaler.
func (d *Duration) UnmarshalText(data []byte) error
type ExporterConfig
ExporterConfig contains OpenTelemetry exporter configuration.
type ExporterConfig struct {
OTLP OTLPExporterConfig
Zipkin ZipkinExporterConfig
Prometheus PrometheusExporterConfig
}
type MiddlewareOption
MiddlewareOption configures the telemetry middleware.
type MiddlewareOption func(*middleware)
func WithMetricsRegistry
WithMetricsRegistry configures the registry used by request metrics.
func WithMetricsRegistry(registry *lazymetrics.Registry) MiddlewareOption
func WithMiddlewareLogger
WithMiddlewareLogger configures the logger attached to request contexts.
func WithMiddlewareLogger(logger *slog.Logger) MiddlewareOption
type OTLPExporterConfig
OTLPExporterConfig contains OTEL_EXPORTER_OTLP_* values.
type OTLPExporterConfig struct {
Endpoint string
TracesEndpoint string
MetricsEndpoint string
LogsEndpoint string
Insecure bool
TracesInsecure bool
MetricsInsecure bool
LogsInsecure bool
Certificate string
TracesCertificate string
MetricsCertificate string
LogsCertificate string
ClientKey string
TracesClientKey string
MetricsClientKey string
LogsClientKey string
ClientCertificate string
TracesClientCertificate string
MetricsClientCertificate string
LogsClientCertificate string
Headers string
TracesHeaders string
MetricsHeaders string
LogsHeaders string
Compression string
TracesCompression string
MetricsCompression string
LogsCompression string
Timeout Duration
TracesTimeout Duration
MetricsTimeout Duration
LogsTimeout Duration
Protocol string
TracesProtocol string
MetricsProtocol string
LogsProtocol string
SpanInsecure bool
MetricInsecure bool
}
type PrometheusExporterConfig
PrometheusExporterConfig contains OTEL_EXPORTER_PROMETHEUS_* values.
type PrometheusExporterConfig struct {
Host string
Port int
}
type ZipkinExporterConfig
ZipkinExporterConfig contains OTEL_EXPORTER_ZIPKIN_* values.
type ZipkinExporterConfig struct {
Endpoint string
Timeout Duration
Protocol string
}
Directories
| Path | Synopsis |
|---|---|
| lazytelemetry/lazylogs | Package lazylogs provides slog-compatible context logging helpers. |
| lazytelemetry/lazymetrics | Package lazymetrics provides lightweight metric helpers for GoLazy telemetry. |
| lazytelemetry/lazytracing | Package lazytracing provides lightweight span helpers for GoLazy telemetry. |
Package lazytelemetry configures GoLazy telemetry hooks.