Skip to content

Commit a109f7d

Browse files
Copilottrask
andauthored
Update semantic conventions to 1.39.0 (#396)
* Initial plan * Update semantic conventions to 1.39.0 Co-authored-by: trask <[email protected]> * Fix @deprecated annotation formatting for consistency Co-authored-by: trask <[email protected]> * Apply spotless formatting Co-authored-by: trask <[email protected]> * Co-authored-by: trask <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: trask <[email protected]>
1 parent 859c78c commit a109f7d

23 files changed

+520
-84
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
## Unreleased
44

5+
## Version 1.39.0 (2026-01-28)
6+
7+
* Bump to semconv v1.39.0
8+
59
## Version 1.38.0 (2026-01-27)
610

711
* Bump to semconv v1.38.0

build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ val snapshot = true
1111
// end
1212

1313
// The release version of https://github.com/open-telemetry/semantic-conventions used to generate classes
14-
var semanticConventionsVersion = "1.38.0"
14+
var semanticConventionsVersion = "1.39.0"
1515
val schemaUrlVersions = listOf(
1616
semanticConventionsVersion,
17+
"1.38.0",
1718
"1.37.0",
1819
"1.36.0",
1920
"1.35.0",
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1-
Comparing source compatibility of opentelemetry-semconv-1.38.0-SNAPSHOT.jar against opentelemetry-semconv-1.38.0.jar
2-
No changes.
1+
Comparing source compatibility of opentelemetry-semconv-1.39.0-SNAPSHOT.jar against opentelemetry-semconv-1.38.0.jar
2+
*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.semconv.SchemaUrls (not serializable)
3+
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
4+
+++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String V1_39_0

semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudIncubatingAttributes.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@ public final class CloudIncubatingAttributes {
9595

9696
/** Values for {@link #CLOUD_PLATFORM}. */
9797
public static final class CloudPlatformIncubatingValues {
98+
/** Akamai Cloud Compute */
99+
public static final String AKAMAI_CLOUD_COMPUTE = "akamai_cloud.compute";
100+
98101
/** Alibaba Cloud Elastic Compute Service */
99102
public static final String ALIBABA_CLOUD_ECS = "alibaba_cloud_ecs";
100103

@@ -146,6 +149,9 @@ public static final class CloudPlatformIncubatingValues {
146149
/** Azure Red Hat OpenShift */
147150
public static final String AZURE_OPENSHIFT = "azure.openshift";
148151

152+
/** Google Vertex AI Agent Engine */
153+
public static final String GCP_AGENT_ENGINE = "gcp.agent_engine";
154+
149155
/** Google Bare Metal Solution (BMS) */
150156
public static final String GCP_BARE_METAL_SOLUTION = "gcp_bare_metal_solution";
151157

@@ -167,6 +173,9 @@ public static final class CloudPlatformIncubatingValues {
167173
/** Red Hat OpenShift on Google Cloud */
168174
public static final String GCP_OPENSHIFT = "gcp_openshift";
169175

176+
/** Server on Hetzner Cloud */
177+
public static final String HETZNER_CLOUD_SERVER = "hetzner.cloud_server";
178+
170179
/** Red Hat OpenShift on IBM Cloud */
171180
public static final String IBM_CLOUD_OPENSHIFT = "ibm_cloud_openshift";
172181

@@ -185,11 +194,17 @@ public static final class CloudPlatformIncubatingValues {
185194
/** Tencent Cloud Serverless Cloud Function (SCF) */
186195
public static final String TENCENT_CLOUD_SCF = "tencent_cloud_scf";
187196

197+
/** Vultr Cloud Compute */
198+
public static final String VULTR_CLOUD_COMPUTE = "vultr.cloud_compute";
199+
188200
private CloudPlatformIncubatingValues() {}
189201
}
190202

191203
/** Values for {@link #CLOUD_PROVIDER}. */
192204
public static final class CloudProviderIncubatingValues {
205+
/** Akamai Cloud */
206+
public static final String AKAMAI_CLOUD = "akamai_cloud";
207+
193208
/** Alibaba Cloud */
194209
public static final String ALIBABA_CLOUD = "alibaba_cloud";
195210

@@ -205,6 +220,9 @@ public static final class CloudProviderIncubatingValues {
205220
/** Heroku Platform as a Service */
206221
public static final String HEROKU = "heroku";
207222

223+
/** Hetzner */
224+
public static final String HETZNER = "hetzner";
225+
208226
/** IBM Cloud */
209227
public static final String IBM_CLOUD = "ibm_cloud";
210228

@@ -214,6 +232,9 @@ public static final class CloudProviderIncubatingValues {
214232
/** Tencent Cloud */
215233
public static final String TENCENT_CLOUD = "tencent_cloud";
216234

235+
/** Vultr */
236+
public static final String VULTR = "vultr";
237+
217238
private CloudProviderIncubatingValues() {}
218239
}
219240

semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ContainerIncubatingAttributes.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public final class ContainerIncubatingAttributes {
8282
*
8383
* <p>Docker defines a sha256 of the image id; {@code container.image.id} corresponds to the
8484
* {@code Image} field from the Docker container inspect <a
85-
* href="https://docs.docker.com/reference/api/engine/version/v1.43/#tag/Container/operation/ContainerInspect">API</a>
85+
* href="https://docs.docker.com/reference/api/engine/version/v1.52/#tag/Container/operation/ContainerInspect">API</a>
8686
* endpoint. K8s defines a link to the container registry repository with digest {@code "imageID":
8787
* "registry.azurecr.io
8888
* /namespace/service/dockerfile@sha256:bdeabd40c3a8a492eaf9e8e44d0ebbb84bac7ee25ac0cf8a7159d25f62555625"}.
@@ -101,7 +101,7 @@ public final class ContainerIncubatingAttributes {
101101
* <p>Notes:
102102
*
103103
* <p><a
104-
* href="https://docs.docker.com/reference/api/engine/version/v1.43/#tag/Image/operation/ImageInspect">Docker</a>
104+
* href="https://docs.docker.com/reference/api/engine/version/v1.52/#tag/Image/operation/ImageInspect">Docker</a>
105105
* and <a
106106
* href="https://github.com/kubernetes/cri-api/blob/c75ef5b473bbe2d0a4fc92f82235efd665ea8e9f/pkg/apis/runtime/v1/api.proto#L1237-L1238">CRI</a>
107107
* report those under the {@code RepoDigests} field.
@@ -111,7 +111,7 @@ public final class ContainerIncubatingAttributes {
111111

112112
/**
113113
* Container image tags. An example can be found in <a
114-
* href="https://docs.docker.com/reference/api/engine/version/v1.43/#tag/Image/operation/ImageInspect">Docker
114+
* href="https://docs.docker.com/reference/api/engine/version/v1.52/#tag/Image/operation/ImageInspect">Docker
115115
* Image Inspect</a>. Should be only the {@code <tag>} section of the full name for example from
116116
* {@code registry.example.com/my-org/my-image:<tag>}.
117117
*/

semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DbIncubatingAttributes.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,7 @@ public final class DbIncubatingAttributes {
422422
* <p>Summary may be available to the instrumentation through instrumentation hooks or other
423423
* means. If it is not available, instrumentations that support query parsing SHOULD generate a
424424
* summary following <a
425-
* href="/docs/database/database-spans.md#generating-a-summary-of-the-query">Generating query
425+
* href="/docs/db/database-spans.md#generating-a-summary-of-the-query">Generating query
426426
* summary</a> section.
427427
*
428428
* @deprecated deprecated in favor of stable {@link
@@ -437,7 +437,7 @@ public final class DbIncubatingAttributes {
437437
* <p>Notes:
438438
*
439439
* <p>For sanitization see <a
440-
* href="/docs/database/database-spans.md#sanitization-of-dbquerytext">Sanitization of {@code
440+
* href="/docs/db/database-spans.md#sanitization-of-dbquerytext">Sanitization of {@code
441441
* db.query.text}</a>. For batch operations, if the individual operations are known to have the
442442
* same query text then that query text SHOULD be used, otherwise all of the individual query
443443
* texts SHOULD be concatenated with separator {@code ; } or some other database system specific

semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ErrorIncubatingAttributes.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public final class ErrorIncubatingAttributes {
4747
* <p>If the operation has completed successfully, instrumentations SHOULD NOT set {@code
4848
* error.type}.
4949
*
50-
* <p>If a specific domain defines its own set of error identifiers (such as HTTP or gRPC status
50+
* <p>If a specific domain defines its own set of error identifiers (such as HTTP or RPC status
5151
* codes), it's RECOMMENDED to:
5252
*
5353
* <ul>

semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GenAiIncubatingAttributes.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,9 @@ public final class GenAiIncubatingAttributes {
166166
*/
167167
@Deprecated public static final AttributeKey<String> GEN_AI_PROMPT = stringKey("gen_ai.prompt");
168168

169+
/** The name of the prompt that uniquely identifies it. */
170+
public static final AttributeKey<String> GEN_AI_PROMPT_NAME = stringKey("gen_ai.prompt.name");
171+
169172
/**
170173
* The Generative AI provider as identified by the client or server instrumentation.
171174
*
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.semconv.incubating;
7+
8+
import static io.opentelemetry.api.common.AttributeKey.stringKey;
9+
10+
import io.opentelemetry.api.common.AttributeKey;
11+
12+
// DO NOT EDIT, this is an Auto-generated file from
13+
// buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2
14+
@SuppressWarnings("unused")
15+
public final class JsonrpcIncubatingAttributes {
16+
/**
17+
* Protocol version, as specified in the {@code jsonrpc} property of the request and its
18+
* corresponding response.
19+
*/
20+
public static final AttributeKey<String> JSONRPC_PROTOCOL_VERSION =
21+
stringKey("jsonrpc.protocol.version");
22+
23+
/**
24+
* A string representation of the {@code id} property of the request and its corresponding
25+
* response.
26+
*
27+
* <p>Notes:
28+
*
29+
* <p>Under the <a href="https://www.jsonrpc.org/specification">JSON-RPC specification</a>, the
30+
* {@code id} property may be a string, number, null, or omitted entirely. When omitted, the
31+
* request is treated as a notification. Using {@code null} is not equivalent to omitting the
32+
* {@code id}, but it is discouraged. Instrumentations SHOULD NOT capture this attribute when the
33+
* {@code id} is {@code null} or omitted.
34+
*/
35+
public static final AttributeKey<String> JSONRPC_REQUEST_ID = stringKey("jsonrpc.request.id");
36+
37+
// Enum definitions
38+
39+
private JsonrpcIncubatingAttributes() {}
40+
}

semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/K8sIncubatingAttributes.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,33 @@ public final class K8sIncubatingAttributes {
445445
public static final AttributeKeyTemplate<String> K8S_POD_ANNOTATION =
446446
stringKeyTemplate("k8s.pod.annotation");
447447

448+
/**
449+
* Specifies the hostname of the Pod.
450+
*
451+
* <p>Notes:
452+
*
453+
* <p>The K8s Pod spec has an optional hostname field, which can be used to specify a hostname.
454+
* Refer to <a
455+
* href="https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-hostname-and-subdomain-field">K8s
456+
* docs</a> for more information about this field.
457+
*
458+
* <p>This attribute aligns with the {@code hostname} field of the <a
459+
* href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podspec-v1-core">K8s
460+
* PodSpec</a>.
461+
*/
462+
public static final AttributeKey<String> K8S_POD_HOSTNAME = stringKey("k8s.pod.hostname");
463+
464+
/**
465+
* IP address allocated to the Pod.
466+
*
467+
* <p>Notes:
468+
*
469+
* <p>This attribute aligns with the {@code podIP} field of the <a
470+
* href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podstatus-v1-core">K8s
471+
* PodStatus</a>.
472+
*/
473+
public static final AttributeKey<String> K8S_POD_IP = stringKey("k8s.pod.ip");
474+
448475
/**
449476
* The label placed on the Pod, the {@code <key>} being the label name, the value being the label
450477
* value.
@@ -477,6 +504,20 @@ public final class K8sIncubatingAttributes {
477504
/** The name of the Pod. */
478505
public static final AttributeKey<String> K8S_POD_NAME = stringKey("k8s.pod.name");
479506

507+
/**
508+
* The start timestamp of the Pod.
509+
*
510+
* <p>Notes:
511+
*
512+
* <p>Date and time at which the object was acknowledged by the Kubelet. This is before the
513+
* Kubelet pulled the container image(s) for the pod.
514+
*
515+
* <p>This attribute aligns with the {@code startTime} field of the <a
516+
* href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podstatus-v1-core">K8s
517+
* PodStatus</a>, in ISO 8601 (RFC 3339 compatible) format.
518+
*/
519+
public static final AttributeKey<String> K8S_POD_START_TIME = stringKey("k8s.pod.start_time");
520+
480521
/**
481522
* The phase for the pod. Corresponds to the {@code phase} field of the: <a
482523
* href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.33/#podstatus-v1-core">K8s

0 commit comments

Comments
 (0)