Skip to content
Merged
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
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

## Unreleased

## Version 1.39.0 (2026-01-28)

* Bump to semconv v1.39.0

## Version 1.38.0 (2026-01-27)

* Bump to semconv v1.38.0
Expand Down
3 changes: 2 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@ val snapshot = true
// end

// The release version of https://github.com/open-telemetry/semantic-conventions used to generate classes
var semanticConventionsVersion = "1.38.0"
var semanticConventionsVersion = "1.39.0"
val schemaUrlVersions = listOf(
semanticConventionsVersion,
"1.38.0",
"1.37.0",
"1.36.0",
"1.35.0",
Expand Down
6 changes: 4 additions & 2 deletions docs/apidiffs/current_vs_latest/opentelemetry-semconv.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
Comparing source compatibility of opentelemetry-semconv-1.38.0-SNAPSHOT.jar against opentelemetry-semconv-1.38.0.jar
No changes.
Comparing source compatibility of opentelemetry-semconv-1.39.0-SNAPSHOT.jar against opentelemetry-semconv-1.38.0.jar
*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.semconv.SchemaUrls (not serializable)
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String V1_39_0
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,9 @@ public final class CloudIncubatingAttributes {

/** Values for {@link #CLOUD_PLATFORM}. */
public static final class CloudPlatformIncubatingValues {
/** Akamai Cloud Compute */
public static final String AKAMAI_CLOUD_COMPUTE = "akamai_cloud.compute";

/** Alibaba Cloud Elastic Compute Service */
public static final String ALIBABA_CLOUD_ECS = "alibaba_cloud_ecs";

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

/** Google Vertex AI Agent Engine */
public static final String GCP_AGENT_ENGINE = "gcp.agent_engine";

/** Google Bare Metal Solution (BMS) */
public static final String GCP_BARE_METAL_SOLUTION = "gcp_bare_metal_solution";

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

/** Server on Hetzner Cloud */
public static final String HETZNER_CLOUD_SERVER = "hetzner.cloud_server";

/** Red Hat OpenShift on IBM Cloud */
public static final String IBM_CLOUD_OPENSHIFT = "ibm_cloud_openshift";

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

/** Vultr Cloud Compute */
public static final String VULTR_CLOUD_COMPUTE = "vultr.cloud_compute";

private CloudPlatformIncubatingValues() {}
}

/** Values for {@link #CLOUD_PROVIDER}. */
public static final class CloudProviderIncubatingValues {
/** Akamai Cloud */
public static final String AKAMAI_CLOUD = "akamai_cloud";

/** Alibaba Cloud */
public static final String ALIBABA_CLOUD = "alibaba_cloud";

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

/** Hetzner */
public static final String HETZNER = "hetzner";

/** IBM Cloud */
public static final String IBM_CLOUD = "ibm_cloud";

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

/** Vultr */
public static final String VULTR = "vultr";

private CloudProviderIncubatingValues() {}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ public final class ContainerIncubatingAttributes {
*
* <p>Docker defines a sha256 of the image id; {@code container.image.id} corresponds to the
* {@code Image} field from the Docker container inspect <a
* href="https://docs.docker.com/reference/api/engine/version/v1.43/#tag/Container/operation/ContainerInspect">API</a>
* href="https://docs.docker.com/reference/api/engine/version/v1.52/#tag/Container/operation/ContainerInspect">API</a>
* endpoint. K8s defines a link to the container registry repository with digest {@code "imageID":
* "registry.azurecr.io
* /namespace/service/dockerfile@sha256:bdeabd40c3a8a492eaf9e8e44d0ebbb84bac7ee25ac0cf8a7159d25f62555625"}.
Expand All @@ -101,7 +101,7 @@ public final class ContainerIncubatingAttributes {
* <p>Notes:
*
* <p><a
* href="https://docs.docker.com/reference/api/engine/version/v1.43/#tag/Image/operation/ImageInspect">Docker</a>
* href="https://docs.docker.com/reference/api/engine/version/v1.52/#tag/Image/operation/ImageInspect">Docker</a>
* and <a
* href="https://github.com/kubernetes/cri-api/blob/c75ef5b473bbe2d0a4fc92f82235efd665ea8e9f/pkg/apis/runtime/v1/api.proto#L1237-L1238">CRI</a>
* report those under the {@code RepoDigests} field.
Expand All @@ -111,7 +111,7 @@ public final class ContainerIncubatingAttributes {

/**
* Container image tags. An example can be found in <a
* href="https://docs.docker.com/reference/api/engine/version/v1.43/#tag/Image/operation/ImageInspect">Docker
* href="https://docs.docker.com/reference/api/engine/version/v1.52/#tag/Image/operation/ImageInspect">Docker
* Image Inspect</a>. Should be only the {@code <tag>} section of the full name for example from
* {@code registry.example.com/my-org/my-image:<tag>}.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -422,7 +422,7 @@ public final class DbIncubatingAttributes {
* <p>Summary may be available to the instrumentation through instrumentation hooks or other
* means. If it is not available, instrumentations that support query parsing SHOULD generate a
* summary following <a
* href="/docs/database/database-spans.md#generating-a-summary-of-the-query">Generating query
* href="/docs/db/database-spans.md#generating-a-summary-of-the-query">Generating query
* summary</a> section.
*
* @deprecated deprecated in favor of stable {@link
Expand All @@ -437,7 +437,7 @@ public final class DbIncubatingAttributes {
* <p>Notes:
*
* <p>For sanitization see <a
* href="/docs/database/database-spans.md#sanitization-of-dbquerytext">Sanitization of {@code
* href="/docs/db/database-spans.md#sanitization-of-dbquerytext">Sanitization of {@code
* db.query.text}</a>. 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 {@code ; } or some other database system specific
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public final class ErrorIncubatingAttributes {
* <p>If the operation has completed successfully, instrumentations SHOULD NOT set {@code
* error.type}.
*
* <p>If a specific domain defines its own set of error identifiers (such as HTTP or gRPC status
* <p>If a specific domain defines its own set of error identifiers (such as HTTP or RPC status
* codes), it's RECOMMENDED to:
*
* <ul>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,9 @@ public final class GenAiIncubatingAttributes {
*/
@Deprecated public static final AttributeKey<String> GEN_AI_PROMPT = stringKey("gen_ai.prompt");

/** The name of the prompt that uniquely identifies it. */
public static final AttributeKey<String> GEN_AI_PROMPT_NAME = stringKey("gen_ai.prompt.name");

/**
* The Generative AI provider as identified by the client or server instrumentation.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.semconv.incubating;

import static io.opentelemetry.api.common.AttributeKey.stringKey;

import io.opentelemetry.api.common.AttributeKey;

// DO NOT EDIT, this is an Auto-generated file from
// buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2
@SuppressWarnings("unused")
public final class JsonrpcIncubatingAttributes {
/**
* Protocol version, as specified in the {@code jsonrpc} property of the request and its
* corresponding response.
*/
public static final AttributeKey<String> JSONRPC_PROTOCOL_VERSION =
stringKey("jsonrpc.protocol.version");

/**
* A string representation of the {@code id} property of the request and its corresponding
* response.
*
* <p>Notes:
*
* <p>Under the <a href="https://www.jsonrpc.org/specification">JSON-RPC specification</a>, the
* {@code id} property may be a string, number, null, or omitted entirely. When omitted, the
* request is treated as a notification. Using {@code null} is not equivalent to omitting the
* {@code id}, but it is discouraged. Instrumentations SHOULD NOT capture this attribute when the
* {@code id} is {@code null} or omitted.
*/
public static final AttributeKey<String> JSONRPC_REQUEST_ID = stringKey("jsonrpc.request.id");

// Enum definitions

private JsonrpcIncubatingAttributes() {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -445,6 +445,33 @@ public final class K8sIncubatingAttributes {
public static final AttributeKeyTemplate<String> K8S_POD_ANNOTATION =
stringKeyTemplate("k8s.pod.annotation");

/**
* Specifies the hostname of the Pod.
*
* <p>Notes:
*
* <p>The K8s Pod spec has an optional hostname field, which can be used to specify a hostname.
* Refer to <a
* href="https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-hostname-and-subdomain-field">K8s
* docs</a> for more information about this field.
*
* <p>This attribute aligns with the {@code hostname} field of the <a
* href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podspec-v1-core">K8s
* PodSpec</a>.
*/
public static final AttributeKey<String> K8S_POD_HOSTNAME = stringKey("k8s.pod.hostname");

/**
* IP address allocated to the Pod.
*
* <p>Notes:
*
* <p>This attribute aligns with the {@code podIP} field of the <a
* href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podstatus-v1-core">K8s
* PodStatus</a>.
*/
public static final AttributeKey<String> K8S_POD_IP = stringKey("k8s.pod.ip");

/**
* The label placed on the Pod, the {@code <key>} being the label name, the value being the label
* value.
Expand Down Expand Up @@ -477,6 +504,20 @@ public final class K8sIncubatingAttributes {
/** The name of the Pod. */
public static final AttributeKey<String> K8S_POD_NAME = stringKey("k8s.pod.name");

/**
* The start timestamp of the Pod.
*
* <p>Notes:
*
* <p>Date and time at which the object was acknowledged by the Kubelet. This is before the
* Kubelet pulled the container image(s) for the pod.
*
* <p>This attribute aligns with the {@code startTime} field of the <a
* href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podstatus-v1-core">K8s
* PodStatus</a>, in ISO 8601 (RFC 3339 compatible) format.
*/
public static final AttributeKey<String> K8S_POD_START_TIME = stringKey("k8s.pod.start_time");

/**
* The phase for the pod. Corresponds to the {@code phase} field of the: <a
* href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.33/#podstatus-v1-core">K8s
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,23 @@
// buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2
@SuppressWarnings("unused")
public final class LinuxIncubatingAttributes {
/** The Linux Slab memory state */
/**
* The Linux Slab memory state
*
* @deprecated Replaced by {@code system.memory.linux.slab.state}.
*/
@Deprecated
public static final AttributeKey<String> LINUX_MEMORY_SLAB_STATE =
stringKey("linux.memory.slab.state");

// Enum definitions

/** Values for {@link #LINUX_MEMORY_SLAB_STATE}. */
/**
* Values for {@link #LINUX_MEMORY_SLAB_STATE}
*
* @deprecated Replaced by {@code system.memory.linux.slab.state}.
*/
@Deprecated
public static final class LinuxMemorySlabStateIncubatingValues {
/** reclaimable. */
public static final String RECLAIMABLE = "reclaimable";
Expand Down
Loading
Loading