51 lines
1.2 KiB
Go
51 lines
1.2 KiB
Go
/*
|
|
Copyright IBM Corp. All Rights Reserved.
|
|
|
|
SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
package metrics
|
|
|
|
import (
|
|
"github.com/hyperledger/fabric/common/metrics"
|
|
"go.uber.org/zap/zapcore"
|
|
)
|
|
|
|
var (
|
|
CheckedCountOpts = metrics.CounterOpts{
|
|
Namespace: "logging",
|
|
Name: "entries_checked",
|
|
Help: "Number of log entries checked against the active logging level",
|
|
LabelNames: []string{"level"},
|
|
StatsdFormat: "%{#fqname}.%{level}",
|
|
}
|
|
|
|
WriteCountOpts = metrics.CounterOpts{
|
|
Namespace: "logging",
|
|
Name: "entries_written",
|
|
Help: "Number of log entries that are written",
|
|
LabelNames: []string{"level"},
|
|
StatsdFormat: "%{#fqname}.%{level}",
|
|
}
|
|
)
|
|
|
|
type Observer struct {
|
|
CheckedCounter metrics.Counter
|
|
WrittenCounter metrics.Counter
|
|
}
|
|
|
|
func NewObserver(provider metrics.Provider) *Observer {
|
|
return &Observer{
|
|
CheckedCounter: provider.NewCounter(CheckedCountOpts),
|
|
WrittenCounter: provider.NewCounter(WriteCountOpts),
|
|
}
|
|
}
|
|
|
|
func (m *Observer) Check(e zapcore.Entry, ce *zapcore.CheckedEntry) {
|
|
m.CheckedCounter.With("level", e.Level.String()).Add(1)
|
|
}
|
|
|
|
func (m *Observer) WriteEntry(e zapcore.Entry, fields []zapcore.Field) {
|
|
m.WrittenCounter.With("level", e.Level.String()).Add(1)
|
|
}
|