diff --git a/CHANGELOG.md b/CHANGELOG.md index b4f170b66..a030413af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,11 @@ and this repository adheres to [Semantic Versioning](https://semver.org/spec/v2. ## Unreleased +## v2.26.0 - 2026-03-18 + +- OpenTelemetry Java SDK has been updated to version 1.60.1. +- OpenTelemetry Instrumentation for Java has been updated to version 2.26.0. + ## v2.25.1 - 2026-02-26 - Update CSA to version 26.2.1-1436. diff --git a/README.md b/README.md index 5c0272b3c..04f96ff10 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Splunk Distribution of OpenTelemetry Java ![Stable](https://img.shields.io/badge/status-stable-informational) -[![OpenTelemetry Instrumentation for Java Version](https://img.shields.io/badge/otel-2.25.0-blueviolet)](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/tag/v2.25.0) +[![OpenTelemetry Instrumentation for Java Version](https://img.shields.io/badge/otel-2.26.0-blueviolet)](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/tag/v2.26.0) [![Splunk GDI specification](https://img.shields.io/badge/GDI-1.8.0-blueviolet)](https://github.com/signalfx/gdi-specification/releases/tag/v1.8.0) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/signalfx/splunk-otel-java?include_prereleases)](https://github.com/signalfx/splunk-otel-java/releases) [![Maven Central](https://img.shields.io/maven-central/v/com.splunk/splunk-otel-javaagent)](https://central.sonatype.com/artifact/com.splunk/splunk-otel-javaagent) @@ -43,11 +43,6 @@ see [Migrate from the SignalFx Java Agent](https://help.splunk.com/en/splunk-obs - -The following documentation refers to the in-development version of `splunk-otel-java`. Docs for the latest version ([v2.25.1](https://github.com/signalfx/splunk-otel-java/releases/latest)) can be found [here](https://github.com/signalfx/splunk-otel-java/blob/v2.25.1/README.md). - ---- - ## Requirements @@ -79,11 +74,11 @@ To extend the instrumentation with the OpenTelemetry Instrumentation for Java, you have to use a compatible API version. -The Splunk Distribution of OpenTelemetry Java version 2.25.1 is compatible +The Splunk Distribution of OpenTelemetry Java version 2.26.0 is compatible with: -* OpenTelemetry API version 1.57.0 -* OpenTelemetry Instrumentation for Java version 2.25.0 +* OpenTelemetry API version 1.60.1 +* OpenTelemetry Instrumentation for Java version 2.26.0 ## Snapshot builds diff --git a/agent/license-overrides.txt b/agent/license-overrides.txt index efbdaf3ad..e69de29bb 100644 --- a/agent/license-overrides.txt +++ b/agent/license-overrides.txt @@ -1,2 +0,0 @@ -# opentelemetry-sdk-trace jar includes META-INF/maven/org.jctools/jctools-core Hopefully this will get removed in the next release and we won't need these overrides -io.opentelemetry:opentelemetry-sdk-trace:1.59.0|https://github.com/open-telemetry/opentelemetry-java|Apache License, Version 2.0|https://www.apache.org/licenses/LICENSE-2.0 diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 580bb0c17..fa175ad53 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -41,7 +41,7 @@ dependencies { implementation(gradleApi()) implementation("com.diffplug.spotless:spotless-plugin-gradle:8.3.0") - implementation("io.opentelemetry.instrumentation:gradle-plugins:2.25.0-alpha") + implementation("io.opentelemetry.instrumentation:gradle-plugins:2.26.0-alpha") // keep these versions in sync with settings.gradle.kts implementation("com.gradleup.shadow:shadow-gradle-plugin:9.4.0") diff --git a/dependencyManagement/build.gradle.kts b/dependencyManagement/build.gradle.kts index b080b308c..f685742b2 100644 --- a/dependencyManagement/build.gradle.kts +++ b/dependencyManagement/build.gradle.kts @@ -6,7 +6,7 @@ val otelVersion = "1.60.1" val otelAlphaVersion = otelVersion.replaceFirst("(-SNAPSHOT)?$".toRegex(), "-alpha$1") val otelInstrumentationVersion = "2.26.0-SNAPSHOT" val otelInstrumentationAlphaVersion = otelInstrumentationVersion.replaceFirst("(-SNAPSHOT)?$".toRegex(), "-alpha$1") -val otelContribAlphaVersion = "1.53.0-alpha" +val otelContribAlphaVersion = "1.54.0-alpha" val autoValueVersion = "1.11.1" val dockerJavaVersion = "3.7.0" diff --git a/deployments/cloudfoundry/buildpack/README.md b/deployments/cloudfoundry/buildpack/README.md index a8fae1d6d..c3bcdf6f6 100644 --- a/deployments/cloudfoundry/buildpack/README.md +++ b/deployments/cloudfoundry/buildpack/README.md @@ -40,7 +40,7 @@ If you want to use a specific version of the Java agent in your application, you environment variable before application deployment, either using `cf set-env` or the `manifest.yml` file: ```sh -$ cf set-env SPLUNK_OTEL_JAVA_VERSION 2.25.1 +$ cf set-env SPLUNK_OTEL_JAVA_VERSION 2.26.0 ``` By default, the [latest](https://github.com/signalfx/splunk-otel-java/releases/latest) available agent version is used. diff --git a/licenses/licenses.md b/licenses/licenses.md index 7593c5e45..c97b91c92 100644 --- a/licenses/licenses.md +++ b/licenses/licenses.md @@ -1,7 +1,7 @@ # splunk-otel-javaagent ## Dependency License Report -_2026-03-10 12:00:59 EET_ +_2026-03-17 16:11:25 EET_ ## Apache License, Version 2.0 **1** **Group:** `com.squareup.okhttp3` **Name:** `okhttp` **Version:** `5.3.2` @@ -80,15 +80,15 @@ _2026-03-10 12:00:59 EET_ > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**20** **Group:** `io.opentelemetry.contrib` **Name:** `opentelemetry-opamp-client` **Version:** `1.53.0-alpha` +**20** **Group:** `io.opentelemetry.contrib` **Name:** `opentelemetry-opamp-client` **Version:** `1.54.0-alpha` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java-contrib](https://github.com/open-telemetry/opentelemetry-java-contrib) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**21** **Group:** `io.opentelemetry.contrib` **Name:** `opentelemetry-resource-providers` **Version:** `1.53.0-alpha` +**21** **Group:** `io.opentelemetry.contrib` **Name:** `opentelemetry-resource-providers` **Version:** `1.54.0-alpha` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java-contrib](https://github.com/open-telemetry/opentelemetry-java-contrib) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**22** **Group:** `io.opentelemetry.contrib` **Name:** `opentelemetry-samplers` **Version:** `1.53.0-alpha` +**22** **Group:** `io.opentelemetry.contrib` **Name:** `opentelemetry-samplers` **Version:** `1.54.0-alpha` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java-contrib](https://github.com/open-telemetry/opentelemetry-java-contrib) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) diff --git a/metadata-generator/src/main/java/com/splunk/opentelemetry/tools/MetadataGenerator.java b/metadata-generator/src/main/java/com/splunk/opentelemetry/tools/MetadataGenerator.java index f3fb1941f..608ed234a 100644 --- a/metadata-generator/src/main/java/com/splunk/opentelemetry/tools/MetadataGenerator.java +++ b/metadata-generator/src/main/java/com/splunk/opentelemetry/tools/MetadataGenerator.java @@ -935,6 +935,20 @@ otel.exporter.otlp.metrics.temporality.preference OTEL_EXPORTER_OTLP_METRICS_TEM "", SettingType.STRING, SettingCategory.INSTRUMENTATION)); + settings.add( + setting( + "otel.instrumentation.sanitization.url.experimental.sensitive-query-parameters", + "A comma-separated list of HTTP url parameter names. HTTP server and client instrumentations will redact the values of give url parameters.", + "AWSAccessKeyId, Signature, sig, X-Goog-Signature", + SettingType.STRING, + SettingCategory.INSTRUMENTATION)); + settings.add( + setting( + "otel.instrumentation.http.known-methods", + "A comma-separated list of known HTTP methods. `_OTHER` will be used for methods not in this list.", + "CONNECT, DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT, TRACE", + SettingType.STRING, + SettingCategory.INSTRUMENTATION)); // Capturing servlet request parameters // https://opentelemetry.io/docs/instrumentation/java/automatic/agent-config/#capturing-servlet-request-parameters @@ -1050,6 +1064,8 @@ You can configure the agent to capture general identity attributes (enduser.id, "false", SettingType.BOOLEAN, SettingCategory.INSTRUMENTATION)); + // deprecated in favor of + // otel.instrumentation.sanitization.url.experimental.sensitive-query-parameters settings.add( setting( "otel.instrumentation.http.client.experimental.redact-query-parameters", @@ -2049,6 +2065,26 @@ Some instrumentations (e.g. Spring Web MVC instrumentation) produce SpanKind.Int SettingType.BOOLEAN, SettingCategory.INSTRUMENTATION)); + // https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/instrumentation/opensearch/README.md + /* + | `otel.instrumentation.opensearch.experimental-span-attributes` | Boolean | `false` | Enable the capture of experimental span attributes. | + | `otel.instrumentation.opensearch.capture-search-query` | Boolean | `true` | Enable the capture of sanitized search query bodies. | + */ + settings.add( + setting( + "otel.instrumentation.opensearch.experimental-span-attributes", + "Enable the capture of experimental span attributes.", + "false", + SettingType.BOOLEAN, + SettingCategory.INSTRUMENTATION)); + settings.add( + setting( + "otel.instrumentation.opensearch.capture-search-query", + "Enable the capture of sanitized search query bodies.", + "true", + SettingType.BOOLEAN, + SettingCategory.INSTRUMENTATION)); + // https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/instrumentation/opentelemetry-extension-annotations-1.0/README.md /* | `otel.instrumentation.opentelemetry-annotations.exclude-methods` | String | | All methods to be excluded from auto-instrumentation by annotation-based advices. | @@ -3485,6 +3521,10 @@ Some instrumentations (e.g. Spring Web MVC instrumentation) produce SpanKind.Int "jvm.file_descriptor.count", MetricInstrument.UP_DOWN_COUNTER, "Number of open file descriptors as reported by the JVM (disabled by default).") + .customMetric( + "jvm.file_descriptor.limit", + MetricInstrument.UP_DOWN_COUNTER, + "Measure of max open file descriptors as reported by the JVM (disabled by default).") // XXX JFR metrics from runtime-telemetry-java17 are missing .build()); instrumentations.add(instrumentation("javalin").component("Javalin", "5.0 and higher").build()); @@ -3757,6 +3797,8 @@ Some instrumentations (e.g. Spring Web MVC instrumentation) produce SpanKind.Int instrumentations.add( instrumentation("xxl-job").component("XXL-JOB", "1.9.2 and higher").build()); instrumentations.add(instrumentation("zio").component("ZIO", "2.0 and higher").build()); + instrumentations.add( + instrumentation("zio-http").component("ZIO HTTP", "3.0 and higher").build()); // splunk instrumentations instrumentations.add( @@ -3866,7 +3908,7 @@ Some instrumentations (e.g. Spring Web MVC instrumentation) produce SpanKind.Int resourceProvider( "io.opentelemetry.instrumentation.resources.OsResourceProvider", "Os detector.", - List.of("os.type", "os.description")) + List.of("os.type", "os.description", "os.version")) .dependency( "OpenTelemetry Java Instrumentation Resource Providers", "https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/resources/library", diff --git a/version.gradle.kts b/version.gradle.kts index 7ebca0586..19756f60a 100644 --- a/version.gradle.kts +++ b/version.gradle.kts @@ -1,5 +1,5 @@ // do NOT update that variable manually - it is managed by the pre/post release scripts -val distroVersion = "2.26.0-SNAPSHOT" +val distroVersion = "2.26.0" allprojects { version = distroVersion