https://github.com/signalfx/splunk-otel-java
Splunk Distribution of OpenTelemetry Java
https://github.com/signalfx/splunk-otel-java
instrumentation java java-agent jvm metrics opentelemetry tracing
Last synced: about 2 months ago
JSON representation
Splunk Distribution of OpenTelemetry Java
- Host: GitHub
- URL: https://github.com/signalfx/splunk-otel-java
- Owner: signalfx
- License: apache-2.0
- Created: 2020-07-29T14:58:00.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2026-04-17T08:08:15.000Z (about 2 months ago)
- Last Synced: 2026-04-17T10:16:41.040Z (about 2 months ago)
- Topics: instrumentation, java, java-agent, jvm, metrics, opentelemetry, tracing
- Language: Java
- Homepage: https://docs.splunk.com/Observability/gdi/get-data-in/application/java/get-started.html
- Size: 5.31 MB
- Stars: 73
- Watchers: 13
- Forks: 45
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# Splunk Distribution of OpenTelemetry Java

[](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/tag/v2.27.0)
[](https://github.com/signalfx/gdi-specification/releases/tag/v1.9.0)
[](https://github.com/signalfx/splunk-otel-java/releases)
[](https://central.sonatype.com/artifact/com.splunk/splunk-otel-javaagent)
[](https://github.com/signalfx/splunk-otel-java/actions/workflows/ci.yaml)
* [Get Started](#get-started)
* [Get Involved](CONTRIBUTING.md)
* [Migrate from SignalFx Java Agent](https://help.splunk.com/en/splunk-observability-cloud/manage-data/available-data-sources/supported-integrations-in-splunk-observability-cloud/apm-instrumentation/instrument-a-java-application/migrate-from-signalfx-java-agent)
* [About the distribution](https://help.splunk.com/en/splunk-observability-cloud/manage-data/available-data-sources/supported-integrations-in-splunk-observability-cloud/apm-instrumentation/instrument-a-java-application/about-splunk-otel-java)
* [Security](SECURITY.md)
* [Supported Libraries](https://help.splunk.com/en/splunk-observability-cloud/manage-data/available-data-sources/supported-integrations-in-splunk-observability-cloud/apm-instrumentation/instrument-a-java-application/requirements#supported-libraries-and-frameworks-0)
* [Troubleshooting](https://help.splunk.com/en/splunk-observability-cloud/manage-data/available-data-sources/supported-integrations-in-splunk-observability-cloud/apm-instrumentation/instrument-a-java-application/troubleshoot-the-java-agent)
The Splunk Distribution of [OpenTelemetry Instrumentation for
Java](https://github.com/open-telemetry/opentelemetry-java-instrumentation)
provides a Java Virtual Machine (JVM)
agent that automatically instruments your Java application to capture and report
distributed traces to [Splunk APM](https://help.splunk.com/en/splunk-observability-cloud/monitor-application-performance/introduction-to-splunk-apm).
This distribution comes with the following defaults:
- [W3C `tracecontext`](https://www.w3.org/TR/trace-context/) and [W3C
baggage](https://www.w3.org/TR/baggage/) context propagation;
[B3](https://github.com/openzipkin/b3-propagation) can also be
[configured](https://github.com/signalfx/splunk-otel-java/blob/main/docs/advanced-config.md#trace-propagation-configuration).
- [OTLP HTTP/protobuf
exporter](https://opentelemetry.io/docs/specs/otlp/#otlphttp)
configured to send spans to a locally running [Splunk OpenTelemetry
Collector](https://github.com/signalfx/splunk-otel-collector)
- Unlimited default limits for [configuration
options](docs/advanced-config.md#trace-configuration) to support
full-fidelity traces.
If you're currently using the SignalFx Java Agent and want to
migrate to the Splunk Distribution of OpenTelemetry Java,
see [Migrate from the SignalFx Java Agent](https://help.splunk.com/en/splunk-observability-cloud/manage-data/available-data-sources/supported-integrations-in-splunk-observability-cloud/apm-instrumentation/instrument-a-java-application/migrate-from-signalfx-java-agent).
---
The following documentation refers to the in-development version of `splunk-otel-java`. Docs for the latest version ([v2.27.0](https://github.com/signalfx/splunk-otel-java/releases/latest)) can be found [here](https://github.com/signalfx/splunk-otel-java/blob/v2.27.0/README.md).
---
## Requirements
The agent works with Java runtimes version 8 and higher. For the full list of requirements and supported libraries and versions, see [Requirements for the Java agent](https://help.splunk.com/en/splunk-observability-cloud/manage-data/available-data-sources/supported-integrations-in-splunk-observability-cloud/apm-instrumentation/instrument-a-java-application/requirements) in the official Splunk documentation.
## Get started
For complete instructions on how to get started with the Splunk Distribution of OpenTelemetry Java, see [Instrument Java services for Observability Cloud](https://help.splunk.com/en/splunk-observability-cloud/manage-data/available-data-sources/supported-integrations-in-splunk-observability-cloud/apm-instrumentation/instrument-a-java-application) in the official Splunk documentation.
To see the Java Agent in action with sample applications, see the OpenTelemetry
[examples](https://github.com/open-telemetry/opentelemetry-java-examples/tree/main/javaagent).
## Advanced configuration
To fully configure the agent of the Splunk Distribution of OpenTelemetry Java, see [Configure the Java agent](https://help.splunk.com/en/splunk-observability-cloud/manage-data/available-data-sources/supported-integrations-in-splunk-observability-cloud/apm-instrumentation/instrument-a-java-application/configure-the-java-agent) in the official Splunk documentation.
## Correlating traces with logs
The Splunk Distribution of OpenTelemetry Java provides a way to correlate traces with logs. For more information see [Connect Java application trace data with logs](https://help.splunk.com/en/splunk-observability-cloud/manage-data/available-data-sources/supported-integrations-in-splunk-observability-cloud/apm-instrumentation/instrument-a-java-application/connect-trace-data-with-logs)
in the Splunk Observability Cloud user documentation.
## Manually instrument a Java application
Documentation on how to manually instrument a Java application is available in the
[OpenTelemetry official documentation](https://opentelemetry.io/docs/instrumentation/java/manual/).
To learn how to add custom metrics to your application see [Manual instrumentation](https://help.splunk.com/en/splunk-observability-cloud/manage-data/available-data-sources/supported-integrations-in-splunk-observability-cloud/apm-instrumentation/instrument-a-java-application/manual-instrumentation#send-custom-java-application-metrics-0).
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.27.0 is compatible
with:
* OpenTelemetry API version 1.61.0
* OpenTelemetry Instrumentation for Java version 2.27.0
## Snapshot builds
We publish [snapshot builds](https://central.sonatype.com/service/rest/repository/browse/maven-snapshots/com/splunk/splunk-otel-javaagent/2.28.0-SNAPSHOT/)
with every merge to the `main` branch. Snapshots are primarily intended to test new functionality and are not recommended
for production use.
## Upgrades
For information and best practices around upgrades, see the [Upgrading documentation](https://help.splunk.com/en/splunk-observability-cloud/manage-data/available-data-sources/supported-integrations-in-splunk-observability-cloud/apm-instrumentation/instrument-a-java-application/instrument-your-java-application#upgrade-the-splunk-distribution-of-opentelemetry-java-0).
## Troubleshooting
For troubleshooting information and known issues, see [Troubleshooting Java instrumentation](https://help.splunk.com/en/splunk-observability-cloud/manage-data/available-data-sources/supported-integrations-in-splunk-observability-cloud/apm-instrumentation/instrument-a-java-application/troubleshoot-the-java-agent)
in the Splunk Observability Cloud user documentation.
# License
The Splunk Distribution of OpenTelemetry Java is a distribution of [OpenTelemetry Instrumentation for Java](https://github.com/open-telemetry/opentelemetry-java-instrumentation). It is licensed under the terms of the Apache Software License version 2.0. For more details, see [the license file](./LICENSE).
>ℹ️ SignalFx was acquired by Splunk in October 2019. See [Splunk SignalFx](https://www.splunk.com/en_us/about-splunk/acquisitions/signalfx.html) for more information.