8.0.0-beta.1
Pre-release
Pre-release
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
enableTracingoption (a.k.aenable-tracing) has been removed from the SDK (#3776)- Please set
tracesSampleRateto a value >= 0.0 for enabling performance instead. The default value isnullwhich means performance is disabled.
- Please set
- Change OkHttp sub-spans to span attributes (#3556)
- This will reduce the number of spans created by the SDK
- Replace
synchronizedmethods and blocks withReentrantLock(AutoClosableReentrantLock) (#3715)- If you are subclassing any Sentry classes, please check if the parent class used
synchronizedbefore. Please make sure to use the same lock object as the parent class in that case.
- If you are subclassing any Sentry classes, please check if the parent class used
traceOriginsoption (io.sentry.traces.tracing-originsin manifest) has been removed, please usetracePropagationTargets(io.sentry.traces.trace-propagation-targetsin manifest`) instead (#3780)profilingEnabledoption (io.sentry.traces.profiling.enablein manifest) has been removed, please useprofilesSampleRate(io.sentry.traces.profiling.sample-rateinstead) instead (#3780)shutdownTimeoutoption has been removed, please useshutdownTimeoutMillisinstead (#3780)profilingTracesIntervalMillisoption for Android has been removed (#3780)io.sentry.session-tracking.enablemanifest option has been removed (#3780)Sentry.traceHeaders()method has been removed, please useSentry.getTraceparent()instead (#3718)Sentry.reportFullDisplayed()method has been removed, please useSentry.reportFullyDisplayed()instead (#3717)User.otherhas been removed, please usedatainstead (#3780)SdkVersion.getIntegrations()has been removed, please usegetIntegrationSetinstead (#3780)SdkVersion.getPackages()has been removed, please usegetPackageSet()instead (#3780)Device.languagehas been removed, please uselocaleinstead (#3780)TraceContext.userandTraceContextUserclass have been removed, please useuserIdonTraceContextinstead (#3780)TransactionContext.fromSentryTrace()has been removed, please useSentry.continueTrace()instead (#3780)SentryDataFetcherExceptionHandlerhas been removed, please useSentryGenericDataFetcherExceptionHandlerin combination withSentryInstrumentationinstead (#3780)- One of the
AndroidTransactionProfilerconstructors has been removed, please use a different one (#3780)
Features
- Add init priority settings (#3674)
- You may now set
forceInit=true(force-initfor.propertiesfiles) to ensure a call to Sentry.init / SentryAndroid.init takes effect
- You may now set
- 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
- Use
- Attach request body for
application/x-www-form-urlencodedrequests in Spring (#3731)- Previously request body was only attached for
application/jsonrequests
- Previously request body was only attached for
- Set breadcrumb level based on http status (#3771)
- Support
graphql-javav22 via a new modulesentry-graphql-22(#3740)- If you are using
graphql-javav21 or earlier, you can use thesentry-graphqlmodule - For
graphql-javav22 and newer please use thesentry-graphql-22module
- If you are using
- We now provide a
SentryInstrumenterbean directly for Spring (Boot) if there is none yet instead of usingGraphQlSourceBuilderCustomizerto add the instrumentation (#3744)- It is now also possible to provide a bean of type
SentryGraphqlInstrumentation.BeforeSpanCallbackwhich is then used bySentryInstrumenter
- It is now also possible to provide a bean of type
- Emit transaction.data inside contexts.trace.data (#3735)
- Also does not emit
transaction.datainexrasanymore
- Also does not emit
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
ActivityLifecycleIntegrationon 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-spotlightandspotlight-connection-urlto 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.setTracehas been marked@NotNull(#3721)- Setting it to
nullwould cause an exception. - Transactions are dropped if trace context is missing
- Setting it to
- Remove internal annotation on
SpanOptions(#3722) SentryLogbackInitializeris now public (#3723)- Fix order of calling
closeon 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)