Skip to content

Commit ca98f33

Browse files
lisguonathalapoojazhihonl
authored
Add support for sending entity to Fluentbit via cloudwatch agent server (#262)
* added agent server port as default port on CW agent (#234) * Attach service name source as resource attribute to operator (#235) * Add service name source for instrumentation and workload * Change service name source attribute naming * Fix unit tests for pod mutators * Simplify service name source determination * Fix incorrect refactor of source constants * Use replicaset name as part of service name fallback (#249) * Use replicaset name as part of service name fallback * Add chooseServiceName unit test * Change import statement ordering * Fix service name source being added multiple times for multiple injections (#254) * added fix to not override the service name source for multiple auto-inject --------- Co-authored-by: POOJA REDDY NATHALA <[email protected]> Co-authored-by: zhihonl <[email protected]>
1 parent 71fab73 commit ca98f33

File tree

6 files changed

+598
-87
lines changed

6 files changed

+598
-87
lines changed

internal/manifests/collector/ports.go

Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -22,23 +22,25 @@ import (
2222
)
2323

2424
const (
25-
StatsD = "statsd"
26-
CollectD = "collectd"
27-
XrayProxy = "aws-proxy"
28-
XrayTraces = "aws-traces"
29-
OtlpGrpc = "otlp-grpc"
30-
OtlpHttp = "otlp-http"
31-
AppSignalsGrpc = "appsig-grpc"
32-
AppSignalsHttp = "appsig-http"
33-
AppSignalsProxy = "appsig-xray"
34-
AppSignalsGrpcSA = ":4315"
35-
AppSignalsHttpSA = ":4316"
36-
AppSignalsProxySA = ":2000"
37-
EMF = "emf"
38-
EMFTcp = "emf-tcp"
39-
EMFUdp = "emf-udp"
40-
CWA = "cwa-"
41-
JmxHttp = "jmx-http"
25+
StatsD = "statsd"
26+
CollectD = "collectd"
27+
XrayProxy = "aws-proxy"
28+
XrayTraces = "aws-traces"
29+
OtlpGrpc = "otlp-grpc"
30+
OtlpHttp = "otlp-http"
31+
AppSignalsGrpc = "appsig-grpc"
32+
AppSignalsHttp = "appsig-http"
33+
AppSignalsProxy = "appsig-xray"
34+
AppSignalsGrpcSA = ":4315"
35+
AppSignalsHttpSA = ":4316"
36+
AppSignalsProxySA = ":2000"
37+
AppSignalsServerSA = ":4311"
38+
EMF = "emf"
39+
EMFTcp = "emf-tcp"
40+
EMFUdp = "emf-udp"
41+
CWA = "cwa-"
42+
JmxHttp = "jmx-http"
43+
Server = "server"
4244
)
4345

4446
var receiverDefaultPortsMap = map[string]int32{
@@ -286,14 +288,6 @@ func getTracesReceiversServicePorts(logger logr.Logger, config *adapters.CwaConf
286288
return tracesPorts
287289
}
288290

289-
func getAppSignalsServicePortsMap() map[int32][]corev1.ServicePort {
290-
servicePortMap := make(map[int32][]corev1.ServicePort)
291-
for k, v := range AppSignalsPortToServicePortMap {
292-
servicePortMap[k] = v
293-
}
294-
return servicePortMap
295-
}
296-
297291
func getApplicationSignalsReceiversServicePorts(logger logr.Logger, config *adapters.CwaConfig, servicePortsMap map[int32][]corev1.ServicePort) {
298292
if !isAppSignalEnabled(config) {
299293
return
@@ -302,6 +296,7 @@ func getApplicationSignalsReceiversServicePorts(logger logr.Logger, config *adap
302296
getReceiverServicePort(logger, AppSignalsGrpcSA, AppSignalsGrpc, corev1.ProtocolTCP, servicePortsMap)
303297
getReceiverServicePort(logger, AppSignalsHttpSA, AppSignalsHttp, corev1.ProtocolTCP, servicePortsMap)
304298
getReceiverServicePort(logger, AppSignalsProxySA, AppSignalsProxy, corev1.ProtocolTCP, servicePortsMap)
299+
getReceiverServicePort(logger, AppSignalsServerSA, Server, corev1.ProtocolTCP, servicePortsMap)
305300
}
306301

307302
func portFromEndpoint(endpoint string) (int32, error) {

internal/manifests/collector/ports_test.go

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,10 @@ func TestDefaultCollectDGetContainerPorts(t *testing.T) {
5151
func TestApplicationSignals(t *testing.T) {
5252
cfg := getStringFromFile("./test-resources/application_signals.json")
5353
containerPorts := getContainerPorts(logger, cfg, "", []corev1.ServicePort{})
54-
assert.Equal(t, 3, len(containerPorts))
54+
assert.Equal(t, 4, len(containerPorts))
55+
assert.Equal(t, int32(4311), containerPorts[CWA+Server].ContainerPort)
56+
assert.Equal(t, CWA+Server, containerPorts[CWA+Server].Name)
57+
assert.Equal(t, corev1.ProtocolTCP, containerPorts[CWA+Server].Protocol)
5558
assert.Equal(t, int32(4315), containerPorts[CWA+AppSignalsGrpc].ContainerPort)
5659
assert.Equal(t, CWA+AppSignalsGrpc, containerPorts[CWA+AppSignalsGrpc].Name)
5760
assert.Equal(t, int32(4316), containerPorts[CWA+AppSignalsHttp].ContainerPort)
@@ -152,6 +155,11 @@ func TestMultipleReceiversGetContainerPorts(t *testing.T) {
152155
cfg := getStringFromFile("./test-resources/multipleReceiversAgentConfig.json")
153156
strings.Replace(cfg, "2900", "2000", 1)
154157
wantPorts := []corev1.ContainerPort{
158+
{
159+
Name: CWA + Server,
160+
Protocol: corev1.ProtocolTCP,
161+
ContainerPort: int32(4311),
162+
},
155163
{
156164
Name: CWA + AppSignalsGrpc,
157165
Protocol: corev1.ProtocolTCP,
@@ -310,7 +318,9 @@ func TestValidJSONAndValidOtelConfig(t *testing.T) {
310318
cfg := getStringFromFile("./test-resources/application_signals.json")
311319
otelCfg := getStringFromFile("./test-resources/otelConfigs/otlpOtelConfig.yaml")
312320
containerPorts := getContainerPorts(logger, cfg, otelCfg, []corev1.ServicePort{})
313-
assert.Equal(t, 4, len(containerPorts))
321+
assert.Equal(t, 5, len(containerPorts))
322+
assert.Equal(t, int32(4311), containerPorts[CWA+Server].ContainerPort)
323+
assert.Equal(t, CWA+Server, containerPorts[CWA+Server].Name)
314324
assert.Equal(t, int32(4315), containerPorts[CWA+AppSignalsGrpc].ContainerPort)
315325
assert.Equal(t, CWA+AppSignalsGrpc, containerPorts[CWA+AppSignalsGrpc].Name)
316326
assert.Equal(t, int32(4316), containerPorts[CWA+AppSignalsHttp].ContainerPort)
@@ -325,7 +335,9 @@ func TestValidJSONAndInvalidOtelConfig(t *testing.T) {
325335
cfg := getStringFromFile("./test-resources/application_signals.json")
326336
otelCfg := getStringFromFile("./test-resources/otelConfigs/invalidOtlpConfig.yaml")
327337
containerPorts := getContainerPorts(logger, cfg, otelCfg, []corev1.ServicePort{})
328-
assert.Equal(t, 3, len(containerPorts))
338+
assert.Equal(t, 4, len(containerPorts))
339+
assert.Equal(t, int32(4311), containerPorts[CWA+Server].ContainerPort)
340+
assert.Equal(t, CWA+Server, containerPorts[CWA+Server].Name)
329341
assert.Equal(t, int32(4315), containerPorts[CWA+AppSignalsGrpc].ContainerPort)
330342
assert.Equal(t, CWA+AppSignalsGrpc, containerPorts[CWA+AppSignalsGrpc].Name)
331343
assert.Equal(t, int32(4316), containerPorts[CWA+AppSignalsHttp].ContainerPort)
@@ -338,7 +350,9 @@ func TestValidJSONAndConflictingOtelConfig(t *testing.T) {
338350
cfg := getStringFromFile("./test-resources/application_signals.json")
339351
otelCfg := getStringFromFile("./test-resources/otelConfigs/conflictingPortOtlpConfig.yaml")
340352
containerPorts := getContainerPorts(logger, cfg, otelCfg, []corev1.ServicePort{})
341-
assert.Equal(t, 3, len(containerPorts))
353+
assert.Equal(t, 4, len(containerPorts))
354+
assert.Equal(t, int32(4311), containerPorts[CWA+Server].ContainerPort)
355+
assert.Equal(t, CWA+Server, containerPorts[CWA+Server].Name)
342356
assert.Equal(t, int32(4315), containerPorts[CWA+AppSignalsGrpc].ContainerPort)
343357
assert.Equal(t, CWA+AppSignalsGrpc, containerPorts[CWA+AppSignalsGrpc].Name)
344358
assert.Equal(t, int32(4316), containerPorts[CWA+AppSignalsHttp].ContainerPort)
@@ -351,7 +365,9 @@ func TestValidJSONAndConflictingOtelConfigForXray(t *testing.T) {
351365
cfg := getStringFromFile("./test-resources/application_signals_with_traces.json")
352366
otelCfg := getStringFromFile("./test-resources/otelConfigs/xrayOtelConfig.yaml")
353367
containerPorts := getContainerPorts(logger, cfg, otelCfg, []corev1.ServicePort{})
354-
assert.Equal(t, 6, len(containerPorts))
368+
assert.Equal(t, 7, len(containerPorts))
369+
assert.Equal(t, int32(4311), containerPorts[CWA+Server].ContainerPort)
370+
assert.Equal(t, CWA+Server, containerPorts[CWA+Server].Name)
355371
assert.Equal(t, int32(4315), containerPorts[CWA+AppSignalsGrpc].ContainerPort)
356372
assert.Equal(t, CWA+AppSignalsGrpc, containerPorts[CWA+AppSignalsGrpc].Name)
357373
assert.Equal(t, int32(4316), containerPorts[CWA+AppSignalsHttp].ContainerPort)

pkg/constants/env.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,9 @@ const (
2323
EnvPodName = "OTEL_RESOURCE_ATTRIBUTES_POD_NAME"
2424
EnvPodUID = "OTEL_RESOURCE_ATTRIBUTES_POD_UID"
2525
EnvNodeName = "OTEL_RESOURCE_ATTRIBUTES_NODE_NAME"
26+
27+
AWSEntityPrefix = "com.amazonaws.cloudwatch.entity.internal."
28+
ServiceNameSource = AWSEntityPrefix + "service.name.source"
29+
SourceInstrumentation = "Instrumentation"
30+
SourceK8sWorkload = "K8sWorkload"
2631
)

0 commit comments

Comments
 (0)