[#375] Add log metrics

Signed-off-by: Alejandro Lopez <a.lopez@yadro.com>
This commit is contained in:
Alejandro Lopez 2023-06-09 11:47:39 +03:00 committed by Evgenii Stratonikov
parent 83d600ed77
commit 0c40d98f7a
4 changed files with 48 additions and 0 deletions

View file

@ -0,0 +1,37 @@
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()
}