Skip to content

Commit 717eb2b

Browse files
authored
Add deltatocumulativeprocessor for AMP destinations (#1624)
1 parent b9a255f commit 717eb2b

17 files changed

+149
-8
lines changed

go.mod

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ require (
211211

212212
require (
213213
github.com/aws/aws-sdk-go-v2 v1.32.6
214+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.115.0
214215
go.opentelemetry.io/collector/component/componenttest v0.115.0
215216
go.opentelemetry.io/collector/config/configtelemetry v0.115.0
216217
go.opentelemetry.io/collector/confmap/converter/expandconverter v0.113.0
@@ -425,6 +426,7 @@ require (
425426
github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/xray v0.115.0 // indirect
426427
github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.115.0 // indirect
427428
github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.115.0 // indirect
429+
github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.115.0 // indirect
428430
github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.115.0 // indirect
429431
github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.115.0 // indirect
430432
github.com/open-telemetry/opentelemetry-collector-contrib/internal/kafka v0.115.0 // indirect

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1206,6 +1206,8 @@ github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/metrics v
12061206
github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/metrics v0.115.0/go.mod h1:G56rS4nL0VypkD7a94UaQmIjO5t0kffVcjbhpvSogww=
12071207
github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.115.0 h1:vRQQFD4YpasQFUAdF030UWtaflSYFXK542bfWMGhOK0=
12081208
github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.115.0/go.mod h1:BZ7DT+0VkKR7P3I9PGEDfVa0GdB0ty41eEcejIUXF9A=
1209+
github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.115.0 h1:tFUm48xxdtuk3AgY5AY90DJ6UnxRW5k/HBpA24blCAo=
1210+
github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.115.0/go.mod h1:EI5GXHQVRNLx78DSyqSU8ZzIxQayUN7KlaeVChk5rJc=
12091211
github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.115.0 h1:h6zEsBtuZalQu7lKYf6ZCcj8fTocT+zxdmuOou9515Q=
12101212
github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.115.0/go.mod h1:6QU/K0dGCGYorkOvJmhbDFCspy4RPxRkFjf9I64y6I0=
12111213
github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8stest v0.115.0 h1:vXDJE8YHfAoYIAlPRtODchlqb6lWnGhJxPaT2ljvN7I=
@@ -1240,6 +1242,8 @@ github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributespr
12401242
github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.115.0/go.mod h1:z8XdvlhXSYVboxS3TPGembE9kfxLAYH2PxPLMvf8wTk=
12411243
github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.115.0 h1:t3BGnPpmeuxW51vISSu51PrAs49ACBCa1Yl1NfZGE5Y=
12421244
github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.115.0/go.mod h1:jQLYyroEYEV1kWJApmGBgVuGUd73v+Q6EUJ6Wy7N508=
1245+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.115.0 h1:a0LC50FmNTyWI/vIhKWSyDRw8GLlq2XFIY7GezlK3/w=
1246+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.115.0/go.mod h1:hNQwpth9RZ+nS9oCDDKRo56XwNc2TGhZGcAKc4CF1AI=
12431247
github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatorateprocessor v0.115.0 h1:X6rEs7IxDpcDDBOCmkA3xHmc373UxHchH7BykK3Ao+o=
12441248
github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatorateprocessor v0.115.0/go.mod h1:fmLLh7jL0uK/t8op9TieOz7pwxItl4hdFo2fX7U0Etg=
12451249
github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.115.0 h1:ficXJmB6l6kfiu+R6CmggtnlQWMHUNzu2csDYA4CFSs=

service/defaultcomponents/components.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
"github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage"
1717
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor"
1818
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor"
19+
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor"
1920
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatorateprocessor"
2021
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor"
2122
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbytraceprocessor"
@@ -96,6 +97,7 @@ func Factories() (otelcol.Factories, error) {
9697
awsentity.NewFactory(),
9798
batchprocessor.NewFactory(),
9899
cumulativetodeltaprocessor.NewFactory(),
100+
deltatocumulativeprocessor.NewFactory(),
99101
deltatorateprocessor.NewFactory(),
100102
ec2tagger.NewFactory(),
101103
filterprocessor.NewFactory(),

service/defaultcomponents/components_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ func TestComponents(t *testing.T) {
4545
"attributes",
4646
"batch",
4747
"cumulativetodelta",
48+
"deltatocumulative",
4849
"deltatorate",
4950
"ec2tagger",
5051
"metricsgeneration",

translator/tocwconfig/sampleConfig/amp_config_linux.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,9 @@ processors:
9999
send_batch_max_size: 0
100100
send_batch_size: 8192
101101
timeout: 1m0s
102+
deltatocumulative/host/amp:
103+
max_stale: 336h0m0s
104+
max_streams: 9223372036854775807
102105
ec2tagger:
103106
ec2_instance_tag_keys:
104107
- AutoScalingGroupName
@@ -152,6 +155,7 @@ service:
152155
- transform
153156
- rollup
154157
- batch/host/amp
158+
- deltatocumulative/host/amp
155159
receivers:
156160
- telegraf_cpu
157161
metrics/host/cloudwatch:

translator/tocwconfig/sampleConfig/jmx_config_linux.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,12 @@ processors:
105105
match_type: ""
106106
initial_value: 2
107107
max_staleness: 0s
108+
deltatocumulative/host/amp:
109+
max_stale: 336h0m0s
110+
max_streams: 9223372036854775807
111+
deltatocumulative/jmx/amp:
112+
max_stale: 336h0m0s
113+
max_streams: 9223372036854775807
108114
filter/jmx:
109115
error_mode: propagate
110116
logs: {}
@@ -187,6 +193,7 @@ service:
187193
processors:
188194
- transform
189195
- batch/host/amp
196+
- deltatocumulative/host/amp
190197
receivers:
191198
- telegraf_cpu
192199
- telegraf_disk
@@ -207,6 +214,7 @@ service:
207214
- resource/jmx
208215
- transform/jmx
209216
- batch/jmx/amp
217+
- deltatocumulative/jmx/amp
210218
receivers:
211219
- jmx
212220
metrics/jmx/cloudwatch:

translator/tocwconfig/sampleConfig/jmx_eks_config_linux.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,12 @@ processors:
9292
match_type: ""
9393
initial_value: 2
9494
max_staleness: 0s
95+
deltatocumulative/jmx/amp/0:
96+
max_stale: 336h0m0s
97+
max_streams: 9223372036854775807
98+
deltatocumulative/jmx/amp/1:
99+
max_stale: 336h0m0s
100+
max_streams: 9223372036854775807
95101
filter/jmx/0:
96102
error_mode: propagate
97103
logs: {}
@@ -240,6 +246,7 @@ service:
240246
- transform/jmx/drop
241247
- transform/jmx/0
242248
- batch/jmx/amp/0
249+
- deltatocumulative/jmx/amp/0
243250
receivers:
244251
- otlp/jmx
245252
metrics/jmx/amp/1:
@@ -252,6 +259,7 @@ service:
252259
- transform/jmx/drop
253260
- transform/jmx/1
254261
- batch/jmx/amp/1
262+
- deltatocumulative/jmx/amp/1
255263
receivers:
256264
- otlp/jmx
257265
metrics/jmx/cloudwatch/0:

translator/tocwconfig/sampleConfig/prometheus_combined_config_linux.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,9 @@ processors:
151151
send_batch_max_size: 0
152152
send_batch_size: 8192
153153
timeout: 30s
154+
deltatocumulative/prometheus/amp:
155+
max_stale: 336h0m0s
156+
max_streams: 9223372036854775807
154157
receivers:
155158
prometheus:
156159
config:
@@ -202,6 +205,7 @@ service:
202205
- prometheusremotewrite/amp
203206
processors:
204207
- batch/prometheus/amp
208+
- deltatocumulative/prometheus/amp
205209
receivers:
206210
- prometheus
207211
metrics/prometheus/cloudwatchlogs:

translator/tocwconfig/sampleConfig/prometheus_otel_config_linux.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ processors:
6262
send_batch_max_size: 0
6363
send_batch_size: 8192
6464
timeout: 1m0s
65+
deltatocumulative/prometheus/amp:
66+
max_stale: 336h0m0s
67+
max_streams: 9223372036854775807
6568
receivers:
6669
prometheus:
6770
config:
@@ -107,6 +110,7 @@ service:
107110
- prometheusremotewrite/amp
108111
processors:
109112
- batch/prometheus/amp
113+
- deltatocumulative/prometheus/amp
110114
receivers:
111115
- prometheus
112116
telemetry:

translator/translate/otel/pipeline/host/translator.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/processor/awsentity"
2525
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/processor/batchprocessor"
2626
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/processor/cumulativetodeltaprocessor"
27+
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/processor/deltatocumulativeprocessor"
2728
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/processor/ec2taggerprocessor"
2829
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/processor/metricsdecorator"
2930
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/processor/rollupprocessor"
@@ -136,6 +137,8 @@ func (t translator) Translate(conf *confmap.Conf) (*common.ComponentTranslators,
136137
translators.Processors.Set(rollupprocessor.NewTranslator())
137138
}
138139
translators.Processors.Set(batchprocessor.NewTranslatorWithNameAndSection(t.name, common.MetricsKey))
140+
// prometheusremotewrite doesn't support delta metrics so convert them to cumulative metrics
141+
translators.Processors.Set(deltatocumulativeprocessor.NewTranslator(common.WithName(t.name)))
139142
translators.Exporters.Set(prometheusremotewrite.NewTranslatorWithName(common.AMPKey))
140143
translators.Extensions.Set(sigv4auth.NewTranslator())
141144
case common.CloudWatchLogsKey:

translator/translate/otel/pipeline/host/translator_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ func TestTranslator(t *testing.T) {
307307
want: &want{
308308
pipelineID: "metrics/host/amp",
309309
receivers: []string{"nop", "other"},
310-
processors: []string{"rollup", "batch/host/amp"},
310+
processors: []string{"rollup", "batch/host/amp", "deltatocumulative/host/amp"},
311311
exporters: []string{"prometheusremotewrite/amp"},
312312
extensions: []string{"sigv4auth"},
313313
},
@@ -322,7 +322,7 @@ func TestTranslator(t *testing.T) {
322322
want: &want{
323323
pipelineID: "metrics/host/amp",
324324
receivers: []string{"nop", "other"},
325-
processors: []string{"batch/host/amp"},
325+
processors: []string{"batch/host/amp", "deltatocumulative/host/amp"},
326326
exporters: []string{"prometheusremotewrite/amp"},
327327
extensions: []string{"sigv4auth"},
328328
},

translator/translate/otel/pipeline/jmx/translator.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/extension/sigv4auth"
2020
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/processor/batchprocessor"
2121
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/processor/cumulativetodeltaprocessor"
22+
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/processor/deltatocumulativeprocessor"
2223
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/processor/ec2taggerprocessor"
2324
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/processor/filterprocessor"
2425
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/processor/metricsdecorator"
@@ -120,6 +121,8 @@ func (t *translator) Translate(conf *confmap.Conf) (*common.ComponentTranslators
120121
if conf.IsSet(common.MetricsAggregationDimensionsKey) {
121122
translators.Processors.Set(rollupprocessor.NewTranslator())
122123
}
124+
// prometheusremotewrite doesn't support delta metrics so convert them to cumulative metrics
125+
translators.Processors.Set(deltatocumulativeprocessor.NewTranslator(common.WithName(t.name)))
123126
translators.Exporters.Set(prometheusremotewrite.NewTranslatorWithName(common.AMPKey))
124127
translators.Extensions.Set(sigv4auth.NewTranslator())
125128
default:

translator/translate/otel/pipeline/jmx/translator_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ func TestTranslator(t *testing.T) {
208208
want: &want{
209209
pipelineID: "metrics/jmx/amp",
210210
receivers: []string{"jmx"},
211-
processors: []string{"filter/jmx", "resource/jmx", "batch/jmx/amp"},
211+
processors: []string{"filter/jmx", "resource/jmx", "batch/jmx/amp", "deltatocumulative/jmx/amp"},
212212
exporters: []string{"prometheusremotewrite/amp"},
213213
extensions: []string{"sigv4auth"},
214214
},
@@ -238,7 +238,7 @@ func TestTranslator(t *testing.T) {
238238
want: &want{
239239
pipelineID: "metrics/jmx/amp",
240240
receivers: []string{"otlp/jmx"},
241-
processors: []string{"filter/jmx", "metricstransform/jmx", "transform/jmx/drop", "batch/jmx/amp"},
241+
processors: []string{"filter/jmx", "metricstransform/jmx", "transform/jmx/drop", "batch/jmx/amp", "deltatocumulative/jmx/amp"},
242242
exporters: []string{"prometheusremotewrite/amp"},
243243
extensions: []string{"sigv4auth"},
244244
},
@@ -338,7 +338,7 @@ func TestTranslator(t *testing.T) {
338338
want: &want{
339339
pipelineID: "metrics/jmx/amp/0",
340340
receivers: []string{"otlp/jmx"},
341-
processors: []string{"filter/jmx/0", "metricstransform/jmx", "transform/jmx/drop", "transform/jmx/0", "batch/jmx/amp/0"},
341+
processors: []string{"filter/jmx/0", "metricstransform/jmx", "transform/jmx/drop", "transform/jmx/0", "batch/jmx/amp/0", "deltatocumulative/jmx/amp/0"},
342342
exporters: []string{"prometheusremotewrite/amp"},
343343
extensions: []string{"sigv4auth"},
344344
},

translator/translate/otel/pipeline/prometheus/translator.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/extension/agenthealth"
1818
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/extension/sigv4auth"
1919
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/processor/batchprocessor"
20+
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/processor/deltatocumulativeprocessor"
2021
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/processor/rollupprocessor"
2122
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/receiver/adapter"
2223
otelprom "github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/receiver/prometheus"
@@ -79,8 +80,12 @@ func (t *translator) Translate(conf *confmap.Conf) (*common.ComponentTranslators
7980
return nil, fmt.Errorf("pipeline (%s) is missing prometheus configuration under metrics section with destination (%s)", t.name, t.Destination())
8081
}
8182
translators := &common.ComponentTranslators{
82-
Receivers: common.NewTranslatorMap(otelprom.NewTranslator()),
83-
Processors: common.NewTranslatorMap(batchprocessor.NewTranslatorWithNameAndSection(t.name, common.MetricsKey)),
83+
Receivers: common.NewTranslatorMap(otelprom.NewTranslator()),
84+
Processors: common.NewTranslatorMap(
85+
batchprocessor.NewTranslatorWithNameAndSection(t.name, common.MetricsKey),
86+
// prometheusremotewrite doesn't support delta metrics so convert them to cumulative metrics
87+
deltatocumulativeprocessor.NewTranslator(common.WithName(t.name)),
88+
),
8489
Exporters: common.NewTranslatorMap(prometheusremotewrite.NewTranslatorWithName(common.AMPKey)),
8590
Extensions: common.NewTranslatorMap(sigv4auth.NewTranslator()),
8691
}

translator/translate/otel/pipeline/prometheus/translator_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ func TestTranslator(t *testing.T) {
107107
want: &want{
108108
pipelineID: "metrics/prometheus/amp",
109109
receivers: []string{"prometheus"},
110-
processors: []string{"batch/prometheus/amp"},
110+
processors: []string{"batch/prometheus/amp", "deltatocumulative/prometheus/amp"},
111111
exporters: []string{"prometheusremotewrite/amp"},
112112
extensions: []string{"sigv4auth"},
113113
},
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
// SPDX-License-Identifier: MIT
3+
4+
package deltatocumulativeprocessor
5+
6+
import (
7+
"time"
8+
9+
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor"
10+
"go.opentelemetry.io/collector/component"
11+
"go.opentelemetry.io/collector/confmap"
12+
"go.opentelemetry.io/collector/processor"
13+
14+
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/common"
15+
)
16+
17+
type translator struct {
18+
factory processor.Factory
19+
common.NameProvider
20+
}
21+
22+
var _ common.ComponentTranslator = (*translator)(nil)
23+
var _ common.NameSetter = (*translator)(nil)
24+
25+
func NewTranslator(opts ...common.TranslatorOption) common.ComponentTranslator {
26+
t := &translator{factory: deltatocumulativeprocessor.NewFactory()}
27+
for _, opt := range opts {
28+
opt(t)
29+
}
30+
return t
31+
}
32+
33+
func (t *translator) ID() component.ID {
34+
return component.NewIDWithName(t.factory.Type(), t.Name())
35+
}
36+
37+
// Translate creates a processor config
38+
func (t *translator) Translate(_ *confmap.Conf) (component.Config, error) {
39+
cfg := t.factory.CreateDefaultConfig().(*deltatocumulativeprocessor.Config)
40+
cfg.MaxStale = 14 * 24 * time.Hour // two weeks
41+
return cfg, nil
42+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
// SPDX-License-Identifier: MIT
3+
4+
package deltatocumulativeprocessor
5+
6+
import (
7+
"math"
8+
"testing"
9+
10+
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor"
11+
"github.com/stretchr/testify/assert"
12+
"github.com/stretchr/testify/require"
13+
"go.opentelemetry.io/collector/confmap"
14+
15+
"github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/common"
16+
)
17+
18+
func TestTranslator(t *testing.T) {
19+
dcpTranslator := NewTranslator(common.WithName("test"))
20+
require.EqualValues(t, "deltatocumulative/test", dcpTranslator.ID().String())
21+
testCases := map[string]struct {
22+
input map[string]any
23+
want map[string]any
24+
wantErr error
25+
}{
26+
"EmptyConfig": {
27+
input: map[string]any{},
28+
want: map[string]any{
29+
"max_stale": 1209600000000000, // 2 weeks, in minutes
30+
"max_streams": math.MaxInt64,
31+
},
32+
},
33+
}
34+
factory := deltatocumulativeprocessor.NewFactory()
35+
for name, testCase := range testCases {
36+
t.Run(name, func(t *testing.T) {
37+
conf := confmap.NewFromStringMap(testCase.input)
38+
got, err := dcpTranslator.Translate(conf)
39+
require.Equal(t, testCase.wantErr, err)
40+
if err == nil {
41+
require.NotNil(t, got)
42+
gotCfg, ok := got.(*deltatocumulativeprocessor.Config)
43+
require.True(t, ok)
44+
wantCfg := factory.CreateDefaultConfig()
45+
wantConf := confmap.NewFromStringMap(testCase.want)
46+
require.NoError(t, wantConf.Unmarshal(&wantCfg))
47+
assert.Equal(t, wantCfg, gotCfg)
48+
}
49+
})
50+
}
51+
}

0 commit comments

Comments
 (0)