opentelemetry-semantic_conventions 1.37.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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +0 -1
  3. data/CHANGELOG.md +12 -0
  4. data/README.md +2 -0
  5. data/lib/opentelemetry/semantic_conventions/version.rb +2 -2
  6. data/lib/opentelemetry/semconv/db/attributes.rb +2 -2
  7. data/lib/opentelemetry/semconv/error/attributes.rb +1 -1
  8. data/lib/opentelemetry/semconv/http/attributes.rb +12 -3
  9. data/lib/opentelemetry/semconv/incubating/app/attributes.rb +14 -0
  10. data/lib/opentelemetry/semconv/incubating/aws/attributes.rb +1 -1
  11. data/lib/opentelemetry/semconv/incubating/azure/attributes.rb +1 -1
  12. data/lib/opentelemetry/semconv/incubating/container/attributes.rb +7 -7
  13. data/lib/opentelemetry/semconv/incubating/container/metrics.rb +33 -0
  14. data/lib/opentelemetry/semconv/incubating/db/attributes.rb +9 -6
  15. data/lib/opentelemetry/semconv/incubating/dns/attributes.rb +1 -1
  16. data/lib/opentelemetry/semconv/incubating/enduser/attributes.rb +1 -1
  17. data/lib/opentelemetry/semconv/incubating/error/attributes.rb +1 -1
  18. data/lib/opentelemetry/semconv/incubating/event/attributes.rb +1 -1
  19. data/lib/opentelemetry/semconv/incubating/faas/attributes.rb +1 -1
  20. data/lib/opentelemetry/semconv/incubating/gcp/attributes.rb +45 -0
  21. data/lib/opentelemetry/semconv/incubating/gen_ai/attributes.rb +71 -0
  22. data/lib/opentelemetry/semconv/incubating/http/attributes.rb +14 -5
  23. data/lib/opentelemetry/semconv/incubating/jsonrpc/attributes.rb +44 -0
  24. data/lib/opentelemetry/semconv/incubating/jsonrpc.rb +21 -0
  25. data/lib/opentelemetry/semconv/incubating/k8s/attributes.rb +82 -40
  26. data/lib/opentelemetry/semconv/incubating/k8s/metrics.rb +355 -29
  27. data/lib/opentelemetry/semconv/incubating/linux/attributes.rb +1 -0
  28. data/lib/opentelemetry/semconv/incubating/mcp/attributes.rb +53 -0
  29. data/lib/opentelemetry/semconv/incubating/mcp/metrics.rb +51 -0
  30. data/lib/opentelemetry/semconv/incubating/mcp.rb +22 -0
  31. data/lib/opentelemetry/semconv/incubating/messaging/attributes.rb +1 -1
  32. data/lib/opentelemetry/semconv/incubating/nfs/attributes.rb +41 -0
  33. data/lib/opentelemetry/semconv/incubating/nfs/metrics.rb +134 -0
  34. data/lib/opentelemetry/semconv/incubating/nfs.rb +22 -0
  35. data/lib/opentelemetry/semconv/incubating/onc_rpc/attributes.rb +51 -0
  36. data/lib/opentelemetry/semconv/incubating/onc_rpc.rb +21 -0
  37. data/lib/opentelemetry/semconv/incubating/openshift/attributes.rb +41 -0
  38. data/lib/opentelemetry/semconv/incubating/openshift/metrics.rb +243 -0
  39. data/lib/opentelemetry/semconv/incubating/openshift.rb +22 -0
  40. data/lib/opentelemetry/semconv/incubating/otel/attributes.rb +7 -0
  41. data/lib/opentelemetry/semconv/incubating/peer/attributes.rb +6 -0
  42. data/lib/opentelemetry/semconv/incubating/pprof/attributes.rb +78 -0
  43. data/lib/opentelemetry/semconv/incubating/pprof.rb +21 -0
  44. data/lib/opentelemetry/semconv/incubating/process/attributes.rb +8 -2
  45. data/lib/opentelemetry/semconv/incubating/process/metrics.rb +12 -1
  46. data/lib/opentelemetry/semconv/incubating/rpc/attributes.rb +101 -39
  47. data/lib/opentelemetry/semconv/incubating/rpc/metrics.rb +24 -2
  48. data/lib/opentelemetry/semconv/incubating/service/attributes.rb +11 -1
  49. data/lib/opentelemetry/semconv/incubating/system/attributes.rb +17 -4
  50. data/lib/opentelemetry/semconv/incubating/system/metrics.rb +49 -19
  51. data/lib/opentelemetry/semconv/incubating/thread/attributes.rb +21 -0
  52. data/lib/opentelemetry/semconv/incubating/user_agent/attributes.rb +2 -2
  53. data/lib/opentelemetry/semconv/incubating/v8js/metrics.rb +18 -6
  54. data/lib/opentelemetry/semconv/incubating/vcs/attributes.rb +1 -1
  55. data/lib/opentelemetry/semconv/service/attributes.rb +1 -1
  56. metadata +20 -103
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ae5e00b9714aa7b343b498aa617582048e0713aa12ed975d0c4ef9350ce8532e
4
- data.tar.gz: 5e8c4e48bda8d05d69652457fd07d11497d154acb603dbb876aa16b697108d7d
3
+ metadata.gz: e49a9dbae06f7fa323d27e16cba48f7df45460602acd8969ac0a3172506b76b3
4
+ data.tar.gz: 8134974d85744209fc52e303de680691d4d049b5e54dff4b9a743a8b89afddf3
5
5
  SHA512:
6
- metadata.gz: cf7612172fe08e1fc05445a50d3abb8e3911946a2b1fc97098c787baa9b7e3e16bf08b5239d392c2eec45fc6af12931a590a5d4e98ba609d42fcfa050002855f
7
- data.tar.gz: d399cbaaf4cad564fe862bc7e2fce0cf6dbfd9be628c4175b6e1cd336a4164b6a9ab08f164746975d411f762198c777a6e8162ff61361079ff6985a9423252d6
6
+ metadata.gz: f5c32ee66b18e56efbf598212ab1a0c5365a51ceda54bb6ad17bedae8fb8d75c6b8e82cb4ecd45f6a26cdf5d4d2c3b9830040f5efa9c6422a2fcc223b1db88a3
7
+ data.tar.gz: 46073d50823730d0b1c34c70a24982ea0de43692deb627a0da289c7b21ee0ff0067adbd7429fc52565728c30e0fe84886b8a93dd7f1684ce0cf71d196a566d4e
data/.yardopts CHANGED
@@ -1,7 +1,6 @@
1
1
  --no-private
2
2
  --title=OpenTelemetry Semantic Conventions
3
3
  --markup=markdown
4
- --markup-provider=kramdown
5
4
  --main=README.md
6
5
  ./lib/opentelemetry/**/*.rb
7
6
  -
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
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
+
7
+ ### v1.38.0 / 2026-05-21
8
+
9
+ * ADDED: Update semantic conventions to v1.38.0 (#2136)
10
+
11
+ ### v1.37.1 / 2026-05-12
12
+
13
+ * ADDED: Add git tag to source URI in gemspec (#2101)
14
+
3
15
  ### v1.37.0 / 2026-04-07
4
16
 
5
17
  * ADDED: Bump semantic conventions to version 1.37.0 (#1952)
data/README.md CHANGED
@@ -38,6 +38,7 @@ The gem's versions match the corresponding
38
38
  [OpenTelemetry Semantic Convention versions][semconv].
39
39
 
40
40
  In version 1.36.0, we established a new pattern for naming the constants:
41
+
41
42
  * `OpenTelemetry::SemConv::Incubating::#{CATEGORY_NAME}` is the prefix for
42
43
  experimental, development, or deprecated constants
43
44
  * `OpenTelemetry::SemConv::#{CATEGORY_NAME}` is the prefix for stable constants
@@ -63,6 +64,7 @@ require 'opentelemetry/semconv/http'
63
64
  ```
64
65
 
65
66
  If you want to require all of the 1.11.0 constants, you can use:
67
+
66
68
  ```rb
67
69
  require 'opentelemetry/semantic_conventions'
68
70
 
@@ -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.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.37.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
@@ -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'
@@ -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/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.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/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.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/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.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
@@ -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}" }
@@ -325,7 +328,7 @@ module OpenTelemetry
325
328
  # Summary may be available to the instrumentation through
326
329
  # instrumentation hooks or other means. If it is not available, instrumentations
327
330
  # that support query parsing SHOULD generate a summary following
328
- # [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)
329
332
  # section.
330
333
  #
331
334
  # @note Stability Level: stable
@@ -335,7 +338,7 @@ module OpenTelemetry
335
338
 
336
339
  # The database query being executed.
337
340
  #
338
- # 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).
339
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.
340
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.
341
344
  #
@@ -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.
@@ -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
@@ -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).
@@ -154,6 +181,11 @@ module OpenTelemetry
154
181
  # @deprecated Removed, no replacement at this time.
155
182
  GEN_AI_PROMPT = 'gen_ai.prompt'
156
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
+
157
189
  # The Generative AI provider as identified by the client or server instrumentation.
158
190
  #
159
191
  # The attribute SHOULD be set based on the instrumentation's best
@@ -287,11 +319,50 @@ module OpenTelemetry
287
319
  # @note Stability Level: development
288
320
  GEN_AI_TOKEN_TYPE = 'gen_ai.token.type'
289
321
 
322
+ # Parameters passed to the tool call.
323
+ #
324
+ # > [!WARNING]
325
+ # > This attribute may contain sensitive information.
326
+ #
327
+ # It's expected to be an object - in case a serialized string is available
328
+ # to the instrumentation, the instrumentation SHOULD do the best effort to
329
+ # 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.
330
+ #
331
+ # @note Stability Level: development
332
+ GEN_AI_TOOL_CALL_ARGUMENTS = 'gen_ai.tool.call.arguments'
333
+
290
334
  # The tool call identifier.
291
335
  #
292
336
  # @note Stability Level: development
293
337
  GEN_AI_TOOL_CALL_ID = 'gen_ai.tool.call.id'
294
338
 
339
+ # The result returned by the tool call (if any and if execution was successful).
340
+ #
341
+ # > [!WARNING]
342
+ # > This attribute may contain sensitive information.
343
+ #
344
+ # It's expected to be an object - in case a serialized string is available
345
+ # to the instrumentation, the instrumentation SHOULD do the best effort to
346
+ # 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.
347
+ #
348
+ # @note Stability Level: development
349
+ GEN_AI_TOOL_CALL_RESULT = 'gen_ai.tool.call.result'
350
+
351
+ # The list of source system tool definitions available to the GenAI agent or model.
352
+ #
353
+ # The value of this attribute matches source system tool definition format.
354
+ #
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.
358
+ #
359
+ # 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.
362
+ #
363
+ # @note Stability Level: development
364
+ GEN_AI_TOOL_DEFINITIONS = 'gen_ai.tool.definitions'
365
+
295
366
  # The tool description.
296
367
  #
297
368
  # @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}.
@@ -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