Documentation
¶
Overview ¶
Package telemetry provides OpenTelemetry metrics integration for metalog.
The package creates a metric.MeterProvider from configuration, supporting pluggable exporters (Prometheus, OTLP, or custom). Enterprise deployments can register custom exporters via RegisterExporter using the same init() pattern as storage backends and message transformers.
When telemetry is disabled, subsystems use a no-op meter with zero overhead.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterExporter ¶
func RegisterExporter(name string, factory ExporterFactory)
RegisterExporter registers a named exporter factory. Enterprise deployments can add custom exporters (e.g., Datadog, M3) via init() in a separate module.
Types ¶
type Config ¶
type Config struct {
Enabled bool `yaml:"enabled"`
Exporter string `yaml:"exporter"` // "prometheus", "otlp", or custom registered name
Options map[string]string `yaml:"options"` // exporter-specific options
}
Config holds telemetry configuration.
type ExporterFactory ¶
ExporterFactory creates an OTel metric reader from configuration.
type Provider ¶
type Provider struct {
// contains filtered or unexported fields
}
Provider wraps an OTel MeterProvider with lifecycle management.
func NewProvider ¶
NewProvider creates a Provider from configuration. Returns a no-op provider if telemetry is disabled.
func (*Provider) Handler ¶
Handler returns the Prometheus HTTP handler, or nil if not using Prometheus.