Documentation
¶
Overview ¶
Package otel initializes the OpenTelemetry trace, metric, and log pipelines. It uses autoexport for environment-driven configuration of exporters, supporting all standard OTEL_* env vars per D-07.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var SyncDuration metric.Float64Histogram
SyncDuration records the duration of sync operations in seconds.
var SyncOperations metric.Int64Counter
SyncOperations counts sync operations by status (success/failed).
var SyncTypeDeleted metric.Int64Counter
SyncTypeDeleted counts objects deleted per type.
var SyncTypeDuration metric.Float64Histogram
SyncTypeDuration records per-type sync step duration in seconds.
var SyncTypeFetchErrors metric.Int64Counter
SyncTypeFetchErrors counts PeeringDB API fetch errors per type per D-10.
var SyncTypeObjects metric.Int64Counter
SyncTypeObjects counts objects synced per type.
var SyncTypeUpsertErrors metric.Int64Counter
SyncTypeUpsertErrors counts database upsert errors per type per D-10.
Functions ¶
func InitFreshnessGauge ¶ added in v1.1.0
InitFreshnessGauge registers the sync freshness observable gauge per D-09. The lastSyncFn callback returns the time of the last successful sync. Must be called after OTel Setup() and database initialization.
func InitMetrics ¶
func InitMetrics() error
InitMetrics registers custom metric instruments for sync operations per D-05. HTTP metrics are handled automatically by otelhttp middleware (Plan 03).
func NewDualLogger ¶
NewDualLogger creates a slog.Logger that sends every log record to both a JSON stdout handler and the OTel log pipeline via otelslog per D-03. This ensures logs are always visible on stdout even if the OTel backend is unavailable.
Types ¶
type SetupInput ¶
SetupInput holds configuration for initializing the OTel pipeline. SampleRate controls trace sampling (0.0 to 1.0) per D-02.
type SetupOutput ¶
type SetupOutput struct {
// Shutdown flushes all providers and must be called before program exit.
Shutdown func(context.Context) error
// LogProvider is exposed so the caller can create a dual slog handler
// that bridges slog records into the OTel log pipeline.
LogProvider *sdklog.LoggerProvider
}
SetupOutput holds the OTel shutdown function and LoggerProvider for creating the dual slog handler.
func Setup ¶
func Setup(ctx context.Context, in SetupInput) (*SetupOutput, error)
Setup initializes TracerProvider, MeterProvider, and LoggerProvider using autoexport for environment-driven exporter selection per D-06, D-07. Individual signals can be disabled via OTEL_*_EXPORTER=none per D-04.