package logger import ( "strconv" "git.frostfs.info/TrueCloudLab/frostfs-observability/metrics" "github.com/prometheus/client_golang/prometheus" "go.uber.org/zap/zapcore" ) const ( logSubsystem = "log" logLevelLabel = "level" logDroppedLabel = "dropped" ) type logMetrics struct { logCount *prometheus.CounterVec } func newLogMetrics(namespace string) *logMetrics { return &logMetrics{ logCount: metrics.NewCounterVec(prometheus.CounterOpts{ Namespace: namespace, Subsystem: logSubsystem, Name: "log_count", Help: "Total log entries emitted or dropped by severity level", }, []string{logLevelLabel, logDroppedLabel}), } } func (m *logMetrics) Inc(level zapcore.Level, dropped bool) { m.logCount.With(prometheus.Labels{ logLevelLabel: level.String(), logDroppedLabel: strconv.FormatBool(dropped), }).Inc() }