Skip to content

Commit 8833599

Browse files
committed
Rever public API changes in open-telemetry#10931, preserve logic
Signed-off-by: Bogdan Drutu <[email protected]>
1 parent c4c1c1b commit 8833599

File tree

19 files changed

+316
-151
lines changed

19 files changed

+316
-151
lines changed

cmd/mdatagen/internal/command_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -604,11 +604,11 @@ import (
604604
"go.opentelemetry.io/collector/config/configtelemetry"
605605
)
606606
607-
// Deprecated: [v0.108.0] use LeveledMeter instead.
608607
func Meter(settings component.TelemetrySettings) metric.Meter {
609608
return settings.MeterProvider.Meter("")
610609
}
611610
611+
// Deprecated: [v0.112.0] use Meter instead.
612612
func LeveledMeter(settings component.TelemetrySettings, level configtelemetry.Level) metric.Meter {
613613
return settings.LeveledMeterProvider(level).Meter("")
614614
}
@@ -642,11 +642,11 @@ import (
642642
"go.opentelemetry.io/collector/config/configtelemetry"
643643
)
644644
645-
// Deprecated: [v0.108.0] use LeveledMeter instead.
646645
func Meter(settings component.TelemetrySettings) metric.Meter {
647646
return settings.MeterProvider.Meter("")
648647
}
649648
649+
// Deprecated: [v0.112.0] use Meter instead.
650650
func LeveledMeter(settings component.TelemetrySettings, level configtelemetry.Level) metric.Meter {
651651
return settings.LeveledMeterProvider(level).Meter("")
652652
}

cmd/mdatagen/internal/samplereceiver/generated_component_telemetry_test.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/mdatagen/internal/samplereceiver/internal/metadata/generated_telemetry.go

Lines changed: 29 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/mdatagen/internal/templates/component_telemetry_test.go.tmpl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ func (tt *componentTestTelemetry) NewSettings() {{ .Status.Class }}.Settings {
3434
settings.LeveledMeterProvider = func(_ configtelemetry.Level) metric.MeterProvider {
3535
return tt.meterProvider
3636
}
37+
settings.MetricsLevel = configtelemetry.LevelDetailed
3738
settings.ID = component.NewID(component.MustNewType("{{ .Type }}"))
3839

3940
return settings

cmd/mdatagen/internal/templates/telemetry.go.tmpl

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ import (
2020
"go.opentelemetry.io/collector/config/configtelemetry"
2121
)
2222

23-
// Deprecated: [v0.108.0] use LeveledMeter instead.
2423
func Meter(settings component.TelemetrySettings) metric.Meter {
2524
return settings.MeterProvider.Meter("{{ .ScopeName }}")
2625
}
2726

27+
// Deprecated: [v0.112.0] use Meter instead.
2828
func LeveledMeter(settings component.TelemetrySettings, level configtelemetry.Level) metric.Meter {
2929
return settings.LeveledMeterProvider(level).Meter("{{ .ScopeName }}")
3030
}
@@ -44,7 +44,6 @@ type TelemetryBuilder struct {
4444
observe{{ $name.Render }} func(context.Context, metric.Observer) error
4545
{{- end }}
4646
{{- end }}
47-
meters map[configtelemetry.Level]metric.Meter
4847
}
4948

5049
// TelemetryBuilderOption applies changes to default builder.
@@ -64,7 +63,7 @@ func (tbof telemetryBuilderOptionFunc) apply(mb *TelemetryBuilder) {
6463
// Init{{ $name.Render }} configures the {{ $name.Render }} metric.
6564
func (builder *TelemetryBuilder) Init{{ $name.Render }}({{ if $metric.Data.Async -}}cb func() {{ $metric.Data.BasicType }}{{- end }}, opts ...metric.ObserveOption) error {
6665
var err error
67-
builder.{{ $name.Render }}, err = builder.meters[configtelemetry.Level{{ casesTitle $metric.Level.String }}].{{ $metric.Data.Instrument }}(
66+
builder.{{ $name.Render }}, err = builder.meter.{{ $metric.Data.Instrument }}(
6867
"otelcol_{{ $name }}",
6968
metric.WithDescription("{{ $metric.Description }}"),
7069
metric.WithUnit("{{ $metric.Unit }}"),
@@ -76,7 +75,7 @@ func (builder *TelemetryBuilder) Init{{ $name.Render }}({{ if $metric.Data.Async
7675
if err != nil {
7776
return err
7877
}
79-
_, err = builder.meters[configtelemetry.Level{{ casesTitle $metric.Level.String }}].RegisterCallback(func(_ context.Context, o metric.Observer) error {
78+
_, err = builder.meter.RegisterCallback(func(_ context.Context, o metric.Observer) error {
8079
o.Observe{{ casesTitle $metric.Data.BasicType }}(builder.{{ $name.Render }}, cb(), opts...)
8180
return nil
8281
}, builder.{{ $name.Render }})
@@ -103,33 +102,42 @@ func With{{ $name.Render }}Callback(cb func() {{ $metric.Data.BasicType }}, opts
103102
// NewTelemetryBuilder provides a struct with methods to update all internal telemetry
104103
// for a component
105104
func NewTelemetryBuilder(settings component.TelemetrySettings, options ...TelemetryBuilderOption) (*TelemetryBuilder, error) {
106-
builder := TelemetryBuilder{meters: map[configtelemetry.Level]metric.Meter{}}
105+
builder := TelemetryBuilder{}
107106
for _, op := range options {
108107
op.apply(&builder)
109108
}
110-
{{- range $level, $val := .Telemetry.Levels }}
111-
builder.meters[configtelemetry.Level{{ casesTitle $level }}] = LeveledMeter(settings, configtelemetry.Level{{ casesTitle $level }})
112-
{{- end }}
109+
builder.meter = Meter(settings)
113110
var err, errs error
114111

115112
{{- range $name, $metric := .Telemetry.Metrics }}
116113
{{- if not $metric.Optional }}
117-
builder.{{ $name.Render }}, err = builder.meters[configtelemetry.Level{{ casesTitle $metric.Level.String }}].{{ $metric.Data.Instrument }}(
114+
builder.{{ $name.Render }}, err = getLeveledMeter(builder.meter, configtelemetry.Level{{ $metric.Level }}, settings.MetricsLevel).{{ $metric.Data.Instrument }}(
118115
"otelcol_{{ $name }}",
119116
metric.WithDescription("{{ $metric.Description }}{{ $metric.Stability }}"),
120117
metric.WithUnit("{{ $metric.Unit }}"),
121118
{{ if eq $metric.Data.Type "Histogram" -}}
122119
{{- if $metric.Data.Boundaries -}}metric.WithExplicitBucketBoundaries([]float64{ {{- range $metric.Data.Boundaries }} {{.}}, {{- end }} }...),{{- end }}
123120
{{- end }}
124121
)
125-
errs = errors.Join(errs, err)
122+
if err != nil {
123+
errs = errors.Join(errs, err)
124+
}
126125
{{- if $metric.Data.Async }}
127-
_, err = builder.meters[configtelemetry.Level{{ casesTitle $metric.Level.String }}].RegisterCallback(builder.observe{{ $name.Render }}, builder.{{ $name.Render }})
128-
errs = errors.Join(errs, err)
126+
_, err = getLeveledMeter(builder.meter, configtelemetry.Level{{ $metric.Level }}, settings.MetricsLevel).RegisterCallback(builder.observe{{ $name.Render }}, builder.{{ $name.Render }})
127+
if err != nil {
128+
errs = errors.Join(errs, err)
129+
}
129130
{{- end }}
130131
{{- end }}
131132
{{- end }}
132133
return &builder, errs
133134
}
134135

136+
func getLeveledMeter(meter metric.Meter, cfgLevel, srvLevel configtelemetry.Level) metric.Meter {
137+
if cfgLevel < srvLevel {
138+
return meter
139+
}
140+
return noop.Meter{}
141+
}
142+
135143
{{- end }}

exporter/exporterhelper/generated_component_telemetry_test.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)