github getsentry/sentry-java 8.0.0-beta.1

pre-releaseone day ago

Breaking Changes

  • Throw IllegalArgumentException when calling Sentry.init on Android (#3596)
  • Metrics have been removed from the SDK (#3774)
    • Metrics will return but we don't know in what exact form yet
  • enableTracing option (a.k.a enable-tracing) has been removed from the SDK (#3776)
    • Please set tracesSampleRate to a value >= 0.0 for enabling performance instead. The default value is null which means performance is disabled.
  • Change OkHttp sub-spans to span attributes (#3556)
    • This will reduce the number of spans created by the SDK
  • Replace synchronized methods and blocks with ReentrantLock (AutoClosableReentrantLock) (#3715)
    • If you are subclassing any Sentry classes, please check if the parent class used synchronized before. Please make sure to use the same lock object as the parent class in that case.
  • traceOrigins option (io.sentry.traces.tracing-origins in manifest) has been removed, please use tracePropagationTargets (io.sentry.traces.trace-propagation-targets in manifest`) instead (#3780)
  • profilingEnabled option (io.sentry.traces.profiling.enable in manifest) has been removed, please use profilesSampleRate (io.sentry.traces.profiling.sample-rate instead) instead (#3780)
  • shutdownTimeout option has been removed, please use shutdownTimeoutMillis instead (#3780)
  • profilingTracesIntervalMillis option for Android has been removed (#3780)
  • io.sentry.session-tracking.enable manifest option has been removed (#3780)
  • Sentry.traceHeaders() method has been removed, please use Sentry.getTraceparent() instead (#3718)
  • Sentry.reportFullDisplayed() method has been removed, please use Sentry.reportFullyDisplayed() instead (#3717)
  • User.other has been removed, please use data instead (#3780)
  • SdkVersion.getIntegrations() has been removed, please use getIntegrationSet instead (#3780)
  • SdkVersion.getPackages() has been removed, please use getPackageSet() instead (#3780)
  • Device.language has been removed, please use locale instead (#3780)
  • TraceContext.user and TraceContextUser class have been removed, please use userId on TraceContext instead (#3780)
  • TransactionContext.fromSentryTrace() has been removed, please use Sentry.continueTrace() instead (#3780)
  • SentryDataFetcherExceptionHandler has been removed, please use SentryGenericDataFetcherExceptionHandler in combination with SentryInstrumentation instead (#3780)
  • One of the AndroidTransactionProfiler constructors has been removed, please use a different one (#3780)

Features

  • Add init priority settings (#3674)
    • You may now set forceInit=true (force-init for .properties files) to ensure a call to Sentry.init / SentryAndroid.init takes effect
  • Add force init option to Android Manifest (#3675)
    • Use <meta-data android:name="io.sentry.force-init" android:value="true" /> to ensure Sentry Android auto init is not easily overwritten
  • Attach request body for application/x-www-form-urlencoded requests in Spring (#3731)
    • Previously request body was only attached for application/json requests
  • Set breadcrumb level based on http status (#3771)
  • Support graphql-java v22 via a new module sentry-graphql-22 (#3740)
    • If you are using graphql-java v21 or earlier, you can use the sentry-graphql module
    • For graphql-java v22 and newer please use the sentry-graphql-22 module
  • We now provide a SentryInstrumenter bean directly for Spring (Boot) if there is none yet instead of using GraphQlSourceBuilderCustomizer to add the instrumentation (#3744)
    • It is now also possible to provide a bean of type SentryGraphqlInstrumentation.BeforeSpanCallback which is then used by SentryInstrumenter
  • Emit transaction.data inside contexts.trace.data (#3735)
    • Also does not emit transaction.data in exras anymore

Fixes

  • Use OpenTelemetry span name as fallback for transaction name (#3557)
    • In certain cases we were sending transactions as "" when using OpenTelemetry
  • Add OpenTelemetry span data to Sentry span (#3593)
  • No longer selectively copy OpenTelemetry attributes to Sentry spans / transactions data (#3663)
  • Remove PROCESS_COMMAND_ARGS (process.command_args) OpenTelemetry span attribute as it can be very large (#3664)
  • Use RECORD_ONLY sampling decision if performance is disabled (#3659)
    • Also fix check whether Performance is enabled when making a sampling decision in the OpenTelemetry sampler
  • Sentry OpenTelemetry Java Agent now sets Instrumenter to SENTRY (used to be OTEL) (#3697)
  • Set span origin in ActivityLifecycleIntegration on span options instead of after creating the span / transaction (#3702)
    • This allows spans to be filtered by span origin on creation
  • Honor ignored span origins in SentryTracer.startChild (#3704)
  • Add enable-spotlight and spotlight-connection-url to external options and check if spotlight is enabled when deciding whether to inspect an OpenTelemetry span for connecting to splotlight (#3709)
  • Trace context on Contexts.setTrace has been marked @NotNull (#3721)
    • Setting it to null would cause an exception.
    • Transactions are dropped if trace context is missing
  • Remove internal annotation on SpanOptions (#3722)
  • SentryLogbackInitializer is now public (#3723)
  • Fix order of calling close on previous Sentry instance when re-initializing (#3750)
    • Previously some parts of Sentry were immediately closed after re-init that should have stayed open and some parts of the previous init were never closed

Behavioural Changes

  • (Android) Replace thread id with kernel thread id in span data (#3706)

Dependencies

  • Bump OpenTelemetry to 1.41.0, OpenTelemetry Java Agent to 2.7.0 and Semantic Conventions to 1.25.0 (#3668)

Don't miss a new sentry-java release

NewReleases is sending notifications on new releases.