Skip to content

Commit 09424c4

Browse files
authored
Merge branch 'main' into renovate/all-github.comaws-packages
2 parents e6a63db + d6eaca8 commit 09424c4

File tree

34 files changed

+2185
-441
lines changed

34 files changed

+2185
-441
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Use this changelog template to create an entry for release notes.
2+
3+
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
4+
change_type: enhancement
5+
6+
# The name of the component, or a single word describing the area of concern, (e.g. filelogreceiver)
7+
component: loadbalancerexporter
8+
9+
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
10+
note: Refactors how the load balancing exporter splits metrics
11+
12+
# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists.
13+
issues: [32513]
14+
15+
# (Optional) One or more lines of additional information to render under the primary note.
16+
# These lines will be padded with 2 spaces and then inserted directly into the document.
17+
# Use pipe (|) for multiline entries.
18+
subtext: All splitting is *behaviorally*, the same. However, the `resource` routingID now uses the `internal/exp/metrics/identity` package to generate the load balancing key, instead of bespoke code. This means that when upgrading to this version your routes for specific metric groupings could change. However, this will be stable and all future metrics will follow the new routing
19+
20+
# If your change doesn't affect end users or the exported elements of any package,
21+
# you should instead start your pull request title with [chore] or use the "Skip Changelog" label.
22+
# Optional: The change log or logs in which this entry should be included.
23+
# e.g. '[user]' or '[user, api]'
24+
# Include 'user' if the change is relevant to end users.
25+
# Include 'api' if there is a change to a library API.
26+
# Default: '[user]'
27+
change_logs: [user]

exporter/loadbalancingexporter/config.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ const (
1919
resourceRouting
2020
)
2121

22+
const (
23+
svcRoutingStr = "service"
24+
traceIDRoutingStr = "traceID"
25+
metricNameRoutingStr = "metric"
26+
resourceRoutingStr = "resource"
27+
)
28+
2229
// Config defines configuration for the exporter.
2330
type Config struct {
2431
Protocol Protocol `mapstructure:"protocol"`

exporter/loadbalancingexporter/go.mod

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@ require (
66
github.com/aws/aws-sdk-go-v2/config v1.27.20
77
github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.30.0
88
github.com/aws/smithy-go v1.20.2
9+
github.com/json-iterator/go v1.1.12
10+
github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.103.0
911
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchpersignal v0.103.0
12+
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.103.0
13+
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.103.0
1014
github.com/stretchr/testify v1.9.0
1115
go.opencensus.io v0.24.0
1216
go.opentelemetry.io/collector/component v0.103.0
@@ -22,6 +26,7 @@ require (
2226
go.uber.org/goleak v1.3.0
2327
go.uber.org/multierr v1.11.0
2428
go.uber.org/zap v1.27.0
29+
gopkg.in/yaml.v2 v2.4.0
2530
k8s.io/api v0.29.3
2631
k8s.io/apimachinery v0.29.3
2732
k8s.io/client-go v0.29.3
@@ -69,7 +74,6 @@ require (
6974
github.com/imdario/mergo v0.3.6 // indirect
7075
github.com/inconshreveable/mousetrap v1.1.0 // indirect
7176
github.com/josharian/intern v1.0.0 // indirect
72-
github.com/json-iterator/go v1.1.12 // indirect
7377
github.com/klauspost/compress v1.17.8 // indirect
7478
github.com/knadh/koanf/maps v0.1.1 // indirect
7579
github.com/knadh/koanf/providers/confmap v0.1.0 // indirect
@@ -82,6 +86,7 @@ require (
8286
github.com/modern-go/reflect2 v1.0.2 // indirect
8387
github.com/mostynb/go-grpc-compression v1.2.3 // indirect
8488
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
89+
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.103.0 // indirect
8590
github.com/pkg/errors v0.9.1 // indirect
8691
github.com/pmezard/go-difflib v1.0.0 // indirect
8792
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
@@ -149,7 +154,6 @@ require (
149154
google.golang.org/grpc v1.64.0 // indirect
150155
google.golang.org/protobuf v1.34.2 // indirect
151156
gopkg.in/inf.v0 v0.9.1 // indirect
152-
gopkg.in/yaml.v2 v2.4.0 // indirect
153157
gopkg.in/yaml.v3 v3.0.1 // indirect
154158
k8s.io/klog/v2 v2.110.1 // indirect
155159
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect
@@ -168,3 +172,11 @@ retract (
168172

169173
// ambiguous import: found package cloud.google.com/go/compute/metadata in multiple modules
170174
replace cloud.google.com/go v0.65.0 => cloud.google.com/go v0.110.10
175+
176+
replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil => ../../pkg/pdatautil
177+
178+
replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest => ../../pkg/pdatatest
179+
180+
replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden => ../../pkg/golden
181+
182+
replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics => ../../internal/exp/metrics

exporter/loadbalancingexporter/helpers.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
package loadbalancingexporter // import "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/loadbalancingexporter"
55

66
import (
7-
"go.opentelemetry.io/collector/pdata/pmetric"
87
"go.opentelemetry.io/collector/pdata/ptrace"
98
)
109

@@ -13,9 +12,3 @@ func mergeTraces(t1 ptrace.Traces, t2 ptrace.Traces) ptrace.Traces {
1312
t2.ResourceSpans().MoveAndAppendTo(t1.ResourceSpans())
1413
return t1
1514
}
16-
17-
// mergeMetrics concatenates two pmetric.Metrics into a single pmetric.Metrics.
18-
func mergeMetrics(m1 pmetric.Metrics, m2 pmetric.Metrics) pmetric.Metrics {
19-
m2.ResourceMetrics().MoveAndAppendTo(m1.ResourceMetrics())
20-
return m1
21-
}

exporter/loadbalancingexporter/helpers_test.go

Lines changed: 0 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import (
77
"testing"
88

99
"github.com/stretchr/testify/require"
10-
"go.opentelemetry.io/collector/pdata/pmetric"
1110
"go.opentelemetry.io/collector/pdata/ptrace"
1211
conventions "go.opentelemetry.io/collector/semconv/v1.6.1"
1312
)
@@ -66,60 +65,6 @@ func TestMergeTraces(t *testing.T) {
6665
require.Equal(t, expectedTraces, mergedTraces)
6766
}
6867

69-
func TestMergeMetricsTwoEmpty(t *testing.T) {
70-
expectedEmpty := pmetric.NewMetrics()
71-
metric1 := pmetric.NewMetrics()
72-
metric2 := pmetric.NewMetrics()
73-
74-
mergedMetrics := mergeMetrics(metric1, metric2)
75-
76-
require.Equal(t, expectedEmpty, mergedMetrics)
77-
}
78-
79-
func TestMergeMetricsSingleEmpty(t *testing.T) {
80-
expectedMetrics := simpleMetricsWithResource()
81-
82-
metric1 := pmetric.NewMetrics()
83-
metric2 := simpleMetricsWithResource()
84-
85-
mergedMetrics := mergeMetrics(metric1, metric2)
86-
87-
require.Equal(t, expectedMetrics, mergedMetrics)
88-
}
89-
90-
func TestMergeMetrics(t *testing.T) {
91-
expectedMetrics := pmetric.NewMetrics()
92-
expectedMetrics.ResourceMetrics().EnsureCapacity(3)
93-
ametrics := expectedMetrics.ResourceMetrics().AppendEmpty()
94-
ametrics.Resource().Attributes().PutStr(conventions.AttributeServiceName, "service-name-1")
95-
ametrics.ScopeMetrics().AppendEmpty().Metrics().AppendEmpty().SetName("m1")
96-
bmetrics := expectedMetrics.ResourceMetrics().AppendEmpty()
97-
bmetrics.Resource().Attributes().PutStr(conventions.AttributeServiceName, "service-name-2")
98-
bmetrics.ScopeMetrics().AppendEmpty().Metrics().AppendEmpty().SetName("m1")
99-
cmetrics := expectedMetrics.ResourceMetrics().AppendEmpty()
100-
cmetrics.Resource().Attributes().PutStr(conventions.AttributeServiceName, "service-name-3")
101-
cmetrics.ScopeMetrics().AppendEmpty().Metrics().AppendEmpty().SetName("m2")
102-
103-
metric1 := pmetric.NewMetrics()
104-
metric1.ResourceMetrics().EnsureCapacity(2)
105-
m1ametrics := metric1.ResourceMetrics().AppendEmpty()
106-
m1ametrics.Resource().Attributes().PutStr(conventions.AttributeServiceName, "service-name-1")
107-
m1ametrics.ScopeMetrics().AppendEmpty().Metrics().AppendEmpty().SetName("m1")
108-
m1bmetrics := metric1.ResourceMetrics().AppendEmpty()
109-
m1bmetrics.Resource().Attributes().PutStr(conventions.AttributeServiceName, "service-name-2")
110-
m1bmetrics.ScopeMetrics().AppendEmpty().Metrics().AppendEmpty().SetName("m1")
111-
112-
metric2 := pmetric.NewMetrics()
113-
metric2.ResourceMetrics().EnsureCapacity(1)
114-
m2cmetrics := metric2.ResourceMetrics().AppendEmpty()
115-
m2cmetrics.Resource().Attributes().PutStr(conventions.AttributeServiceName, "service-name-3")
116-
m2cmetrics.ScopeMetrics().AppendEmpty().Metrics().AppendEmpty().SetName("m2")
117-
118-
mergedMetrics := mergeMetrics(metric1, metric2)
119-
120-
require.Equal(t, expectedMetrics, mergedMetrics)
121-
}
122-
12368
func benchMergeTraces(b *testing.B, tracesCount int) {
12469
traces1 := ptrace.NewTraces()
12570
traces2 := ptrace.NewTraces()
@@ -146,30 +91,3 @@ func BenchmarkMergeTraces_X500(b *testing.B) {
14691
func BenchmarkMergeTraces_X1000(b *testing.B) {
14792
benchMergeTraces(b, 1000)
14893
}
149-
150-
func benchMergeMetrics(b *testing.B, metricsCount int) {
151-
metrics1 := pmetric.NewMetrics()
152-
metrics2 := pmetric.NewMetrics()
153-
154-
for i := 0; i < metricsCount; i++ {
155-
appendSimpleMetricWithID(metrics2.ResourceMetrics().AppendEmpty(), "metrics-2")
156-
}
157-
158-
b.ResetTimer()
159-
160-
for i := 0; i < b.N; i++ {
161-
mergeMetrics(metrics1, metrics2)
162-
}
163-
}
164-
165-
func BenchmarkMergeMetrics_X100(b *testing.B) {
166-
benchMergeMetrics(b, 100)
167-
}
168-
169-
func BenchmarkMergeMetrics_X500(b *testing.B) {
170-
benchMergeMetrics(b, 500)
171-
}
172-
173-
func BenchmarkMergeMetrics_X1000(b *testing.B) {
174-
benchMergeMetrics(b, 1000)
175-
}

0 commit comments

Comments
 (0)