Skip to content

Commit def383f

Browse files
authored
Update All k8s Otel attributes using k8s.*.name standard (#1988)
* Update All k8s Otel attributes using k8s.*.name standard * missed pvc update
1 parent e99eaf6 commit def383f

File tree

31 files changed

+1042
-71
lines changed

31 files changed

+1042
-71
lines changed

entity-types/infra-container/definition.yml

Lines changed: 95 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,99 @@ synthesis:
3838
otel.library.name:
3939
entityTagName: instrumentation.name
4040
# kube-state-metrics data via opentelemetry prometheusReceiver
41+
- compositeIdentifier:
42+
separator: ":"
43+
attributes:
44+
- k8s.cluster.name
45+
- k8s.namespace.name
46+
- k8s.pod.name
47+
- k8s.container.name
48+
encodeIdentifierInGUID: true
49+
name: k8s.container.name
50+
conditions:
51+
# kube-state-metrics container prefix
52+
- attribute: metricName
53+
prefix: kube_pod_container_
54+
# identifier attributes
55+
- attribute: k8s.container.name
56+
present: true
57+
- attribute: k8s.pod.name
58+
present: true
59+
- attribute: k8s.namespace.name
60+
present: true
61+
- attribute: k8s.cluster.name
62+
present: true
63+
# open telemetry
64+
- attribute: newrelic.source
65+
value: 'api.metrics.otlp'
66+
# if service.name is present, handle as one
67+
- attribute: service.name
68+
present: false
69+
# value added for test entities only
70+
- attribute: newrelicOnly
71+
value: "true"
72+
tags:
73+
container_id:
74+
entityTagNames: [k8s.containerId]
75+
multiValue: false
76+
image:
77+
entityTagNames: [k8s.containerImage]
78+
k8s.container.name:
79+
entityTagNames: [k8s.containerName]
80+
k8s.pod.name:
81+
entityTagNames: [k8s.podName]
82+
k8s.namespace.name:
83+
entityTagNames: [k8s.namespaceName]
84+
k8s.cluster.name:
85+
entityTagNames: [k8s.clusterName]
86+
k8s.deployment.name:
87+
entityTagNames: [k8s.deploymentName]
88+
# cAdvisor data via opentelemetry prometheusReceiver
89+
- compositeIdentifier:
90+
separator: ":"
91+
attributes:
92+
- k8s.cluster.name
93+
- k8s.namespace.name
94+
- k8s.pod.name
95+
- k8s.container.name
96+
encodeIdentifierInGUID: true
97+
name: container
98+
conditions:
99+
# cadvisor container prefix
100+
- attribute: metricName
101+
prefix: container_
102+
# identifier attributes
103+
- attribute: k8s.container.name
104+
present: true
105+
- attribute: k8s.pod.name
106+
present: true
107+
- attribute: k8s.namespace.name
108+
present: true
109+
- attribute: k8s.cluster.name
110+
present: true
111+
# open telemetry
112+
- attribute: newrelic.source
113+
value: 'api.metrics.otlp'
114+
# if service.name is present, handle as one
115+
- attribute: service.name
116+
present: false
117+
# value added for test entities only
118+
- attribute: newrelicOnly
119+
value: "true"
120+
tags:
121+
k8s.container.name:
122+
entityTagNames: [k8s.containerName]
123+
k8s.pod.name:
124+
entityTagNames: [k8s.podName]
125+
k8s.namespace.name:
126+
entityTagNames: [k8s.namespaceName]
127+
k8s.cluster.name:
128+
entityTagNames: [k8s.clusterName]
129+
k8s.node.name:
130+
entityTagNames: [k8s.nodeName]
131+
k8s.deployment.name:
132+
entityTagNames: [k8s.deploymentName]
133+
# kube-state-metrics data via opentelemetry prometheusReceiver preview
41134
- compositeIdentifier:
42135
separator: ":"
43136
attributes:
@@ -85,7 +178,7 @@ synthesis:
85178
entityTagNames: [k8s.clusterName]
86179
k8s.deployment.name:
87180
entityTagNames: [k8s.deploymentName]
88-
# cAdvisor data via opentelemetry prometheusReceiver
181+
# cAdvisor data via opentelemetry prometheusReceiver preview
89182
- compositeIdentifier:
90183
separator: ":"
91184
attributes:
@@ -130,7 +223,7 @@ synthesis:
130223
entityTagNames: [k8s.nodeName]
131224
k8s.deployment.name:
132225
entityTagNames: [k8s.deploymentName]
133-
# kubeletstatsreceiver data via opentelemetry
226+
# kubeletstatsreceiver data via opentelemetry preview
134227
- compositeIdentifier:
135228
separator: ":"
136229
attributes:
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
[
2+
{
3+
"k8s.cluster.name": "farm",
4+
"namespace": "orchards",
5+
"pod": "tree-afge",
6+
"container": "peach-332",
7+
"newrelic.source": "api.metrics.otlp",
8+
"newrelicOnly": "true",
9+
"metricName": "kube_pod_container_status_ready",
10+
"kube_pod_container_status_ready": {"type":"gauge","count":1,"sum":1.0,"min":1.0,"max":1.0,"latest":1.0},
11+
"k8s.deployment.name": "my-otel-demo-cartservice"
12+
},
13+
{
14+
"k8s.cluster.name": "universe",
15+
"namespace": "solar-system",
16+
"pod": "earth",
17+
"container": "verdant-forest",
18+
"newrelic.source": "api.metrics.otlp",
19+
"newrelicOnly": "true",
20+
"metricName": "kube_pod_container_info",
21+
"kube_pod_container_info": {"type":"gauge","count":1,"sum":1.0,"min":1.0,"max":1.0,"latest":1.0},
22+
"description": "[STABLE] Information about a container in a pod.",
23+
"otel.library.name": "otelcol/prometheusreceiver",
24+
"otel.library.version": "0.91.0",
25+
"instrumentation.provider": "opentelemetry",
26+
"image":"sha256:1f337e7e6242ffe8cb590da7fa41ed409b8f759bcb075767b74d3861c9d25cc0",
27+
"image_id":"gke.gcr.io/foo@sha256:3aaf29f6967aafd47e50007eedc9c2ac78a202a213f43af92e0b9ccfebc63636",
28+
"image_spec":"gke.gcr.io/foo@sha256:3aaf29f6967aafd47e50007eedc9c2ac78a202a213f43af92e0b9ccfebc63636",
29+
"net.host.port": "8080",
30+
"net.host.name": "11.11.1.11",
31+
"service.instance.id": "11.11.1.11:8080",
32+
"http.scheme": "http",
33+
"container_id": "containerd://b413084f553d6c30d4f96e7ceeef60d858ec9dbce93d93d945afd15398fb5f0d",
34+
"k8s.deployment.name": "my-otel-demo-adservice"
35+
}
36+
]
Lines changed: 39 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,51 @@
11
[
22
{
3+
"instrumentation.provider": "opentelemetry",
4+
"job_label": "kube-state-metrics",
35
"k8s.cluster.name": "farm",
6+
"k8s.container.name": "peach-332",
47
"namespace": "orchards",
58
"pod": "tree-afge",
69
"container": "peach-332",
10+
"k8s.namespace.name": "orchards",
11+
"k8s.pod.name": "spring-tesing-1011",
12+
"kube_pod_container_status_ready": {
13+
"type": "gauge",
14+
"count": 1,
15+
"sum": 1,
16+
"min": 1,
17+
"max": 1,
18+
"latest": 1
19+
},
20+
"metricName": "kube_pod_container_status_ready",
721
"newrelic.source": "api.metrics.otlp",
822
"newrelicOnly": "true",
9-
"metricName": "kube_pod_container_status_ready",
10-
"kube_pod_container_status_ready": {"type":"gauge","count":1,"sum":1.0,"min":1.0,"max":1.0,"latest":1.0},
11-
"k8s.deployment.name": "my-otel-demo-cartservice"
23+
"otel.library.name": "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver",
24+
"otel.library.version": "0.121.0"
1225
},
1326
{
14-
"k8s.cluster.name": "universe",
15-
"namespace": "solar-system",
16-
"pod": "earth",
17-
"container": "verdant-forest",
27+
"container_id": "containerd://101",
28+
"image": "ghcr.io/testing/spring-tesing:latest",
29+
"image_id": "ghcr.io/testing/spring-tesing@sha256:10101",
30+
"image_spec": "ghcr.io/testing/spring-tesing:latest",
31+
"instrumentation.provider": "opentelemetry",
32+
"job_label": "kube-state-metrics",
33+
"k8s.cluster.name": "farm",
34+
"k8s.container.name": "spring-tesing",
35+
"k8s.namespace.name": "default",
36+
"k8s.pod.name": "spring-tesing-1011",
37+
"kube_pod_container_info": {
38+
"type": "gauge",
39+
"count": 1,
40+
"sum": 1,
41+
"min": 1,
42+
"max": 1,
43+
"latest": 1
44+
},
45+
"metricName": "kube_pod_container_info",
1846
"newrelic.source": "api.metrics.otlp",
1947
"newrelicOnly": "true",
20-
"metricName": "kube_pod_container_info",
21-
"kube_pod_container_info": {"type":"gauge","count":1,"sum":1.0,"min":1.0,"max":1.0,"latest":1.0},
22-
"description": "[STABLE] Information about a container in a pod.",
23-
"otel.library.name": "otelcol/prometheusreceiver",
24-
"otel.library.version": "0.91.0",
25-
"instrumentation.provider": "opentelemetry",
26-
"image":"sha256:1f337e7e6242ffe8cb590da7fa41ed409b8f759bcb075767b74d3861c9d25cc0",
27-
"image_id":"gke.gcr.io/foo@sha256:3aaf29f6967aafd47e50007eedc9c2ac78a202a213f43af92e0b9ccfebc63636",
28-
"image_spec":"gke.gcr.io/foo@sha256:3aaf29f6967aafd47e50007eedc9c2ac78a202a213f43af92e0b9ccfebc63636",
29-
"net.host.port": "8080",
30-
"net.host.name": "11.11.1.11",
31-
"service.instance.id": "11.11.1.11:8080",
32-
"http.scheme": "http",
33-
"container_id": "containerd://b413084f553d6c30d4f96e7ceeef60d858ec9dbce93d93d945afd15398fb5f0d",
34-
"k8s.deployment.name": "my-otel-demo-adservice"
35-
}
36-
]
48+
"otel.library.name": "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver",
49+
"otel.library.version": "0.121.0"
50+
}
51+
]

entity-types/infra-host/definition.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ goldenTags:
2121
- cloud.platform
2222
synthesis:
2323
rules:
24-
# opentelemetry host data from k8s-otel-collector
24+
# opentelemetry host data from k8s-otel-collector preview
2525
- identifier: k8s.node.name
2626
name: k8s.node.name
2727
legacyFeatures:
@@ -91,6 +91,7 @@ synthesis:
9191
host.image.id:
9292
host.image.version:
9393
instrumentation.provider:
94+
k8s.cluster.name:
9495
# opentelemetry host data from opentelemetry-collector
9596
- identifier: host.id
9697
name: host.name
@@ -124,6 +125,7 @@ synthesis:
124125
host.image.id:
125126
host.image.version:
126127
instrumentation.provider:
128+
k8s.cluster.name:
127129
# opentelemetry host data from opentelemetry-collector
128130
- identifier: host.id
129131
name: host.name

entity-types/infra-kubernetes_cronjob/definition.yml

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,44 @@ goldenTags:
1414
synthesis:
1515
rules:
1616
# kube-state-metrics data via opentelemetry prometheusReceiver
17+
- compositeIdentifier:
18+
separator: ":"
19+
attributes:
20+
- k8s.cluster.name
21+
- k8s.namespace.name
22+
- k8s.cronjob.name
23+
encodeIdentifierInGUID: true
24+
name: k8s.cronjob.name
25+
conditions:
26+
# kube-state-metrics cronjob prefix
27+
- attribute: metricName
28+
prefix: kube_cronjob_
29+
# identifier attributes
30+
- attribute: k8s.cronjob.name
31+
present: true
32+
- attribute: k8s.namespace.name
33+
present: true
34+
- attribute: k8s.cluster.name
35+
present: true
36+
# open telemetry
37+
- attribute: newrelic.source
38+
value: "api.metrics.otlp"
39+
# if service.name is present, it's a service
40+
- attribute: service.name
41+
present: false
42+
# value added for test entities only
43+
- attribute: newrelicOnly
44+
value: "true"
45+
tags:
46+
k8s.cronjob.name:
47+
entityTagNames: [k8s.cronjobName]
48+
k8s.namespace.name:
49+
entityTagNames: [k8s.namespaceName]
50+
k8s.cluster.name:
51+
entityTagNames: [k8s.clusterName]
52+
schedule:
53+
entityTagNames: [k8s.cronjob.schedule]
54+
# kube-state-metrics data via opentelemetry prometheusReceiver preview
1755
- compositeIdentifier:
1856
separator: ":"
1957
attributes:
@@ -51,7 +89,6 @@ synthesis:
5189
entityTagNames: [k8s.clusterName]
5290
schedule:
5391
entityTagNames: [k8s.cronjob.schedule]
54-
5592
# Infrastructure event data via opentelemetry
5693
# - compositeIdentifier:
5794
# separator: ":"
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
[
2+
{
3+
"instrumentation.provider": "opentelemetry",
4+
"job_label": "kube-state-metrics",
5+
"k8s.cluster.name": "farm",
6+
"k8s.namespace.name": "tree",
7+
"k8s.cronjob.name": "apple-tree-cronjob",
8+
"kube_cronjob_created": {
9+
"type": "gauge",
10+
"count": 1,
11+
"sum": 1,
12+
"min": 1,
13+
"max": 1,
14+
"latest": 1
15+
},
16+
"metricName": "kube_cronjob_created",
17+
"newrelic.source": "api.metrics.otlp",
18+
"newrelicOnly": "true",
19+
"otel.library.name": "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver",
20+
"otel.library.version": "0.121.0"
21+
}
22+
]

entity-types/infra-kubernetes_daemonset/definition.yml

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,42 @@ goldenTags:
1010
synthesis:
1111
rules:
1212
# kube-state-metrics data via opentelemetry prometheusReceiver
13+
- compositeIdentifier:
14+
separator: ":"
15+
attributes:
16+
- k8s.cluster.name
17+
- k8s.namespace.name
18+
- k8s.daemonset.name
19+
encodeIdentifierInGUID: true
20+
name: k8s.daemonset.name
21+
conditions:
22+
# kube-state-metrics daemonset prefix
23+
- attribute: metricName
24+
prefix: kube_daemonset_
25+
# identifier attributes
26+
- attribute: k8s.daemonset.name
27+
present: true
28+
- attribute: k8s.namespace.name
29+
present: true
30+
- attribute: k8s.cluster.name
31+
present: true
32+
# open telemetry
33+
- attribute: newrelic.source
34+
value: 'api.metrics.otlp'
35+
# if service.name is present, it's a service
36+
- attribute: service.name
37+
present: false
38+
# value added for test entities only
39+
- attribute: newrelicOnly
40+
value: "true"
41+
tags:
42+
k8s.daemonset.name:
43+
entityTagNames: [k8s.daemonsetName]
44+
k8s.namespace.name:
45+
entityTagNames: [k8s.namespaceName]
46+
k8s.cluster.name:
47+
entityTagNames: [k8s.clusterName]
48+
# kube-state-metrics data via opentelemetry prometheusReceiver preview
1349
- compositeIdentifier:
1450
separator: ":"
1551
attributes:
@@ -109,4 +145,4 @@ synthesis:
109145
provider.awsRegion:
110146
entityTagName: aws.region
111147
prefixedTags:
112-
label.:
148+
label.:

0 commit comments

Comments
 (0)