package lazytelemetry ¶
import "golazy.dev/lazytelemetry"
Constants ¶
const LazyDevRequestMonitoringOffPath ¶
LazyDevRequestMonitoringOffPath disables detailed lazydev request monitoring.
const LazyDevRequestMonitoringOffPath = "/requests/monitoring/off"
const LazyDevRequestMonitoringOnPath ¶
LazyDevRequestMonitoringOnPath enables detailed lazydev request monitoring.
const LazyDevRequestMonitoringOnPath = "/requests/monitoring/on"
const LazyDevRequestMonitoringPath ¶
LazyDevRequestMonitoringPath is the lazydev control-plane endpoint for detailed request monitoring state.
const LazyDevRequestMonitoringPath = "/requests/monitoring"
const LazyDevRequestTracesClearPath ¶
LazyDevRequestTracesClearPath clears recorded lazydev request trace files.
const LazyDevRequestTracesClearPath = "/requests/traces/clear"
const LazyDevRequestTracesPath ¶
LazyDevRequestTracesPath is the lazydev control-plane endpoint for recorded request trace summaries.
const LazyDevRequestTracesPath = "/requests/traces"
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 RegisterLazyDevHandlers ¶
RegisterLazyDevHandlers registers request-monitoring endpoints on the application's lazydev control plane.
func RegisterLazyDevHandlers(controlPlane *lazycontrolplane.ControlPlane)
func RequestID ¶
RequestID returns the request id attached to ctx.
func RequestID(ctx context.Context) string
func RequestMonitoringEnabled ¶
RequestMonitoringEnabled reports whether detailed request monitoring is on.
func RequestMonitoringEnabled() bool
func SetRequestMonitoringEnabled ¶
SetRequestMonitoringEnabled switches detailed request monitoring on or off.
func SetRequestMonitoringEnabled(enabled bool)
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 StartRegion ¶
StartRegion starts a child span and Go runtime trace region when ctx carries an active span. It returns ctx unchanged and a nil span when telemetry is not active for the request.
func StartRegion(ctx context.Context, name string, attrs ...slog.Attr) (context.Context, *lazytracing.Span)
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
func (config Config) PrometheusMetrics ¶
PrometheusMetrics reports whether the Prometheus metrics exporter is enabled.
func (config Config) PrometheusMetrics() 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 RequestMonitoringSnapshot ¶
RequestMonitoringSnapshot describes detailed lazydev request monitoring.
type RequestMonitoringSnapshot struct {
Enabled bool `json:"enabled"`
Directory string `json:"directory"`
}
func RequestMonitoringState ¶
RequestMonitoringState returns the current detailed request monitoring state.
func RequestMonitoringState() RequestMonitoringSnapshot
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.