OpenTelemetry Agentless
Using OpenTelemetry with sentry-opentelemetry-agentless.
If you do not want to use our recommended Java Agent, we also offer a dependency that allows you to use OpenTelemetry with Sentry.
In addition to your typical Sentry dependencies, you will need to add sentry-opentelemetry-agentless
as a dependency:
implementation 'io.sentry:sentry-opentelemetry-agentless:8.8.0'
Please note, if you're using Spring Boot, there's a separate sentry-opentelemetry-agentless-spring
dependency. You can find out more here.
You'll have to configure both OpenTelemetry and Sentry to see transactions in Sentry and have errors linked to transactions created by OpenTelemetry.
Our sentry-opentelemetry-agentless
dependency also adds opentelemetry-sdk-extension-autoconfigure
which takes care of configuring OpenTelemetry to work with Sentry. There's two ways to trigger it.
- Using a property on startup
Add -Dotel.java.global-autoconfigure.enabled=true
to the java
command when starting your application.
- Using
AutoConfiguredOpenTelemetrySdk
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
AutoConfiguredOpenTelemetrySdk.builder()
.setResultAsGlobal()
.addPropertiesSupplier(() -> {
final Map<String, String> properties = new HashMap<>();
properties.put("otel.logs.exporter", "none");
properties.put("otel.metrics.exporter", "none");
properties.put("otel.traces.exporter", "none");
return properties;
})
.build();
You can initialize Sentry as usual, fore example, by calling Sentry.init
:
import io.sentry.Sentry;
Sentry.init(options -> {
options.setDsn("https://examplePublicKey@o0.ingest.sentry.io/0");
options.setTracesSampleRate(1.0);
});
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").