Migrate from the SignalFx Java Agent 🔗
The SignalFx Java Agent is deprecated and has reached End of Support. Replace it with the agent from the Splunk Distribution of OpenTelemetry Java.
The agent of the Splunk Distribution of OpenTelemetry Java is based on the OpenTelemetry Instrumentation for Java, an open-source project that uses the OpenTelemetry API and has a smaller memory footprint than the SignalFx Java Agent.
Compatibility and requirements 🔗
The Splunk Distribution of OpenTelemetry Java requires Java runtimes version 8 and higher. See Java agent compatibility and requirements.
Migrate to the Splunk Distribution of OpenTelemetry Java 🔗
To migrate from the SignalFx Java Agent to the Splunk Distribution of OpenTelemetry Java, follow these steps:
Install and activate the Java agent. See Install and activate the Java agent.
Specify the endpoint of the OpenTelemetry Collector you’re exporting traces to. See Exporters configuration.
In your application startup script, replace
-javaagent:./signalfx-tracing.jar
with-javaagent:/path/to/splunk-otel-javaagent.jar
.
If you manually instrumented your code with OpenTracing, expose the OpenTelemetry tracer using the OpenTracing Shim. If you use another API for manual instrumentation, ensure it’s in your application’s classpath
as well.
Note
Semantic conventions for span names and attributes change when you migrate. For more information, see Migrate from SignalFx Smart Agent to the Splunk Distribution of OpenTelemetry Collector.
Changes in functionality 🔗
Each of the following sections describe the main changes in functionality as you migrate from the SignalFx Java Agent to the Splunk Distribution of OpenTelemetry Java.
Configuration setting changes 🔗
The following table shows SignalFx Java Agent system properties and their OpenTelemetry equivalents:
SignalFx system property |
OpenTelemetry system property |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The following table shows SignalFx Java Agent environment variables and their OpenTelemetry equivalents:
SignalFx environment variable |
OpenTelemetry environment variable |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The following SignalFx Java Agent system properties and environment variables don’t have a corresponding setting in the Splunk Distribution for OpenTelemetry Java:
Deprecated system properties 🔗
signalfx.agent.host
signalfx.db.statement.max.length
signalfx.recorded.value.max.length
signalfx.max.spans.per.trace
signalfx.max.continuation.depth
Deprecated environment variables 🔗
SIGNALFX_AGENT_HOST
SIGNALFX_DB_STATEMENT_MAX_LENGTH
SIGNALFX_RECORDED_VALUE_MAX_LENGTH
SIGNALFX_MAX_SPANS_PER_TRACE
SIGNALFX_MAX_SPANS_PER_TRACE
For more information about Splunk Java OTel settings, see Configure the Java agent for Splunk Observability Cloud.
Log injection changes 🔗
For a list of compatible logging frameworks for injecting trace data in logs, see Connect Java trace data with logs for Splunk Observability Cloud.
Trace annotation changes 🔗
The @Trace
annotation that the SignalFx Java Agent uses is compatible with the Splunk Distribution of OpenTelemetry Java. If you’re using the @Trace
annotation for custom instrumentation, you don’t have to make any changes.
If you want to configure new custom instrumentation and don’t want to use the OpenTelemetry getTracer
and API directly, use the OpenTelemetry @WithSpan
annotation instead of the @Trace
annotation. For more information, see
Configure a WithSpan annotation in the OpenTelemetry documentation.
Note
The @TraceSetting
annotation to allow an exception isn’t supported.