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 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 Connector 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.