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 RoleTransitions metric.Int64Counter
RoleTransitions counts LiteFS role transition events (promoted/demoted).
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 SyncTypeFallback metric.Int64Counter
SyncTypeFallback counts incremental-to-full fallback events per type.
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 InitObjectCountGauges ¶ added in v1.5.0
InitObjectCountGauges registers an observable Int64Gauge that reports the number of objects stored per PeeringDB type. The gauge callback queries the ent client for all 13 PeeringDB types on each scrape per D-12, D-13, D-14. Must be called after OTel Setup() and database initialization.
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.