Documentation
¶
Overview ¶
Package metrics provides a decoupled interface for collecting library metrics.
By using the Provider interface, the lifecycle library remains free of external monitoring dependencies (like Prometheus or OpenTelemetry) while still providing hook points for observability.
Consumers can implement their own Provider or use the provided LogProvider for debugging.
Index ¶
- Constants
- func SetLabelPolicy(p *LabelPolicy)
- func SetProvider(p Provider)
- type LabelPolicy
- type LogProvider
- func (l *LogProvider) DecEventWaiting(source string)
- func (l *LogProvider) DecGoroutineWaiting()
- func (l *LogProvider) IncBackoffTriggered(c string, d time.Duration)
- func (l *LogProvider) IncChildRestart(s, c string)
- func (l *LogProvider) IncCircuitBreakerTriggered(c string)
- func (l *LogProvider) IncContainerFailed(image string)
- func (l *LogProvider) IncContainerStarted(image string)
- func (l *LogProvider) IncContainerStopped(image string)
- func (l *LogProvider) IncCriticalSectionFinished(success bool)
- func (l *LogProvider) IncCriticalSectionStarted()
- func (l *LogProvider) IncEventEmitted(source string)
- func (l *LogProvider) IncEventRouted(topic string)
- func (l *LogProvider) IncEventWaiting(source string)
- func (l *LogProvider) IncForceExitTriggered()
- func (l *LogProvider) IncGoroutineFinished()
- func (l *LogProvider) IncGoroutinePanicked()
- func (l *LogProvider) IncGoroutineStarted()
- func (l *LogProvider) IncGoroutineWaiting()
- func (l *LogProvider) IncHandlerError(topic string, err error)
- func (l *LogProvider) IncHandlerExecuted(topic string)
- func (l *LogProvider) IncHookExecuted()
- func (l *LogProvider) IncHookPanicked()
- func (l *LogProvider) IncProcessFailed()
- func (l *LogProvider) IncProcessStarted()
- func (l *LogProvider) IncSignalReceived(sig string)
- func (l *LogProvider) IncSupervisorAdd(s string)
- func (l *LogProvider) IncSupervisorRemove(s string)
- func (l *LogProvider) IncSupervisorRestart(s, strategy string)
- func (l *LogProvider) IncTerminalUpgrade(success bool)
- func (l *LogProvider) IncWorkerFailed(wt string)
- func (l *LogProvider) IncWorkerStarted(wt string)
- func (l *LogProvider) IncWorkerStopped(wt string)
- func (l *LogProvider) ObserveContainerDuration(image string, d time.Duration)
- func (l *LogProvider) ObserveCriticalSectionDuration(d time.Duration)
- func (l *LogProvider) ObserveEventBlockDuration(source string, d time.Duration)
- func (l *LogProvider) ObserveGoroutineBlockDuration(d time.Duration)
- func (l *LogProvider) ObserveHandlerDuration(topic string, d time.Duration)
- func (l *LogProvider) ObserveHookDuration(d time.Duration)
- func (l *LogProvider) ObserveShutdownDuration(wt string, d time.Duration)
- func (l *LogProvider) ObserveWorkerDuration(wt string, d time.Duration)
- type NoOpProvider
- func (n *NoOpProvider) DecEventWaiting(source string)
- func (n *NoOpProvider) DecGoroutineWaiting()
- func (n *NoOpProvider) IncBackoffTriggered(c string, d time.Duration)
- func (n *NoOpProvider) IncChildRestart(s, c string)
- func (n *NoOpProvider) IncCircuitBreakerTriggered(c string)
- func (n *NoOpProvider) IncContainerFailed(image string)
- func (n *NoOpProvider) IncContainerStarted(image string)
- func (n *NoOpProvider) IncContainerStopped(image string)
- func (n *NoOpProvider) IncCriticalSectionFinished(success bool)
- func (n *NoOpProvider) IncCriticalSectionStarted()
- func (n *NoOpProvider) IncEventEmitted(source string)
- func (n *NoOpProvider) IncEventRouted(topic string)
- func (n *NoOpProvider) IncEventWaiting(source string)
- func (n *NoOpProvider) IncForceExitTriggered()
- func (n *NoOpProvider) IncGoroutineFinished()
- func (n *NoOpProvider) IncGoroutinePanicked()
- func (n *NoOpProvider) IncGoroutineStarted()
- func (n *NoOpProvider) IncGoroutineWaiting()
- func (n *NoOpProvider) IncHandlerError(topic string, err error)
- func (n *NoOpProvider) IncHandlerExecuted(topic string)
- func (n *NoOpProvider) IncHookExecuted()
- func (n *NoOpProvider) IncHookPanicked()
- func (n *NoOpProvider) IncProcessFailed()
- func (n *NoOpProvider) IncProcessStarted()
- func (n *NoOpProvider) IncSignalReceived(sig string)
- func (n *NoOpProvider) IncSupervisorAdd(s string)
- func (n *NoOpProvider) IncSupervisorRemove(s string)
- func (n *NoOpProvider) IncSupervisorRestart(s, est string)
- func (n *NoOpProvider) IncTerminalUpgrade(success bool)
- func (n *NoOpProvider) IncWorkerFailed(wt string)
- func (n *NoOpProvider) IncWorkerStarted(wt string)
- func (n *NoOpProvider) IncWorkerStopped(wt string)
- func (n *NoOpProvider) ObserveContainerDuration(image string, d time.Duration)
- func (n *NoOpProvider) ObserveCriticalSectionDuration(d time.Duration)
- func (n *NoOpProvider) ObserveEventBlockDuration(source string, d time.Duration)
- func (n *NoOpProvider) ObserveGoroutineBlockDuration(d time.Duration)
- func (n *NoOpProvider) ObserveHandlerDuration(topic string, d time.Duration)
- func (n *NoOpProvider) ObserveHookDuration(d time.Duration)
- func (n *NoOpProvider) ObserveShutdownDuration(wt string, d time.Duration)
- func (n *NoOpProvider) ObserveWorkerDuration(wt string, d time.Duration)
- type Provider
Constants ¶
const ( LabelSignal = "signal" LabelWorkerType = "worker_type" LabelStrategy = "strategy" LabelSupervisor = "supervisor" LabelChild = "child" LabelSource = "source" LabelTopic = "topic" LabelImage = "image" )
Label keys used for metrics label cardinality enforcement.
const ( LabelValueOther = "other" LabelValueUnknown = "unknown" DefaultLabelMaxLen = 64 )
Variables ¶
This section is empty.
Functions ¶
func SetLabelPolicy ¶
func SetLabelPolicy(p *LabelPolicy)
SetLabelPolicy configures label sanitization for all metrics providers.
Passing nil disables label enforcement and uses raw values.
Types ¶
type LabelPolicy ¶
LabelPolicy controls how metric labels are sanitized or rejected.
func DefaultLabelPolicy ¶
func DefaultLabelPolicy() *LabelPolicy
DefaultLabelPolicy provides a conservative allowlist for low-cardinality labels.
func GetLabelPolicy ¶
func GetLabelPolicy() *LabelPolicy
GetLabelPolicy returns the active label policy, if any.
type LogProvider ¶
type LogProvider struct{}
LogProvider is a metrics provider that logs increments at Debug level. This is useful for development and debugging without external dependencies.
func (*LogProvider) DecEventWaiting ¶
func (l *LogProvider) DecEventWaiting(source string)
func (*LogProvider) DecGoroutineWaiting ¶
func (l *LogProvider) DecGoroutineWaiting()
func (*LogProvider) IncBackoffTriggered ¶
func (l *LogProvider) IncBackoffTriggered(c string, d time.Duration)
func (*LogProvider) IncChildRestart ¶
func (l *LogProvider) IncChildRestart(s, c string)
func (*LogProvider) IncCircuitBreakerTriggered ¶
func (l *LogProvider) IncCircuitBreakerTriggered(c string)
func (*LogProvider) IncContainerFailed ¶
func (l *LogProvider) IncContainerFailed(image string)
func (*LogProvider) IncContainerStarted ¶
func (l *LogProvider) IncContainerStarted(image string)
func (*LogProvider) IncContainerStopped ¶
func (l *LogProvider) IncContainerStopped(image string)
func (*LogProvider) IncCriticalSectionFinished ¶
func (l *LogProvider) IncCriticalSectionFinished(success bool)
func (*LogProvider) IncCriticalSectionStarted ¶
func (l *LogProvider) IncCriticalSectionStarted()
func (*LogProvider) IncEventEmitted ¶
func (l *LogProvider) IncEventEmitted(source string)
func (*LogProvider) IncEventRouted ¶
func (l *LogProvider) IncEventRouted(topic string)
func (*LogProvider) IncEventWaiting ¶
func (l *LogProvider) IncEventWaiting(source string)
func (*LogProvider) IncForceExitTriggered ¶
func (l *LogProvider) IncForceExitTriggered()
func (*LogProvider) IncGoroutineFinished ¶
func (l *LogProvider) IncGoroutineFinished()
func (*LogProvider) IncGoroutinePanicked ¶
func (l *LogProvider) IncGoroutinePanicked()
func (*LogProvider) IncGoroutineStarted ¶
func (l *LogProvider) IncGoroutineStarted()
func (*LogProvider) IncGoroutineWaiting ¶
func (l *LogProvider) IncGoroutineWaiting()
func (*LogProvider) IncHandlerError ¶
func (l *LogProvider) IncHandlerError(topic string, err error)
func (*LogProvider) IncHandlerExecuted ¶
func (l *LogProvider) IncHandlerExecuted(topic string)
func (*LogProvider) IncHookExecuted ¶
func (l *LogProvider) IncHookExecuted()
func (*LogProvider) IncHookPanicked ¶
func (l *LogProvider) IncHookPanicked()
func (*LogProvider) IncProcessFailed ¶
func (l *LogProvider) IncProcessFailed()
func (*LogProvider) IncProcessStarted ¶
func (l *LogProvider) IncProcessStarted()
func (*LogProvider) IncSignalReceived ¶
func (l *LogProvider) IncSignalReceived(sig string)
func (*LogProvider) IncSupervisorAdd ¶
func (l *LogProvider) IncSupervisorAdd(s string)
func (*LogProvider) IncSupervisorRemove ¶
func (l *LogProvider) IncSupervisorRemove(s string)
func (*LogProvider) IncSupervisorRestart ¶
func (l *LogProvider) IncSupervisorRestart(s, strategy string)
func (*LogProvider) IncTerminalUpgrade ¶
func (l *LogProvider) IncTerminalUpgrade(success bool)
func (*LogProvider) IncWorkerFailed ¶
func (l *LogProvider) IncWorkerFailed(wt string)
func (*LogProvider) IncWorkerStarted ¶
func (l *LogProvider) IncWorkerStarted(wt string)
func (*LogProvider) IncWorkerStopped ¶
func (l *LogProvider) IncWorkerStopped(wt string)
func (*LogProvider) ObserveContainerDuration ¶
func (l *LogProvider) ObserveContainerDuration(image string, d time.Duration)
func (*LogProvider) ObserveCriticalSectionDuration ¶
func (l *LogProvider) ObserveCriticalSectionDuration(d time.Duration)
func (*LogProvider) ObserveEventBlockDuration ¶
func (l *LogProvider) ObserveEventBlockDuration(source string, d time.Duration)
func (*LogProvider) ObserveGoroutineBlockDuration ¶
func (l *LogProvider) ObserveGoroutineBlockDuration(d time.Duration)
func (*LogProvider) ObserveHandlerDuration ¶
func (l *LogProvider) ObserveHandlerDuration(topic string, d time.Duration)
func (*LogProvider) ObserveHookDuration ¶
func (l *LogProvider) ObserveHookDuration(d time.Duration)
func (*LogProvider) ObserveShutdownDuration ¶
func (l *LogProvider) ObserveShutdownDuration(wt string, d time.Duration)
func (*LogProvider) ObserveWorkerDuration ¶
func (l *LogProvider) ObserveWorkerDuration(wt string, d time.Duration)
type NoOpProvider ¶
type NoOpProvider struct{}
NoOpProvider is a metrics provider that does nothing.
func (*NoOpProvider) DecEventWaiting ¶
func (n *NoOpProvider) DecEventWaiting(source string)
func (*NoOpProvider) DecGoroutineWaiting ¶
func (n *NoOpProvider) DecGoroutineWaiting()
func (*NoOpProvider) IncBackoffTriggered ¶
func (n *NoOpProvider) IncBackoffTriggered(c string, d time.Duration)
func (*NoOpProvider) IncChildRestart ¶
func (n *NoOpProvider) IncChildRestart(s, c string)
func (*NoOpProvider) IncCircuitBreakerTriggered ¶
func (n *NoOpProvider) IncCircuitBreakerTriggered(c string)
func (*NoOpProvider) IncContainerFailed ¶
func (n *NoOpProvider) IncContainerFailed(image string)
func (*NoOpProvider) IncContainerStarted ¶
func (n *NoOpProvider) IncContainerStarted(image string)
func (*NoOpProvider) IncContainerStopped ¶
func (n *NoOpProvider) IncContainerStopped(image string)
func (*NoOpProvider) IncCriticalSectionFinished ¶
func (n *NoOpProvider) IncCriticalSectionFinished(success bool)
func (*NoOpProvider) IncCriticalSectionStarted ¶
func (n *NoOpProvider) IncCriticalSectionStarted()
func (*NoOpProvider) IncEventEmitted ¶
func (n *NoOpProvider) IncEventEmitted(source string)
func (*NoOpProvider) IncEventRouted ¶
func (n *NoOpProvider) IncEventRouted(topic string)
func (*NoOpProvider) IncEventWaiting ¶
func (n *NoOpProvider) IncEventWaiting(source string)
func (*NoOpProvider) IncForceExitTriggered ¶
func (n *NoOpProvider) IncForceExitTriggered()
func (*NoOpProvider) IncGoroutineFinished ¶
func (n *NoOpProvider) IncGoroutineFinished()
func (*NoOpProvider) IncGoroutinePanicked ¶
func (n *NoOpProvider) IncGoroutinePanicked()
func (*NoOpProvider) IncGoroutineStarted ¶
func (n *NoOpProvider) IncGoroutineStarted()
func (*NoOpProvider) IncGoroutineWaiting ¶
func (n *NoOpProvider) IncGoroutineWaiting()
func (*NoOpProvider) IncHandlerError ¶
func (n *NoOpProvider) IncHandlerError(topic string, err error)
func (*NoOpProvider) IncHandlerExecuted ¶
func (n *NoOpProvider) IncHandlerExecuted(topic string)
func (*NoOpProvider) IncHookExecuted ¶
func (n *NoOpProvider) IncHookExecuted()
func (*NoOpProvider) IncHookPanicked ¶
func (n *NoOpProvider) IncHookPanicked()
func (*NoOpProvider) IncProcessFailed ¶
func (n *NoOpProvider) IncProcessFailed()
func (*NoOpProvider) IncProcessStarted ¶
func (n *NoOpProvider) IncProcessStarted()
func (*NoOpProvider) IncSignalReceived ¶
func (n *NoOpProvider) IncSignalReceived(sig string)
func (*NoOpProvider) IncSupervisorAdd ¶
func (n *NoOpProvider) IncSupervisorAdd(s string)
func (*NoOpProvider) IncSupervisorRemove ¶
func (n *NoOpProvider) IncSupervisorRemove(s string)
func (*NoOpProvider) IncSupervisorRestart ¶
func (n *NoOpProvider) IncSupervisorRestart(s, est string)
func (*NoOpProvider) IncTerminalUpgrade ¶
func (n *NoOpProvider) IncTerminalUpgrade(success bool)
func (*NoOpProvider) IncWorkerFailed ¶
func (n *NoOpProvider) IncWorkerFailed(wt string)
func (*NoOpProvider) IncWorkerStarted ¶
func (n *NoOpProvider) IncWorkerStarted(wt string)
func (*NoOpProvider) IncWorkerStopped ¶
func (n *NoOpProvider) IncWorkerStopped(wt string)
func (*NoOpProvider) ObserveContainerDuration ¶
func (n *NoOpProvider) ObserveContainerDuration(image string, d time.Duration)
func (*NoOpProvider) ObserveCriticalSectionDuration ¶
func (n *NoOpProvider) ObserveCriticalSectionDuration(d time.Duration)
func (*NoOpProvider) ObserveEventBlockDuration ¶
func (n *NoOpProvider) ObserveEventBlockDuration(source string, d time.Duration)
func (*NoOpProvider) ObserveGoroutineBlockDuration ¶
func (n *NoOpProvider) ObserveGoroutineBlockDuration(d time.Duration)
func (*NoOpProvider) ObserveHandlerDuration ¶
func (n *NoOpProvider) ObserveHandlerDuration(topic string, d time.Duration)
func (*NoOpProvider) ObserveHookDuration ¶
func (n *NoOpProvider) ObserveHookDuration(d time.Duration)
func (*NoOpProvider) ObserveShutdownDuration ¶
func (n *NoOpProvider) ObserveShutdownDuration(wt string, d time.Duration)
func (*NoOpProvider) ObserveWorkerDuration ¶
func (n *NoOpProvider) ObserveWorkerDuration(wt string, d time.Duration)
type Provider ¶
type Provider interface {
IncSignalReceived(sig string)
IncProcessStarted()
IncProcessFailed()
IncTerminalUpgrade(success bool)
IncHookExecuted()
IncHookPanicked()
ObserveHookDuration(duration time.Duration)
IncWorkerStarted(workerType string)
IncWorkerStopped(workerType string)
IncWorkerFailed(workerType string)
ObserveWorkerDuration(workerType string, duration time.Duration)
IncSupervisorRestart(supervisorName, strategy string)
IncChildRestart(supervisorName, childName string)
IncSupervisorAdd(supervisorName string)
IncSupervisorRemove(supervisorName string)
IncBackoffTriggered(childName string, delay time.Duration)
ObserveShutdownDuration(workerType string, duration time.Duration)
IncForceExitTriggered()
IncCircuitBreakerTriggered(childName string)
// Critical Sections
IncCriticalSectionStarted()
IncCriticalSectionFinished(success bool)
ObserveCriticalSectionDuration(duration time.Duration)
// Container metrics
IncContainerStarted(image string)
IncContainerStopped(image string)
IncContainerFailed(image string)
ObserveContainerDuration(image string, duration time.Duration)
// Goroutine metrics (v1.5+)
IncGoroutineStarted()
IncGoroutineFinished()
IncGoroutinePanicked()
ObserveGoroutineBlockDuration(duration time.Duration)
// Waiting/Backpressure Gauge
IncGoroutineWaiting()
DecGoroutineWaiting()
// Control Plane Metrics (v1.5+)
IncEventEmitted(source string)
IncEventRouted(topic string)
IncHandlerExecuted(topic string)
IncHandlerError(topic string, err error)
ObserveHandlerDuration(topic string, duration time.Duration)
// Event Backpressure Metrics (v1.5+)
ObserveEventBlockDuration(source string, duration time.Duration)
IncEventWaiting(source string)
DecEventWaiting(source string)
}
Provider defines the interface for collecting lifecycle metrics. Implementations can bridge these calls to Prometheus, OpenTelemetry, etc.
func GetProvider ¶
func GetProvider() Provider
GetProvider returns the current global metrics provider.