Skip to content

Commit ec09e03

Browse files
committed
Address comments
1 parent 0fd862e commit ec09e03

20 files changed

Lines changed: 184 additions & 110 deletions

translator/cmdutil/translatorutil_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,12 @@ func TestOpenTelemetryWindowsEventsInvalidSchemaValidation(t *testing.T) {
451451
})
452452
}
453453

454+
func TestOpenTelemetryInvalidClusterNameSchemaValidation(t *testing.T) {
455+
checkIfSchemaValidateAsExpected(t, "../../translator/config/sampleSchema/opentelemetry/invalidClusterName.json", false, map[string]int{
456+
"pattern": 1,
457+
})
458+
}
459+
454460
func TestCombinedV1V2SchemaValidation(t *testing.T) {
455461
checkIfSchemaValidateAsExpected(t, "../../translator/config/sampleSchema/opentelemetry/validCombinedV1V2Config.json", true, map[string]int{})
456462
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"agent": {
3+
"region": "us-west-2"
4+
},
5+
"opentelemetry": {
6+
"cluster_name": "bad@cluster!name",
7+
"collect": {
8+
"host_metrics": {}
9+
}
10+
}
11+
}

translator/config/schema.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1807,8 +1807,9 @@
18071807
"type": "object",
18081808
"properties": {
18091809
"cluster_name": {
1810-
"description": "The name of the EKS cluster. Applied to all components under opentelemetry.",
1811-
"type": "string"
1810+
"description": "The name of the K8s cluster. Applied to all telemetry collected under opentelemetry.",
1811+
"type": "string",
1812+
"pattern": "^[0-9A-Za-z][A-Za-z0-9\\-_]*$"
18121813
},
18131814
"collect": {
18141815
"type": "object",

translator/tocwconfig/sampleConfig/opentelemetry/combined_v1_v2_ec2_config.yaml

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -542,9 +542,9 @@ processors:
542542
ec2_instance_tag_keys:
543543
- AutoScalingGroupName
544544
ec2_metadata_tags:
545-
- ImageId
546545
- InstanceId
547546
- InstanceType
547+
- ImageId
548548
imds_retries: 1
549549
middleware: agenthealth/statuscode
550550
refresh_tags_interval: 0s
@@ -1030,7 +1030,11 @@ processors:
10301030
error_mode: ignore
10311031
statements:
10321032
- set(resource.attributes["k8s.cluster.name"], "TestCluster")
1033-
trace_statements: []
1033+
trace_statements:
1034+
- context: resource
1035+
error_mode: ignore
1036+
statements:
1037+
- set(resource.attributes["k8s.cluster.name"], "TestCluster")
10341038
receivers:
10351039
awsxray:
10361040
endpoint: 0.0.0.0:2000
@@ -1548,6 +1552,7 @@ service:
15481552
- otlphttp/logs
15491553
processors:
15501554
- resourcedetection/opentelemetry
1555+
- transform/set_cluster_name
15511556
- transform/identity
15521557
- transform/logs_routing
15531558
- attributestocontext/opentelemetry
@@ -1560,7 +1565,6 @@ service:
15601565
- forward/opentelemetry
15611566
processors:
15621567
- transform/otlp_scope
1563-
- transform/set_cluster_name
15641568
- transform/otlp_log_source
15651569
receivers:
15661570
- otlp/grpc_127_0_0_1_4327
@@ -1583,19 +1587,18 @@ service:
15831587
- ec2tagger
15841588
- awsentity/resource
15851589
receivers:
1586-
- telegraf_mem
1590+
- telegraf_procstat/1917393364
15871591
- telegraf_disk
1588-
- telegraf_swap
1589-
- telegraf_cpu
15901592
- telegraf_processes
1591-
- telegraf_procstat/1917393364
1593+
- telegraf_mem
1594+
- telegraf_swap
15921595
- telegraf_netstat
1596+
- telegraf_cpu
15931597
metrics/host_metrics:
15941598
exporters:
15951599
- forward/opentelemetry
15961600
processors:
15971601
- transform/host_metrics_scope
1598-
- transform/set_cluster_name
15991602
receivers:
16001603
- hostmetrics/opentelemetry
16011604
metrics/hostCustomMetrics:
@@ -1605,8 +1608,8 @@ service:
16051608
- ec2tagger
16061609
- awsentity/service/telegraf
16071610
receivers:
1608-
- telegraf_statsd
16091611
- telegraf_socket_listener
1612+
- telegraf_statsd
16101613
metrics/hostDeltaMetrics:
16111614
exporters:
16121615
- awscloudwatch
@@ -1622,6 +1625,7 @@ service:
16221625
- otlphttp/metrics
16231626
processors:
16241627
- resourcedetection/opentelemetry
1628+
- transform/set_cluster_name
16251629
- transform/identity
16261630
- batch/opentelemetry_metrics
16271631
receivers:
@@ -1631,15 +1635,13 @@ service:
16311635
- forward/opentelemetry
16321636
processors:
16331637
- transform/prometheus_scope
1634-
- transform/set_cluster_name
16351638
receivers:
16361639
- prometheus/opentelemetry
16371640
metrics/otlp:
16381641
exporters:
16391642
- forward/opentelemetry
16401643
processors:
16411644
- transform/otlp_scope
1642-
- transform/set_cluster_name
16431645
receivers:
16441646
- otlp/grpc_127_0_0_1_4327
16451647
- otlp/http_127_0_0_1_4328
@@ -1648,6 +1650,7 @@ service:
16481650
- otlphttp/traces
16491651
processors:
16501652
- resourcedetection/opentelemetry
1653+
- transform/set_cluster_name
16511654
- transform/identity
16521655
- batch/opentelemetry_traces
16531656
receivers:
@@ -1657,7 +1660,6 @@ service:
16571660
- forward/opentelemetry
16581661
processors:
16591662
- transform/otlp_scope
1660-
- transform/set_cluster_name
16611663
receivers:
16621664
- otlp/grpc_127_0_0_1_4327
16631665
- otlp/http_127_0_0_1_4328

translator/tocwconfig/sampleConfig/opentelemetry/combined_v1_v2_eks_config.yaml

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -587,9 +587,9 @@ processors:
587587
ec2_instance_tag_keys:
588588
- AutoScalingGroupName
589589
ec2_metadata_tags:
590-
- InstanceType
591590
- ImageId
592591
- InstanceId
592+
- InstanceType
593593
imds_retries: 1
594594
middleware: agenthealth/statuscode
595595
refresh_tags_interval: 0s
@@ -1563,7 +1563,11 @@ processors:
15631563
error_mode: ignore
15641564
statements:
15651565
- set(resource.attributes["k8s.cluster.name"], "TestCluster")
1566-
trace_statements: []
1566+
trace_statements:
1567+
- context: resource
1568+
error_mode: ignore
1569+
statements:
1570+
- set(resource.attributes["k8s.cluster.name"], "TestCluster")
15671571
receivers:
15681572
awsefareceiver/cw_k8s_ci_v0:
15691573
collection_interval: 30s
@@ -2238,6 +2242,7 @@ service:
22382242
processors:
22392243
- resourcedetection/opentelemetry
22402244
- k8sattributes/opentelemetry
2245+
- transform/set_cluster_name
22412246
- transform/identity
22422247
- transform/logs_routing
22432248
- attributestocontext/opentelemetry
@@ -2250,7 +2255,6 @@ service:
22502255
- forward/opentelemetry
22512256
processors:
22522257
- transform/otlp_scope
2253-
- transform/set_cluster_name
22542258
- transform/otlp_log_source
22552259
receivers:
22562260
- otlp/grpc_127_0_0_1_4327
@@ -2443,17 +2447,16 @@ service:
24432447
receivers:
24442448
- telegraf_netstat
24452449
- telegraf_swap
2446-
- telegraf_processes
2450+
- telegraf_procstat/1917393364
2451+
- telegraf_disk
24472452
- telegraf_mem
2453+
- telegraf_processes
24482454
- telegraf_cpu
2449-
- telegraf_disk
2450-
- telegraf_procstat/1917393364
24512455
metrics/host_metrics:
24522456
exporters:
24532457
- forward/opentelemetry
24542458
processors:
24552459
- transform/host_metrics_scope
2456-
- transform/set_cluster_name
24572460
receivers:
24582461
- hostmetrics/opentelemetry
24592462
metrics/hostCustomMetrics:
@@ -2463,8 +2466,8 @@ service:
24632466
- ec2tagger
24642467
- awsentity/service/telegraf
24652468
receivers:
2466-
- telegraf_statsd
24672469
- telegraf_socket_listener
2470+
- telegraf_statsd
24682471
metrics/hostDeltaMetrics:
24692472
exporters:
24702473
- awscloudwatch
@@ -2481,6 +2484,7 @@ service:
24812484
processors:
24822485
- resourcedetection/opentelemetry
24832486
- k8sattributes/opentelemetry
2487+
- transform/set_cluster_name
24842488
- transform/identity
24852489
- batch/opentelemetry_metrics
24862490
receivers:
@@ -2490,15 +2494,13 @@ service:
24902494
- forward/opentelemetry
24912495
processors:
24922496
- transform/prometheus_scope
2493-
- transform/set_cluster_name
24942497
receivers:
24952498
- prometheus/opentelemetry
24962499
metrics/otlp:
24972500
exporters:
24982501
- forward/opentelemetry
24992502
processors:
25002503
- transform/otlp_scope
2501-
- transform/set_cluster_name
25022504
receivers:
25032505
- otlp/grpc_127_0_0_1_4327
25042506
- otlp/http_127_0_0_1_4328
@@ -2508,6 +2510,7 @@ service:
25082510
processors:
25092511
- resourcedetection/opentelemetry
25102512
- k8sattributes/opentelemetry
2513+
- transform/set_cluster_name
25112514
- transform/identity
25122515
- batch/opentelemetry_traces
25132516
receivers:
@@ -2517,7 +2520,6 @@ service:
25172520
- forward/opentelemetry
25182521
processors:
25192522
- transform/otlp_scope
2520-
- transform/set_cluster_name
25212523
receivers:
25222524
- otlp/grpc_127_0_0_1_4327
25232525
- otlp/http_127_0_0_1_4328

translator/tocwconfig/sampleConfig/opentelemetry/container_insights_config.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -891,6 +891,24 @@ processors:
891891
- delete_key(resource.attributes, "app.kubernetes.io/instance")
892892
- delete_key(resource.attributes, "app.kubernetes.io/name")
893893
- delete_key(resource.attributes, "app.kubernetes.io/version")
894+
transform/set_cluster_name:
895+
error_mode: ignore
896+
flatten_data: false
897+
log_statements:
898+
- context: resource
899+
error_mode: ignore
900+
statements:
901+
- set(resource.attributes["k8s.cluster.name"], "TestCluster")
902+
metric_statements:
903+
- context: resource
904+
error_mode: ignore
905+
statements:
906+
- set(resource.attributes["k8s.cluster.name"], "TestCluster")
907+
trace_statements:
908+
- context: resource
909+
error_mode: ignore
910+
statements:
911+
- set(resource.attributes["k8s.cluster.name"], "TestCluster")
894912
receivers:
895913
awsefareceiver/cw_k8s_ci_v0:
896914
collection_interval: 30s
@@ -1228,6 +1246,7 @@ service:
12281246
processors:
12291247
- resourcedetection/opentelemetry
12301248
- k8sattributes/opentelemetry
1249+
- transform/set_cluster_name
12311250
- transform/identity
12321251
- batch/opentelemetry_metrics
12331252
receivers:

translator/tocwconfig/sampleConfig/opentelemetry/prometheus_otel_pipeline_config.yaml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -373,13 +373,21 @@ processors:
373373
transform/set_cluster_name:
374374
error_mode: ignore
375375
flatten_data: false
376-
log_statements: []
376+
log_statements:
377+
- context: resource
378+
error_mode: ignore
379+
statements:
380+
- set(resource.attributes["k8s.cluster.name"], "TestCluster")
377381
metric_statements:
378382
- context: resource
379383
error_mode: ignore
380384
statements:
381385
- set(resource.attributes["k8s.cluster.name"], "TestCluster")
382-
trace_statements: []
386+
trace_statements:
387+
- context: resource
388+
error_mode: ignore
389+
statements:
390+
- set(resource.attributes["k8s.cluster.name"], "TestCluster")
383391
receivers:
384392
prometheus/opentelemetry:
385393
config:
@@ -441,6 +449,7 @@ service:
441449
- otlphttp/metrics
442450
processors:
443451
- resourcedetection/opentelemetry
452+
- transform/set_cluster_name
444453
- transform/identity
445454
- batch/opentelemetry_metrics
446455
receivers:
@@ -450,7 +459,6 @@ service:
450459
- forward/opentelemetry
451460
processors:
452461
- transform/prometheus_scope
453-
- transform/set_cluster_name
454462
receivers:
455463
- prometheus/opentelemetry
456464
telemetry:

translator/tocwconfig/sampleConfig/opentelemetry/prometheus_otel_pipeline_eks_config.yaml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -538,13 +538,21 @@ processors:
538538
transform/set_cluster_name:
539539
error_mode: ignore
540540
flatten_data: false
541-
log_statements: []
541+
log_statements:
542+
- context: resource
543+
error_mode: ignore
544+
statements:
545+
- set(resource.attributes["k8s.cluster.name"], "TestCluster")
542546
metric_statements:
543547
- context: resource
544548
error_mode: ignore
545549
statements:
546550
- set(resource.attributes["k8s.cluster.name"], "TestCluster")
547-
trace_statements: []
551+
trace_statements:
552+
- context: resource
553+
error_mode: ignore
554+
statements:
555+
- set(resource.attributes["k8s.cluster.name"], "TestCluster")
548556
receivers:
549557
prometheus/opentelemetry:
550558
config:
@@ -608,6 +616,7 @@ service:
608616
processors:
609617
- resourcedetection/opentelemetry
610618
- k8sattributes/opentelemetry
619+
- transform/set_cluster_name
611620
- transform/identity
612621
- batch/opentelemetry_metrics
613622
receivers:
@@ -617,7 +626,6 @@ service:
617626
- forward/opentelemetry
618627
processors:
619628
- transform/prometheus_scope
620-
- transform/set_cluster_name
621629
receivers:
622630
- prometheus/opentelemetry
623631
telemetry:

translator/tocwconfig/tocwconfig_unix_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,6 @@ func TestCombinedV1V2EKSConfig(t *testing.T) {
178178
yamlConfig, err := mapstructure.Marshal(cfg)
179179
require.NoError(t, err)
180180
yamlStr := toyamlconfig.ToYamlConfig(yamlConfig)
181-
// assert.NoError(t, os.WriteFile("./sampleConfig/opentelemetry/combined_v1_v2_eks_config.yaml", []byte(yamlStr), 0644)) // useful for regenerating YAML
182181
require.NoError(t, yaml.Unmarshal([]byte(yamlStr), &actual))
183182

184183
opt := cmpopts.SortSlices(func(x, y interface{}) bool {

translator/translate/otel/common/common.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"fmt"
99
"os"
1010
"reflect"
11-
"regexp"
1211
"strconv"
1312
"strings"
1413
"time"
@@ -584,6 +583,5 @@ func EscapeDollarDigit(s string) string {
584583
return string(out)
585584
}
586585

587-
// ClusterNameRegex restricts cluster_name to safe characters, preventing
588-
// OTTL injection and template metacharacter issues.
589-
var ClusterNameRegex = regexp.MustCompile(`^[a-zA-Z0-9._-]+$`)
586+
// OtelClusterNameKey is the config key for the root-level cluster name under opentelemetry.
587+
var OtelClusterNameKey = ConfigKey(OpenTelemetryKey, ClusterNameKey)

0 commit comments

Comments
 (0)