Skip to content

Commit abcb8b7

Browse files
authored
Changed naming for OTLP container ports from agent JSON (#252)
1 parent fc2bdf4 commit abcb8b7

File tree

2 files changed

+143
-55
lines changed

2 files changed

+143
-55
lines changed

internal/manifests/collector/ports.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package collector
55

66
import (
77
"errors"
8+
"fmt"
89
"regexp"
910
"sort"
1011
"strconv"
@@ -187,8 +188,12 @@ func getReceiverServicePort(logger logr.Logger, serviceAddress string, receiverN
187188
if _, ok := servicePortsMap[port]; ok {
188189
logger.Info("Duplicate port has been configured in Agent Config for port", zap.Int32("port", port))
189190
} else {
191+
name := CWA + receiverName
192+
if receiverName == OtlpGrpc || receiverName == OtlpHttp {
193+
name = fmt.Sprintf("%s-%d", receiverName, port)
194+
}
190195
sp := corev1.ServicePort{
191-
Name: CWA + receiverName,
196+
Name: name,
192197
Port: port,
193198
Protocol: protocol,
194199
}

internal/manifests/collector/ports_test.go

Lines changed: 137 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -73,16 +73,25 @@ func TestEMFGetContainerPorts(t *testing.T) {
7373

7474
func TestXrayAndOTLPGetContainerPorts(t *testing.T) {
7575
cfg := getStringFromFile("./test-resources/xrayAndOTLPAgentConfig.json")
76+
wantPorts := []corev1.ContainerPort{
77+
{
78+
Name: CWA + XrayTraces,
79+
Protocol: corev1.ProtocolUDP,
80+
ContainerPort: int32(2000),
81+
},
82+
{
83+
Name: OtlpGrpc + "-4327",
84+
Protocol: corev1.ProtocolTCP,
85+
ContainerPort: int32(4327),
86+
},
87+
{
88+
Name: OtlpHttp + "-4328",
89+
Protocol: corev1.ProtocolTCP,
90+
ContainerPort: int32(4328),
91+
},
92+
}
7693
containerPorts := getContainerPorts(logger, cfg, "", []corev1.ServicePort{})
77-
assert.Equal(t, 3, len(containerPorts))
78-
assert.Equal(t, int32(2000), containerPorts[CWA+XrayTraces].ContainerPort)
79-
assert.Equal(t, CWA+XrayTraces, containerPorts[CWA+XrayTraces].Name)
80-
assert.Equal(t, int32(4327), containerPorts[CWA+OtlpGrpc].ContainerPort)
81-
assert.Equal(t, CWA+OtlpGrpc, containerPorts[CWA+OtlpGrpc].Name)
82-
assert.Equal(t, corev1.ProtocolTCP, containerPorts[CWA+OtlpGrpc].Protocol)
83-
assert.Equal(t, int32(4328), containerPorts[CWA+OtlpHttp].ContainerPort)
84-
assert.Equal(t, CWA+OtlpHttp, containerPorts[CWA+OtlpHttp].Name)
85-
assert.Equal(t, corev1.ProtocolTCP, containerPorts[CWA+OtlpHttp].Protocol)
94+
checkPorts(t, wantPorts, containerPorts)
8695
}
8796

8897
func TestDefaultXRayAndOTLPGetContainerPorts(t *testing.T) {
@@ -142,35 +151,65 @@ func TestNilMetricsGetContainerPorts(t *testing.T) {
142151
func TestMultipleReceiversGetContainerPorts(t *testing.T) {
143152
cfg := getStringFromFile("./test-resources/multipleReceiversAgentConfig.json")
144153
strings.Replace(cfg, "2900", "2000", 1)
154+
wantPorts := []corev1.ContainerPort{
155+
{
156+
Name: CWA + AppSignalsGrpc,
157+
Protocol: corev1.ProtocolTCP,
158+
ContainerPort: int32(4315),
159+
},
160+
{
161+
Name: CWA + AppSignalsHttp,
162+
Protocol: corev1.ProtocolTCP,
163+
ContainerPort: int32(4316),
164+
},
165+
{
166+
Name: CWA + AppSignalsProxy,
167+
Protocol: corev1.ProtocolTCP,
168+
ContainerPort: int32(2000),
169+
},
170+
{
171+
Name: CWA + StatsD,
172+
Protocol: corev1.ProtocolUDP,
173+
ContainerPort: int32(8135),
174+
},
175+
{
176+
Name: CWA + CollectD,
177+
Protocol: corev1.ProtocolUDP,
178+
ContainerPort: int32(25936),
179+
},
180+
{
181+
Name: EMFTcp,
182+
Protocol: corev1.ProtocolTCP,
183+
ContainerPort: int32(25888),
184+
},
185+
{
186+
Name: EMFUdp,
187+
Protocol: corev1.ProtocolUDP,
188+
ContainerPort: int32(25888),
189+
},
190+
{
191+
Name: CWA + XrayTraces,
192+
Protocol: corev1.ProtocolUDP,
193+
ContainerPort: int32(2800),
194+
},
195+
{
196+
Name: CWA + XrayProxy,
197+
Protocol: corev1.ProtocolTCP,
198+
ContainerPort: int32(2900),
199+
},
200+
{
201+
Name: OtlpGrpc + "-4327",
202+
Protocol: corev1.ProtocolTCP,
203+
ContainerPort: int32(4327),
204+
},
205+
{
206+
Name: OtlpHttp + "-4328",
207+
Protocol: corev1.ProtocolTCP,
208+
ContainerPort: int32(4328),
209+
},
210+
}
145211
containerPorts := getContainerPorts(logger, cfg, "", []corev1.ServicePort{})
146-
assert.Equal(t, 11, len(containerPorts))
147-
assert.Equal(t, int32(4315), containerPorts[CWA+AppSignalsGrpc].ContainerPort)
148-
assert.Equal(t, CWA+AppSignalsGrpc, containerPorts[CWA+AppSignalsGrpc].Name)
149-
assert.Equal(t, int32(4316), containerPorts[CWA+AppSignalsHttp].ContainerPort)
150-
assert.Equal(t, CWA+AppSignalsHttp, containerPorts[CWA+AppSignalsHttp].Name)
151-
assert.Equal(t, int32(2000), containerPorts[CWA+AppSignalsProxy].ContainerPort)
152-
assert.Equal(t, CWA+AppSignalsProxy, containerPorts[CWA+AppSignalsProxy].Name)
153-
assert.Equal(t, int32(8135), containerPorts[CWA+StatsD].ContainerPort)
154-
assert.Equal(t, CWA+StatsD, containerPorts[CWA+StatsD].Name)
155-
assert.Equal(t, corev1.ProtocolUDP, containerPorts[CWA+StatsD].Protocol)
156-
assert.Equal(t, int32(25936), containerPorts[CWA+CollectD].ContainerPort)
157-
assert.Equal(t, CWA+CollectD, containerPorts[CWA+CollectD].Name)
158-
assert.Equal(t, corev1.ProtocolUDP, containerPorts[CWA+CollectD].Protocol)
159-
assert.Equal(t, int32(25888), containerPorts[EMFTcp].ContainerPort)
160-
assert.Equal(t, EMFTcp, containerPorts[EMFTcp].Name)
161-
assert.Equal(t, int32(25888), containerPorts[EMFUdp].ContainerPort)
162-
assert.Equal(t, EMFUdp, containerPorts[EMFUdp].Name)
163-
assert.Equal(t, corev1.ProtocolUDP, containerPorts[EMFUdp].Protocol)
164-
assert.Equal(t, int32(2800), containerPorts[CWA+XrayTraces].ContainerPort)
165-
assert.Equal(t, CWA+XrayTraces, containerPorts[CWA+XrayTraces].Name)
166-
assert.Equal(t, corev1.ProtocolUDP, containerPorts[CWA+XrayTraces].Protocol)
167-
assert.Equal(t, int32(2900), containerPorts[CWA+XrayProxy].ContainerPort)
168-
assert.Equal(t, CWA+XrayProxy, containerPorts[CWA+XrayProxy].Name)
169-
assert.Equal(t, corev1.ProtocolTCP, containerPorts[CWA+XrayProxy].Protocol)
170-
assert.Equal(t, int32(4327), containerPorts[CWA+OtlpGrpc].ContainerPort)
171-
assert.Equal(t, CWA+OtlpGrpc, containerPorts[CWA+OtlpGrpc].Name)
172-
assert.Equal(t, int32(4328), containerPorts[CWA+OtlpHttp].ContainerPort)
173-
assert.Equal(t, CWA+OtlpHttp, containerPorts[CWA+OtlpHttp].Name)
212+
checkPorts(t, wantPorts, containerPorts)
174213
}
175214

176215
func TestSpecPortsOverrideGetContainerPorts(t *testing.T) {
@@ -201,38 +240,70 @@ func TestInvalidConfigGetContainerPorts(t *testing.T) {
201240
cfg = cfg + ","
202241
containerPorts := getContainerPorts(logger, cfg, "", []corev1.ServicePort{})
203242
assert.Equal(t, 0, len(containerPorts))
204-
205243
}
206244

207245
func TestValidOTLPMetricsPort(t *testing.T) {
208246
cfg := getStringFromFile("./test-resources/otlpMetricsAgentConfig.json")
247+
wantPorts := []corev1.ContainerPort{
248+
{
249+
Name: OtlpGrpc + "-1234",
250+
Protocol: corev1.ProtocolTCP,
251+
ContainerPort: int32(1234),
252+
},
253+
{
254+
Name: OtlpHttp + "-2345",
255+
Protocol: corev1.ProtocolTCP,
256+
ContainerPort: int32(2345),
257+
},
258+
}
209259
containerPorts := getContainerPorts(logger, cfg, "", []corev1.ServicePort{})
210-
assert.Equal(t, 2, len(containerPorts))
211-
assert.Equal(t, int32(1234), containerPorts["cwa-otlp-grpc"].ContainerPort)
212-
assert.Equal(t, "cwa-otlp-grpc", containerPorts["cwa-otlp-grpc"].Name)
213-
assert.Equal(t, int32(2345), containerPorts["cwa-otlp-http"].ContainerPort)
214-
assert.Equal(t, "cwa-otlp-http", containerPorts["cwa-otlp-http"].Name)
215-
260+
checkPorts(t, wantPorts, containerPorts)
216261
}
217262

218263
func TestValidOTLPLogsPort(t *testing.T) {
219264
cfg := getStringFromFile("./test-resources/otlpLogsAgentConfig.json")
265+
wantPorts := []corev1.ContainerPort{
266+
{
267+
Name: OtlpGrpc + "-1234",
268+
Protocol: corev1.ProtocolTCP,
269+
ContainerPort: int32(1234),
270+
},
271+
{
272+
Name: OtlpHttp + "-2345",
273+
Protocol: corev1.ProtocolTCP,
274+
ContainerPort: int32(2345),
275+
},
276+
}
220277
containerPorts := getContainerPorts(logger, cfg, "", []corev1.ServicePort{})
221-
assert.Equal(t, 2, len(containerPorts))
222-
assert.Equal(t, int32(1234), containerPorts["cwa-otlp-grpc"].ContainerPort)
223-
assert.Equal(t, "cwa-otlp-grpc", containerPorts["cwa-otlp-grpc"].Name)
224-
assert.Equal(t, int32(2345), containerPorts["cwa-otlp-http"].ContainerPort)
225-
assert.Equal(t, "cwa-otlp-http", containerPorts["cwa-otlp-http"].Name)
278+
checkPorts(t, wantPorts, containerPorts)
226279
}
227280

228281
func TestValidOTLPLogsAndMetricsPort(t *testing.T) {
229282
cfg := getStringFromFile("./test-resources/otlpMetricsLogsAgentConfig.json")
283+
wantPorts := []corev1.ContainerPort{
284+
{
285+
Name: OtlpGrpc + "-1234",
286+
Protocol: corev1.ProtocolTCP,
287+
ContainerPort: int32(1234),
288+
},
289+
{
290+
Name: OtlpHttp + "-2345",
291+
Protocol: corev1.ProtocolTCP,
292+
ContainerPort: int32(2345),
293+
},
294+
{
295+
Name: OtlpGrpc + "-4317",
296+
Protocol: corev1.ProtocolTCP,
297+
ContainerPort: int32(4317),
298+
},
299+
{
300+
Name: OtlpHttp + "-4318",
301+
Protocol: corev1.ProtocolTCP,
302+
ContainerPort: int32(4318),
303+
},
304+
}
230305
containerPorts := getContainerPorts(logger, cfg, "", []corev1.ServicePort{})
231-
assert.Equal(t, 2, len(containerPorts))
232-
assert.Equal(t, int32(1234), containerPorts["cwa-otlp-grpc"].ContainerPort)
233-
assert.Equal(t, "cwa-otlp-grpc", containerPorts["cwa-otlp-grpc"].Name)
234-
assert.Equal(t, int32(2345), containerPorts["cwa-otlp-http"].ContainerPort)
235-
assert.Equal(t, "cwa-otlp-http", containerPorts["cwa-otlp-http"].Name)
306+
checkPorts(t, wantPorts, containerPorts)
236307
}
237308

238309
func TestValidJSONAndValidOtelConfig(t *testing.T) {
@@ -325,6 +396,18 @@ func TestJMXContainerInsightsGetContainerPorts(t *testing.T) {
325396
assert.Equal(t, corev1.ProtocolTCP, containerPorts[JmxHttp].Protocol)
326397
}
327398

399+
func checkPorts(t *testing.T, want []corev1.ContainerPort, got map[string]corev1.ContainerPort) {
400+
t.Helper()
401+
402+
assert.Equal(t, len(want), len(got))
403+
for _, wantPort := range want {
404+
gotPort := got[wantPort.Name]
405+
assert.Equal(t, wantPort.Name, gotPort.Name)
406+
assert.Equal(t, wantPort.Protocol, gotPort.Protocol)
407+
assert.Equal(t, wantPort.ContainerPort, gotPort.ContainerPort)
408+
}
409+
}
410+
328411
func getStringFromFile(path string) string {
329412
buf, err := os.ReadFile(path)
330413
if err != nil {

0 commit comments

Comments
 (0)