Skip to content

Commit 590dffb

Browse files
committed
bump semconv to v1.39.0
Signed-off-by: emdneto <[email protected]>
1 parent ba5fc05 commit 590dffb

24 files changed

+551
-96
lines changed

opentelemetry-semantic-conventions/src/opentelemetry/semconv/_incubating/attributes/cloud_attributes.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@
6767

6868

6969
class CloudPlatformValues(Enum):
70+
AKAMAI_CLOUD_COMPUTE = "akamai_cloud.compute"
71+
"""Akamai Cloud Compute."""
7072
ALIBABA_CLOUD_ECS = "alibaba_cloud_ecs"
7173
"""Alibaba Cloud Elastic Compute Service."""
7274
ALIBABA_CLOUD_FC = "alibaba_cloud_fc"
@@ -101,6 +103,8 @@ class CloudPlatformValues(Enum):
101103
"""Azure App Service."""
102104
AZURE_OPENSHIFT = "azure.openshift"
103105
"""Azure Red Hat OpenShift."""
106+
GCP_AGENT_ENGINE = "gcp.agent_engine"
107+
"""Google Vertex AI Agent Engine."""
104108
GCP_BARE_METAL_SOLUTION = "gcp_bare_metal_solution"
105109
"""Google Bare Metal Solution (BMS)."""
106110
GCP_COMPUTE_ENGINE = "gcp_compute_engine"
@@ -115,6 +119,8 @@ class CloudPlatformValues(Enum):
115119
"""Google Cloud App Engine (GAE)."""
116120
GCP_OPENSHIFT = "gcp_openshift"
117121
"""Red Hat OpenShift on Google Cloud."""
122+
HETZNER_CLOUD_SERVER = "hetzner.cloud_server"
123+
"""Server on Hetzner Cloud."""
118124
IBM_CLOUD_OPENSHIFT = "ibm_cloud_openshift"
119125
"""Red Hat OpenShift on IBM Cloud."""
120126
ORACLE_CLOUD_COMPUTE = "oracle_cloud_compute"
@@ -127,9 +133,13 @@ class CloudPlatformValues(Enum):
127133
"""Tencent Cloud Elastic Kubernetes Service (EKS)."""
128134
TENCENT_CLOUD_SCF = "tencent_cloud_scf"
129135
"""Tencent Cloud Serverless Cloud Function (SCF)."""
136+
VULTR_CLOUD_COMPUTE = "vultr.cloud_compute"
137+
"""Vultr Cloud Compute."""
130138

131139

132140
class CloudProviderValues(Enum):
141+
AKAMAI_CLOUD = "akamai_cloud"
142+
"""Akamai Cloud."""
133143
ALIBABA_CLOUD = "alibaba_cloud"
134144
"""Alibaba Cloud."""
135145
AWS = "aws"
@@ -140,9 +150,13 @@ class CloudProviderValues(Enum):
140150
"""Google Cloud Platform."""
141151
HEROKU = "heroku"
142152
"""Heroku Platform as a Service."""
153+
HETZNER = "hetzner"
154+
"""Hetzner."""
143155
IBM_CLOUD = "ibm_cloud"
144156
"""IBM Cloud."""
145157
ORACLE_CLOUD = "oracle_cloud"
146158
"""Oracle Cloud Infrastructure (OCI)."""
147159
TENCENT_CLOUD = "tencent_cloud"
148160
"""Tencent Cloud."""
161+
VULTR = "vultr"
162+
"""Vultr."""

opentelemetry-semantic-conventions/src/opentelemetry/semconv/_incubating/attributes/container_attributes.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
CONTAINER_IMAGE_ID: Final = "container.image.id"
5959
"""
6060
Runtime specific image identifier. Usually a hash algorithm followed by a UUID.
61-
Note: 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.
61+
Note: 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.
6262
K8s defines a link to the container registry repository with digest `"imageID": "registry.azurecr.io /namespace/service/dockerfile@sha256:bdeabd40c3a8a492eaf9e8e44d0ebbb84bac7ee25ac0cf8a7159d25f62555625"`.
6363
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.
6464
"""
@@ -71,12 +71,12 @@
7171
CONTAINER_IMAGE_REPO_DIGESTS: Final = "container.image.repo_digests"
7272
"""
7373
Repo digests of the container image as provided by the container runtime.
74-
Note: [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.
74+
Note: [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.
7575
"""
7676

7777
CONTAINER_IMAGE_TAGS: Final = "container.image.tags"
7878
"""
79-
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>`.
79+
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>`.
8080
"""
8181

8282
CONTAINER_LABEL_TEMPLATE: Final = "container.label"

opentelemetry-semantic-conventions/src/opentelemetry/semconv/_incubating/attributes/gen_ai_attributes.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,11 @@
169169
Deprecated: Removed, no replacement at this time.
170170
"""
171171

172+
GEN_AI_PROMPT_NAME: Final = "gen_ai.prompt.name"
173+
"""
174+
The name of the prompt that uniquely identifies it.
175+
"""
176+
172177
GEN_AI_PROVIDER_NAME: Final = "gen_ai.provider.name"
173178
"""
174179
The Generative AI provider as identified by the client or server instrumentation.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Copyright The OpenTelemetry Authors
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
from typing import Final
16+
17+
JSONRPC_PROTOCOL_VERSION: Final = "jsonrpc.protocol.version"
18+
"""
19+
Protocol version, as specified in the `jsonrpc` property of the request and its corresponding response.
20+
"""
21+
22+
JSONRPC_REQUEST_ID: Final = "jsonrpc.request.id"
23+
"""
24+
A string representation of the `id` property of the request and its corresponding response.
25+
Note: 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.
26+
Instrumentations SHOULD NOT capture this attribute when the `id` is `null` or omitted.
27+
"""

opentelemetry-semantic-conventions/src/opentelemetry/semconv/_incubating/attributes/k8s_attributes.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,24 @@
343343
the `k8s.pod.annotation.data` attribute with value `""`.
344344
"""
345345

346+
K8S_POD_HOSTNAME: Final = "k8s.pod.hostname"
347+
"""
348+
Specifies the hostname of the Pod.
349+
Note: The K8s Pod spec has an optional hostname field, which can be used to specify a hostname.
350+
Refer to [K8s docs](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-hostname-and-subdomain-field)
351+
for more information about this field.
352+
353+
This attribute aligns with the `hostname` field of the
354+
[K8s PodSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podspec-v1-core).
355+
"""
356+
357+
K8S_POD_IP: Final = "k8s.pod.ip"
358+
"""
359+
IP address allocated to the Pod.
360+
Note: This attribute aligns with the `podIP` field of the
361+
[K8s PodStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podstatus-v1-core).
362+
"""
363+
346364
K8S_POD_LABEL_TEMPLATE: Final = "k8s.pod.label"
347365
"""
348366
The label placed on the Pod, the `<key>` being the label name, the value being the label value.
@@ -366,6 +384,17 @@
366384
The name of the Pod.
367385
"""
368386

387+
K8S_POD_START_TIME: Final = "k8s.pod.start_time"
388+
"""
389+
The start timestamp of the Pod.
390+
Note: Date and time at which the object was acknowledged by the Kubelet.
391+
This is before the Kubelet pulled the container image(s) for the pod.
392+
393+
This attribute aligns with the `startTime` field of the
394+
[K8s PodStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podstatus-v1-core),
395+
in ISO 8601 (RFC 3339 compatible) format.
396+
"""
397+
369398
K8S_POD_STATUS_PHASE: Final = "k8s.pod.status.phase"
370399
"""
371400
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).

opentelemetry-semantic-conventions/src/opentelemetry/semconv/_incubating/attributes/linux_attributes.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,17 @@
1515
from enum import Enum
1616
from typing import Final
1717

18+
from typing_extensions import deprecated
19+
1820
LINUX_MEMORY_SLAB_STATE: Final = "linux.memory.slab.state"
1921
"""
20-
The Linux Slab memory state.
22+
Deprecated: Replaced by `system.memory.linux.slab.state`.
2123
"""
2224

2325

26+
@deprecated(
27+
"The attribute linux.memory.slab.state is deprecated - Replaced by `system.memory.linux.slab.state`"
28+
)
2429
class LinuxMemorySlabStateValues(Enum):
2530
RECLAIMABLE = "reclaimable"
2631
"""reclaimable."""
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# Copyright The OpenTelemetry Authors
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
from enum import Enum
16+
from typing import Final
17+
18+
MCP_METHOD_NAME: Final = "mcp.method.name"
19+
"""
20+
The name of the request or notification method.
21+
"""
22+
23+
MCP_PROTOCOL_VERSION: Final = "mcp.protocol.version"
24+
"""
25+
The [version](https://modelcontextprotocol.io/specification/versioning) of the Model Context Protocol used.
26+
"""
27+
28+
MCP_RESOURCE_URI: Final = "mcp.resource.uri"
29+
"""
30+
The value of the resource uri.
31+
Note: This is a URI of the resource provided in the following requests or notifications: `resources/read`, `resources/subscribe`, `resources/unsubscribe`, or `notifications/resources/updated`.
32+
"""
33+
34+
MCP_SESSION_ID: Final = "mcp.session.id"
35+
"""
36+
Identifies [MCP session](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#session-management).
37+
"""
38+
39+
40+
class McpMethodNameValues(Enum):
41+
NOTIFICATIONS_CANCELLED = "notifications/cancelled"
42+
"""Notification cancelling a previously-issued request."""
43+
INITIALIZE = "initialize"
44+
"""Request to initialize the MCP client."""
45+
NOTIFICATIONS_INITIALIZED = "notifications/initialized"
46+
"""Notification indicating that the MCP client has been initialized."""
47+
NOTIFICATIONS_PROGRESS = "notifications/progress"
48+
"""Notification indicating the progress for a long-running operation."""
49+
PING = "ping"
50+
"""Request to check that the other party is still alive."""
51+
RESOURCES_LIST = "resources/list"
52+
"""Request to list resources available on server."""
53+
RESOURCES_TEMPLATES_LIST = "resources/templates/list"
54+
"""Request to list resource templates available on server."""
55+
RESOURCES_READ = "resources/read"
56+
"""Request to read a resource."""
57+
NOTIFICATIONS_RESOURCES_LIST_CHANGED = (
58+
"notifications/resources/list_changed"
59+
)
60+
"""Notification indicating that the list of resources has changed."""
61+
RESOURCES_SUBSCRIBE = "resources/subscribe"
62+
"""Request to subscribe to a resource."""
63+
RESOURCES_UNSUBSCRIBE = "resources/unsubscribe"
64+
"""Request to unsubscribe from resource updates."""
65+
NOTIFICATIONS_RESOURCES_UPDATED = "notifications/resources/updated"
66+
"""Notification indicating that a resource has been updated."""
67+
PROMPTS_LIST = "prompts/list"
68+
"""Request to list prompts available on server."""
69+
PROMPTS_GET = "prompts/get"
70+
"""Request to get a prompt."""
71+
NOTIFICATIONS_PROMPTS_LIST_CHANGED = "notifications/prompts/list_changed"
72+
"""Notification indicating that the list of prompts has changed."""
73+
TOOLS_LIST = "tools/list"
74+
"""Request to list tools available on server."""
75+
TOOLS_CALL = "tools/call"
76+
"""Request to call a tool."""
77+
NOTIFICATIONS_TOOLS_LIST_CHANGED = "notifications/tools/list_changed"
78+
"""Notification indicating that the list of tools has changed."""
79+
LOGGING_SET_LEVEL = "logging/setLevel"
80+
"""Request to set the logging level."""
81+
NOTIFICATIONS_MESSAGE = "notifications/message"
82+
"""Notification indicating that a message has been received."""
83+
SAMPLING_CREATE_MESSAGE = "sampling/createMessage"
84+
"""Request to create a sampling message."""
85+
COMPLETION_COMPLETE = "completion/complete"
86+
"""Request to complete a prompt."""
87+
ROOTS_LIST = "roots/list"
88+
"""Request to list roots available on server."""
89+
NOTIFICATIONS_ROOTS_LIST_CHANGED = "notifications/roots/list_changed"
90+
"""Notification indicating that the list of roots has changed."""
91+
ELICITATION_CREATE = "elicitation/create"
92+
"""Request from the server to elicit additional information from the user via the client."""

opentelemetry-semantic-conventions/src/opentelemetry/semconv/_incubating/attributes/otel_attributes.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,12 @@
4242
E.g. for Java the fully qualified classname SHOULD be used in this case.
4343
"""
4444

45+
OTEL_EVENT_NAME: Final = "otel.event.name"
46+
"""
47+
Identifies the class / type of event.
48+
Note: This attribute SHOULD be used by non-OTLP exporters when destination does not support `EventName` or equivalent field. This attribute MAY be used by applications using existing logging libraries so that it can be used to set the `EventName` field by Collector or SDK components.
49+
"""
50+
4551
OTEL_LIBRARY_NAME: Final = "otel.library.name"
4652
"""
4753
Deprecated: Replaced by `otel.scope.name`.

opentelemetry-semantic-conventions/src/opentelemetry/semconv/_incubating/attributes/peer_attributes.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,5 @@
1616

1717
PEER_SERVICE: Final = "peer.service"
1818
"""
19-
The [`service.name`](/docs/resource/README.md#service) of the remote service. SHOULD be equal to the actual `service.name` resource attribute of the remote service if any.
20-
Note: Examples of `peer.service` that users may specify:
21-
22-
- A Redis cache of auth tokens as `peer.service="AuthTokenCache"`.
23-
- A gRPC service `rpc.service="io.opentelemetry.AuthService"` may be hosted in both a gateway, `peer.service="ExternalApiService"` and a backend, `peer.service="AuthService"`.
19+
Deprecated: Replaced by `service.peer.name`.
2420
"""

opentelemetry-semantic-conventions/src/opentelemetry/semconv/_incubating/attributes/pprof_attributes.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,19 @@
4343
"""
4444
Free-form text associated with the profile. This field should not be used to store any machine-readable information, it is only for human-friendly content.
4545
"""
46+
47+
PPROF_PROFILE_DOC_URL: Final = "pprof.profile.doc_url"
48+
"""
49+
Documentation link for this profile type.
50+
Note: The URL must be absolute and may be missing if the profile was generated by code that did not supply a link.
51+
"""
52+
53+
PPROF_PROFILE_DROP_FRAMES: Final = "pprof.profile.drop_frames"
54+
"""
55+
Frames with Function.function_name fully matching the regexp will be dropped from the samples, along with their successors.
56+
"""
57+
58+
PPROF_PROFILE_KEEP_FRAMES: Final = "pprof.profile.keep_frames"
59+
"""
60+
Frames with Function.function_name fully matching the regexp will be kept, even if it matches drop_frames.
61+
"""

0 commit comments

Comments
 (0)