opentelemetry-semantic_conventions 1.39.0 → 1.41.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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/lib/opentelemetry/semantic_conventions/version.rb +2 -2
  4. data/lib/opentelemetry/semconv/db/attributes.rb +5 -0
  5. data/lib/opentelemetry/semconv/deployment/attributes.rb +42 -0
  6. data/lib/opentelemetry/semconv/deployment.rb +21 -0
  7. data/lib/opentelemetry/semconv/error/attributes.rb +6 -0
  8. data/lib/opentelemetry/semconv/exception/attributes.rb +8 -0
  9. data/lib/opentelemetry/semconv/http/attributes.rb +9 -2
  10. data/lib/opentelemetry/semconv/incubating/aws/attributes.rb +2 -2
  11. data/lib/opentelemetry/semconv/incubating/cicd/attributes.rb +2 -0
  12. data/lib/opentelemetry/semconv/incubating/container/attributes.rb +5 -5
  13. data/lib/opentelemetry/semconv/incubating/db/attributes.rb +5 -0
  14. data/lib/opentelemetry/semconv/incubating/deployment/attributes.rb +3 -1
  15. data/lib/opentelemetry/semconv/incubating/error/attributes.rb +7 -0
  16. data/lib/opentelemetry/semconv/incubating/exception/attributes.rb +8 -0
  17. data/lib/opentelemetry/semconv/incubating/feature_flag/attributes.rb +7 -2
  18. data/lib/opentelemetry/semconv/incubating/gcp/attributes.rb +15 -0
  19. data/lib/opentelemetry/semconv/incubating/gen_ai/attributes.rb +76 -7
  20. data/lib/opentelemetry/semconv/incubating/gen_ai/metrics.rb +14 -0
  21. data/lib/opentelemetry/semconv/incubating/go/attributes.rb +19 -0
  22. data/lib/opentelemetry/semconv/incubating/go/metrics.rb +21 -0
  23. data/lib/opentelemetry/semconv/incubating/graphql/attributes.rb +1 -1
  24. data/lib/opentelemetry/semconv/incubating/http/attributes.rb +9 -2
  25. data/lib/opentelemetry/semconv/incubating/hw/attributes.rb +1 -1
  26. data/lib/opentelemetry/semconv/incubating/jvm/metrics.rb +5 -0
  27. data/lib/opentelemetry/semconv/incubating/k8s/attributes.rb +295 -42
  28. data/lib/opentelemetry/semconv/incubating/k8s/metrics.rb +219 -15
  29. data/lib/opentelemetry/semconv/incubating/message/attributes.rb +8 -8
  30. data/lib/opentelemetry/semconv/incubating/nodejs/metrics.rb +7 -7
  31. data/lib/opentelemetry/semconv/incubating/openai/attributes.rb +5 -0
  32. data/lib/opentelemetry/semconv/incubating/oracle/attributes.rb +79 -0
  33. data/lib/opentelemetry/semconv/incubating/oracle.rb +21 -0
  34. data/lib/opentelemetry/semconv/incubating/oracle_cloud/attributes.rb +38 -0
  35. data/lib/opentelemetry/semconv/incubating/oracle_cloud.rb +21 -0
  36. data/lib/opentelemetry/semconv/incubating/otel/attributes.rb +3 -1
  37. data/lib/opentelemetry/semconv/incubating/pprof/attributes.rb +14 -0
  38. data/lib/opentelemetry/semconv/incubating/process/attributes.rb +14 -1
  39. data/lib/opentelemetry/semconv/incubating/process/metrics.rb +1 -1
  40. data/lib/opentelemetry/semconv/incubating/rpc/attributes.rb +10 -6
  41. data/lib/opentelemetry/semconv/incubating/rpc/metrics.rb +8 -4
  42. data/lib/opentelemetry/semconv/incubating/service/attributes.rb +15 -3
  43. data/lib/opentelemetry/semconv/incubating/system/attributes.rb +5 -0
  44. data/lib/opentelemetry/semconv/incubating/system/metrics.rb +48 -4
  45. data/lib/opentelemetry/semconv/incubating/telemetry/attributes.rb +6 -2
  46. data/lib/opentelemetry/semconv/incubating/url/attributes.rb +19 -0
  47. data/lib/opentelemetry/semconv/incubating/v8js/attributes.rb +5 -0
  48. data/lib/opentelemetry/semconv/incubating/v8js/metrics.rb +7 -0
  49. data/lib/opentelemetry/semconv/otel/attributes.rb +7 -0
  50. data/lib/opentelemetry/semconv/service/attributes.rb +41 -1
  51. data/lib/opentelemetry/semconv/telemetry/attributes.rb +13 -0
  52. data/lib/opentelemetry/semconv/url/attributes.rb +19 -0
  53. metadata +10 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e49a9dbae06f7fa323d27e16cba48f7df45460602acd8969ac0a3172506b76b3
4
- data.tar.gz: 8134974d85744209fc52e303de680691d4d049b5e54dff4b9a743a8b89afddf3
3
+ metadata.gz: 4c0338c46c79107495c86964d690d5f0db7b3cb222ed683ea4c81dd97040032b
4
+ data.tar.gz: a213a8550ea2b4aab219df00677c06f1f9f98f39a67c09ff82dab070a5013c09
5
5
  SHA512:
6
- metadata.gz: f5c32ee66b18e56efbf598212ab1a0c5365a51ceda54bb6ad17bedae8fb8d75c6b8e82cb4ecd45f6a26cdf5d4d2c3b9830040f5efa9c6422a2fcc223b1db88a3
7
- data.tar.gz: 46073d50823730d0b1c34c70a24982ea0de43692deb627a0da289c7b21ee0ff0067adbd7429fc52565728c30e0fe84886b8a93dd7f1684ce0cf71d196a566d4e
6
+ metadata.gz: 7ef135235380d18753a8fe2e12bd3967a85ad7502e7704644efe573e5966ca1399d91f5f157b0fa7811d06a11fe19551b5d52d55cfd0460c9dad624bc062b836
7
+ data.tar.gz: 96bf1f471baa38882224599fe57fcb61b5a1d9acac4af2458050ca6c92f855cf90e84dffd606ed4855825543bd7ed8d34308c548c6a39d832e1236b4b8a42f06
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Release History: opentelemetry-semantic_conventions
2
2
 
3
+ ### v1.41.0 / 2026-06-10
4
+
5
+ * ADDED: Update dependency open-telemetry/semantic-conventions to v1.41.1 (#2184)
6
+
7
+ ### v1.40.0 / 2026-06-09
8
+
9
+ * ADDED: Update dependency open-telemetry/semantic-conventions to v1.40.0 (#2173)
10
+
3
11
  ### v1.39.0 / 2026-06-03
4
12
 
5
13
  * ADDED: Update dependency open-telemetry/semantic-conventions to v1.39.0 (#2137)
@@ -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.39.0'
10
+ SPEC_VERSION = '1.41.1'
11
11
  # Release version of this gem. May not match SPEC_VERSION until gem is released after a spec update.
12
- VERSION = '1.39.0'
12
+ VERSION = '1.41.0'
13
13
  end
14
14
  end
@@ -86,6 +86,11 @@ module OpenTelemetry
86
86
  # [Generating query summary](/docs/db/database-spans.md#generating-a-summary-of-the-query)
87
87
  # section.
88
88
  #
89
+ # For batch operations, if the individual operations are known to have the same query summary
90
+ # then that query summary SHOULD be used prepended by `BATCH `,
91
+ # otherwise `db.query.summary` SHOULD be `BATCH` or some other database
92
+ # system specific term if more applicable.
93
+ #
89
94
  # @note Stability Level: stable
90
95
  DB_QUERY_SUMMARY = 'db.query.summary'
91
96
 
@@ -0,0 +1,42 @@
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 DEPLOYMENT
24
+ # @!group Attribute Names
25
+
26
+ # Name of the [deployment environment](https://wikipedia.org/wiki/Deployment_environment) (aka deployment tier).
27
+ #
28
+ # `deployment.environment.name` does not affect the uniqueness constraints defined through
29
+ # the `service.namespace`, `service.name` and `service.instance.id` resource attributes.
30
+ # This implies that resources carrying the following attribute combinations MUST be
31
+ # considered to be identifying the same service:
32
+ #
33
+ # - `service.name=frontend`, `deployment.environment.name=production`
34
+ # - `service.name=frontend`, `deployment.environment.name=staging`.
35
+ #
36
+ # @note Stability Level: stable
37
+ DEPLOYMENT_ENVIRONMENT_NAME = 'deployment.environment.name'
38
+
39
+ # @!endgroup
40
+ end
41
+ end
42
+ 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 'deployment/attributes'
@@ -30,6 +30,12 @@ module OpenTelemetry
30
30
  # When `error.type` is set to a type (e.g., an exception type), its
31
31
  # canonical class name identifying the type within the artifact SHOULD be used.
32
32
  #
33
+ # If the recorded error type is a wrapper that is not meaningful for
34
+ # failure classification, instrumentation MAY use the type of the inner
35
+ # error instead. For example, in Go, errors created with `fmt.Errorf`
36
+ # using `%w` MAY be unwrapped when the wrapper type does not help
37
+ # classify the failure.
38
+ #
33
39
  # Instrumentations SHOULD document the list of errors they report.
34
40
  #
35
41
  # The cardinality of `error.type` within one instrumentation library SHOULD be low.
@@ -31,6 +31,8 @@ module OpenTelemetry
31
31
 
32
32
  # The exception message.
33
33
  #
34
+ # > [!WARNING]> This attribute may contain sensitive information.
35
+ #
34
36
  # @note Stability Level: stable
35
37
  EXCEPTION_MESSAGE = 'exception.message'
36
38
 
@@ -41,6 +43,12 @@ module OpenTelemetry
41
43
 
42
44
  # The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it.
43
45
  #
46
+ # If the recorded exception type is a wrapper that is not meaningful for
47
+ # failure classification, instrumentation MAY use the type of the inner
48
+ # exception instead. For example, in Go, errors created with `fmt.Errorf`
49
+ # using `%w` MAY be unwrapped when the wrapper type does not help
50
+ # classify the failure.
51
+ #
44
52
  # @note Stability Level: stable
45
53
  EXCEPTION_TYPE = 'exception.type'
46
54
 
@@ -62,8 +62,15 @@ module OpenTelemetry
62
62
  #
63
63
  # If the HTTP instrumentation could end up converting valid HTTP request methods to `_OTHER`, then it MUST provide a way to override
64
64
  # the list of known HTTP methods. If this override is done via environment variable, then the environment variable MUST be named
65
- # OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods
66
- # (this list MUST be a full override of the default known method, it is not a list of known methods in addition to the defaults).
65
+ # OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods.
66
+ #
67
+ #
68
+ # If this override is done via declarative configuration, then the list MUST be configurable via the `known_methods` property
69
+ # (an array of case-sensitive strings with minimum items 0) under `.instrumentation/development.general.http.client` and/or
70
+ # `.instrumentation/development.general.http.server`.
71
+ #
72
+ # In either case, this list MUST be a full override of the default known methods,
73
+ # it is not a list of known methods in addition to the defaults.
67
74
  #
68
75
  # HTTP method names are case-sensitive and `http.request.method` attribute value MUST match a known HTTP method name exactly.
69
76
  # Instrumentations for specific web frameworks that consider HTTP methods to be case insensitive, SHOULD populate a canonical equivalent.
@@ -201,7 +201,7 @@ module OpenTelemetry
201
201
  # @note Stability Level: development
202
202
  AWS_LAMBDA_INVOKED_ARN = 'aws.lambda.invoked_arn'
203
203
 
204
- # The UUID of the [AWS Lambda EvenSource Mapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html). An event source is mapped to a lambda function. It's contents are read by Lambda and used to trigger a function. This isn't available in the lambda execution context or the lambda runtime environtment. This is going to be populated by the AWS SDK for each language when that UUID is present. Some of these operations are Create/Delete/Get/List/Update EventSourceMapping.
204
+ # The UUID of the [AWS Lambda EvenSource Mapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html). An event source is mapped to a lambda function. It's contents are read by Lambda and used to trigger a function. This isn't available in the lambda execution context or the lambda runtime environment. This is going to be populated by the AWS SDK for each language when that UUID is present. Some of these operations are Create/Delete/Get/List/Update EventSourceMapping.
205
205
  #
206
206
  # @note Stability Level: development
207
207
  AWS_LAMBDA_RESOURCE_MAPPING_ID = 'aws.lambda.resource_mapping.id'
@@ -313,7 +313,7 @@ module OpenTelemetry
313
313
  # @note Stability Level: development
314
314
  AWS_S3_UPLOAD_ID = 'aws.s3.upload_id'
315
315
 
316
- # The ARN of the Secret stored in the Secrets Mangger
316
+ # The ARN of the Secret stored in the Secrets Manager
317
317
  #
318
318
  # @note Stability Level: development
319
319
  AWS_SECRETSMANAGER_SECRET_ARN = 'aws.secretsmanager.secret.arn'
@@ -61,6 +61,8 @@ module OpenTelemetry
61
61
 
62
62
  # The unique identifier of a task run within a pipeline.
63
63
  #
64
+ # For a given pipeline run and task, the `cicd.pipeline.task.run.id` MUST be unique within that run. For the same task across different runs of the same pipeline, the `cicd.pipeline.task.run.id` MAY remain the same, enabling correlation of `cicd.pipeline.task.run.result` values across multiple pipeline runs.
65
+ #
64
66
  # @note Stability Level: development
65
67
  CICD_PIPELINE_TASK_RUN_ID = 'cicd.pipeline.task.run.id'
66
68
 
@@ -63,7 +63,7 @@ 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: alpha
66
+ # @note Stability Level: release_candidate
67
67
  CONTAINER_ID = 'container.id'
68
68
 
69
69
  # Runtime specific image identifier. Usually a hash algorithm followed by a UUID.
@@ -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: alpha
80
+ # @note Stability Level: release_candidate
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
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: alpha
87
+ # @note Stability Level: release_candidate
88
88
  CONTAINER_IMAGE_REPO_DIGESTS = 'container.image.repo_digests'
89
89
 
90
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: alpha
92
+ # @note Stability Level: release_candidate
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
@@ -128,7 +128,7 @@ module OpenTelemetry
128
128
  # @deprecated Replaced by `container.runtime.name`.
129
129
  CONTAINER_RUNTIME = 'container.runtime'
130
130
 
131
- # A description about the runtime which could include, for example details about the CRI/API version being used or other customisations.
131
+ # A description about the runtime which could include, for example details about the CRI/API version being used or other customizations.
132
132
  #
133
133
  # @note Stability Level: development
134
134
  CONTAINER_RUNTIME_DESCRIPTION = 'container.runtime.description'
@@ -331,6 +331,11 @@ module OpenTelemetry
331
331
  # [Generating query summary](/docs/db/database-spans.md#generating-a-summary-of-the-query)
332
332
  # section.
333
333
  #
334
+ # For batch operations, if the individual operations are known to have the same query summary
335
+ # then that query summary SHOULD be used prepended by `BATCH `,
336
+ # otherwise `db.query.summary` SHOULD be `BATCH` or some other database
337
+ # system specific term if more applicable.
338
+ #
334
339
  # @note Stability Level: stable
335
340
  #
336
341
  # @deprecated Now available in the stable namespace at {OpenTelemetry::SemConv::DB::DB_QUERY_SUMMARY}.
@@ -40,7 +40,9 @@ module OpenTelemetry
40
40
  # - `service.name=frontend`, `deployment.environment.name=production`
41
41
  # - `service.name=frontend`, `deployment.environment.name=staging`.
42
42
  #
43
- # @note Stability Level: development
43
+ # @note Stability Level: stable
44
+ #
45
+ # @deprecated Now available in the stable namespace at {OpenTelemetry::SemConv::DEPLOYMENT::DEPLOYMENT_ENVIRONMENT_NAME}.
44
46
  DEPLOYMENT_ENVIRONMENT_NAME = 'deployment.environment.name'
45
47
 
46
48
  # The id of the deployment.
@@ -33,6 +33,7 @@ module OpenTelemetry
33
33
  # `error.message` is NOT RECOMMENDED for metrics or spans due to its unbounded cardinality and overlap with span status.
34
34
  #
35
35
  # @note Stability Level: development
36
+ # @deprecated Use domain-specific error message attribute. For example, use `feature_flag.error.message` for feature flag errors.
36
37
  ERROR_MESSAGE = 'error.message'
37
38
 
38
39
  # Describes a class of error the operation ended with.
@@ -42,6 +43,12 @@ module OpenTelemetry
42
43
  # When `error.type` is set to a type (e.g., an exception type), its
43
44
  # canonical class name identifying the type within the artifact SHOULD be used.
44
45
  #
46
+ # If the recorded error type is a wrapper that is not meaningful for
47
+ # failure classification, instrumentation MAY use the type of the inner
48
+ # error instead. For example, in Go, errors created with `fmt.Errorf`
49
+ # using `%w` MAY be unwrapped when the wrapper type does not help
50
+ # classify the failure.
51
+ #
45
52
  # Instrumentations SHOULD document the list of errors they report.
46
53
  #
47
54
  # The cardinality of `error.type` within one instrumentation library SHOULD be low.
@@ -32,6 +32,8 @@ module OpenTelemetry
32
32
 
33
33
  # The exception message.
34
34
  #
35
+ # > [!WARNING]> This attribute may contain sensitive information.
36
+ #
35
37
  # @note Stability Level: stable
36
38
  #
37
39
  # @deprecated Now available in the stable namespace at {OpenTelemetry::SemConv::EXCEPTION::EXCEPTION_MESSAGE}.
@@ -46,6 +48,12 @@ module OpenTelemetry
46
48
 
47
49
  # The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it.
48
50
  #
51
+ # If the recorded exception type is a wrapper that is not meaningful for
52
+ # failure classification, instrumentation MAY use the type of the inner
53
+ # exception instead. For example, in Go, errors created with `fmt.Errorf`
54
+ # using `%w` MAY be unwrapped when the wrapper type does not help
55
+ # classify the failure.
56
+ #
49
57
  # @note Stability Level: stable
50
58
  #
51
59
  # @deprecated Now available in the stable namespace at {OpenTelemetry::SemConv::EXCEPTION::EXCEPTION_TYPE}.
@@ -29,10 +29,15 @@ module OpenTelemetry
29
29
  # @note Stability Level: release_candidate
30
30
  FEATURE_FLAG_CONTEXT_ID = 'feature_flag.context.id'
31
31
 
32
- # Deprecated, use `error.message` instead.
32
+ # A message providing more detail about an error that occurred during feature flag evaluation in human-readable form.
33
+ #
34
+ # @note Stability Level: release_candidate
35
+ FEATURE_FLAG_ERROR_MESSAGE = 'feature_flag.error.message'
36
+
37
+ # Deprecated, use `feature_flag.error.message` instead.
33
38
  #
34
39
  # @note Stability Level: development
35
- # @deprecated Replaced by `error.message`.
40
+ # @deprecated Replaced by `feature_flag.error.message`.
36
41
  FEATURE_FLAG_EVALUATION_ERROR_MESSAGE = 'feature_flag.evaluation.error.message'
37
42
 
38
43
  # Deprecated, use `feature_flag.result.reason` instead.
@@ -149,6 +149,21 @@ module OpenTelemetry
149
149
  # @note Stability Level: development
150
150
  GCP_GCE_INSTANCE_NAME = 'gcp.gce.instance.name'
151
151
 
152
+ # The name of the Instance Group Manager (IGM) that manages this VM, if any.
153
+ #
154
+ # @note Stability Level: development
155
+ GCP_GCE_INSTANCE_GROUP_MANAGER_NAME = 'gcp.gce.instance_group_manager.name'
156
+
157
+ # The region of a **regional** Instance Group Manager (e.g., `us-central1`). Set this **only** when the IGM is regional.
158
+ #
159
+ # @note Stability Level: development
160
+ GCP_GCE_INSTANCE_GROUP_MANAGER_REGION = 'gcp.gce.instance_group_manager.region'
161
+
162
+ # The zone of a **zonal** Instance Group Manager (e.g., `us-central1-a`). Set this **only** when the IGM is zonal.
163
+ #
164
+ # @note Stability Level: development
165
+ GCP_GCE_INSTANCE_GROUP_MANAGER_ZONE = 'gcp.gce.instance_group_manager.zone'
166
+
152
167
  # @!endgroup
153
168
  end
154
169
  end
@@ -39,6 +39,11 @@ module OpenTelemetry
39
39
  # @note Stability Level: development
40
40
  GEN_AI_AGENT_NAME = 'gen_ai.agent.name'
41
41
 
42
+ # The version of the GenAI agent.
43
+ #
44
+ # @note Stability Level: development
45
+ GEN_AI_AGENT_VERSION = 'gen_ai.agent.version'
46
+
42
47
  # Deprecated, use Event API to report completions contents.
43
48
  #
44
49
  # @note Stability Level: development
@@ -252,6 +257,11 @@ module OpenTelemetry
252
257
  # @note Stability Level: development
253
258
  GEN_AI_REQUEST_STOP_SEQUENCES = 'gen_ai.request.stop_sequences'
254
259
 
260
+ # Indicates whether the GenAI request was made in streaming mode.
261
+ #
262
+ # @note Stability Level: development
263
+ GEN_AI_REQUEST_STREAM = 'gen_ai.request.stream'
264
+
255
265
  # The temperature setting for the GenAI request.
256
266
  #
257
267
  # @note Stability Level: development
@@ -282,6 +292,32 @@ module OpenTelemetry
282
292
  # @note Stability Level: development
283
293
  GEN_AI_RESPONSE_MODEL = 'gen_ai.response.model'
284
294
 
295
+ # Time to first chunk in a streaming response, measured from request issuance, in seconds. The value is measured from when the client issues the generation request to when the first chunk is received in the response stream.
296
+ #
297
+ # @note Stability Level: development
298
+ GEN_AI_RESPONSE_TIME_TO_FIRST_CHUNK = 'gen_ai.response.time_to_first_chunk'
299
+
300
+ # The documents retrieved.
301
+ #
302
+ # Instrumentations MUST follow [Retrieval documents JSON schema](/docs/gen-ai/gen-ai-retrieval-documents.json).
303
+ # When the attribute is recorded on events, it MUST be recorded in structured
304
+ # form. When recorded on spans, it MAY be recorded as a JSON string if structured
305
+ # format is not supported and SHOULD be recorded in structured form otherwise.
306
+ #
307
+ # Each document object SHOULD contain at least the following properties:
308
+ # `id` (string): A unique identifier for the document, `score` (double): The relevance score of the document
309
+ #
310
+ # @note Stability Level: development
311
+ GEN_AI_RETRIEVAL_DOCUMENTS = 'gen_ai.retrieval.documents'
312
+
313
+ # The query text used for retrieval.
314
+ #
315
+ # > [!Warning]
316
+ # > This attribute may contain sensitive information.
317
+ #
318
+ # @note Stability Level: development
319
+ GEN_AI_RETRIEVAL_QUERY_TEXT = 'gen_ai.retrieval.query.text'
320
+
285
321
  # Deprecated, use `gen_ai.provider.name` instead.
286
322
  #
287
323
  # @note Stability Level: development
@@ -348,17 +384,17 @@ module OpenTelemetry
348
384
  # @note Stability Level: development
349
385
  GEN_AI_TOOL_CALL_RESULT = 'gen_ai.tool.call.result'
350
386
 
351
- # The list of source system tool definitions available to the GenAI agent or model.
387
+ # The list of tool definitions available to the GenAI agent or model.
352
388
  #
353
- # The value of this attribute matches source system tool definition format.
389
+ # Instrumentations MUST follow [Tool Definitions JSON Schema](/docs/gen-ai/gen-ai-tool-definitions.json).
354
390
  #
355
- # It's expected to be an array of objects where each object represents a tool definition. In case a serialized string is available
356
- # to the instrumentation, the instrumentation SHOULD do the best effort to
357
- # deserialize it to an array. When recorded on spans, it MAY be recorded as a JSON string if structured format is not supported and SHOULD be recorded in structured form otherwise.
391
+ # When the attribute is recorded on events, it MUST be recorded in structured
392
+ # form. When recorded on spans, it MAY be recorded as a JSON string if structured
393
+ # format is not supported and SHOULD be recorded in structured form otherwise.
358
394
  #
359
395
  # Since this attribute could be large, it's NOT RECOMMENDED to populate
360
- # it by default. Instrumentations MAY provide a way to enable
361
- # populating this attribute.
396
+ # non-required properties by default. Instrumentations MAY provide a way
397
+ # to enable populating optional properties.
362
398
  #
363
399
  # @note Stability Level: development
364
400
  GEN_AI_TOOL_DEFINITIONS = 'gen_ai.tool.definitions'
@@ -384,6 +420,20 @@ module OpenTelemetry
384
420
  # @note Stability Level: development
385
421
  GEN_AI_TOOL_TYPE = 'gen_ai.tool.type'
386
422
 
423
+ # The number of input tokens written to a provider-managed cache.
424
+ #
425
+ # The value SHOULD be included in `gen_ai.usage.input_tokens`.
426
+ #
427
+ # @note Stability Level: development
428
+ GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS = 'gen_ai.usage.cache_creation.input_tokens'
429
+
430
+ # The number of input tokens served from a provider-managed cache.
431
+ #
432
+ # The value SHOULD be included in `gen_ai.usage.input_tokens`.
433
+ #
434
+ # @note Stability Level: development
435
+ GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS = 'gen_ai.usage.cache_read.input_tokens'
436
+
387
437
  # Deprecated, use `gen_ai.usage.output_tokens` instead.
388
438
  #
389
439
  # @note Stability Level: development
@@ -392,6 +442,11 @@ module OpenTelemetry
392
442
 
393
443
  # The number of tokens used in the GenAI input (prompt).
394
444
  #
445
+ # This value SHOULD include all types of input tokens, including cached tokens.
446
+ # Instrumentations SHOULD make a best effort to populate this value, using a total
447
+ # provided by the provider when available or, depending on the provider API,
448
+ # by summing different token types parsed from the provider output.
449
+ #
395
450
  # @note Stability Level: development
396
451
  GEN_AI_USAGE_INPUT_TOKENS = 'gen_ai.usage.input_tokens'
397
452
 
@@ -406,6 +461,20 @@ module OpenTelemetry
406
461
  # @deprecated Replaced by `gen_ai.usage.input_tokens`.
407
462
  GEN_AI_USAGE_PROMPT_TOKENS = 'gen_ai.usage.prompt_tokens'
408
463
 
464
+ # The number of output tokens used for reasoning (e.g. chain-of-thought, extended thinking).
465
+ #
466
+ # The value SHOULD be included in `gen_ai.usage.output_tokens`.
467
+ #
468
+ # @note Stability Level: development
469
+ GEN_AI_USAGE_REASONING_OUTPUT_TOKENS = 'gen_ai.usage.reasoning.output_tokens'
470
+
471
+ # Human-readable name of the GenAI workflow provided by the application.
472
+ #
473
+ # This attribute can be populated in different frameworks eg: name of the first chain in LangChain OR name of the crew in CrewAI.
474
+ #
475
+ # @note Stability Level: development
476
+ GEN_AI_WORKFLOW_NAME = 'gen_ai.workflow.name'
477
+
409
478
  # @!endgroup
410
479
  end
411
480
  end
@@ -29,6 +29,20 @@ module OpenTelemetry
29
29
  # @note Stability Level: development
30
30
  GEN_AI_CLIENT_OPERATION_DURATION = 'gen_ai.client.operation.duration'
31
31
 
32
+ # Time per output chunk, recorded for each chunk received after the first one, measured as the time elapsed from the end of the previous chunk to the end of the current chunk.
33
+ #
34
+ # This metrics SHOULD be reported for streaming calls and SHOULD NOT be reported otherwise.
35
+ #
36
+ # @note Stability Level: development
37
+ GEN_AI_CLIENT_OPERATION_TIME_PER_OUTPUT_CHUNK = 'gen_ai.client.operation.time_per_output_chunk'
38
+
39
+ # Time to receive the first chunk, measured from when the client issues the generation request to when the first chunk is received in the response stream.
40
+ #
41
+ # This metrics SHOULD be reported for streaming calls and SHOULD NOT be reported otherwise.
42
+ #
43
+ # @note Stability Level: development
44
+ GEN_AI_CLIENT_OPERATION_TIME_TO_FIRST_CHUNK = 'gen_ai.client.operation.time_to_first_chunk'
45
+
32
46
  # Number of input and output tokens used.
33
47
  #
34
48
  # @note Stability Level: development
@@ -24,6 +24,25 @@ module OpenTelemetry
24
24
  module GO
25
25
  # @!group Attribute Names
26
26
 
27
+ # The detailed state of the CPU.
28
+ #
29
+ # Value SHOULD match the specific CPU class reported by the Go runtime under `/cpu/classes/...`. The list of possible values is subject to change with the Go version used.
30
+ #
31
+ # @note Stability Level: development
32
+ GO_CPU_DETAILED_STATE = 'go.cpu.detailed_state'
33
+
34
+ # The state of the CPU.
35
+ #
36
+ # @note Stability Level: development
37
+ GO_CPU_STATE = 'go.cpu.state'
38
+
39
+ # The detailed type of memory.
40
+ #
41
+ # Value SHOULD match the specific memory class reported by the Go runtime under `/memory/classes/...`. The list of possible values is subject to change with the Go version used.
42
+ #
43
+ # @note Stability Level: development
44
+ GO_MEMORY_DETAILED_TYPE = 'go.memory.detailed_type'
45
+
27
46
  # The type of memory.
28
47
  #
29
48
  # @note Stability Level: development
@@ -31,6 +31,13 @@ module OpenTelemetry
31
31
  # @note Stability Level: development
32
32
  GO_CONFIG_GOGC = 'go.config.gogc'
33
33
 
34
+ # Estimated CPU time spent by the Go runtime.
35
+ #
36
+ # Computed from `/cpu/classes/...` metrics. This metric is an overestimate, and not directly comparable to system CPU time measurements. Compare only with other `go.cpu.time` metrics.
37
+ #
38
+ # @note Stability Level: development
39
+ GO_CPU_TIME = 'go.cpu.time'
40
+
34
41
  # Count of live goroutines.
35
42
  #
36
43
  # Computed from `/sched/goroutines:goroutines`.
@@ -52,6 +59,13 @@ module OpenTelemetry
52
59
  # @note Stability Level: development
53
60
  GO_MEMORY_ALLOCATIONS = 'go.memory.allocations'
54
61
 
62
+ # Number of completed GC cycles.
63
+ #
64
+ # Computed from `/gc/cycles/total:gc-cycles`.
65
+ #
66
+ # @note Stability Level: development
67
+ GO_MEMORY_GC_CYCLES = 'go.memory.gc.cycles'
68
+
55
69
  # Heap size target for the end of the GC cycle.
56
70
  #
57
71
  # Computed from `/gc/heap/goal:bytes`.
@@ -59,6 +73,13 @@ module OpenTelemetry
59
73
  # @note Stability Level: development
60
74
  GO_MEMORY_GC_GOAL = 'go.memory.gc.goal'
61
75
 
76
+ # Distribution of individual GC-related stop-the-world pause latencies. This is the time from deciding to stop the world until the world is started again.
77
+ #
78
+ # Computed from `/sched/pauses/total/gc:seconds`. Bucket boundaries are provided by the runtime, and are subject to change.
79
+ #
80
+ # @note Stability Level: development
81
+ GO_MEMORY_GC_PAUSE_DURATION = 'go.memory.gc.pause.duration'
82
+
62
83
  # Go runtime memory limit configured by the user, if a limit exists.
63
84
  #
64
85
  # Computed from `/gc/gomemlimit:bytes`. This metric is excluded if the limit obtained from the Go runtime is math.MaxInt64.
@@ -26,7 +26,7 @@ module OpenTelemetry
26
26
 
27
27
  # The GraphQL document being executed.
28
28
  #
29
- # The value may be sanitized to exclude sensitive information.
29
+ # If instrumentation can reliably identify and redact sensitive information it SHOULD do it.
30
30
  #
31
31
  # @note Stability Level: development
32
32
  GRAPHQL_DOCUMENT = 'graphql.document'
@@ -99,8 +99,15 @@ module OpenTelemetry
99
99
  #
100
100
  # If the HTTP instrumentation could end up converting valid HTTP request methods to `_OTHER`, then it MUST provide a way to override
101
101
  # the list of known HTTP methods. If this override is done via environment variable, then the environment variable MUST be named
102
- # OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods
103
- # (this list MUST be a full override of the default known method, it is not a list of known methods in addition to the defaults).
102
+ # OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods.
103
+ #
104
+ #
105
+ # If this override is done via declarative configuration, then the list MUST be configurable via the `known_methods` property
106
+ # (an array of case-sensitive strings with minimum items 0) under `.instrumentation/development.general.http.client` and/or
107
+ # `.instrumentation/development.general.http.server`.
108
+ #
109
+ # In either case, this list MUST be a full override of the default known methods,
110
+ # it is not a list of known methods in addition to the defaults.
104
111
  #
105
112
  # HTTP method names are case-sensitive and `http.request.method` attribute value MUST match a known HTTP method name exactly.
106
113
  # Instrumentations for specific web frameworks that consider HTTP methods to be case insensitive, SHOULD populate a canonical equivalent.
@@ -24,7 +24,7 @@ module OpenTelemetry
24
24
  module HW
25
25
  # @!group Attribute Names
26
26
 
27
- # Design capacity in Watts-hours or Amper-hours
27
+ # Design capacity in Watts-hours or Ampere-hours
28
28
  #
29
29
  # @note Stability Level: development
30
30
  HW_BATTERY_CAPACITY = 'hw.battery.capacity'
@@ -94,6 +94,11 @@ module OpenTelemetry
94
94
  # @note Stability Level: development
95
95
  JVM_FILE_DESCRIPTOR_COUNT = 'jvm.file_descriptor.count'
96
96
 
97
+ # Measure of max open file descriptors as reported by the JVM.
98
+ #
99
+ # @note Stability Level: development
100
+ JVM_FILE_DESCRIPTOR_LIMIT = 'jvm.file_descriptor.limit'
101
+
97
102
  # Duration of JVM garbage collection actions.
98
103
  #
99
104
  # @note Stability Level: stable