Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .cspell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ ignoreWords:
- Rubyish
- rolldice
- codegen
- cadvisor
words:
- LOGRECORD
- traceid
Expand Down
2 changes: 1 addition & 1 deletion semantic_conventions/Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ task default: default_tasks
desc 'update semantic conventions'
task generate: %i[update_spec_version_constant generate_require_rollups]

SPEC_VERSION = '1.37.0'
SPEC_VERSION = '1.38.0'
OTEL_WEAVER_VERSION = 'v0.22.1'
semconv_source_dir = Pathname.new('./tmp/semconvrepo')
semconv_output_dir = Pathname.new('./lib/opentelemetry/semconv')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@
module OpenTelemetry
module SemanticConventions
# Version of the OpenTelemetry Semantic Conventions from which this library was generated.
SPEC_VERSION = '1.37.0'
# Change the SPEC_VERSION constant in the Rakefile when regenerating.
# This version is updated automatically by the Rake task
SPEC_VERSION = '1.38.0'
# Release version of this gem. May not match SPEC_VERSION until gem is released after a spec update.
VERSION = '1.37.0'
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,9 @@ module HTTP
# HTTP request method.
#
# HTTP request method value SHOULD be "known" to the instrumentation.
# By default, this convention defines "known" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods)
# and the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html).
# By default, this convention defines "known" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods),
# the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)
# 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).
#
# If the HTTP request method is not known to instrumentation, it MUST set the `http.request.method` attribute to `_OTHER`.
#
Expand Down Expand Up @@ -115,11 +116,19 @@ module HTTP
# @note Stability Level: stable
HTTP_RESPONSE_STATUS_CODE = 'http.response.status_code'

# The matched route, that is, the path template in the format used by the respective server framework.
# 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.
#
# 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.
# SHOULD include the [application root](/docs/http/http-spans.md#http-server-definitions) if there is one.
#
# 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
# are constrained to a finite, predefined set of values, e.g. `{controller}` or `{action}`.
#
# 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.
#
# Instrumentations SHOULD use routing information provided by the corresponding web framework. They SHOULD pick the most precise source of routing information and MAY
# support custom route formatting. Instrumentations SHOULD document the format and the API used to obtain the route string.
#
# @note Stability Level: stable
HTTP_ROUTE = 'http.route'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,20 @@ module APP
# @note Stability Level: development
APP_SCREEN_COORDINATE_Y = 'app.screen.coordinate.y'

# An identifier that uniquely differentiates this screen from other screens in the same application.
#
# 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).
#
# @note Stability Level: development
APP_SCREEN_ID = 'app.screen.id'

# The name of an application screen.
#
# 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).
#
# @note Stability Level: development
APP_SCREEN_NAME = 'app.screen.name'

# An identifier that uniquely differentiates this widget from other widgets in the same application.
#
# A widget is an application component, typically an on-screen visual GUI element.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ module AZURE

# 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.
#
# 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)
# Region name matches the format of `displayName` in [Azure Location API](https://learn.microsoft.com/rest/api/resources/subscriptions/list-locations)
#
# @note Stability Level: development
AZURE_COSMOSDB_OPERATION_CONTACTED_REGIONS = 'azure.cosmosdb.operation.contacted_regions'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ module CONTAINER

# Runtime specific image identifier. Usually a hash algorithm followed by a UUID.
#
# 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.
# 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.
# K8s defines a link to the container registry repository with digest `"imageID": "registry.azurecr.io /namespace/service/dockerfile@sha256:bdeabd40c3a8a492eaf9e8e44d0ebbb84bac7ee25ac0cf8a7159d25f62555625"`.
# 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.
#
Expand All @@ -82,12 +82,12 @@ module CONTAINER

# Repo digests of the container image as provided by the container runtime.
#
# [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.
# [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.
#
# @note Stability Level: development
CONTAINER_IMAGE_REPO_DIGESTS = 'container.image.repo_digests'

# 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>`.
# 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>`.
#
# @note Stability Level: development
CONTAINER_IMAGE_TAGS = 'container.image.tags'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,13 +77,46 @@ module CONTAINER
# @note Stability Level: development
CONTAINER_FILESYSTEM_USAGE = 'container.filesystem.usage'

# Container memory available.
#
# Available memory for use. This is defined as the memory limit - workingSetBytes. If memory limit is undefined, the available bytes is omitted.
# 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.
# 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.
#
# @note Stability Level: development
CONTAINER_MEMORY_AVAILABLE = 'container.memory.available'

# Container memory paging faults.
#
# 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.
# 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.
#
# @note Stability Level: development
CONTAINER_MEMORY_PAGING_FAULTS = 'container.memory.paging.faults'

# Container memory RSS.
#
# 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.
# 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.
#
# @note Stability Level: development
CONTAINER_MEMORY_RSS = 'container.memory.rss'

# Memory usage of the container.
#
# Memory usage of the container.
#
# @note Stability Level: development
CONTAINER_MEMORY_USAGE = 'container.memory.usage'

# Container memory working set.
#
# 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.
# 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.
#
# @note Stability Level: development
CONTAINER_MEMORY_WORKING_SET = 'container.memory.working_set'

# Network bytes for the container.
#
# The number of bytes sent/received on all network interfaces by the container.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ module DB
# Deprecated, use `db.response.status_code` instead.
#
# @note Stability Level: development
# @deprecated Replaced by `db.response.status_code`.
# @deprecated Use `db.response.status_code` instead.
DB_COSMOSDB_STATUS_CODE = 'db.cosmosdb.status_code'

# Deprecated, use `azure.cosmosdb.response.sub_status_code` instead.
Expand Down Expand Up @@ -304,14 +304,17 @@ module DB
# `db.query.parameter.<key>` SHOULD match
# up with the parameterized placeholders present in `db.query.text`.
#
# It is RECOMMENDED to capture the value as provided by the application
# without attempting to do any case normalization.
#
# `db.query.parameter.<key>` SHOULD NOT be captured on batch operations.
#
# Examples:
#
# - For a query `SELECT * FROM users where username = %s` with the parameter `"jdoe"`,
# the attribute `db.query.parameter.0` SHOULD be set to `"jdoe"`.
# - For a query `"SELECT * FROM users WHERE username = %(username)s;` with parameter
# `username = "jdoe"`, the attribute `db.query.parameter.username` SHOULD be set to `"jdoe"`.
# - For a query `"SELECT * FROM users WHERE username = %(userName)s;` with parameter
# `userName = "jdoe"`, the attribute `db.query.parameter.userName` SHOULD be set to `"jdoe"`.
#
# @note Stability Level: development
DB_QUERY_PARAMETER_LAMBDA = ->(key) { "db.query.parameter.#{key}" }
Expand Down Expand Up @@ -347,7 +350,7 @@ module DB
# Deprecated, use `db.namespace` instead.
#
# @note Stability Level: development
# @deprecated Replaced by `db.namespace`.
# @deprecated Uncategorized.
DB_REDIS_DATABASE_INDEX = 'db.redis.database_index'

# Number of rows returned by the operation.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ module DNS

# The name being queried.
#
# 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.
# The name represents the queried domain name as it appears in the DNS query without any additional normalization.
#
# @note Stability Level: development
DNS_QUESTION_NAME = 'dns.question.name'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ module ENDUSER
# Deprecated, use `user.roles` instead.
#
# @note Stability Level: development
# @deprecated Replaced by `user.roles`.
# @deprecated Use `user.roles` instead.
ENDUSER_ROLE = 'enduser.role'

# Deprecated, no replacement at this time.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ module EVENT
# Identifies the class / type of event.
#
# @note Stability Level: development
# @deprecated Replaced by EventName top-level field on the LogRecord.
# @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.
EVENT_NAME = 'event.name'

# @!endgroup
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ module FAAS
# - **Google Cloud Run (Services):** The [revision](https://cloud.google.com/run/docs/managing/revisions)
# (i.e., the function name plus the revision suffix).
# - **Google Cloud Functions:** The value of the
# [`K_REVISION` environment variable](https://cloud.google.com/functions/docs/env-var#runtime_environment_variables_set_automatically).
# [`K_REVISION` environment variable](https://cloud.google.com/run/docs/container-contract#services-env-vars).
# - **Azure Functions:** Not applicable. Do not set this attribute.
#
# @note Stability Level: development
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,51 @@ module GCP
# @note Stability Level: development
GCP_APPHUB_WORKLOAD_ID = 'gcp.apphub.workload.id'

# The container within GCP where the AppHub destination application is defined.
#
# @note Stability Level: development
GCP_APPHUB_DESTINATION_APPLICATION_CONTAINER = 'gcp.apphub_destination.application.container'

# The name of the destination application as configured in AppHub.
#
# @note Stability Level: development
GCP_APPHUB_DESTINATION_APPLICATION_ID = 'gcp.apphub_destination.application.id'

# The GCP zone or region where the destination application is defined.
#
# @note Stability Level: development
GCP_APPHUB_DESTINATION_APPLICATION_LOCATION = 'gcp.apphub_destination.application.location'

# 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)
#
# @note Stability Level: development
GCP_APPHUB_DESTINATION_SERVICE_CRITICALITY_TYPE = 'gcp.apphub_destination.service.criticality_type'

# 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)
#
# @note Stability Level: development
GCP_APPHUB_DESTINATION_SERVICE_ENVIRONMENT_TYPE = 'gcp.apphub_destination.service.environment_type'

# The name of the destination service as configured in AppHub.
#
# @note Stability Level: development
GCP_APPHUB_DESTINATION_SERVICE_ID = 'gcp.apphub_destination.service.id'

# 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)
#
# @note Stability Level: development
GCP_APPHUB_DESTINATION_WORKLOAD_CRITICALITY_TYPE = 'gcp.apphub_destination.workload.criticality_type'

# 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)
#
# @note Stability Level: development
GCP_APPHUB_DESTINATION_WORKLOAD_ENVIRONMENT_TYPE = 'gcp.apphub_destination.workload.environment_type'

# The name of the destination workload as configured in AppHub.
#
# @note Stability Level: development
GCP_APPHUB_DESTINATION_WORKLOAD_ID = 'gcp.apphub_destination.workload.id'

# Identifies the Google Cloud service for which the official client library is intended.
#
# 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'.
Expand Down
Loading
Loading