Skip to content

Commit 378c5a3

Browse files
committed
[metrics] move prometheus specific configs under metrics.prometheus config
1 parent 01b2b1c commit 378c5a3

File tree

5 files changed

+27
-27
lines changed

5 files changed

+27
-27
lines changed

common/metrics/config.go

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -50,22 +50,6 @@ type (
5050
// - "milliseconds"
5151
// - "bytes"
5252
PerUnitHistogramBoundaries map[string][]float64 `yaml:"perUnitHistogramBoundaries"`
53-
54-
// Following configs are added for backwards compatibility when switching from tally to opentelemetry
55-
// All configs should be set to true when using opentelemetry framework to have the same behavior as tally.
56-
57-
// WithoutUnitSuffix controls the additional of unit suffixes to metric names.
58-
// This config only takes effect when using opentelemetry framework.
59-
// Note: this config only takes effect when using prometheus via opentelemetry framework
60-
WithoutUnitSuffix bool `yaml:"withoutUnitSuffix"`
61-
// WithoutCounterSuffix controls the additional of _total suffixes to counter metric names.
62-
// This config only takes effect when using opentelemetry framework.
63-
// Note: this config only takes effect when using prometheus via opentelemetry framework
64-
WithoutCounterSuffix bool `yaml:"withoutCounterSuffix"`
65-
// RecordTimerInSeconds controls if Timer metric should be emitted as number of seconds
66-
// (instead of milliseconds).
67-
// This config only takes effect when using opentelemetry framework for both statsd and prometheus.
68-
RecordTimerInSeconds bool `yaml:"recordTimerInSeconds"`
6953
}
7054

7155
// StatsdConfig contains the config items for statsd metrics reporter
@@ -143,6 +127,20 @@ type (
143127
// specify which characters are valid and/or should be replaced before metrics
144128
// are emitted.
145129
SanitizeOptions *SanitizeOptions `yaml:"sanitizeOptions"`
130+
131+
// Following configs are added for backwards compatibility when switching from tally to opentelemetry
132+
// All configs should be set to true when using opentelemetry framework to have the same behavior as tally.
133+
134+
// WithoutUnitSuffix controls the addition of unit suffixes to metric names.
135+
// This config only takes effect when using prometheus via opentelemetry framework.
136+
WithoutUnitSuffix bool `yaml:"withoutUnitSuffix"`
137+
// WithoutCounterSuffix controls the additional of _total suffixes to counter metric names.
138+
// This config only takes effect when using prometheus via opentelemetry framework.
139+
WithoutCounterSuffix bool `yaml:"withoutCounterSuffix"`
140+
// RecordTimerInSeconds controls if Timer metric should be emitted as number of seconds
141+
// (instead of milliseconds).
142+
// This config only takes effect when using prometheus via opentelemetry framework.
143+
RecordTimerInSeconds bool `yaml:"recordTimerInSeconds"`
146144
}
147145
)
148146

@@ -463,23 +461,23 @@ func MetricsHandlerFromConfig(logger log.Logger, c *Config) (Handler, error) {
463461

464462
setDefaultPerUnitHistogramBoundaries(&c.ClientConfig)
465463

466-
fatalOnListenerError := true
467464
if c.Statsd != nil && c.Statsd.Framework == FrameworkOpentelemetry {
468465
// create opentelemetry provider with just statsd
469466
otelProvider, err := NewOpenTelemetryProviderWithStatsd(logger, c.Statsd, &c.ClientConfig)
470467
if err != nil {
471468
logger.Fatal(err.Error())
472469
}
473-
return NewOtelMetricsHandler(logger, otelProvider, c.ClientConfig)
470+
return NewOtelMetricsHandler(logger, otelProvider, c.ClientConfig, false)
474471
}
475472

476473
if c.Prometheus != nil && c.Prometheus.Framework == FrameworkOpentelemetry {
477474
// create opentelemetry provider with just prometheus
475+
fatalOnListenerError := true
478476
otelProvider, err := NewOpenTelemetryProviderWithPrometheus(logger, c.Prometheus, &c.ClientConfig, fatalOnListenerError)
479477
if err != nil {
480478
logger.Fatal(err.Error())
481479
}
482-
return NewOtelMetricsHandler(logger, otelProvider, c.ClientConfig)
480+
return NewOtelMetricsHandler(logger, otelProvider, c.ClientConfig, c.Prometheus.RecordTimerInSeconds)
483481
}
484482

485483
// fallback to tally if no framework is specified

common/metrics/metricstest/metricstest.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ func NewHandler(logger log.Logger, clientConfig metrics.ClientConfig) (*Handler,
8383
)
8484
meter := provider.Meter("temporal")
8585

86-
otelHandler, err := metrics.NewOtelMetricsHandler(logger, &otelProvider{meter: meter}, clientConfig)
86+
otelHandler, err := metrics.NewOtelMetricsHandler(logger, &otelProvider{meter: meter}, clientConfig, false)
8787
if err != nil {
8888
return nil, err
8989
}

common/metrics/opentelemetry_provider.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,10 @@ func NewOpenTelemetryProviderWithPrometheus(
6565
}
6666
reg := prometheus.NewRegistry()
6767
exporterOpts := []exporters.Option{exporters.WithRegisterer(reg)}
68-
if clientConfig.WithoutUnitSuffix {
68+
if prometheusConfig.WithoutUnitSuffix {
6969
exporterOpts = append(exporterOpts, exporters.WithoutUnits())
7070
}
71-
if clientConfig.WithoutCounterSuffix {
71+
if prometheusConfig.WithoutCounterSuffix {
7272
exporterOpts = append(exporterOpts, exporters.WithoutCounterSuffixes())
7373
}
7474
if clientConfig.Prefix != "" {

common/metrics/otel_metrics_handler.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ func NewOtelMetricsHandler(
5656
l log.Logger,
5757
o OpenTelemetryProvider,
5858
cfg ClientConfig,
59+
shouldRecordTimerInSeconds bool,
5960
) (*otelMetricsHandler, error) {
6061
c, err := globalRegistry.buildCatalog()
6162
if err != nil {
@@ -69,7 +70,7 @@ func NewOtelMetricsHandler(
6970
excludeTags: configExcludeTags(cfg),
7071
catalog: c,
7172
gauges: new(sync.Map),
72-
recordTimerInSeconds: cfg.RecordTimerInSeconds,
73+
recordTimerInSeconds: shouldRecordTimerInSeconds,
7374
}, nil
7475
}
7576

common/metrics/otel_metrics_handler_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ func TestMeter(t *testing.T) {
8181
log.NewTestLogger(),
8282
&testProvider{meter: provider.Meter("test")},
8383
defaultConfig,
84+
false,
8485
)
8586
require.NoError(t, err)
8687
recordMetrics(p)
@@ -219,12 +220,12 @@ func TestMeter_TimerInSeconds(t *testing.T) {
219220
),
220221
)
221222

222-
timerInSecondsConfig := defaultConfig
223-
timerInSecondsConfig.RecordTimerInSeconds = true
223+
shouldRecordTimerInSeconds := true
224224
p, err := NewOtelMetricsHandler(
225225
log.NewTestLogger(),
226226
&testProvider{meter: provider.Meter("test")},
227-
timerInSecondsConfig,
227+
defaultConfig,
228+
shouldRecordTimerInSeconds,
228229
)
229230
require.NoError(t, err)
230231
recordTimer(p)
@@ -316,7 +317,7 @@ func TestOtelMetricsHandler_Error(t *testing.T) {
316317
meter := erroneousMeter{err: testErr}
317318
provider := &testProvider{meter: meter}
318319
cfg := ClientConfig{}
319-
handler, err := NewOtelMetricsHandler(logger, provider, cfg)
320+
handler, err := NewOtelMetricsHandler(logger, provider, cfg, false)
320321
require.NoError(t, err)
321322
msg := "error getting metric"
322323
errTag := tag.Error(testErr)

0 commit comments

Comments
 (0)