All notable changes to this project will be documented in this file.
The format is based on the Splunk GDI specification, and this repository adheres to Semantic Versioning.
- OpenTelemetry Java SDK has been updated to version 1.44.1.
- OpenTelemetry Instrumentation for Java has been updated to version 2.10.0.
- OpenTelemetry Java SDK has been updated to version 1.43.0.
- OpenTelemetry Instrumentation for Java has been updated to version 2.9.0.
- Micrometer dependency has been updated to version 1.13.4.
- Protobuf dependency has been updated to version 3.25.5.
- Protobuf dependency has been updated to version 3.25.5.
- OpenTelemetry Java SDK has been updated to version 1.42.1.
- OpenTelemetry Instrumentation for Java has been updated to version 2.8.0.
- OpenTelemetry Java SDK has been updated to version 1.41.0.
- OpenTelemetry Instrumentation for Java has been updated to version 1.33.6.
- Micrometer dependency has been updated to version 1.13.3.
- OpenTelemetry Java SDK has been updated to version 1.41.0.
- OpenTelemetry Instrumentation for Java has been updated to version 2.7.0.
- OpenTelemetry Java SDK has been updated to version 1.40.0.
- OpenTelemetry Instrumentation for Java has been updated to version 1.33.5.
- Micrometer dependency has been updated to version 1.13.2.
- OpenTelemetry Java SDK has been updated to version 1.40.0.
- OpenTelemetry Instrumentation for Java has been updated to version 2.6.0.
- OpenTelemetry Java SDK has been updated to version 1.39.0.
- OpenTelemetry Instrumentation for Java has been updated to version 2.5.0.
2.5.0 is the first non alpha release in the 2.x series. Please consult the release notes of 2.0.0-alpha for the breaking changes when you are switching from the 1.x version of the agent.
- OpenTelemetry Java SDK has been updated to version 1.39.0.
- OpenTelemetry Instrumentation for Java has been updated to version 1.33.4.
- Micrometer dependency has been updated to version 1.13.1.
- OpenTelemetry Java SDK has been updated to version 1.38.0.
- OpenTelemetry Instrumentation for Java has been updated to version 2.4.0.
Note: 2.4.0-alpha release is considered experimental, Splunk recommends using 1.x version of the agent.
- Thread pool metrics for Liberty, Tomcat, and WebLogic have been removed. #1848
- OpenTelemetry Java SDK has been updated to version 1.38.0.
- OpenTelemetry Instrumentation for Java has been updated to version 1.33.3.
- Micrometer dependency has been updated to version 1.13.0.
- OpenTelemetry Java SDK has been updated to version 1.37.0.
- OpenTelemetry Instrumentation for Java has been updated to version 1.33.1.
- Micrometer dependency has been updated to version 1.12.5.
- splunk-otel-javaagent-all.jar is not published anymore, use splunk-otel-javaagent.jar (#1756)
- OpenTelemetry Java SDK has been updated to version 1.37.0.
- OpenTelemetry Instrumentation for Java has been updated to version 2.3.0.
Note: 2.3.0-alpha release is considered experimental, Splunk recommends using 1.x version of the agent.
- OpenTelemetry Java SDK has been updated to version 1.36.0.
- OpenTelemetry Instrumentation for Java has been updated to version 1.33.1.
- Micrometer dependency has been updated to version 1.12.4.
- OpenTelemetry Java SDK has been updated to version 1.36.0.
- OpenTelemetry Instrumentation for Java has been updated to version 2.2.0.
Note: 2.2.0-alpha release is considered experimental, Splunk recommends using 1.x version of the agent.
- OpenTelemetry Java SDK has been updated to version 1.35.0.
- OpenTelemetry Instrumentation for Java has been updated to version 1.33.0.
- Micrometer dependency has been updated to version 1.12.3.
- The deprecated Jaeger exporter has been removed.
- Remove dependency on python for CloudFoundry
supply
script
- OpenTelemetry Java SDK has been updated to version 1.35.0.
- OpenTelemetry Instrumentation for Java has been updated to version 2.1.0.
Note: 2.1.0-alpha release is considered experimental, Splunk recommends using 1.x version of the agent.
- Update base image for CloudFoundry buildpack from cflinuxfs3 to cflinuxfs4.
The 2.0.0-alpha release contains significant breaking changes that will most likely affect all users, please be sure to read the breaking changes below carefully.
Note: 2.0.0-alpha release is considered experimental, Splunk recommends using 1.x version of the agent.
- OpenTelemetry Java SDK has been updated to version 1.34.1.
- OpenTelemetry Instrumentation for Java has been updated to version 2.0.0.
- Micrometer based metrics were removed in favour of OpenTelemetry based metrics.
- The default OTLP protocol has been changed from
grpc
tohttp/protobuf
in order to align with the specification. You can switch to thegrpc
protocol usingOTEL_EXPORTER_OTLP_PROTOCOL=grpc
- The OTLP metrics exporter is now enabled by default. You can disable it using
OTEL_METRICS_EXPORTER=none
or-Dotel.metrics.exporter=none
. - The OTLP logs exporter is now enabled by default. You can disable it using
OTEL_LOGS_EXPORTER=none
or-Dotel.logs.exporter=none
. - splunk-otel-javaagent-all.jar is not published anymore, use splunk-otel-javaagent.jar (#1567)
- Configuration property
splunk.profiler.tlab.enabled
has been removed, it is replaced withsplunk.profiler.memory.enabled
(#1590) - Copying resource attributes to system properties was removed. If you wish to use resource attributes
in logs you can use
otel.instrumentation.common.mdc.resource-attributes
. (#1587) - Please also review the breaking changes in the release notes of OpenTelemetry Instrumentation for Java
- OpenTelemetry Java SDK has been updated to version 1.34.1.
- OpenTelemetry Instrumentation for Java has been updated to version 1.32.1.
- Micrometer dependency has been updated to version 1.12.2.
- OpenTelemetry Java SDK has been updated to version 1.32.0.
- OpenTelemetry Instrumentation for Java has been updated to version 1.32.0.
- Micrometer dependency has been updated to version 1.12.0.
- OpenTelemetry Java SDK has been updated to version 1.31.0.
- OpenTelemetry Instrumentation for Java has been updated to version 1.31.0.
- Micrometer dependency has been updated to version 1.11.5.
- Silence profiler warnings on JDK 21 (#1470)
- OpenTelemetry Java SDK has been updated to version 1.30.1.
- OpenTelemetry Instrumentation for Java has been updated to version 1.30.0.
- Micrometer dependency has been updated to version 1.11.4.
- Use OpenTelemetry metric conventions for profiling when otel metrics are used (#1428)
- Truncate
process.command_args
when metrics are enabled (#1426)
- Prevent
ClassCastException
when attempting to track memory allocations on IBM J9 (#1435)
- OpenTelemetry Java SDK has been updated to version 1.29.0.
- OpenTelemetry Instrumentation for Java has been updated to version 1.29.0.
- Micrometer dependency has been updated to version 1.11.3.
- Protobuf dependency has been updated to version 3.24.0.
- Grpc dependency has been updated to version 1.57.2.
- OpenTelemetry Java SDK has been updated to version 1.28.0.
- OpenTelemetry Instrumentation for Java has been updated to version 1.28.0.
- Micrometer dependency has been updated to version 1.11.2.
- Protobuf dependency has been updated to version 3.23.4.
- Grpc dependency has been updated to version 1.56.1.
- The deprecated Jaeger Thrift exporter has been removed.
- OpenTelemetry Java SDK has been updated to version 1.27.0.
- OpenTelemetry Instrumentation for Java has been updated to version 1.27.0.
- Micrometer dependency has been updated to version 1.11.1.
- Jackson dependencies have been updated to 2.15.2.
- Enable logging instrumentations when
otel.logs.exporter
is set (#1266) - Replace
signalfx-java
with much lightersignalfx-metrics
(#1308)
- Include
profiling.data.format
attribute in profiling data for GDI spec compliance (#1278)
- OpenTelemetry Java SDK has been updated to version 1.26.0.
- OpenTelemetry Instrumentation for Java has been updated to version 1.26.0.
- Micrometer dependency has been updated to version 1.11.0.
- Enabled allocation event rate limiting by default in the profiler (#1225)
- Replaced the JFR event parser with the JDK mission control parser (#1229)
- Refactored the profiler so that it no longer needs to write the JFR recording into a temporary file (#1242)
- Removed the previously deprecated profiler test formats (#1238, #1240)
- OpenTelemetry Java SDK has been updated to version 1.25.0.
- OpenTelemetry Instrumentation for Java has been updated to version 1.25.0.
- Micrometer dependency has been updated to version 1.10.6.
- Prevent
splunk.realm
from configuring profiling logs to direct ingest (#1192) - Improved compatibility with Java security manager (#1208)
- Deprecate text format for
splunk.profiler.cpu.data.format
andsplunk.profiler.memory.data.format
. Users should migrate to the defaultpprof-gzip-base64
before 1.24.0.
- Configuration property
splunk.profiler.memory.sampler.interval
has been removed, it is replaced with a rate limiting sampler (#1182)
- OpenTelemetry Java SDK has been updated to version 1.24.0.
- OpenTelemetry Instrumentation for Java has been updated to version 1.24.0.
- GHA workflows now use Java 17 temurin
- Change scratch GHCR Docker image back to busybox for better compatibility with the k8s operator (#1155)
- OpenTelemetry Java SDK has been updated to version 1.23.1.
- OpenTelemetry Instrumentation for Java has been updated to version 1.21.0.
- Micrometer dependency has been updated to version 1.10.4.
- signalfx-java dependency has been updated to version 1.0.29.
- Starting with this release we will publish a GHCR-hosted Docker image that contains the javaagent jar. (#1108)
Regular maintenance release, coordinated after the upstream/vanilla release.
- OpenTelemetry Java SDK updated to version 1.22.0
- OpenTelemetry Instrumentation for Java dependencies updated to version 1.22.1.
- Upgrade to Gradle 7.6 (#1062)
- Upgrade to Micrometer 1.10.3 (#1065)
- Truncate
process.command_line
resource attribute when metrics are enabled (#1057) - Numerous other minor dependency upgrades.
- OpenTelemetry Java SDK and OpenTelemetry Instrumentation for Java dependencies have been updated to version 1.21.0. (#1029)
- Micrometer dependency has been updated to version 1.10.2. (#1018)
- Comply with GDI spec version 1.4.0
- Profiler checks for storage writability on startup, and logs an error and disables profiling if it is not. (#984)
- OpenTelemetry Java SDK and OpenTelemetry Instrumentation for Java dependencies have been updated to versions 1.20.1 and 1.20.2 respectively.
- Micrometer dependency has been updated to version 1.10.1. (#1001)
- Protobuf dependency has been updated to version 3.21.9, which mitigates CVE-2022-3171. (#978)
- Service name detection moved to upstream OpenTelemetry Instrumentation.
- signalfx-java dependency has been updated to version 1.0.26.
- Jaeger Thrift exporter has been deprecated and a warning is logged if it is used. (#932). Users are strongly encouraged to use OTLP when sending data to jaeger.
- Profiler now defaults JFR storage to system temp directory (#943)
- Service name is detected from jar file when otherwise not specified (#925)
- OpenTelemetry Java SDK and OpenTelemetry Instrumentation for Java dependencies have been updated to version 1.19.1.
- Micrometer dependency has been updated to version 1.9.5. (#947)
- Update to signalfx-java 1.0.25, which updates
jackson-databind
and mitigates GHSA-jjjh-jjxp-wpff and GHSA-rgv9-q543-rqg4 (#968)
- OpenTelemetry Java SDK and OpenTelemetry Instrumentation for Java dependencies have been updated to version 1.18.0.
- Micrometer dependency has been updated to version 1.9.4.
- Implemented automatic service name detection for servlet applications. The agent will now look for
the value of the top-level
display-name
tag in theweb.xml
file and use it as theservice.name
resource attribute, in case the user hasn't provided it.
- OpenTelemetry Java SDK and OpenTelemetry Instrumentation for Java dependencies have been updated to version 1.17.0.
- Micrometer dependency has been updated to version 1.9.3.
- Fix allocated memory metrics by preventing WeakReference from GCing (#864)
- Metrics are once again enabled when memory profiling is turned on (#857)
- Exclude transitive gson dependency (mitigates CVE-2022-25647) (#829)
- Add
splunk.metrics.implementation
config property to allow switching metrics implementation (#836) - Several instrumentation additions, including C3P0 connection pool metrics, Kafka client metrics, JVM buffer pool metrics, and more!
- See the upstream 1.16.0 release notes for additional details.
- OpenTelemetry Java SDK and OpenTelemetry Instrumentation for Java dependencies have been updated to version 1.16.0.
- Micrometer dependency has been updated to version 1.9.2.
- SignalFx metrics exporter has been updated to version 1.0.20.
- jaeger-client has been updated to version 1.8.1 (#833)
- gson dependency has been excluded from agent (#829)
- OpenTelemetry Java SDK and OpenTelemetry Instrumentation for Java dependencies have been updated to version 1.15.0.
- Micrometer dependency has been updated to version 1.9.1.
- Deprecated configuration property
splunk.profiler.period.{eventName}
has been removed. You can usesplunk.profiler.call.stack.interval
instead.
- Compliance with GDI spec version 1.3.0
- Change metric names used by memory profiling:
jvm.experimental.memory.allocated
->process.runtime.jvm.memory.allocated
jvm.experimental.memory.reclaimed
->process.runtime.jvm.memory.reclaimed
(these two have also been migrated from Gauge to Counter)
- Fixed
OTEL_EXPORTER_OTLP_ENDPOINT
not overriding thesplunk.realm
property (#795)
- Profiling stack trace data defaults to pprof format (#799)
- OpenTelemetry Java SDK and OpenTelemetry Instrumentation for Java dependencies have been updated to version 1.14.0.
- Micrometer dependency has been updated to version 1.9.0.
- SignalFx metrics exporter has been updated to version 1.0.19.
- Fixed a bug where multiple Profiler instances on a single host would generate temporary files with the same name.
- Implemented support for the
splunk.realm
configuration property, which allows easy configuration of exporter endpoints when sending data directly to the Splunk cloud. - Implemented internal stack trace filtering for the allocation profiler.
- SignalFx metrics exporter has been updated to version 1.0.18.
- OpenTelemetry Instrumentation for Java has been updated to version 1.13.1.
- OpenTelemetry Java SDK and OpenTelemetry Instrumentation for Java dependencies have been updated to version 1.13.0.
- Micrometer dependency has been updated to version 1.8.5.
- Fix
NullPointerException
on context tracking when JFR event on JDK 17 provides no thread - #743
- Added
host.name
andcontainer.id
tags to Micrometer metrics - #726 - Added support for exporting events in profiler in pprof format which can be enabled using the
splunk.profiler.cpu.data.format
setting - #684 - Added profiler setting
splunk.profiler.max.stack.depth
to limit maximum depth of exported stack traces - #739
- OpenTelemetry Instrumentation for Java has been updated to version 1.12.1.
- Fixed Elasticsearch rest client using high cardinality span name.
- Fixed a possible deadlock.
- OpenTelemetry Instrumentation for Java has been updated to version 1.12.0.
- Fix servlet instrumentation to prevent overwriting
Server-Timing
header for internal spans - #694
JvmHeapPressureMetrics
are now part of exported JVM metrics - #686.- Size reduction for call stack payloads for profiling TLAB events - #687
- Fixed exporting histograms with fixed buckets.
- OpenTelemetry Instrumentation for Java has been updated to version 1.11.1.
- Fixed regression in loading the Prometheus exporter.
- OpenTelemetry Java SDK and OpenTelemetry Instrumentation for Java dependencies have been updated to version 1.11.0.
- DEPRECATE
splunk-otel-javaagent-all.jar
usesplunk-otel-javaagent.jar
instead.
- Fixed a bug that caused JFR events to appear out of order.
- OpenTelemetry Java SDK and OpenTelemetry Instrumentation for Java dependencies have been updated to version 1.10.1.
- Fixed the docker image publishing issue in GitLab.
- Micrometer dependency has been updated to version 1.8.2.
- OpenTelemetry Java SDK and OpenTelemetry Instrumentation for Java dependencies have been updated to version 1.10.0.
- DEPRECATE
splunk.profiler.period.threaddump
config setting in favor of GDI-spec compatiblesplunk.profiler.call.stack.interval
.
- Added a new
splunk.profiler.memory.enabled
property that enables all memory profiling features. - Implemented a sampler for allocation-related profiling events. It can be enabled by setting
the
splunk.profiler.memory.sampler.interval
property. The default value is 1; set the value to 2 or higher to sample data every nth allocation event.
- OpenTelemetry Instrumentation for Java has been updated to version 1.9.2.
- Fixed the connection leak in the reactor-netty upstream instrumentation.
- OpenTelemetry Java SDK and OpenTelemetry Instrumentation for Java dependencies have been updated to version 1.9.1.
- Micrometer dependency has been updated to version 1.8.0.
- Fix Tomcat thread pool metrics in Tomcat 10.
- Disabled correlation by span links in messaging instrumentations. Now the
PRODUCER
-CONSUMER
spans will always have parent-child relationship.
- The Micrometer bridge instrumentation now supports versions starting from 1.3.0.
- A new Oracle Universal Connection Pool instrumentation has been added. The agent now collects and exports metrics for Oracle UCP connection pools.
- Profiling: changed the default thread dump rate to 10 seconds (previously 1 second).
- OpenTelemetry Java SDK and OpenTelemetry Instrumentation for Java dependencies have been updated to version 1.7.0.
- Micrometer dependency has been updated to version 1.7.5.
- The Java agent no longer adds a security header to exported metrics when the
SPLUNK_ACCESS_TOKEN
is not configured. This means the agent should now work correctly with a collector that has token passthrough enabled.
- We have added instrumentation for WebLogic thread pools. The agent now collects and exports metrics for the WebLogic application server thread pools.
- We have also added instrumentation for Netty 4.1 that will add the server trace headers to the HTTP response.
- This release introduces the Java profiler. Keep in mind this feature is still experimental, and thus turned off by
default; you can enable it by setting the
splunk.profiler.enabled
property totrue
. Find out more about Splunk profiler in its docs.
- OpenTelemetry Java SDK and OpenTelemetry Instrumentation for Java dependencies have been updated to version 1.6.0.
- Micrometer dependency was updated to version 1.7.4.
- OpenTelemetry Instrumentation for Java has been updated to version 1.5.2. This fixes the memory leak bug that manifested on 1.5.0 and 1.5.1 when OpenTelemetry metrics exporter wasn't used.
- OpenTelemetry Java SDK and OpenTelemetry Instrumentation for Java dependencies have been updated to version 1.5.0.
- Middleware attributes (
middleware.name
andmiddleware.version
) have been renamed to webengine attributes (webengine.name
andwebengine.version
) to follow the OpenTelemetry specification . - We have added instrumentations for c3p0 and Vibur DBCP connection pools. The agent now collects and exports metrics for both JDBC connection pools.
- We have also introduced instrumentations for Tomcat connector and WebSphere Liberty web request thread pools. The agent now collects and exports metrics for these application server thread pools.
- This release introduces the Micrometer bridge instrumentation. You can now use the Micrometer API inside your application to manually define custom metrics and the javaagent will export them. See the documentation for more details.
- The
splunk.metrics.export.interval
configuration property will now allow specifying time units; and if no units are specified then the value is treated as number of milliseconds. For example30s
means "30 seconds" and is equivalent to30000
. - This release also introduces the muzzle safety checks to all Splunk instrumentations. Our instrumentations now offer exactly the same level of safety as the upstream OpenTelemetry instrumentations.
- OpenTelemetry Java SDK and OpenTelemetry Instrumentation for Java dependencies have been updated to version 1.4.0.
- We have added instrumentation for HikariCP and Tomcat JDBC connection pools. The agent now collects and exports metrics for both JDBC connection pools.
- You can now set the service name using the
OTEL_SERVICE_NAME
environment variable and theotel.service.name
system property (see the OpenTelemetry specification . This removes the need of usingOTEL_RESOURCE_ATTRIBUTES
to set the service name.
- OpenTelemetry Java SDK and OpenTelemetry Instrumentation for Java dependencies were updated to version 1.3.0.
- khttp instrumentation was moved from the upstream OpenTelemetry Instrumentation for Java repo to this one. We are now responsible for maintaining this instrumentation.
- The agent will always set exactly one
Server-Timing
header value; the bug where multiple copies of the same header value were set was fixed.
- Added
internal_root_off
sampler that will drop all traces that start withINTERNAL
,CLIENT
orPRODUCER
span - the only top-level span kinds allowed areSERVER
andCONSUMER
. You can use this sampler by setting theotel.traces.sampler
configuration property.
- First stable release of the Splunk Distribution of OpenTelemetry Java.
- The metrics component will now be turned off by default. You can re-enable it by setting
SPLUNK_METRICS_ENABLED
totrue
.
- The agent will now set a resource attribute
splunk.distro.version
with its own version. - The CloudFoundry buildpack file for Splunk Distribution of OpenTelemetry Java will now be built as a part of the release process and will be attached to the GitHub release.
- OpenTelemetry Java SDK and OpenTelemetry Instrumentation for Java dependencies were updated to version 1.2.0.
- Micrometer dependency was updated to version 1.7.0.
- The Splunk Distribution of OpenTelemetry Java now uses the OTLP span exporter as the default. The OTLP exporter
supports the
splunk.access.token
configuration option and can be used to send spans directly to Splunk cloud. The default OTLP exporter endpoint ishttp://localhost:4317
. You can still use the Jaeger exporter by settingOTEL_TRACES_EXPORTER=jaeger-thrift-splunk
. - We have also changed the default endpoint of the SignalFx metrics exporter: it now points to
http://localhost:9943
, which is the default endpoint of Splunk OpenTelemetry Collector deployed onlocalhost
. - The agent now uses W3C
tracecontext
as the default trace propagation mechanism; W3C Baggage is also enabled by default. You can switch to the previous B3 propagator by settingOTEL_PROPAGATORS=b3multi
. - Deprecated configuration property
splunk.context.server-timing.enabled
has been removed. You can usesplunk.trace-response-header.enabled
instead.
- The agent will now log a warning when the
service.name
resource attribute is not provided.
- Updated OpenTelemetry and OpenTelemetry Instrumentation for Java versions to 1.1.0.
- The Splunk Distribution of OpenTelemetry Java now gathers basic application and JVM metrics. By default, this feature is enabled and is sending metrics to a SmartAgent instance running on localhost: you can change the endpoint by setting an appropriate configuration option. You can find a more detailed explanation about the feature here.
- Add metrics for JDBC connection pool: Apache Commons DBCP2. Aside from JVM metrics mentioned above, the javaagent also collects Apache Commons DBCP2 connection pool metrics now.
- Recommend using
deployment.environment
resource attribute instead ofenvironment
. - The SignalFx Java Agent migration guide has been brought up-to-date.
- The repo README and documentation was significantly revamped. You'll now find much more information about the features and configuration of this project. We've also added a FAQ and troubleshooting sections that aim to answer the most common problems that may arise while using the Splunk Distribution of OpenTelemetry Java.
- Removed the deprecated
signalfx.auth.token
configuration property: it was replaced bysplunk.access.token
in the previous release.
- Configuration property
splunk.context.server-timing.enabled
was renamed tosplunk.trace-response-header.enabled
. The old property name still works, but it will be removed in the next release.
- Updated OpenTelemetry Instrumentation for Java versions to 1.0.0.
- Property
signalfx.auth.token
has been renamed tosplunk.access.token
.
- Updated OpenTelemetry Instrumentation for Java versions to 0.16.1.
- Instrument Netty 4.0 to add Server-Timing header.