opentelemetry-semantic_conventions 1.38.0 → 1.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/lib/opentelemetry/semantic_conventions/version.rb +2 -2
  4. data/lib/opentelemetry/semconv/db/attributes.rb +2 -2
  5. data/lib/opentelemetry/semconv/error/attributes.rb +1 -1
  6. data/lib/opentelemetry/semconv/incubating/container/attributes.rb +7 -7
  7. data/lib/opentelemetry/semconv/incubating/db/attributes.rb +2 -2
  8. data/lib/opentelemetry/semconv/incubating/error/attributes.rb +1 -1
  9. data/lib/opentelemetry/semconv/incubating/gen_ai/attributes.rb +5 -0
  10. data/lib/opentelemetry/semconv/incubating/jsonrpc/attributes.rb +44 -0
  11. data/lib/opentelemetry/semconv/incubating/jsonrpc.rb +21 -0
  12. data/lib/opentelemetry/semconv/incubating/k8s/attributes.rb +71 -39
  13. data/lib/opentelemetry/semconv/incubating/linux/attributes.rb +1 -0
  14. data/lib/opentelemetry/semconv/incubating/mcp/attributes.rb +53 -0
  15. data/lib/opentelemetry/semconv/incubating/mcp/metrics.rb +51 -0
  16. data/lib/opentelemetry/semconv/incubating/mcp.rb +22 -0
  17. data/lib/opentelemetry/semconv/incubating/otel/attributes.rb +7 -0
  18. data/lib/opentelemetry/semconv/incubating/peer/attributes.rb +1 -0
  19. data/lib/opentelemetry/semconv/incubating/pprof/attributes.rb +17 -0
  20. data/lib/opentelemetry/semconv/incubating/process/metrics.rb +12 -1
  21. data/lib/opentelemetry/semconv/incubating/rpc/attributes.rb +103 -37
  22. data/lib/opentelemetry/semconv/incubating/rpc/metrics.rb +20 -2
  23. data/lib/opentelemetry/semconv/incubating/service/attributes.rb +11 -1
  24. data/lib/opentelemetry/semconv/incubating/system/attributes.rb +5 -0
  25. data/lib/opentelemetry/semconv/incubating/system/metrics.rb +20 -8
  26. data/lib/opentelemetry/semconv/incubating/thread/attributes.rb +2 -2
  27. data/lib/opentelemetry/semconv/incubating/user_agent/attributes.rb +2 -2
  28. data/lib/opentelemetry/semconv/service/attributes.rb +1 -1
  29. metadata +9 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7f2fada6bbb37ecc40d58611b0d01eef0b300b58e48188c17612eade244b4a17
4
- data.tar.gz: e5ad6b628fb2d0ba8c82c8b8bbba9e47e6f39dc886fd72b363275a1d237c5bcf
3
+ metadata.gz: e49a9dbae06f7fa323d27e16cba48f7df45460602acd8969ac0a3172506b76b3
4
+ data.tar.gz: 8134974d85744209fc52e303de680691d4d049b5e54dff4b9a743a8b89afddf3
5
5
  SHA512:
6
- metadata.gz: 6c4ef25f9bea68b4555d1e471f3fc3011d0145d3946b5394a6c8f30dfc8f9ff47afff1a5bb1d983d6a99a3e6ed341b131841dba4bb127959bd7b83d99878ab2a
7
- data.tar.gz: 19868afdd8e0d8838100446b83006801267d4b552586886c1bd24e0b06c867e164dd977bc7b967285ed2df61475c9db7d4f7d806a50f4312c1207e68486ffc97
6
+ metadata.gz: f5c32ee66b18e56efbf598212ab1a0c5365a51ceda54bb6ad17bedae8fb8d75c6b8e82cb4ecd45f6a26cdf5d4d2c3b9830040f5efa9c6422a2fcc223b1db88a3
7
+ data.tar.gz: 46073d50823730d0b1c34c70a24982ea0de43692deb627a0da289c7b21ee0ff0067adbd7429fc52565728c30e0fe84886b8a93dd7f1684ce0cf71d196a566d4e
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Release History: opentelemetry-semantic_conventions
2
2
 
3
+ ### v1.39.0 / 2026-06-03
4
+
5
+ * ADDED: Update dependency open-telemetry/semantic-conventions to v1.39.0 (#2137)
6
+
3
7
  ### v1.38.0 / 2026-05-21
4
8
 
5
9
  * ADDED: Update semantic conventions to v1.38.0 (#2136)
@@ -7,8 +7,8 @@
7
7
  module OpenTelemetry
8
8
  module SemanticConventions
9
9
  # Version of the OpenTelemetry Semantic Conventions from which this library was generated.
10
- SPEC_VERSION = '1.38.0'
10
+ SPEC_VERSION = '1.39.0'
11
11
  # Release version of this gem. May not match SPEC_VERSION until gem is released after a spec update.
12
- VERSION = '1.38.0'
12
+ VERSION = '1.39.0'
13
13
  end
14
14
  end
@@ -83,7 +83,7 @@ module OpenTelemetry
83
83
  # Summary may be available to the instrumentation through
84
84
  # instrumentation hooks or other means. If it is not available, instrumentations
85
85
  # that support query parsing SHOULD generate a summary following
86
- # [Generating query summary](/docs/database/database-spans.md#generating-a-summary-of-the-query)
86
+ # [Generating query summary](/docs/db/database-spans.md#generating-a-summary-of-the-query)
87
87
  # section.
88
88
  #
89
89
  # @note Stability Level: stable
@@ -91,7 +91,7 @@ module OpenTelemetry
91
91
 
92
92
  # The database query being executed.
93
93
  #
94
- # For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext).
94
+ # For sanitization see [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext).
95
95
  # For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable.
96
96
  # Parameterized query text SHOULD NOT be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk.
97
97
  #
@@ -39,7 +39,7 @@ module OpenTelemetry
39
39
  #
40
40
  # If the operation has completed successfully, instrumentations SHOULD NOT set `error.type`.
41
41
  #
42
- # If a specific domain defines its own set of error identifiers (such as HTTP or gRPC status codes),
42
+ # If a specific domain defines its own set of error identifiers (such as HTTP or RPC status codes),
43
43
  # it's RECOMMENDED to:
44
44
  #
45
45
  # - Use a domain-specific attribute
@@ -63,12 +63,12 @@ module OpenTelemetry
63
63
 
64
64
  # Container ID. Usually a UUID, as for example used to [identify Docker containers](https://docs.docker.com/engine/containers/run/#container-identification). The UUID might be abbreviated.
65
65
  #
66
- # @note Stability Level: development
66
+ # @note Stability Level: alpha
67
67
  CONTAINER_ID = 'container.id'
68
68
 
69
69
  # Runtime specific image identifier. Usually a hash algorithm followed by a UUID.
70
70
  #
71
- # Docker defines a sha256 of the image id; `container.image.id` corresponds to the `Image` field from the Docker container inspect [API](https://docs.docker.com/reference/api/engine/version/v1.43/#tag/Container/operation/ContainerInspect) endpoint.
71
+ # Docker defines a sha256 of the image id; `container.image.id` corresponds to the `Image` field from the Docker container inspect [API](https://docs.docker.com/reference/api/engine/version/v1.52/#tag/Container/operation/ContainerInspect) endpoint.
72
72
  # K8s defines a link to the container registry repository with digest `"imageID": "registry.azurecr.io /namespace/service/dockerfile@sha256:bdeabd40c3a8a492eaf9e8e44d0ebbb84bac7ee25ac0cf8a7159d25f62555625"`.
73
73
  # The ID is assigned by the container runtime and can vary in different environments. Consider using `oci.manifest.digest` if it is important to identify the same image in different environments/runtimes.
74
74
  #
@@ -77,19 +77,19 @@ module OpenTelemetry
77
77
 
78
78
  # Name of the image the container was built on.
79
79
  #
80
- # @note Stability Level: development
80
+ # @note Stability Level: alpha
81
81
  CONTAINER_IMAGE_NAME = 'container.image.name'
82
82
 
83
83
  # Repo digests of the container image as provided by the container runtime.
84
84
  #
85
- # [Docker](https://docs.docker.com/reference/api/engine/version/v1.43/#tag/Image/operation/ImageInspect) and [CRI](https://github.com/kubernetes/cri-api/blob/c75ef5b473bbe2d0a4fc92f82235efd665ea8e9f/pkg/apis/runtime/v1/api.proto#L1237-L1238) report those under the `RepoDigests` field.
85
+ # [Docker](https://docs.docker.com/reference/api/engine/version/v1.52/#tag/Image/operation/ImageInspect) and [CRI](https://github.com/kubernetes/cri-api/blob/c75ef5b473bbe2d0a4fc92f82235efd665ea8e9f/pkg/apis/runtime/v1/api.proto#L1237-L1238) report those under the `RepoDigests` field.
86
86
  #
87
- # @note Stability Level: development
87
+ # @note Stability Level: alpha
88
88
  CONTAINER_IMAGE_REPO_DIGESTS = 'container.image.repo_digests'
89
89
 
90
- # Container image tags. An example can be found in [Docker Image Inspect](https://docs.docker.com/reference/api/engine/version/v1.43/#tag/Image/operation/ImageInspect). Should be only the `<tag>` section of the full name for example from `registry.example.com/my-org/my-image:<tag>`.
90
+ # Container image tags. An example can be found in [Docker Image Inspect](https://docs.docker.com/reference/api/engine/version/v1.52/#tag/Image/operation/ImageInspect). Should be only the `<tag>` section of the full name for example from `registry.example.com/my-org/my-image:<tag>`.
91
91
  #
92
- # @note Stability Level: development
92
+ # @note Stability Level: alpha
93
93
  CONTAINER_IMAGE_TAGS = 'container.image.tags'
94
94
 
95
95
  # Must be called with a key for the full attribute name. See notes below about the expectations
@@ -328,7 +328,7 @@ module OpenTelemetry
328
328
  # Summary may be available to the instrumentation through
329
329
  # instrumentation hooks or other means. If it is not available, instrumentations
330
330
  # that support query parsing SHOULD generate a summary following
331
- # [Generating query summary](/docs/database/database-spans.md#generating-a-summary-of-the-query)
331
+ # [Generating query summary](/docs/db/database-spans.md#generating-a-summary-of-the-query)
332
332
  # section.
333
333
  #
334
334
  # @note Stability Level: stable
@@ -338,7 +338,7 @@ module OpenTelemetry
338
338
 
339
339
  # The database query being executed.
340
340
  #
341
- # For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext).
341
+ # For sanitization see [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext).
342
342
  # For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator `; ` or some other database system specific separator if more applicable.
343
343
  # Parameterized query text SHOULD NOT be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk.
344
344
  #
@@ -51,7 +51,7 @@ module OpenTelemetry
51
51
  #
52
52
  # If the operation has completed successfully, instrumentations SHOULD NOT set `error.type`.
53
53
  #
54
- # If a specific domain defines its own set of error identifiers (such as HTTP or gRPC status codes),
54
+ # If a specific domain defines its own set of error identifiers (such as HTTP or RPC status codes),
55
55
  # it's RECOMMENDED to:
56
56
  #
57
57
  # - Use a domain-specific attribute
@@ -181,6 +181,11 @@ module OpenTelemetry
181
181
  # @deprecated Removed, no replacement at this time.
182
182
  GEN_AI_PROMPT = 'gen_ai.prompt'
183
183
 
184
+ # The name of the prompt that uniquely identifies it.
185
+ #
186
+ # @note Stability Level: development
187
+ GEN_AI_PROMPT_NAME = 'gen_ai.prompt.name'
188
+
184
189
  # The Generative AI provider as identified by the client or server instrumentation.
185
190
  #
186
191
  # The attribute SHOULD be set based on the instrumentation's best
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright The OpenTelemetry Authors
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+ # SPDX-License-Identifier: Apache-2.0
18
+ #
19
+ # This file was autogenerated. Do not edit it by hand.
20
+
21
+ module OpenTelemetry
22
+ module SemConv
23
+ module Incubating
24
+ module JSONRPC
25
+ # @!group Attribute Names
26
+
27
+ # Protocol version, as specified in the `jsonrpc` property of the request and its corresponding response.
28
+ #
29
+ # @note Stability Level: development
30
+ JSONRPC_PROTOCOL_VERSION = 'jsonrpc.protocol.version'
31
+
32
+ # A string representation of the `id` property of the request and its corresponding response.
33
+ #
34
+ # Under the [JSON-RPC specification](https://www.jsonrpc.org/specification), the `id` property may be a string, number, null, or omitted entirely. When omitted, the request is treated as a notification. Using `null` is not equivalent to omitting the `id`, but it is discouraged.
35
+ # Instrumentations SHOULD NOT capture this attribute when the `id` is `null` or omitted.
36
+ #
37
+ # @note Stability Level: development
38
+ JSONRPC_REQUEST_ID = 'jsonrpc.request.id'
39
+
40
+ # @!endgroup
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright The OpenTelemetry Authors
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+ # SPDX-License-Identifier: Apache-2.0
18
+
19
+ # This file was autogenerated. Do not edit it by hand.
20
+
21
+ require_relative 'jsonrpc/attributes'
@@ -26,7 +26,7 @@ module OpenTelemetry
26
26
 
27
27
  # The name of the cluster.
28
28
  #
29
- # @note Stability Level: development
29
+ # @note Stability Level: alpha
30
30
  K8S_CLUSTER_NAME = 'k8s.cluster.name'
31
31
 
32
32
  # A pseudo-ID for the cluster, set to the UID of the `kube-system` namespace.
@@ -54,17 +54,17 @@ module OpenTelemetry
54
54
  # Therefore, UIDs between clusters should be extremely unlikely to
55
55
  # conflict.
56
56
  #
57
- # @note Stability Level: development
57
+ # @note Stability Level: alpha
58
58
  K8S_CLUSTER_UID = 'k8s.cluster.uid'
59
59
 
60
60
  # The name of the Container from Pod specification, must be unique within a Pod. Container runtime usually uses different globally unique name (`container.name`).
61
61
  #
62
- # @note Stability Level: development
62
+ # @note Stability Level: alpha
63
63
  K8S_CONTAINER_NAME = 'k8s.container.name'
64
64
 
65
65
  # Number of times the container was restarted. This attribute can be used to identify a particular container (running or stopped) within a container spec.
66
66
  #
67
- # @note Stability Level: development
67
+ # @note Stability Level: alpha
68
68
  K8S_CONTAINER_RESTART_COUNT = 'k8s.container.restart_count'
69
69
 
70
70
  # Last terminated reason of the Container.
@@ -97,7 +97,7 @@ module OpenTelemetry
97
97
  # - An annotation `data` with empty string value SHOULD be recorded as
98
98
  # the `k8s.cronjob.annotation.data` attribute with value `""`.
99
99
  #
100
- # @note Stability Level: development
100
+ # @note Stability Level: alpha
101
101
  K8S_CRONJOB_ANNOTATION_LAMBDA = ->(key) { "k8s.cronjob.annotation.#{key}" }
102
102
 
103
103
  # Must be called with a key for the full attribute name. See notes below about the expectations
@@ -115,17 +115,17 @@ module OpenTelemetry
115
115
  # - A label `automated` with empty string value SHOULD be recorded as
116
116
  # the `k8s.cronjob.label.automated` attribute with value `""`.
117
117
  #
118
- # @note Stability Level: development
118
+ # @note Stability Level: alpha
119
119
  K8S_CRONJOB_LABEL_LAMBDA = ->(key) { "k8s.cronjob.label.#{key}" }
120
120
 
121
121
  # The name of the CronJob.
122
122
  #
123
- # @note Stability Level: development
123
+ # @note Stability Level: alpha
124
124
  K8S_CRONJOB_NAME = 'k8s.cronjob.name'
125
125
 
126
126
  # The UID of the CronJob.
127
127
  #
128
- # @note Stability Level: development
128
+ # @note Stability Level: alpha
129
129
  K8S_CRONJOB_UID = 'k8s.cronjob.uid'
130
130
 
131
131
  # Must be called with a key for the full attribute name. See notes below about the expectations
@@ -143,7 +143,7 @@ module OpenTelemetry
143
143
  # - A label `data` with empty string value SHOULD be recorded as
144
144
  # the `k8s.daemonset.annotation.data` attribute with value `""`.
145
145
  #
146
- # @note Stability Level: development
146
+ # @note Stability Level: alpha
147
147
  K8S_DAEMONSET_ANNOTATION_LAMBDA = ->(key) { "k8s.daemonset.annotation.#{key}" }
148
148
 
149
149
  # Must be called with a key for the full attribute name. See notes below about the expectations
@@ -161,17 +161,17 @@ module OpenTelemetry
161
161
  # - A label `data` with empty string value SHOULD be recorded as
162
162
  # the `k8s.daemonset.label.injected` attribute with value `""`.
163
163
  #
164
- # @note Stability Level: development
164
+ # @note Stability Level: alpha
165
165
  K8S_DAEMONSET_LABEL_LAMBDA = ->(key) { "k8s.daemonset.label.#{key}" }
166
166
 
167
167
  # The name of the DaemonSet.
168
168
  #
169
- # @note Stability Level: development
169
+ # @note Stability Level: alpha
170
170
  K8S_DAEMONSET_NAME = 'k8s.daemonset.name'
171
171
 
172
172
  # The UID of the DaemonSet.
173
173
  #
174
- # @note Stability Level: development
174
+ # @note Stability Level: alpha
175
175
  K8S_DAEMONSET_UID = 'k8s.daemonset.uid'
176
176
 
177
177
  # Must be called with a key for the full attribute name. See notes below about the expectations
@@ -189,7 +189,7 @@ module OpenTelemetry
189
189
  # - A label `data` with empty string value SHOULD be recorded as
190
190
  # the `k8s.deployment.annotation.data` attribute with value `""`.
191
191
  #
192
- # @note Stability Level: development
192
+ # @note Stability Level: alpha
193
193
  K8S_DEPLOYMENT_ANNOTATION_LAMBDA = ->(key) { "k8s.deployment.annotation.#{key}" }
194
194
 
195
195
  # Must be called with a key for the full attribute name. See notes below about the expectations
@@ -207,17 +207,17 @@ module OpenTelemetry
207
207
  # - A label `injected` with empty string value SHOULD be recorded as
208
208
  # the `k8s.deployment.label.injected` attribute with value `""`.
209
209
  #
210
- # @note Stability Level: development
210
+ # @note Stability Level: alpha
211
211
  K8S_DEPLOYMENT_LABEL_LAMBDA = ->(key) { "k8s.deployment.label.#{key}" }
212
212
 
213
213
  # The name of the Deployment.
214
214
  #
215
- # @note Stability Level: development
215
+ # @note Stability Level: alpha
216
216
  K8S_DEPLOYMENT_NAME = 'k8s.deployment.name'
217
217
 
218
218
  # The UID of the Deployment.
219
219
  #
220
- # @note Stability Level: development
220
+ # @note Stability Level: alpha
221
221
  K8S_DEPLOYMENT_UID = 'k8s.deployment.uid'
222
222
 
223
223
  # The type of metric source for the horizontal pod autoscaler.
@@ -278,7 +278,7 @@ module OpenTelemetry
278
278
  # - A label `data` with empty string value SHOULD be recorded as
279
279
  # the `k8s.job.annotation.data` attribute with value `""`.
280
280
  #
281
- # @note Stability Level: development
281
+ # @note Stability Level: alpha
282
282
  K8S_JOB_ANNOTATION_LAMBDA = ->(key) { "k8s.job.annotation.#{key}" }
283
283
 
284
284
  # Must be called with a key for the full attribute name. See notes below about the expectations
@@ -296,17 +296,17 @@ module OpenTelemetry
296
296
  # - A label `data` with empty string value SHOULD be recorded as
297
297
  # the `k8s.job.label.automated` attribute with value `""`.
298
298
  #
299
- # @note Stability Level: development
299
+ # @note Stability Level: alpha
300
300
  K8S_JOB_LABEL_LAMBDA = ->(key) { "k8s.job.label.#{key}" }
301
301
 
302
302
  # The name of the Job.
303
303
  #
304
- # @note Stability Level: development
304
+ # @note Stability Level: alpha
305
305
  K8S_JOB_NAME = 'k8s.job.name'
306
306
 
307
307
  # The UID of the Job.
308
308
  #
309
- # @note Stability Level: development
309
+ # @note Stability Level: alpha
310
310
  K8S_JOB_UID = 'k8s.job.uid'
311
311
 
312
312
  # Must be called with a key for the full attribute name. See notes below about the expectations
@@ -324,7 +324,7 @@ module OpenTelemetry
324
324
  # - A label `data` with empty string value SHOULD be recorded as
325
325
  # the `k8s.namespace.annotation.data` attribute with value `""`.
326
326
  #
327
- # @note Stability Level: development
327
+ # @note Stability Level: alpha
328
328
  K8S_NAMESPACE_ANNOTATION_LAMBDA = ->(key) { "k8s.namespace.annotation.#{key}" }
329
329
 
330
330
  # Must be called with a key for the full attribute name. See notes below about the expectations
@@ -342,12 +342,12 @@ module OpenTelemetry
342
342
  # - A label `data` with empty string value SHOULD be recorded as
343
343
  # the `k8s.namespace.label.data` attribute with value `""`.
344
344
  #
345
- # @note Stability Level: development
345
+ # @note Stability Level: alpha
346
346
  K8S_NAMESPACE_LABEL_LAMBDA = ->(key) { "k8s.namespace.label.#{key}" }
347
347
 
348
348
  # The name of the namespace that the pod is running in.
349
349
  #
350
- # @note Stability Level: development
350
+ # @note Stability Level: alpha
351
351
  K8S_NAMESPACE_NAME = 'k8s.namespace.name'
352
352
 
353
353
  # The phase of the K8s namespace.
@@ -373,7 +373,7 @@ module OpenTelemetry
373
373
  # - An annotation `data` with empty string value SHOULD be recorded as
374
374
  # the `k8s.node.annotation.data` attribute with value `""`.
375
375
  #
376
- # @note Stability Level: development
376
+ # @note Stability Level: alpha
377
377
  K8S_NODE_ANNOTATION_LAMBDA = ->(key) { "k8s.node.annotation.#{key}" }
378
378
 
379
379
  # The status of the condition, one of True, False, Unknown.
@@ -414,17 +414,17 @@ module OpenTelemetry
414
414
  # - A label `data` with empty string value SHOULD be recorded as
415
415
  # the `k8s.node.label.data` attribute with value `""`.
416
416
  #
417
- # @note Stability Level: development
417
+ # @note Stability Level: alpha
418
418
  K8S_NODE_LABEL_LAMBDA = ->(key) { "k8s.node.label.#{key}" }
419
419
 
420
420
  # The name of the Node.
421
421
  #
422
- # @note Stability Level: development
422
+ # @note Stability Level: alpha
423
423
  K8S_NODE_NAME = 'k8s.node.name'
424
424
 
425
425
  # The UID of the Node.
426
426
  #
427
- # @note Stability Level: development
427
+ # @note Stability Level: alpha
428
428
  K8S_NODE_UID = 'k8s.node.uid'
429
429
 
430
430
  # Must be called with a key for the full attribute name. See notes below about the expectations
@@ -444,9 +444,29 @@ module OpenTelemetry
444
444
  # - An annotation `data` with empty string value SHOULD be recorded as
445
445
  # the `k8s.pod.annotation.data` attribute with value `""`.
446
446
  #
447
- # @note Stability Level: development
447
+ # @note Stability Level: alpha
448
448
  K8S_POD_ANNOTATION_LAMBDA = ->(key) { "k8s.pod.annotation.#{key}" }
449
449
 
450
+ # Specifies the hostname of the Pod.
451
+ #
452
+ # The K8s Pod spec has an optional hostname field, which can be used to specify a hostname.
453
+ # Refer to [K8s docs](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-hostname-and-subdomain-field)
454
+ # for more information about this field.
455
+ #
456
+ # This attribute aligns with the `hostname` field of the
457
+ # [K8s PodSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podspec-v1-core).
458
+ #
459
+ # @note Stability Level: alpha
460
+ K8S_POD_HOSTNAME = 'k8s.pod.hostname'
461
+
462
+ # IP address allocated to the Pod.
463
+ #
464
+ # This attribute aligns with the `podIP` field of the
465
+ # [K8s PodStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podstatus-v1-core).
466
+ #
467
+ # @note Stability Level: alpha
468
+ K8S_POD_IP = 'k8s.pod.ip'
469
+
450
470
  # Must be called with a key for the full attribute name. See notes below about the expectations
451
471
  # for the state of the key.
452
472
  #
@@ -464,7 +484,7 @@ module OpenTelemetry
464
484
  # - A label `data` with empty string value SHOULD be recorded as
465
485
  # the `k8s.pod.label.data` attribute with value `""`.
466
486
  #
467
- # @note Stability Level: development
487
+ # @note Stability Level: alpha
468
488
  K8S_POD_LABEL_LAMBDA = ->(key) { "k8s.pod.label.#{key}" }
469
489
 
470
490
  # Must be called with a key for the full attribute name. See notes below about the expectations
@@ -481,9 +501,21 @@ module OpenTelemetry
481
501
 
482
502
  # The name of the Pod.
483
503
  #
484
- # @note Stability Level: development
504
+ # @note Stability Level: alpha
485
505
  K8S_POD_NAME = 'k8s.pod.name'
486
506
 
507
+ # The start timestamp of the Pod.
508
+ #
509
+ # Date and time at which the object was acknowledged by the Kubelet.
510
+ # This is before the Kubelet pulled the container image(s) for the pod.
511
+ #
512
+ # This attribute aligns with the `startTime` field of the
513
+ # [K8s PodStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podstatus-v1-core),
514
+ # in ISO 8601 (RFC 3339 compatible) format.
515
+ #
516
+ # @note Stability Level: alpha
517
+ K8S_POD_START_TIME = 'k8s.pod.start_time'
518
+
487
519
  # The phase for the pod. Corresponds to the `phase` field of the: [K8s PodStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.33/#podstatus-v1-core)
488
520
  #
489
521
  # @note Stability Level: development
@@ -496,7 +528,7 @@ module OpenTelemetry
496
528
 
497
529
  # The UID of the Pod.
498
530
  #
499
- # @note Stability Level: development
531
+ # @note Stability Level: alpha
500
532
  K8S_POD_UID = 'k8s.pod.uid'
501
533
 
502
534
  # Must be called with a key for the full attribute name. See notes below about the expectations
@@ -514,7 +546,7 @@ module OpenTelemetry
514
546
  # - A label `data` with empty string value SHOULD be recorded as
515
547
  # the `k8s.replicaset.annotation.data` attribute with value `""`.
516
548
  #
517
- # @note Stability Level: development
549
+ # @note Stability Level: alpha
518
550
  K8S_REPLICASET_ANNOTATION_LAMBDA = ->(key) { "k8s.replicaset.annotation.#{key}" }
519
551
 
520
552
  # Must be called with a key for the full attribute name. See notes below about the expectations
@@ -532,17 +564,17 @@ module OpenTelemetry
532
564
  # - A label `injected` with empty string value SHOULD be recorded as
533
565
  # the `k8s.replicaset.label.injected` attribute with value `""`.
534
566
  #
535
- # @note Stability Level: development
567
+ # @note Stability Level: alpha
536
568
  K8S_REPLICASET_LABEL_LAMBDA = ->(key) { "k8s.replicaset.label.#{key}" }
537
569
 
538
570
  # The name of the ReplicaSet.
539
571
  #
540
- # @note Stability Level: development
572
+ # @note Stability Level: alpha
541
573
  K8S_REPLICASET_NAME = 'k8s.replicaset.name'
542
574
 
543
575
  # The UID of the ReplicaSet.
544
576
  #
545
- # @note Stability Level: development
577
+ # @note Stability Level: alpha
546
578
  K8S_REPLICASET_UID = 'k8s.replicaset.uid'
547
579
 
548
580
  # The name of the replication controller.
@@ -587,7 +619,7 @@ module OpenTelemetry
587
619
  # - A label `data` with empty string value SHOULD be recorded as
588
620
  # the `k8s.statefulset.annotation.data` attribute with value `""`.
589
621
  #
590
- # @note Stability Level: development
622
+ # @note Stability Level: alpha
591
623
  K8S_STATEFULSET_ANNOTATION_LAMBDA = ->(key) { "k8s.statefulset.annotation.#{key}" }
592
624
 
593
625
  # Must be called with a key for the full attribute name. See notes below about the expectations
@@ -605,17 +637,17 @@ module OpenTelemetry
605
637
  # - A label `injected` with empty string value SHOULD be recorded as
606
638
  # the `k8s.statefulset.label.injected` attribute with value `""`.
607
639
  #
608
- # @note Stability Level: development
640
+ # @note Stability Level: alpha
609
641
  K8S_STATEFULSET_LABEL_LAMBDA = ->(key) { "k8s.statefulset.label.#{key}" }
610
642
 
611
643
  # The name of the StatefulSet.
612
644
  #
613
- # @note Stability Level: development
645
+ # @note Stability Level: alpha
614
646
  K8S_STATEFULSET_NAME = 'k8s.statefulset.name'
615
647
 
616
648
  # The UID of the StatefulSet.
617
649
  #
618
- # @note Stability Level: development
650
+ # @note Stability Level: alpha
619
651
  K8S_STATEFULSET_UID = 'k8s.statefulset.uid'
620
652
 
621
653
  # The name of K8s [StorageClass](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#storageclass-v1-storage-k8s-io) object.
@@ -27,6 +27,7 @@ module OpenTelemetry
27
27
  # The Linux Slab memory state
28
28
  #
29
29
  # @note Stability Level: development
30
+ # @deprecated Replaced by `system.memory.linux.slab.state`.
30
31
  LINUX_MEMORY_SLAB_STATE = 'linux.memory.slab.state'
31
32
 
32
33
  # @!endgroup
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright The OpenTelemetry Authors
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+ # SPDX-License-Identifier: Apache-2.0
18
+ #
19
+ # This file was autogenerated. Do not edit it by hand.
20
+
21
+ module OpenTelemetry
22
+ module SemConv
23
+ module Incubating
24
+ module MCP
25
+ # @!group Attribute Names
26
+
27
+ # The name of the request or notification method.
28
+ #
29
+ # @note Stability Level: development
30
+ MCP_METHOD_NAME = 'mcp.method.name'
31
+
32
+ # The [version](https://modelcontextprotocol.io/specification/versioning) of the Model Context Protocol used.
33
+ #
34
+ # @note Stability Level: development
35
+ MCP_PROTOCOL_VERSION = 'mcp.protocol.version'
36
+
37
+ # The value of the resource uri.
38
+ #
39
+ # This is a URI of the resource provided in the following requests or notifications: `resources/read`, `resources/subscribe`, `resources/unsubscribe`, or `notifications/resources/updated`.
40
+ #
41
+ # @note Stability Level: development
42
+ MCP_RESOURCE_URI = 'mcp.resource.uri'
43
+
44
+ # Identifies [MCP session](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#session-management).
45
+ #
46
+ # @note Stability Level: development
47
+ MCP_SESSION_ID = 'mcp.session.id'
48
+
49
+ # @!endgroup
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright The OpenTelemetry Authors
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+ # SPDX-License-Identifier: Apache-2.0
18
+ #
19
+ # This file was autogenerated. Do not edit it by hand.
20
+
21
+ module OpenTelemetry
22
+ module SemConv
23
+ module Incubating
24
+ module MCP
25
+ # @!group Metrics Names
26
+
27
+ # The duration of the MCP request or notification as observed on the sender from the time it was sent until the response or ack is received.
28
+ #
29
+ # @note Stability Level: development
30
+ MCP_CLIENT_OPERATION_DURATION = 'mcp.client.operation.duration'
31
+
32
+ # The duration of the MCP session as observed on the MCP client.
33
+ #
34
+ # @note Stability Level: development
35
+ MCP_CLIENT_SESSION_DURATION = 'mcp.client.session.duration'
36
+
37
+ # MCP request or notification duration as observed on the receiver from the time it was received until the result or ack is sent.
38
+ #
39
+ # @note Stability Level: development
40
+ MCP_SERVER_OPERATION_DURATION = 'mcp.server.operation.duration'
41
+
42
+ # The duration of the MCP session as observed on the MCP server.
43
+ #
44
+ # @note Stability Level: development
45
+ MCP_SERVER_SESSION_DURATION = 'mcp.server.session.duration'
46
+
47
+ # @!endgroup
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright The OpenTelemetry Authors
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+ # SPDX-License-Identifier: Apache-2.0
18
+
19
+ # This file was autogenerated. Do not edit it by hand.
20
+
21
+ require_relative 'mcp/attributes'
22
+ require_relative 'mcp/metrics'
@@ -51,6 +51,13 @@ module OpenTelemetry
51
51
  # @note Stability Level: development
52
52
  OTEL_COMPONENT_TYPE = 'otel.component.type'
53
53
 
54
+ # Identifies the class / type of event.
55
+ #
56
+ # This attribute SHOULD be used by non-OTLP exporters when destination does not support `EventName` or equivalent field. This attribute MAY be used by applications using existing logging libraries so that it can be used to set the `EventName` field by Collector or SDK components.
57
+ #
58
+ # @note Stability Level: development
59
+ OTEL_EVENT_NAME = 'otel.event.name'
60
+
54
61
  # Deprecated. Use the `otel.scope.name` attribute
55
62
  #
56
63
  # @note Stability Level: development
@@ -32,6 +32,7 @@ module OpenTelemetry
32
32
  # - A gRPC service `rpc.service="io.opentelemetry.AuthService"` may be hosted in both a gateway, `peer.service="ExternalApiService"` and a backend, `peer.service="AuthService"`.
33
33
  #
34
34
  # @note Stability Level: development
35
+ # @deprecated Replaced by `service.peer.name`.
35
36
  PEER_SERVICE = 'peer.service'
36
37
 
37
38
  # @!endgroup
@@ -54,6 +54,23 @@ module OpenTelemetry
54
54
  # @note Stability Level: development
55
55
  PPROF_PROFILE_COMMENT = 'pprof.profile.comment'
56
56
 
57
+ # Documentation link for this profile type.
58
+ #
59
+ # The URL must be absolute and may be missing if the profile was generated by code that did not supply a link
60
+ #
61
+ # @note Stability Level: development
62
+ PPROF_PROFILE_DOC_URL = 'pprof.profile.doc_url'
63
+
64
+ # Frames with Function.function_name fully matching the regexp will be dropped from the samples, along with their successors.
65
+ #
66
+ # @note Stability Level: development
67
+ PPROF_PROFILE_DROP_FRAMES = 'pprof.profile.drop_frames'
68
+
69
+ # Frames with Function.function_name fully matching the regexp will be kept, even if it matches drop_frames.
70
+ #
71
+ # @note Stability Level: development
72
+ PPROF_PROFILE_KEEP_FRAMES = 'pprof.profile.keep_frames'
73
+
57
74
  # @!endgroup
58
75
  end
59
76
  end
@@ -59,9 +59,10 @@ module OpenTelemetry
59
59
  # @note Stability Level: development
60
60
  PROCESS_NETWORK_IO = 'process.network.io'
61
61
 
62
- # Number of file descriptors in use by the process.
62
+ # Deprecated, use `process.unix.file_descriptor.count` instead.
63
63
  #
64
64
  # @note Stability Level: development
65
+ # @deprecated Replaced by `process.unix.file_descriptor.count`.
65
66
  PROCESS_OPEN_FILE_DESCRIPTOR_COUNT = 'process.open_file_descriptor.count'
66
67
 
67
68
  # Number of page faults the process has made.
@@ -74,6 +75,11 @@ module OpenTelemetry
74
75
  # @note Stability Level: development
75
76
  PROCESS_THREAD_COUNT = 'process.thread.count'
76
77
 
78
+ # Number of unix file descriptors in use by the process.
79
+ #
80
+ # @note Stability Level: development
81
+ PROCESS_UNIX_FILE_DESCRIPTOR_COUNT = 'process.unix.file_descriptor.count'
82
+
77
83
  # The time the process has been running.
78
84
  #
79
85
  # Instrumentations SHOULD use a gauge with type `double` and measure uptime in seconds as a floating point number with the highest precision available.
@@ -82,6 +88,11 @@ module OpenTelemetry
82
88
  # @note Stability Level: development
83
89
  PROCESS_UPTIME = 'process.uptime'
84
90
 
91
+ # Number of handles held by the process.
92
+ #
93
+ # @note Stability Level: development
94
+ PROCESS_WINDOWS_HANDLE_COUNT = 'process.windows.handle.count'
95
+
85
96
  # @!endgroup
86
97
  end
87
98
  end
@@ -24,9 +24,10 @@ module OpenTelemetry
24
24
  module RPC
25
25
  # @!group Attribute Names
26
26
 
27
- # The [error codes](https://connectrpc.com//docs/protocol/#error-codes) of the Connect request. Error codes are always string values.
27
+ # Deprecated, use `rpc.response.status_code` attribute instead.
28
28
  #
29
29
  # @note Stability Level: development
30
+ # @deprecated Replaced by `rpc.response.status_code`.
30
31
  RPC_CONNECT_RPC_ERROR_CODE = 'rpc.connect_rpc.error_code'
31
32
 
32
33
  # Must be called with a key for the full attribute name. See notes below about the expectations
@@ -35,15 +36,10 @@ module OpenTelemetry
35
36
  # @example Usage
36
37
  # RPC_CONNECT_RPC_REQUEST_METADATA_LAMBDA.call('some-cool-key') #=> 'rpc.connect_rpc.request.metadata.some-cool-key'
37
38
  #
38
- # Connect request metadata, `<key>` being the normalized Connect Metadata key (lowercase), the value being the metadata values.
39
- #
40
- # Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured.
41
- # Including all request metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information.
42
- #
43
- # For example, a property `my-custom-key` with value `["1.2.3.4", "1.2.3.5"]` SHOULD be recorded as
44
- # the `rpc.connect_rpc.request.metadata.my-custom-key` attribute with value `["1.2.3.4", "1.2.3.5"]`
39
+ # Deprecated, use `rpc.request.metadata` instead.
45
40
  #
46
41
  # @note Stability Level: development
42
+ # @deprecated Replaced by `rpc.request.metadata`.
47
43
  RPC_CONNECT_RPC_REQUEST_METADATA_LAMBDA = ->(key) { "rpc.connect_rpc.request.metadata.#{key}" }
48
44
 
49
45
  # Must be called with a key for the full attribute name. See notes below about the expectations
@@ -52,15 +48,10 @@ module OpenTelemetry
52
48
  # @example Usage
53
49
  # RPC_CONNECT_RPC_RESPONSE_METADATA_LAMBDA.call('some-cool-key') #=> 'rpc.connect_rpc.response.metadata.some-cool-key'
54
50
  #
55
- # Connect response metadata, `<key>` being the normalized Connect Metadata key (lowercase), the value being the metadata values.
56
- #
57
- # Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured.
58
- # Including all response metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information.
59
- #
60
- # For example, a property `my-custom-key` with value `"attribute_value"` SHOULD be recorded as
61
- # the `rpc.connect_rpc.response.metadata.my-custom-key` attribute with value `["attribute_value"]`
51
+ # Deprecated, use `rpc.response.metadata` instead.
62
52
  #
63
53
  # @note Stability Level: development
54
+ # @deprecated Replaced by `rpc.response.metadata`.
64
55
  RPC_CONNECT_RPC_RESPONSE_METADATA_LAMBDA = ->(key) { "rpc.connect_rpc.response.metadata.#{key}" }
65
56
 
66
57
  # Must be called with a key for the full attribute name. See notes below about the expectations
@@ -69,15 +60,10 @@ module OpenTelemetry
69
60
  # @example Usage
70
61
  # RPC_GRPC_REQUEST_METADATA_LAMBDA.call('some-cool-key') #=> 'rpc.grpc.request.metadata.some-cool-key'
71
62
  #
72
- # gRPC request metadata, `<key>` being the normalized gRPC Metadata key (lowercase), the value being the metadata values.
73
- #
74
- # Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured.
75
- # Including all request metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information.
76
- #
77
- # For example, a property `my-custom-key` with value `["1.2.3.4", "1.2.3.5"]` SHOULD be recorded as
78
- # `rpc.grpc.request.metadata.my-custom-key` attribute with value `["1.2.3.4", "1.2.3.5"]`
63
+ # Deprecated, use `rpc.request.metadata` instead.
79
64
  #
80
65
  # @note Stability Level: development
66
+ # @deprecated Replaced by `rpc.request.metadata`.
81
67
  RPC_GRPC_REQUEST_METADATA_LAMBDA = ->(key) { "rpc.grpc.request.metadata.#{key}" }
82
68
 
83
69
  # Must be called with a key for the full attribute name. See notes below about the expectations
@@ -86,40 +72,40 @@ module OpenTelemetry
86
72
  # @example Usage
87
73
  # RPC_GRPC_RESPONSE_METADATA_LAMBDA.call('some-cool-key') #=> 'rpc.grpc.response.metadata.some-cool-key'
88
74
  #
89
- # gRPC response metadata, `<key>` being the normalized gRPC Metadata key (lowercase), the value being the metadata values.
90
- #
91
- # Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured.
92
- # Including all response metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information.
93
- #
94
- # For example, a property `my-custom-key` with value `["attribute_value"]` SHOULD be recorded as
95
- # the `rpc.grpc.response.metadata.my-custom-key` attribute with value `["attribute_value"]`
75
+ # Deprecated, use `rpc.response.metadata` instead.
96
76
  #
97
77
  # @note Stability Level: development
78
+ # @deprecated Replaced by `rpc.response.metadata`.
98
79
  RPC_GRPC_RESPONSE_METADATA_LAMBDA = ->(key) { "rpc.grpc.response.metadata.#{key}" }
99
80
 
100
- # The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.
81
+ # Deprecated, use string representation on the `rpc.response.status_code` attribute instead.
101
82
  #
102
83
  # @note Stability Level: development
84
+ # @deprecated Use string representation of the gRPC status code on the `rpc.response.status_code` attribute.
103
85
  RPC_GRPC_STATUS_CODE = 'rpc.grpc.status_code'
104
86
 
105
- # `error.code` property of response if it is an error response.
87
+ # Deprecated, use string representation on the `rpc.response.status_code` attribute instead.
106
88
  #
107
89
  # @note Stability Level: development
90
+ # @deprecated Use string representation of the error code on the `rpc.response.status_code` attribute.
108
91
  RPC_JSONRPC_ERROR_CODE = 'rpc.jsonrpc.error_code'
109
92
 
110
- # `error.message` property of response if it is an error response.
93
+ # Deprecated, use span status description or `error.message` attribute on other signals.
111
94
  #
112
95
  # @note Stability Level: development
96
+ # @deprecated Use the span status description or `error.message` attribute on other signals.
113
97
  RPC_JSONRPC_ERROR_MESSAGE = 'rpc.jsonrpc.error_message'
114
98
 
115
- # `id` property of request or response. Since protocol allows id to be int, string, `null` or missing (for notifications), value is expected to be cast to string for simplicity. Use empty string in case of `null` value. Omit entirely if this is a notification.
99
+ # Deprecated, use `jsonrpc.request.id` instead.
116
100
  #
117
101
  # @note Stability Level: development
102
+ # @deprecated Replaced by `jsonrpc.request.id`.
118
103
  RPC_JSONRPC_REQUEST_ID = 'rpc.jsonrpc.request_id'
119
104
 
120
- # Protocol version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0 doesn't specify this, the value can be omitted.
105
+ # Deprecated, use `jsonrpc.protocol.version` instead.
121
106
  #
122
107
  # @note Stability Level: development
108
+ # @deprecated Replaced by `jsonrpc.protocol.version`.
123
109
  RPC_JSONRPC_VERSION = 'rpc.jsonrpc.version'
124
110
 
125
111
  # Compressed size of the message in bytes.
@@ -144,21 +130,101 @@ module OpenTelemetry
144
130
  # @note Stability Level: development
145
131
  RPC_MESSAGE_UNCOMPRESSED_SIZE = 'rpc.message.uncompressed_size'
146
132
 
147
- # This is the logical name of the method from the RPC interface perspective.
133
+ # The fully-qualified logical name of the method from the RPC interface perspective.
134
+ #
135
+ # The method name MAY have unbounded cardinality in edge or error cases.
136
+ #
137
+ # Some RPC frameworks or libraries provide a fixed set of recognized methods
138
+ # for client stubs and server implementations. Instrumentations for such
139
+ # frameworks MUST set this attribute to the original method name only
140
+ # when the method is recognized by the framework or library.
141
+ #
142
+ # When the method is not recognized, for example, when the server receives
143
+ # a request for a method that is not predefined on the server, or when
144
+ # instrumentation is not able to reliably detect if the method is predefined,
145
+ # the attribute MUST be set to `_OTHER`. In such cases, tracing
146
+ # instrumentations MUST also set `rpc.method_original` attribute to
147
+ # the original method value.
148
+ #
149
+ # If the RPC instrumentation could end up converting valid RPC methods to
150
+ # `_OTHER`, then it SHOULD provide a way to configure the list of recognized
151
+ # RPC methods.
152
+ #
153
+ # The `rpc.method` can be different from the name of any implementing
154
+ # method/function.
155
+ # The `code.function.name` attribute may be used to record the fully-qualified
156
+ # method actually executing the call on the server side, or the
157
+ # RPC client stub method on the client side.
148
158
  #
149
159
  # @note Stability Level: development
150
160
  RPC_METHOD = 'rpc.method'
151
161
 
152
- # The full (logical) name of the service being called, including its package name, if applicable.
162
+ # The original name of the method used by the client.
153
163
  #
154
164
  # @note Stability Level: development
165
+ RPC_METHOD_ORIGINAL = 'rpc.method_original'
166
+
167
+ # Must be called with a key for the full attribute name. See notes below about the expectations
168
+ # for the state of the key.
169
+ #
170
+ # @example Usage
171
+ # RPC_REQUEST_METADATA_LAMBDA.call('some-cool-key') #=> 'rpc.request.metadata.some-cool-key'
172
+ #
173
+ # RPC request metadata, `<key>` being the normalized RPC metadata key (lowercase), the value being the metadata values.
174
+ #
175
+ # Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured.
176
+ # Including all request metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information.
177
+ #
178
+ # For example, a property `my-custom-key` with value `["1.2.3.4", "1.2.3.5"]` SHOULD be recorded as
179
+ # `rpc.request.metadata.my-custom-key` attribute with value `["1.2.3.4", "1.2.3.5"]`
180
+ #
181
+ # @note Stability Level: development
182
+ RPC_REQUEST_METADATA_LAMBDA = ->(key) { "rpc.request.metadata.#{key}" }
183
+
184
+ # Must be called with a key for the full attribute name. See notes below about the expectations
185
+ # for the state of the key.
186
+ #
187
+ # @example Usage
188
+ # RPC_RESPONSE_METADATA_LAMBDA.call('some-cool-key') #=> 'rpc.response.metadata.some-cool-key'
189
+ #
190
+ # RPC response metadata, `<key>` being the normalized RPC metadata key (lowercase), the value being the metadata values.
191
+ #
192
+ # Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured.
193
+ # Including all response metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information.
194
+ #
195
+ # For example, a property `my-custom-key` with value `["attribute_value"]` SHOULD be recorded as
196
+ # the `rpc.response.metadata.my-custom-key` attribute with value `["attribute_value"]`
197
+ #
198
+ # @note Stability Level: development
199
+ RPC_RESPONSE_METADATA_LAMBDA = ->(key) { "rpc.response.metadata.#{key}" }
200
+
201
+ # Status code of the RPC returned by the RPC server or generated by the client
202
+ #
203
+ # Usually it represents an error code, but may also represent partial success, warning, or differentiate between various types of successful outcomes.
204
+ # Semantic conventions for individual RPC frameworks SHOULD document what `rpc.response.status_code` means in the context of that system and which values are considered to represent errors.
205
+ #
206
+ # @note Stability Level: development
207
+ RPC_RESPONSE_STATUS_CODE = 'rpc.response.status_code'
208
+
209
+ # Deprecated, use fully-qualified `rpc.method` instead.
210
+ #
211
+ # @note Stability Level: development
212
+ # @deprecated Value should be included in `rpc.method` which is expected to be a fully-qualified name.
155
213
  RPC_SERVICE = 'rpc.service'
156
214
 
157
- # A string identifying the remoting system. See below for a list of well-known identifiers.
215
+ # Deprecated, use `rpc.system.name` attribute instead.
158
216
  #
159
217
  # @note Stability Level: development
218
+ # @deprecated Replaced by `rpc.system.name`.
160
219
  RPC_SYSTEM = 'rpc.system'
161
220
 
221
+ # The Remote Procedure Call (RPC) system.
222
+ #
223
+ # The client and server RPC systems may differ for the same RPC interaction. For example, a client may use Apache Dubbo or Connect RPC to communicate with a server that uses gRPC since both protocols provide compatibility with gRPC.
224
+ #
225
+ # @note Stability Level: development
226
+ RPC_SYSTEM_NAME = 'rpc.system.name'
227
+
162
228
  # @!endgroup
163
229
  end
164
230
  end
@@ -24,7 +24,15 @@ module OpenTelemetry
24
24
  module RPC
25
25
  # @!group Metrics Names
26
26
 
27
- # Measures the duration of outbound RPC.
27
+ # Measures the duration of outbound remote procedure calls (RPC).
28
+ #
29
+ # When this metric is reported alongside an RPC client span, the metric value
30
+ # SHOULD be the same as the RPC client span duration.
31
+ #
32
+ # @note Stability Level: development
33
+ RPC_CLIENT_CALL_DURATION = 'rpc.client.call.duration'
34
+
35
+ # Deprecated, use `rpc.client.call.duration` instead. Note: the unit also changed from `ms` to `s`.
28
36
  #
29
37
  # While streaming RPCs may record this metric as start-of-batch
30
38
  # to end-of-batch, it's hard to interpret in practice.
@@ -32,6 +40,7 @@ module OpenTelemetry
32
40
  # **Streaming**: N/A.
33
41
  #
34
42
  # @note Stability Level: development
43
+ # @deprecated Replaced by `rpc.client.call.duration` with unit `s`.
35
44
  RPC_CLIENT_DURATION = 'rpc.client.duration'
36
45
 
37
46
  # Measures the size of RPC request messages (uncompressed).
@@ -68,7 +77,15 @@ module OpenTelemetry
68
77
  # @deprecated Removed, no replacement at this time.
69
78
  RPC_CLIENT_RESPONSES_PER_RPC = 'rpc.client.responses_per_rpc'
70
79
 
71
- # Measures the duration of inbound RPC.
80
+ # Measures the duration of inbound remote procedure calls (RPC).
81
+ #
82
+ # When this metric is reported alongside an RPC server span, the metric value
83
+ # SHOULD be the same as the RPC server span duration.
84
+ #
85
+ # @note Stability Level: development
86
+ RPC_SERVER_CALL_DURATION = 'rpc.server.call.duration'
87
+
88
+ # Deprecated, use `rpc.server.call.duration` instead. Note: the unit also changed from `ms` to `s`.
72
89
  #
73
90
  # While streaming RPCs may record this metric as start-of-batch
74
91
  # to end-of-batch, it's hard to interpret in practice.
@@ -76,6 +93,7 @@ module OpenTelemetry
76
93
  # **Streaming**: N/A.
77
94
  #
78
95
  # @note Stability Level: development
96
+ # @deprecated Replaced by `rpc.server.call.duration` with unit `s`.
79
97
  RPC_SERVER_DURATION = 'rpc.server.duration'
80
98
 
81
99
  # Measures the size of RPC request messages (uncompressed).
@@ -72,7 +72,17 @@ module OpenTelemetry
72
72
  # @note Stability Level: development
73
73
  SERVICE_NAMESPACE = 'service.namespace'
74
74
 
75
- # The version string of the service API or implementation. The format is not defined by these conventions.
75
+ # Logical name of the service on the other side of the connection. SHOULD be equal to the actual [`service.name`](/docs/resource/README.md#service) resource attribute of the remote service if any.
76
+ #
77
+ # @note Stability Level: development
78
+ SERVICE_PEER_NAME = 'service.peer.name'
79
+
80
+ # Logical namespace of the service on the other side of the connection. SHOULD be equal to the actual [`service.namespace`](/docs/resource/README.md#service) resource attribute of the remote service if any.
81
+ #
82
+ # @note Stability Level: development
83
+ SERVICE_PEER_NAMESPACE = 'service.peer.namespace'
84
+
85
+ # The version string of the service component. The format is not defined by these conventions.
76
86
  #
77
87
  # @note Stability Level: stable
78
88
  #
@@ -61,6 +61,11 @@ module OpenTelemetry
61
61
  # @note Stability Level: development
62
62
  SYSTEM_FILESYSTEM_TYPE = 'system.filesystem.type'
63
63
 
64
+ # The Linux Slab memory state
65
+ #
66
+ # @note Stability Level: development
67
+ SYSTEM_MEMORY_LINUX_SLAB_STATE = 'system.memory.linux.slab.state'
68
+
64
69
  # The memory state
65
70
  #
66
71
  # @note Stability Level: development
@@ -113,6 +113,23 @@ module OpenTelemetry
113
113
  # @note Stability Level: development
114
114
  SYSTEM_FILESYSTEM_UTILIZATION = 'system.filesystem.utilization'
115
115
 
116
+ # The number of packets transferred.
117
+ #
118
+ # @note Stability Level: development
119
+ # @deprecated Replaced by `system.memory.linux.available`.
120
+ SYSTEM_LINUX_MEMORY_AVAILABLE = 'system.linux.memory.available'
121
+
122
+ # The number of packets transferred.
123
+ #
124
+ # @note Stability Level: development
125
+ # @deprecated Replaced by `system.memory.linux.slab.usage`.
126
+ SYSTEM_LINUX_MEMORY_SLAB_USAGE = 'system.linux.memory.slab.usage'
127
+
128
+ # Total virtual memory available in the system.
129
+ #
130
+ # @note Stability Level: development
131
+ SYSTEM_MEMORY_LIMIT = 'system.memory.limit'
132
+
116
133
  # An estimate of how much memory is available for starting new applications, without causing swapping.
117
134
  #
118
135
  # This is an alternative to `system.memory.usage` metric with `state=free`.
@@ -122,21 +139,16 @@ module OpenTelemetry
122
139
  # See also `MemAvailable` in [/proc/meminfo](https://man7.org/linux/man-pages/man5/proc.5.html).
123
140
  #
124
141
  # @note Stability Level: development
125
- SYSTEM_LINUX_MEMORY_AVAILABLE = 'system.linux.memory.available'
142
+ SYSTEM_MEMORY_LINUX_AVAILABLE = 'system.memory.linux.available'
126
143
 
127
144
  # Reports the memory used by the Linux kernel for managing caches of frequently used objects.
128
145
  #
129
- # The sum over the `reclaimable` and `unreclaimable` state values in `linux.memory.slab.usage` SHOULD be equal to the total slab memory available on the system.
146
+ # The sum over the `reclaimable` and `unreclaimable` state values in `memory.linux.slab.usage` SHOULD be equal to the total slab memory available on the system.
130
147
  # Note that the total slab memory is not constant and may vary over time.
131
148
  # See also the [Slab allocator](https://blogs.oracle.com/linux/post/understanding-linux-kernel-memory-statistics) and `Slab` in [/proc/meminfo](https://man7.org/linux/man-pages/man5/proc.5.html).
132
149
  #
133
150
  # @note Stability Level: development
134
- SYSTEM_LINUX_MEMORY_SLAB_USAGE = 'system.linux.memory.slab.usage'
135
-
136
- # Total virtual memory available in the system.
137
- #
138
- # @note Stability Level: development
139
- SYSTEM_MEMORY_LIMIT = 'system.memory.limit'
151
+ SYSTEM_MEMORY_LINUX_SLAB_USAGE = 'system.memory.linux.slab.usage'
140
152
 
141
153
  # Shared memory used (mostly by tmpfs).
142
154
  #
@@ -28,7 +28,7 @@ module OpenTelemetry
28
28
  #
29
29
  # Examples of where the value can be extracted from:
30
30
  #
31
- # | Language or platform | Source |
31
+ # | Language or platform | Source |
32
32
  # | --- | --- |
33
33
  # | JVM | `Thread.currentThread().threadId()` |
34
34
  # | .NET | `Thread.CurrentThread.ManagedThreadId` |
@@ -44,7 +44,7 @@ module OpenTelemetry
44
44
  #
45
45
  # Examples of where the value can be extracted from:
46
46
  #
47
- # | Language or platform | Source |
47
+ # | Language or platform | Source |
48
48
  # | --- | --- |
49
49
  # | JVM | `Thread.currentThread().getName()` |
50
50
  # | .NET | `Thread.CurrentThread.Name` |
@@ -26,7 +26,7 @@ module OpenTelemetry
26
26
 
27
27
  # Name of the user-agent extracted from original. Usually refers to the browser's name.
28
28
  #
29
- # [Example](https://www.whatsmyua.info) of extracting browser's name from original string. In the case of using a user-agent for non-browser products, such as microservices with multiple names/versions inside the `user_agent.original`, the most significant name SHOULD be selected. In such a scenario it should align with `user_agent.version`
29
+ # [Example](https://uaparser.dev/#demo) of extracting browser's name from original string. In the case of using a user-agent for non-browser products, such as microservices with multiple names/versions inside the `user_agent.original`, the most significant name SHOULD be selected. In such a scenario it should align with `user_agent.version`
30
30
  #
31
31
  # @note Stability Level: development
32
32
  USER_AGENT_NAME = 'user_agent.name'
@@ -61,7 +61,7 @@ module OpenTelemetry
61
61
 
62
62
  # Version of the user-agent extracted from original. Usually refers to the browser's version
63
63
  #
64
- # [Example](https://www.whatsmyua.info) of extracting browser's version from original string. In the case of using a user-agent for non-browser products, such as microservices with multiple names/versions inside the `user_agent.original`, the most significant version SHOULD be selected. In such a scenario it should align with `user_agent.name`
64
+ # [Example](https://uaparser.dev/#demo) of extracting browser's version from original string. In the case of using a user-agent for non-browser products, such as microservices with multiple names/versions inside the `user_agent.original`, the most significant version SHOULD be selected. In such a scenario it should align with `user_agent.name`
65
65
  #
66
66
  # @note Stability Level: development
67
67
  USER_AGENT_VERSION = 'user_agent.version'
@@ -30,7 +30,7 @@ module OpenTelemetry
30
30
  # @note Stability Level: stable
31
31
  SERVICE_NAME = 'service.name'
32
32
 
33
- # The version string of the service API or implementation. The format is not defined by these conventions.
33
+ # The version string of the service component. The format is not defined by these conventions.
34
34
  #
35
35
  # @note Stability Level: stable
36
36
  SERVICE_VERSION = 'service.version'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opentelemetry-semantic_conventions
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.38.0
4
+ version: 1.39.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenTelemetry Authors
@@ -159,6 +159,8 @@ files:
159
159
  - lib/opentelemetry/semconv/incubating/hw/metrics.rb
160
160
  - lib/opentelemetry/semconv/incubating/ios.rb
161
161
  - lib/opentelemetry/semconv/incubating/ios/attributes.rb
162
+ - lib/opentelemetry/semconv/incubating/jsonrpc.rb
163
+ - lib/opentelemetry/semconv/incubating/jsonrpc/attributes.rb
162
164
  - lib/opentelemetry/semconv/incubating/jvm.rb
163
165
  - lib/opentelemetry/semconv/incubating/jvm/attributes.rb
164
166
  - lib/opentelemetry/semconv/incubating/jvm/metrics.rb
@@ -173,6 +175,9 @@ files:
173
175
  - lib/opentelemetry/semconv/incubating/log/attributes.rb
174
176
  - lib/opentelemetry/semconv/incubating/mainframe.rb
175
177
  - lib/opentelemetry/semconv/incubating/mainframe/attributes.rb
178
+ - lib/opentelemetry/semconv/incubating/mcp.rb
179
+ - lib/opentelemetry/semconv/incubating/mcp/attributes.rb
180
+ - lib/opentelemetry/semconv/incubating/mcp/metrics.rb
176
181
  - lib/opentelemetry/semconv/incubating/message.rb
177
182
  - lib/opentelemetry/semconv/incubating/message/attributes.rb
178
183
  - lib/opentelemetry/semconv/incubating/messaging.rb
@@ -286,10 +291,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
286
291
  licenses:
287
292
  - Apache-2.0
288
293
  metadata:
289
- changelog_uri: https://rubydoc.info/gems/opentelemetry-semantic_conventions/1.38.0/file/CHANGELOG.md
290
- source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/opentelemetry-semantic_conventions/v1.38.0/semantic_conventions
294
+ changelog_uri: https://rubydoc.info/gems/opentelemetry-semantic_conventions/1.39.0/file/CHANGELOG.md
295
+ source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/opentelemetry-semantic_conventions/v1.39.0/semantic_conventions
291
296
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
292
- documentation_uri: https://rubydoc.info/gems/opentelemetry-semantic_conventions/1.38.0
297
+ documentation_uri: https://rubydoc.info/gems/opentelemetry-semantic_conventions/1.39.0
293
298
  rdoc_options: []
294
299
  require_paths:
295
300
  - lib