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
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

## Unreleased

* Bump to semconv v1.44.0
([#549](https://github.com/open-telemetry/semantic-conventions-java/pull/549))

## Version 1.43.0 (2026-07-08)

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

// The release version of https://github.com/open-telemetry/semantic-conventions used to generate classes
var semanticConventionsVersion = "1.43.0"
var semanticConventionsVersion = "1.44.0"
val schemaUrlVersions = listOf(
semanticConventionsVersion,
"1.43.0",
"1.42.0",
"1.41.1",
"1.41.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ templates:
"exclude_stability": []
}) | map({
root_namespace: .root_namespace,
metrics: .metrics
metrics: [.metrics[] | select(.id == ("metric." + .metric_name))]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @lmolkova is this expected that we need to filter out duplicates now due to refinements? (we got duplicate constants for the hw.errors metric)

@lmolkova lmolkova Aug 6, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not expected, looking

update: sent a fix open-telemetry/weaver#1676 - I'll try to get weaver released in the next few days, but if you're in hurry go ahead with the workaround - it looks good

})
application_mode: each
file_name: "{{ctx.root_namespace | pascal_case}}IncubatingMetrics.java"
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.43.0-SNAPSHOT.jar against opentelemetry-semconv-1.43.0.jar
No changes.
Comparing source compatibility of opentelemetry-semconv-1.44.0-SNAPSHOT.jar against opentelemetry-semconv-1.43.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_44_0
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public final class AndroidIncubatingAttributes {

/**
* Uniquely identifies the framework API revision offered by a version ({@code os.version}) of the
* android operating system. More information can be found in the <a
* Android operating system. More information can be found in the <a
* href="https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels">Android
* API levels documentation</a>.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public final class AppIncubatingAttributes {
public static final AttributeKey<String> APP_BUILD_ID = stringKey("app.build_id");

/**
* A unique identifier representing an instance of an end-user facing app crash.
* A unique identifier representing an instance of an end user facing app crash.
*
* <p>Notes:
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,17 @@ public final class ArtifactIncubatingAttributes {
public static final AttributeKey<String> ARTIFACT_ATTESTATION_HASH =
stringKey("artifact.attestation.hash");

/** The id of the build <a href="https://slsa.dev/attestation-model">software attestation</a>. */
/** The ID of the build <a href="https://slsa.dev/attestation-model">software attestation</a>. */
public static final AttributeKey<String> ARTIFACT_ATTESTATION_ID =
stringKey("artifact.attestation.id");

/**
* The human readable file name of the artifact, typically generated during build and release
* processes. Often includes the package name and version in the file name.
* The human readable filename of the artifact, typically generated during build and release
* processes. Often includes the package name and version in the filename.
*
* <p>Notes:
*
* <p>This file name can also act as the <a
* <p>This filename can also act as the <a
* href="https://slsa.dev/spec/v1.0/terminology#package-model">Package Name</a> in cases where the
* package ecosystem maps accordingly. Additionally, the artifact <a
* href="https://slsa.dev/spec/v1.0/terminology#software-supply-chain">can be published</a> for
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
package io.opentelemetry.semconv.incubating;

import static io.opentelemetry.api.common.AttributeKey.booleanKey;
import static io.opentelemetry.api.common.AttributeKey.doubleKey;
import static io.opentelemetry.api.common.AttributeKey.stringArrayKey;
import static io.opentelemetry.api.common.AttributeKey.stringKey;

Expand Down Expand Up @@ -72,7 +73,108 @@ public final class BrowserIncubatingAttributes {
*/
public static final AttributeKey<String> BROWSER_PLATFORM = stringKey("browser.platform");

/**
* The delta between the current value and the last-reported value. See <a
* href="https://github.com/GoogleChrome/web-vitals?tab=readme-ov-file#report-only-the-delta-of-changes">delta</a>.
*/
public static final AttributeKey<Double> BROWSER_WEB_VITAL_DELTA =
doubleKey("browser.web_vital.delta");

/** A unique ID representing this particular metric instance. */
public static final AttributeKey<String> BROWSER_WEB_VITAL_ID = stringKey("browser.web_vital.id");

/** Name of the web vital. */
public static final AttributeKey<String> BROWSER_WEB_VITAL_NAME =
stringKey("browser.web_vital.name");

/**
* The type of navigation, as reported by the <a
* href="https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/type">Navigation
* Timing API</a>, with additional values reported by the web-vitals library.
*/
public static final AttributeKey<String> BROWSER_WEB_VITAL_NAVIGATION_TYPE =
stringKey("browser.web_vital.navigation_type");

/**
* The rating of the web vital value against the "good", "needs improvement", and "poor"
* thresholds defined for the metric.
*/
public static final AttributeKey<String> BROWSER_WEB_VITAL_RATING =
stringKey("browser.web_vital.rating");

/** Value of the web vital. */
public static final AttributeKey<Double> BROWSER_WEB_VITAL_VALUE =
doubleKey("browser.web_vital.value");

// Enum definitions

/** Values for {@link #BROWSER_WEB_VITAL_NAME}. */
public static final class BrowserWebVitalNameIncubatingValues {
/** Cumulative Layout Shift. See <a href="https://web.dev/articles/cls">cls</a>. */
public static final String CLS = "cls";

/** Largest Contentful Paint. See <a href="https://web.dev/articles/lcp">lcp</a>. */
public static final String LCP = "lcp";

/** First Contentful Paint. See <a href="https://web.dev/articles/fcp">fcp</a>. */
public static final String FCP = "fcp";

/** Interaction to Next Paint. See <a href="https://web.dev/articles/inp">inp</a>. */
public static final String INP = "inp";

/** Time to First Byte. See <a href="https://web.dev/articles/ttfb">ttfb</a>. */
public static final String TTFB = "ttfb";

/**
* First Input Delay. See <a href="https://web.dev/articles/fid">fid</a>.
*
* @deprecated Replaced by Interaction to Next Paint ({@code inp}), which became a Core Web
* Vital in March 2024. See <a href="https://web.dev/articles/inp">inp</a>.
*/
@Deprecated public static final String FID = "fid";

private BrowserWebVitalNameIncubatingValues() {}
}

/** Values for {@link #BROWSER_WEB_VITAL_NAVIGATION_TYPE}. */
public static final class BrowserWebVitalNavigationTypeIncubatingValues {
/**
* Navigation started by clicking a link, entering a URL, form submission, or a script
* operation.
*/
public static final String NAVIGATE = "navigate";

/** Navigation through a reload operation or a {@code Location.reload()} call. */
public static final String RELOAD = "reload";

/** Navigation through the browser's history traversal (e.g. back/forward buttons). */
public static final String BACK_FORWARD = "back-forward";

/** Navigation restoring a page from the back/forward cache (bfcache). */
public static final String BACK_FORWARD_CACHE = "back-forward-cache";

/** Navigation to a page that was prerendered. */
public static final String PRERENDER = "prerender";

/** Navigation restoring a page that was previously discarded by the browser. */
public static final String RESTORE = "restore";

private BrowserWebVitalNavigationTypeIncubatingValues() {}
}

/** Values for {@link #BROWSER_WEB_VITAL_RATING}. */
public static final class BrowserWebVitalRatingIncubatingValues {
/** The metric value is within the "good" threshold. */
public static final String GOOD = "good";

/** The metric value is within the "needs improvement" threshold. */
public static final String NEEDS_IMPROVEMENT = "needs-improvement";

/** The metric value is within the "poor" threshold. */
public static final String POOR = "poor";

private BrowserWebVitalRatingIncubatingValues() {}
}

private BrowserIncubatingAttributes() {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
public final class ClientIncubatingAttributes {
/**
* Client address - domain name if available without reverse DNS lookup; otherwise, IP address or
* Unix domain socket name.
* UNIX domain socket name.
*
* <p>Notes:
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,9 @@ public static final class CloudPlatformIncubatingValues {
/** Kubernetes Engine (OKE) on Oracle Cloud Infrastructure (OCI) */
public static final String ORACLE_CLOUD_OKE = "oracle_cloud_oke";

/** Compute on Scaleway Cloud */
public static final String SCALEWAY_CLOUD_COMPUTE = "scaleway_cloud_compute";

/** Tencent Cloud Cloud Virtual Machine (CVM) */
public static final String TENCENT_CLOUD_CVM = "tencent_cloud_cvm";

Expand Down Expand Up @@ -235,6 +238,9 @@ public static final class CloudProviderIncubatingValues {
/** Oracle Cloud Infrastructure (OCI) */
public static final String ORACLE_CLOUD = "oracle_cloud";

/** Scaleway Cloud */
public static final String SCALEWAY_CLOUD = "scaleway_cloud";

/** Tencent Cloud */
public static final String TENCENT_CLOUD = "tencent_cloud";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ public final class CloudfoundryIncubatingAttributes {
*
* <p>CloudFoundry defines the {@code instance_id} in the <a
* href="https://github.com/cloudfoundry/loggregator-api#v2-envelope">Loggregator v2 envelope</a>.
* It is used for logs and metrics emitted by CloudFoundry. It is supposed to contain the vm id
* It is used for logs and metrics emitted by CloudFoundry. It is supposed to contain the vm ID
* for CloudFoundry components.
*
* <p>When system components are instrumented, values from the <a
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public final class CodeIncubatingAttributes {
public static final AttributeKey<Long> CODE_COLUMN_NUMBER = longKey("code.column.number");

/**
* The source code file name that identifies the code unit as uniquely as possible (preferably an
* The source code filename that identifies the code unit as uniquely as possible (preferably an
* absolute file path). This attribute MUST NOT be used on the Profile signal since the data is
* already captured in 'message Function'. This constraint is imposed to prevent redundancy and
* maintain data integrity.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ public final class ContainerIncubatingAttributes {
*
* <p>Notes:
*
* <p>Docker defines a sha256 of the image id; {@code container.image.id} corresponds to the
* <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.52/#tag/Container/operation/ContainerInspect">API</a>
* endpoint. K8s defines a link to the container registry repository with digest {@code "imageID":
Expand All @@ -105,7 +105,7 @@ public final class ContainerIncubatingAttributes {
public static final AttributeKey<String> CONTAINER_IMAGE_NAME = stringKey("container.image.name");

/**
* Repo digests of the container image as provided by the container runtime.
* Repository digests of the container image as provided by the container runtime.
*
* <p>Notes:
*
Expand Down Expand Up @@ -140,7 +140,7 @@ public final class ContainerIncubatingAttributes {
*
* <p>Notes:
*
* <p>For example, a docker container label {@code app} with value {@code nginx} SHOULD be
* <p>For example, a Docker container label {@code app} with value {@code nginx} SHOULD be
* recorded as the {@code container.label.app} attribute with value {@code "nginx"}.
*/
public static final AttributeKeyTemplate<String> CONTAINER_LABEL =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public final class ContainerIncubatingMetrics {
public static final String CONTAINER_CPU_TIME_UNIT = "s";

/** Description of the {@code container.cpu.time} metric. */
public static final String CONTAINER_CPU_TIME_DESCRIPTION = "CPU time consumed.";
public static final String CONTAINER_CPU_TIME_DESCRIPTION = "Total CPU time consumed.";

/** Name of the {@code container.cpu.usage} metric. */
public static final String CONTAINER_CPU_USAGE_NAME = "container.cpu.usage";
Expand All @@ -26,7 +26,7 @@ public final class ContainerIncubatingMetrics {

/** Description of the {@code container.cpu.usage} metric. */
public static final String CONTAINER_CPU_USAGE_DESCRIPTION =
"Container's CPU usage, measured in cpus. Range from 0 to the number of allocatable CPUs.";
"Container's CPU usage, measured in CPUs. Range from 0 to the number of allocatable CPUs.";

/** Name of the {@code container.disk.io} metric. */
public static final String CONTAINER_DISK_IO_NAME = "container.disk.io";
Expand Down Expand Up @@ -75,15 +75,29 @@ public final class ContainerIncubatingMetrics {
/** Description of the {@code container.memory.available} metric. */
public static final String CONTAINER_MEMORY_AVAILABLE_DESCRIPTION = "Container memory available.";

/** Name of the {@code container.memory.paging.faults} metric. */
/**
* Name of the {@code container.memory.paging.faults} metric.
*
* @deprecated Replaced by {@code container.paging.faults}.
*/
@Deprecated
public static final String CONTAINER_MEMORY_PAGING_FAULTS_NAME = "container.memory.paging.faults";

/** Unit of the {@code container.memory.paging.faults} metric. */
public static final String CONTAINER_MEMORY_PAGING_FAULTS_UNIT = "{fault}";

/** Description of the {@code container.memory.paging.faults} metric. */
/**
* Unit of the {@code container.memory.paging.faults} metric.
*
* @deprecated Replaced by {@code container.paging.faults}.
*/
@Deprecated public static final String CONTAINER_MEMORY_PAGING_FAULTS_UNIT = "{fault}";

/**
* Description of the {@code container.memory.paging.faults} metric.
*
* @deprecated Replaced by {@code container.paging.faults}.
*/
@Deprecated
public static final String CONTAINER_MEMORY_PAGING_FAULTS_DESCRIPTION =
"Container memory paging faults.";
"Deprecated, use `container.paging.faults` instead.";
Comment thread
trask marked this conversation as resolved.

/** Name of the {@code container.memory.rss} metric. */
public static final String CONTAINER_MEMORY_RSS_NAME = "container.memory.rss";
Expand Down Expand Up @@ -122,6 +136,16 @@ public final class ContainerIncubatingMetrics {
/** Description of the {@code container.network.io} metric. */
public static final String CONTAINER_NETWORK_IO_DESCRIPTION = "Network bytes for the container.";

/** Name of the {@code container.paging.faults} metric. */
public static final String CONTAINER_PAGING_FAULTS_NAME = "container.paging.faults";

/** Unit of the {@code container.paging.faults} metric. */
public static final String CONTAINER_PAGING_FAULTS_UNIT = "{fault}";

/** Description of the {@code container.paging.faults} metric. */
public static final String CONTAINER_PAGING_FAULTS_DESCRIPTION =
"Container memory paging faults.";

/** Name of the {@code container.uptime} metric. */
public static final String CONTAINER_UPTIME_NAME = "container.uptime";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -413,7 +413,11 @@ public final class DbIncubatingAttributes {
* in {@code db.query.text}.
*
* <p>It is RECOMMENDED to capture the value as provided by the application without attempting to
* do any case normalization.
* do any case normalization or sanitization.
*
* <p>Instrumentations SHOULD NOT capture {@code db.query.parameter.<key>} by default since values
* may contain PII or sensitive details. Application operators are expected to enable specific
* keys depending on their privacy and security considerations.
*
* <p>{@code db.query.parameter.<key>} SHOULD NOT be captured on batch operations.
*
Expand Down Expand Up @@ -479,7 +483,7 @@ public final class DbIncubatingAttributes {
/**
* Deprecated, use {@code db.namespace} instead.
*
* @deprecated
* @deprecated Replaced by {@code db.namespace} (string).
*/
@Deprecated
public static final AttributeKey<Long> DB_REDIS_DATABASE_INDEX =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public final class DeploymentIncubatingAttributes {
public static final AttributeKey<String> DEPLOYMENT_ENVIRONMENT_NAME =
stringKey("deployment.environment.name");

/** The id of the deployment. */
/** The ID of the deployment. */
public static final AttributeKey<String> DEPLOYMENT_ID = stringKey("deployment.id");

/** The name of the deployment. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
public final class DestinationIncubatingAttributes {
/**
* Destination address - domain name if available without reverse DNS lookup; otherwise, IP
* address or Unix domain socket name.
* address or UNIX domain socket name.
*
* <p>Notes:
*
Expand Down
Loading
Loading