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:

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

  1. Using a property on startup

Add -Dotel.java.global-autoconfigure.enabled=true to the java command when starting your application.

  1. Using AutoConfiguredOpenTelemetrySdk
Copied
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:

Copied
import io.sentry.Sentry;

Sentry.init(options -> {
  options.setDsn("https://examplePublicKey@o0.ingest.sentry.io/0");
  options.setTracesSampleRate(1.0);
});
Was this helpful?
Help improve this content
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").