opentelemetry-semantic_conventions 1.37.1 → 1.38.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 (40) 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/http/attributes.rb +12 -3
  5. data/lib/opentelemetry/semconv/incubating/app/attributes.rb +14 -0
  6. data/lib/opentelemetry/semconv/incubating/aws/attributes.rb +1 -1
  7. data/lib/opentelemetry/semconv/incubating/azure/attributes.rb +1 -1
  8. data/lib/opentelemetry/semconv/incubating/container/attributes.rb +3 -3
  9. data/lib/opentelemetry/semconv/incubating/container/metrics.rb +33 -0
  10. data/lib/opentelemetry/semconv/incubating/db/attributes.rb +7 -4
  11. data/lib/opentelemetry/semconv/incubating/dns/attributes.rb +1 -1
  12. data/lib/opentelemetry/semconv/incubating/enduser/attributes.rb +1 -1
  13. data/lib/opentelemetry/semconv/incubating/event/attributes.rb +1 -1
  14. data/lib/opentelemetry/semconv/incubating/faas/attributes.rb +1 -1
  15. data/lib/opentelemetry/semconv/incubating/gcp/attributes.rb +45 -0
  16. data/lib/opentelemetry/semconv/incubating/gen_ai/attributes.rb +66 -0
  17. data/lib/opentelemetry/semconv/incubating/http/attributes.rb +14 -5
  18. data/lib/opentelemetry/semconv/incubating/k8s/attributes.rb +11 -1
  19. data/lib/opentelemetry/semconv/incubating/k8s/metrics.rb +355 -29
  20. data/lib/opentelemetry/semconv/incubating/messaging/attributes.rb +1 -1
  21. data/lib/opentelemetry/semconv/incubating/nfs/attributes.rb +41 -0
  22. data/lib/opentelemetry/semconv/incubating/nfs/metrics.rb +134 -0
  23. data/lib/opentelemetry/semconv/incubating/nfs.rb +22 -0
  24. data/lib/opentelemetry/semconv/incubating/onc_rpc/attributes.rb +51 -0
  25. data/lib/opentelemetry/semconv/incubating/onc_rpc.rb +21 -0
  26. data/lib/opentelemetry/semconv/incubating/openshift/attributes.rb +41 -0
  27. data/lib/opentelemetry/semconv/incubating/openshift/metrics.rb +243 -0
  28. data/lib/opentelemetry/semconv/incubating/openshift.rb +22 -0
  29. data/lib/opentelemetry/semconv/incubating/peer/attributes.rb +5 -0
  30. data/lib/opentelemetry/semconv/incubating/pprof/attributes.rb +61 -0
  31. data/lib/opentelemetry/semconv/incubating/pprof.rb +21 -0
  32. data/lib/opentelemetry/semconv/incubating/process/attributes.rb +8 -2
  33. data/lib/opentelemetry/semconv/incubating/rpc/attributes.rb +1 -5
  34. data/lib/opentelemetry/semconv/incubating/rpc/metrics.rb +4 -0
  35. data/lib/opentelemetry/semconv/incubating/system/attributes.rb +12 -4
  36. data/lib/opentelemetry/semconv/incubating/system/metrics.rb +29 -11
  37. data/lib/opentelemetry/semconv/incubating/thread/attributes.rb +21 -0
  38. data/lib/opentelemetry/semconv/incubating/v8js/metrics.rb +18 -6
  39. data/lib/opentelemetry/semconv/incubating/vcs/attributes.rb +1 -1
  40. metadata +15 -89
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 266fdf2702c166bf304d39da3add16b30935c97c0645386ab508abd5d210d787
4
- data.tar.gz: 5120eadf8c2749f70e15299a4ee5668fc92efd4e330934f45346e8a603e17a7a
3
+ metadata.gz: 7f2fada6bbb37ecc40d58611b0d01eef0b300b58e48188c17612eade244b4a17
4
+ data.tar.gz: e5ad6b628fb2d0ba8c82c8b8bbba9e47e6f39dc886fd72b363275a1d237c5bcf
5
5
  SHA512:
6
- metadata.gz: b04705a2d24ff643c8df644e1bc009ddc0f05e258d2c8ec16430c71b87ab1689d4dc6b7a58768672ab16ab270219f9a4e56654a31384a81574e0f0fba36124aa
7
- data.tar.gz: 7cd6d2c314df1bd86a9a0e63f88747d98b946aa753e8ca6f35fe718f49c31010adeb078b5c71464a4db9da21446133aff8503f861cfdba85bd4fd198dd865c3c
6
+ metadata.gz: 6c4ef25f9bea68b4555d1e471f3fc3011d0145d3946b5394a6c8f30dfc8f9ff47afff1a5bb1d983d6a99a3e6ed341b131841dba4bb127959bd7b83d99878ab2a
7
+ data.tar.gz: 19868afdd8e0d8838100446b83006801267d4b552586886c1bd24e0b06c867e164dd977bc7b967285ed2df61475c9db7d4f7d806a50f4312c1207e68486ffc97
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Release History: opentelemetry-semantic_conventions
2
2
 
3
+ ### v1.38.0 / 2026-05-21
4
+
5
+ * ADDED: Update semantic conventions to v1.38.0 (#2136)
6
+
3
7
  ### v1.37.1 / 2026-05-12
4
8
 
5
9
  * ADDED: Add git tag to source URI in gemspec (#2101)
@@ -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.37.0'
10
+ SPEC_VERSION = '1.38.0'
11
11
  # Release version of this gem. May not match SPEC_VERSION until gem is released after a spec update.
12
- VERSION = '1.37.1'
12
+ VERSION = '1.38.0'
13
13
  end
14
14
  end
@@ -54,8 +54,9 @@ module OpenTelemetry
54
54
  # HTTP request method.
55
55
  #
56
56
  # HTTP request method value SHOULD be "known" to the instrumentation.
57
- # By default, this convention defines "known" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods)
58
- # and the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html).
57
+ # By default, this convention defines "known" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods),
58
+ # the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)
59
+ # and the QUERY method defined in [httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1).
59
60
  #
60
61
  # If the HTTP request method is not known to instrumentation, it MUST set the `http.request.method` attribute to `_OTHER`.
61
62
  #
@@ -115,11 +116,19 @@ module OpenTelemetry
115
116
  # @note Stability Level: stable
116
117
  HTTP_RESPONSE_STATUS_CODE = 'http.response.status_code'
117
118
 
118
- # The matched route, that is, the path template in the format used by the respective server framework.
119
+ # The matched route template for the request. This MUST be low-cardinality and include all static path segments, with dynamic path segments represented with placeholders.
119
120
  #
120
121
  # MUST NOT be populated when this is not supported by the HTTP server framework as the route attribute should have low-cardinality and the URI path can NOT substitute it.
121
122
  # SHOULD include the [application root](/docs/http/http-spans.md#http-server-definitions) if there is one.
122
123
  #
124
+ # A static path segment is a part of the route template with a fixed, low-cardinality value. This includes literal strings like `/users/` and placeholders that
125
+ # are constrained to a finite, predefined set of values, e.g. `{controller}` or `{action}`.
126
+ #
127
+ # A dynamic path segment is a placeholder for a value that can have high cardinality and is not constrained to a predefined list like static path segments.
128
+ #
129
+ # Instrumentations SHOULD use routing information provided by the corresponding web framework. They SHOULD pick the most precise source of routing information and MAY
130
+ # support custom route formatting. Instrumentations SHOULD document the format and the API used to obtain the route string.
131
+ #
123
132
  # @note Stability Level: stable
124
133
  HTTP_ROUTE = 'http.route'
125
134
 
@@ -79,6 +79,20 @@ module OpenTelemetry
79
79
  # @note Stability Level: development
80
80
  APP_SCREEN_COORDINATE_Y = 'app.screen.coordinate.y'
81
81
 
82
+ # An identifier that uniquely differentiates this screen from other screens in the same application.
83
+ #
84
+ # A screen represents only the part of the device display drawn by the app. It typically contains multiple widgets or UI components and is larger in scope than individual widgets. Multiple screens can coexist on the same display simultaneously (e.g., split view on tablets).
85
+ #
86
+ # @note Stability Level: development
87
+ APP_SCREEN_ID = 'app.screen.id'
88
+
89
+ # The name of an application screen.
90
+ #
91
+ # A screen represents only the part of the device display drawn by the app. It typically contains multiple widgets or UI components and is larger in scope than individual widgets. Multiple screens can coexist on the same display simultaneously (e.g., split view on tablets).
92
+ #
93
+ # @note Stability Level: development
94
+ APP_SCREEN_NAME = 'app.screen.name'
95
+
82
96
  # An identifier that uniquely differentiates this widget from other widgets in the same application.
83
97
  #
84
98
  # A widget is an application component, typically an on-screen visual GUI element.
@@ -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 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.
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.
205
205
  #
206
206
  # @note Stability Level: development
207
207
  AWS_LAMBDA_RESOURCE_MAPPING_ID = 'aws.lambda.resource_mapping.id'
@@ -41,7 +41,7 @@ module OpenTelemetry
41
41
 
42
42
  # List of regions contacted during operation in the order that they were contacted. If there is more than one region listed, it indicates that the operation was performed on multiple regions i.e. cross-regional call.
43
43
  #
44
- # Region name matches the format of `displayName` in [Azure Location API](https://learn.microsoft.com/rest/api/subscription/subscriptions/list-locations?view=rest-subscription-2021-10-01&tabs=HTTP#location)
44
+ # Region name matches the format of `displayName` in [Azure Location API](https://learn.microsoft.com/rest/api/resources/subscriptions/list-locations)
45
45
  #
46
46
  # @note Stability Level: development
47
47
  AZURE_COSMOSDB_OPERATION_CONTACTED_REGIONS = 'azure.cosmosdb.operation.contacted_regions'
@@ -68,7 +68,7 @@ module OpenTelemetry
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/engine/api/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.43/#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
  #
@@ -82,12 +82,12 @@ module OpenTelemetry
82
82
 
83
83
  # Repo digests of the container image as provided by the container runtime.
84
84
  #
85
- # [Docker](https://docs.docker.com/engine/api/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.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.
86
86
  #
87
87
  # @note Stability Level: development
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/engine/api/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.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>`.
91
91
  #
92
92
  # @note Stability Level: development
93
93
  CONTAINER_IMAGE_TAGS = 'container.image.tags'
@@ -77,6 +77,31 @@ module OpenTelemetry
77
77
  # @note Stability Level: development
78
78
  CONTAINER_FILESYSTEM_USAGE = 'container.filesystem.usage'
79
79
 
80
+ # Container memory available.
81
+ #
82
+ # Available memory for use. This is defined as the memory limit - workingSetBytes. If memory limit is undefined, the available bytes is omitted.
83
+ # In general, this metric can be derived from [cadvisor](https://github.com/google/cadvisor/blob/v0.53.0/docs/storage/prometheus.md#prometheus-container-metrics) and by subtracting the `container_memory_working_set_bytes` metric from the `container_spec_memory_limit_bytes` metric.
84
+ # In K8s, this metric is derived from the [MemoryStats.AvailableBytes](https://pkg.go.dev/k8s.io/kubelet@v0.34.0/pkg/apis/stats/v1alpha1#MemoryStats) field of the [PodStats.Memory](https://pkg.go.dev/k8s.io/kubelet@v0.34.0/pkg/apis/stats/v1alpha1#PodStats) of the Kubelet's stats API.
85
+ #
86
+ # @note Stability Level: development
87
+ CONTAINER_MEMORY_AVAILABLE = 'container.memory.available'
88
+
89
+ # Container memory paging faults.
90
+ #
91
+ # In general, this metric can be derived from [cadvisor](https://github.com/google/cadvisor/blob/v0.53.0/docs/storage/prometheus.md#prometheus-container-metrics) and specifically the `container_memory_failures_total{failure_type=pgfault, scope=container}` and `container_memory_failures_total{failure_type=pgmajfault, scope=container}`metric.
92
+ # In K8s, this metric is derived from the [MemoryStats.PageFaults](https://pkg.go.dev/k8s.io/kubelet@v0.34.0/pkg/apis/stats/v1alpha1#MemoryStats) and [MemoryStats.MajorPageFaults](https://pkg.go.dev/k8s.io/kubelet@v0.34.0/pkg/apis/stats/v1alpha1#MemoryStats) field of the [PodStats.Memory](https://pkg.go.dev/k8s.io/kubelet@v0.34.0/pkg/apis/stats/v1alpha1#PodStats) of the Kubelet's stats API.
93
+ #
94
+ # @note Stability Level: development
95
+ CONTAINER_MEMORY_PAGING_FAULTS = 'container.memory.paging.faults'
96
+
97
+ # Container memory RSS.
98
+ #
99
+ # In general, this metric can be derived from [cadvisor](https://github.com/google/cadvisor/blob/v0.53.0/docs/storage/prometheus.md#prometheus-container-metrics) and specifically the `container_memory_rss` metric.
100
+ # In K8s, this metric is derived from the [MemoryStats.RSSBytes](https://pkg.go.dev/k8s.io/kubelet@v0.34.0/pkg/apis/stats/v1alpha1#MemoryStats) field of the [PodStats.Memory](https://pkg.go.dev/k8s.io/kubelet@v0.34.0/pkg/apis/stats/v1alpha1#PodStats) of the Kubelet's stats API.
101
+ #
102
+ # @note Stability Level: development
103
+ CONTAINER_MEMORY_RSS = 'container.memory.rss'
104
+
80
105
  # Memory usage of the container.
81
106
  #
82
107
  # Memory usage of the container.
@@ -84,6 +109,14 @@ module OpenTelemetry
84
109
  # @note Stability Level: development
85
110
  CONTAINER_MEMORY_USAGE = 'container.memory.usage'
86
111
 
112
+ # Container memory working set.
113
+ #
114
+ # In general, this metric can be derived from [cadvisor](https://github.com/google/cadvisor/blob/v0.53.0/docs/storage/prometheus.md#prometheus-container-metrics) and specifically the `container_memory_working_set_bytes` metric.
115
+ # In K8s, this metric is derived from the [MemoryStats.WorkingSetBytes](https://pkg.go.dev/k8s.io/kubelet@v0.34.0/pkg/apis/stats/v1alpha1#MemoryStats) field of the [PodStats.Memory](https://pkg.go.dev/k8s.io/kubelet@v0.34.0/pkg/apis/stats/v1alpha1#PodStats) of the Kubelet's stats API.
116
+ #
117
+ # @note Stability Level: development
118
+ CONTAINER_MEMORY_WORKING_SET = 'container.memory.working_set'
119
+
87
120
  # Network bytes for the container.
88
121
  #
89
122
  # The number of bytes sent/received on all network interfaces by the container.
@@ -162,7 +162,7 @@ module OpenTelemetry
162
162
  # Deprecated, use `db.response.status_code` instead.
163
163
  #
164
164
  # @note Stability Level: development
165
- # @deprecated Replaced by `db.response.status_code`.
165
+ # @deprecated Use `db.response.status_code` instead.
166
166
  DB_COSMOSDB_STATUS_CODE = 'db.cosmosdb.status_code'
167
167
 
168
168
  # Deprecated, use `azure.cosmosdb.response.sub_status_code` instead.
@@ -304,14 +304,17 @@ module OpenTelemetry
304
304
  # `db.query.parameter.<key>` SHOULD match
305
305
  # up with the parameterized placeholders present in `db.query.text`.
306
306
  #
307
+ # It is RECOMMENDED to capture the value as provided by the application
308
+ # without attempting to do any case normalization.
309
+ #
307
310
  # `db.query.parameter.<key>` SHOULD NOT be captured on batch operations.
308
311
  #
309
312
  # Examples:
310
313
  #
311
314
  # - For a query `SELECT * FROM users where username = %s` with the parameter `"jdoe"`,
312
315
  # the attribute `db.query.parameter.0` SHOULD be set to `"jdoe"`.
313
- # - For a query `"SELECT * FROM users WHERE username = %(username)s;` with parameter
314
- # `username = "jdoe"`, the attribute `db.query.parameter.username` SHOULD be set to `"jdoe"`.
316
+ # - For a query `"SELECT * FROM users WHERE username = %(userName)s;` with parameter
317
+ # `userName = "jdoe"`, the attribute `db.query.parameter.userName` SHOULD be set to `"jdoe"`.
315
318
  #
316
319
  # @note Stability Level: development
317
320
  DB_QUERY_PARAMETER_LAMBDA = ->(key) { "db.query.parameter.#{key}" }
@@ -347,7 +350,7 @@ module OpenTelemetry
347
350
  # Deprecated, use `db.namespace` instead.
348
351
  #
349
352
  # @note Stability Level: development
350
- # @deprecated Replaced by `db.namespace`.
353
+ # @deprecated Uncategorized.
351
354
  DB_REDIS_DATABASE_INDEX = 'db.redis.database_index'
352
355
 
353
356
  # Number of rows returned by the operation.
@@ -31,7 +31,7 @@ module OpenTelemetry
31
31
 
32
32
  # The name being queried.
33
33
  #
34
- # If the name field contains non-printable characters (below 32 or above 126), those characters should be represented as escaped base 10 integers (\DDD). Back slashes and quotes should be escaped. Tabs, carriage returns, and line feeds should be converted to \t, \r, and \n respectively.
34
+ # The name represents the queried domain name as it appears in the DNS query without any additional normalization.
35
35
  #
36
36
  # @note Stability Level: development
37
37
  DNS_QUESTION_NAME = 'dns.question.name'
@@ -47,7 +47,7 @@ module OpenTelemetry
47
47
  # Deprecated, use `user.roles` instead.
48
48
  #
49
49
  # @note Stability Level: development
50
- # @deprecated Replaced by `user.roles`.
50
+ # @deprecated Use `user.roles` instead.
51
51
  ENDUSER_ROLE = 'enduser.role'
52
52
 
53
53
  # Deprecated, no replacement at this time.
@@ -27,7 +27,7 @@ module OpenTelemetry
27
27
  # Identifies the class / type of event.
28
28
  #
29
29
  # @note Stability Level: development
30
- # @deprecated Replaced by EventName top-level field on the LogRecord.
30
+ # @deprecated The value of this attribute MUST now be set as the value of the EventName field on the LogRecord to indicate that the LogRecord represents an Event.
31
31
  EVENT_NAME = 'event.name'
32
32
 
33
33
  # @!endgroup
@@ -135,7 +135,7 @@ module OpenTelemetry
135
135
  # - **Google Cloud Run (Services):** The [revision](https://cloud.google.com/run/docs/managing/revisions)
136
136
  # (i.e., the function name plus the revision suffix).
137
137
  # - **Google Cloud Functions:** The value of the
138
- # [`K_REVISION` environment variable](https://cloud.google.com/functions/docs/env-var#runtime_environment_variables_set_automatically).
138
+ # [`K_REVISION` environment variable](https://cloud.google.com/run/docs/container-contract#services-env-vars).
139
139
  # - **Azure Functions:** Not applicable. Do not set this attribute.
140
140
  #
141
141
  # @note Stability Level: development
@@ -77,6 +77,51 @@ module OpenTelemetry
77
77
  # @note Stability Level: development
78
78
  GCP_APPHUB_WORKLOAD_ID = 'gcp.apphub.workload.id'
79
79
 
80
+ # The container within GCP where the AppHub destination application is defined.
81
+ #
82
+ # @note Stability Level: development
83
+ GCP_APPHUB_DESTINATION_APPLICATION_CONTAINER = 'gcp.apphub_destination.application.container'
84
+
85
+ # The name of the destination application as configured in AppHub.
86
+ #
87
+ # @note Stability Level: development
88
+ GCP_APPHUB_DESTINATION_APPLICATION_ID = 'gcp.apphub_destination.application.id'
89
+
90
+ # The GCP zone or region where the destination application is defined.
91
+ #
92
+ # @note Stability Level: development
93
+ GCP_APPHUB_DESTINATION_APPLICATION_LOCATION = 'gcp.apphub_destination.application.location'
94
+
95
+ # Criticality of a destination workload indicates its importance to the business as specified in [AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type)
96
+ #
97
+ # @note Stability Level: development
98
+ GCP_APPHUB_DESTINATION_SERVICE_CRITICALITY_TYPE = 'gcp.apphub_destination.service.criticality_type'
99
+
100
+ # Software lifecycle stage of a destination service as defined [AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type_1)
101
+ #
102
+ # @note Stability Level: development
103
+ GCP_APPHUB_DESTINATION_SERVICE_ENVIRONMENT_TYPE = 'gcp.apphub_destination.service.environment_type'
104
+
105
+ # The name of the destination service as configured in AppHub.
106
+ #
107
+ # @note Stability Level: development
108
+ GCP_APPHUB_DESTINATION_SERVICE_ID = 'gcp.apphub_destination.service.id'
109
+
110
+ # Criticality of a destination workload indicates its importance to the business as specified in [AppHub type enum](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type)
111
+ #
112
+ # @note Stability Level: development
113
+ GCP_APPHUB_DESTINATION_WORKLOAD_CRITICALITY_TYPE = 'gcp.apphub_destination.workload.criticality_type'
114
+
115
+ # Environment of a destination workload is the stage of a software lifecycle as provided in the [AppHub environment type](https://cloud.google.com/app-hub/docs/reference/rest/v1/Attributes#type_1)
116
+ #
117
+ # @note Stability Level: development
118
+ GCP_APPHUB_DESTINATION_WORKLOAD_ENVIRONMENT_TYPE = 'gcp.apphub_destination.workload.environment_type'
119
+
120
+ # The name of the destination workload as configured in AppHub.
121
+ #
122
+ # @note Stability Level: development
123
+ GCP_APPHUB_DESTINATION_WORKLOAD_ID = 'gcp.apphub_destination.workload.id'
124
+
80
125
  # Identifies the Google Cloud service for which the official client library is intended.
81
126
  #
82
127
  # Intended to be a stable identifier for Google Cloud client libraries that is uniform across implementation languages. The value should be derived from the canonical service domain for the service; for example, 'foo.googleapis.com' should result in a value of 'foo'.
@@ -57,6 +57,33 @@ module OpenTelemetry
57
57
  # @note Stability Level: development
58
58
  GEN_AI_DATA_SOURCE_ID = 'gen_ai.data_source.id'
59
59
 
60
+ # The number of dimensions the resulting output embeddings should have.
61
+ #
62
+ # @note Stability Level: development
63
+ GEN_AI_EMBEDDINGS_DIMENSION_COUNT = 'gen_ai.embeddings.dimension.count'
64
+
65
+ # A free-form explanation for the assigned score provided by the evaluator.
66
+ #
67
+ # @note Stability Level: development
68
+ GEN_AI_EVALUATION_EXPLANATION = 'gen_ai.evaluation.explanation'
69
+
70
+ # The name of the evaluation metric used for the GenAI response.
71
+ #
72
+ # @note Stability Level: development
73
+ GEN_AI_EVALUATION_NAME = 'gen_ai.evaluation.name'
74
+
75
+ # Human readable label for evaluation.
76
+ #
77
+ # This attribute provides a human-readable interpretation of the evaluation score produced by an evaluator. For example, a score value of 1 could mean "relevant" in one evaluation system and "not relevant" in another, depending on the scoring range and evaluator. The label SHOULD have low cardinality. Possible values depend on the evaluation metric and evaluator used; implementations SHOULD document the possible values.
78
+ #
79
+ # @note Stability Level: development
80
+ GEN_AI_EVALUATION_SCORE_LABEL = 'gen_ai.evaluation.score.label'
81
+
82
+ # The evaluation score returned by the evaluator.
83
+ #
84
+ # @note Stability Level: development
85
+ GEN_AI_EVALUATION_SCORE_VALUE = 'gen_ai.evaluation.score.value'
86
+
60
87
  # The chat history provided to the model as an input.
61
88
  #
62
89
  # Instrumentations MUST follow [Input messages JSON schema](/docs/gen-ai/gen-ai-input-messages.json).
@@ -287,11 +314,50 @@ module OpenTelemetry
287
314
  # @note Stability Level: development
288
315
  GEN_AI_TOKEN_TYPE = 'gen_ai.token.type'
289
316
 
317
+ # Parameters passed to the tool call.
318
+ #
319
+ # > [!WARNING]
320
+ # > This attribute may contain sensitive information.
321
+ #
322
+ # It's expected to be an object - in case a serialized string is available
323
+ # to the instrumentation, the instrumentation SHOULD do the best effort to
324
+ # deserialize it to an object. 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.
325
+ #
326
+ # @note Stability Level: development
327
+ GEN_AI_TOOL_CALL_ARGUMENTS = 'gen_ai.tool.call.arguments'
328
+
290
329
  # The tool call identifier.
291
330
  #
292
331
  # @note Stability Level: development
293
332
  GEN_AI_TOOL_CALL_ID = 'gen_ai.tool.call.id'
294
333
 
334
+ # The result returned by the tool call (if any and if execution was successful).
335
+ #
336
+ # > [!WARNING]
337
+ # > This attribute may contain sensitive information.
338
+ #
339
+ # It's expected to be an object - in case a serialized string is available
340
+ # to the instrumentation, the instrumentation SHOULD do the best effort to
341
+ # deserialize it to an object. 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.
342
+ #
343
+ # @note Stability Level: development
344
+ GEN_AI_TOOL_CALL_RESULT = 'gen_ai.tool.call.result'
345
+
346
+ # The list of source system tool definitions available to the GenAI agent or model.
347
+ #
348
+ # The value of this attribute matches source system tool definition format.
349
+ #
350
+ # It's expected to be an array of objects where each object represents a tool definition. In case a serialized string is available
351
+ # to the instrumentation, the instrumentation SHOULD do the best effort to
352
+ # 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.
353
+ #
354
+ # Since this attribute could be large, it's NOT RECOMMENDED to populate
355
+ # it by default. Instrumentations MAY provide a way to enable
356
+ # populating this attribute.
357
+ #
358
+ # @note Stability Level: development
359
+ GEN_AI_TOOL_DEFINITIONS = 'gen_ai.tool.definitions'
360
+
295
361
  # The tool description.
296
362
  #
297
363
  # @note Stability Level: development
@@ -35,10 +35,10 @@ module OpenTelemetry
35
35
  # @note Stability Level: development
36
36
  HTTP_CONNECTION_STATE = 'http.connection.state'
37
37
 
38
- # Deprecated, use `network.protocol.name` instead.
38
+ # Deprecated, use `network.protocol.name` and `network.protocol.version` instead.
39
39
  #
40
40
  # @note Stability Level: development
41
- # @deprecated Replaced by `network.protocol.name`.
41
+ # @deprecated Split into `network.protocol.name` and `network.protocol.version`
42
42
  HTTP_FLAVOR = 'http.flavor'
43
43
 
44
44
  # Deprecated, use one of `server.address`, `client.address` or `http.request.header.host` instead, depending on the usage.
@@ -91,8 +91,9 @@ module OpenTelemetry
91
91
  # HTTP request method.
92
92
  #
93
93
  # HTTP request method value SHOULD be "known" to the instrumentation.
94
- # By default, this convention defines "known" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods)
95
- # and the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html).
94
+ # By default, this convention defines "known" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods),
95
+ # the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)
96
+ # and the QUERY method defined in [httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1).
96
97
  #
97
98
  # If the HTTP request method is not known to instrumentation, it MUST set the `http.request.method` attribute to `_OTHER`.
98
99
  #
@@ -201,11 +202,19 @@ module OpenTelemetry
201
202
  # @deprecated Replaced by `http.response.body.size`.
202
203
  HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED = 'http.response_content_length_uncompressed'
203
204
 
204
- # The matched route, that is, the path template in the format used by the respective server framework.
205
+ # The matched route template for the request. This MUST be low-cardinality and include all static path segments, with dynamic path segments represented with placeholders.
205
206
  #
206
207
  # MUST NOT be populated when this is not supported by the HTTP server framework as the route attribute should have low-cardinality and the URI path can NOT substitute it.
207
208
  # SHOULD include the [application root](/docs/http/http-spans.md#http-server-definitions) if there is one.
208
209
  #
210
+ # A static path segment is a part of the route template with a fixed, low-cardinality value. This includes literal strings like `/users/` and placeholders that
211
+ # are constrained to a finite, predefined set of values, e.g. `{controller}` or `{action}`.
212
+ #
213
+ # A dynamic path segment is a placeholder for a value that can have high cardinality and is not constrained to a predefined list like static path segments.
214
+ #
215
+ # Instrumentations SHOULD use routing information provided by the corresponding web framework. They SHOULD pick the most precise source of routing information and MAY
216
+ # support custom route formatting. Instrumentations SHOULD document the format and the API used to obtain the route string.
217
+ #
209
218
  # @note Stability Level: stable
210
219
  #
211
220
  # @deprecated Now available in the stable namespace at {OpenTelemetry::SemConv::HTTP::HTTP_ROUTE}.
@@ -484,6 +484,16 @@ module OpenTelemetry
484
484
  # @note Stability Level: development
485
485
  K8S_POD_NAME = 'k8s.pod.name'
486
486
 
487
+ # 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
+ #
489
+ # @note Stability Level: development
490
+ K8S_POD_STATUS_PHASE = 'k8s.pod.status.phase'
491
+
492
+ # The reason for the pod state. Corresponds to the `reason` field of the: [K8s PodStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.33/#podstatus-v1-core)
493
+ #
494
+ # @note Stability Level: development
495
+ K8S_POD_STATUS_REASON = 'k8s.pod.status.reason'
496
+
487
497
  # The UID of the Pod.
488
498
  #
489
499
  # @note Stability Level: development
@@ -552,7 +562,7 @@ module OpenTelemetry
552
562
 
553
563
  # The name of the K8s resource a resource quota defines.
554
564
  #
555
- # The value for this attribute can be either the full `count/<resource>[.<group>]` string (e.g., count/deployments.apps, count/pods), or, for certain core Kubernetes resources, just the resource name (e.g., pods, services, configmaps). Both forms are supported by Kubernetes for object count quotas. See [Kubernetes Resource Quotas documentation](https://kubernetes.io/docs/concepts/policy/resource-quotas/#object-count-quota) for more details.
565
+ # The value for this attribute can be either the full `count/<resource>[.<group>]` string (e.g., count/deployments.apps, count/pods), or, for certain core Kubernetes resources, just the resource name (e.g., pods, services, configmaps). Both forms are supported by Kubernetes for object count quotas. See [Kubernetes Resource Quotas documentation](https://kubernetes.io/docs/concepts/policy/resource-quotas/#quota-on-object-count) for more details.
556
566
  #
557
567
  # @note Stability Level: development
558
568
  K8S_RESOURCEQUOTA_RESOURCE_NAME = 'k8s.resourcequota.resource_name'