Skip to content

Commit 57dfb98

Browse files
feat: no-op metrics (#181)
* add: no-op metrics * update: NopLogger, development logger * update: NewNoopMetrics return TaskMetrics
1 parent 31ce0f7 commit 57dfb98

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed

pkg/logger/logger.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,17 @@ func NewLogger(opts ...interface{}) *Logger {
6666
return &Logger{logger: logger}
6767
}
6868

69+
func NewNopLogger() *Logger {
70+
return &Logger{logger: zap.NewNop()}
71+
}
72+
73+
func NewDevelopmentLogger(fields ...Field) *Logger {
74+
config := defaultConfig
75+
config.Encoding = ConsoleEncode
76+
77+
return NewLogger(config, fields)
78+
}
79+
6980
func configureAndBuildLogger(config Config) *zap.Logger {
7081
cfg := zap.NewProductionConfig()
7182
if strings.EqualFold(config.Encoding, ConsoleEncode) {

pkg/metrics/noop.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package metrics
2+
3+
var _ TaskMetrics = NoopMetrics{}
4+
5+
// NoopMetrics provides an implementation of the TaskMetrics that produces no telemetry and minimizes used computation resources.
6+
type NoopMetrics struct{}
7+
8+
// NewNoopMetrics creates and returns a new instance that implements the TaskMetrics interface without generating any metrics or telemetry.
9+
func NewNoopMetrics() TaskMetrics {
10+
return &NoopMetrics{}
11+
}
12+
13+
func (n NoopMetrics) Start() error {
14+
return nil
15+
}
16+
17+
func (n NoopMetrics) RegisterMetric(_, _ string, _ []string, _ MetricHandler) error {
18+
return nil
19+
}
20+
21+
func (n NoopMetrics) UpdateMetric(_ string, _ float64, _ ...string) error {
22+
return nil
23+
}
24+
25+
func (n NoopMetrics) IncrementMetric(_ string, _ ...string) error {
26+
return nil
27+
}
28+
29+
func (n NoopMetrics) DecrementMetric(_ string, _ ...string) error {
30+
return nil
31+
}
32+
33+
func (n NoopMetrics) Name() string {
34+
return ""
35+
}
36+
37+
func (n NoopMetrics) AppName() string {
38+
return ""
39+
}
40+
41+
func (n NoopMetrics) Stop() error {
42+
return nil
43+
}

0 commit comments

Comments
 (0)