frostfs-node/pkg/util/logger/metrics.go
Alejandro Lopez 0c40d98f7a [#375] Add log metrics
Signed-off-by: Alejandro Lopez <a.lopez@yadro.com>
2023-06-13 09:52:45 +00:00

37 lines
862 B
Go

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()
}