Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
- Manually constructed `SentryTimberIntegration` and `SentryTimberTree` instances require a
`logsEnabled` argument. Pass `false` to keep Sentry Logs disabled.
- Remove the Apache HttpClient transport and stop publishing `sentry-apache-http-client-5` ([#6214](https://github.com/getsentry/sentry-java/pull/6214))
- Remove the deprecated `Instrumenter` enum, option, span context property, and `startChild` overloads ([#6252](https://github.com/getsentry/sentry-java/pull/6252))
- Remove deprecated OpenTelemetry integration classes and the legacy `SentrySpanStorage` ([#6243](https://github.com/getsentry/sentry-java/pull/6243))
- Decide whether foregrounding the app starts a new session on a monotonic clock instead of the wall clock, so that a device time change no longer starts a session that should have been resumed, or resumes one that should have ended. This affects session counts ([#6096](https://github.com/getsentry/sentry-java/pull/6096))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import io.sentry.ISentryLifecycleToken;
import io.sentry.ISpan;
import io.sentry.ITransaction;
import io.sentry.Instrumenter;
import io.sentry.Integration;
import io.sentry.NoOpTransaction;
import io.sentry.PropagationContext;
Expand Down Expand Up @@ -366,29 +365,19 @@ private void startTracing(final @NotNull Activity activity) {
getAppStartOp(coldStart),
getAppStartDesc(coldStart),
appStartTime,
Instrumenter.SENTRY,
spanOptions);

finishAppStartSpan();
}
}
final @NotNull ISpan ttidSpan =
transaction.startChild(
TTID_OP,
getTtidDesc(activityName),
ttidStartTime,
Instrumenter.SENTRY,
spanOptions);
transaction.startChild(TTID_OP, getTtidDesc(activityName), ttidStartTime, spanOptions);
ttidSpanMap.put(activity, ttidSpan);

if (timeToFullDisplaySpanEnabled && fullyDisplayedReporter != null && options != null) {
final @NotNull ISpan ttfdSpan =
transaction.startChild(
TTFD_OP,
getTtfdDesc(activityName),
ttidStartTime,
Instrumenter.SENTRY,
spanOptions);
TTFD_OP, getTtfdDesc(activityName), ttidStartTime, spanOptions);
try {
ttfdSpanMap.put(activity, ttfdSpan);
ttfdAutoCloseFuture =
Expand Down Expand Up @@ -1130,7 +1119,6 @@ private void onHeadlessAppStart() {
APP_START_EXTENDED_OP,
APP_START_EXTENDED_DESC,
AndroidDateUtils.getCurrentSentryDateTime(),
Instrumenter.SENTRY,
spanOptions);

return new AppStartExtension.ExtendedAppStart(transaction, extendedSpan);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import android.os.Looper;
import android.os.SystemClock;
import io.sentry.ISpan;
import io.sentry.Instrumenter;
import io.sentry.SentryDate;
import io.sentry.SpanDataConvention;
import io.sentry.SpanStatus;
Expand Down Expand Up @@ -111,8 +110,7 @@ public void saveSpanToAppStartMetrics() {
final @NotNull String description,
final @NotNull SentryDate startTimestamp) {
final @NotNull ISpan span =
parentSpan.startChild(
APP_METRICS_ACTIVITIES_OP, description, startTimestamp, Instrumenter.SENTRY);
parentSpan.startChild(APP_METRICS_ACTIVITIES_OP, description, startTimestamp);
setDefaultStartSpanData(span);
return span;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import android.database.CrossProcessCursor
import android.database.SQLException
import io.sentry.IScopes
import io.sentry.ISpan
import io.sentry.Instrumenter
import io.sentry.ScopesAdapter
import io.sentry.SentryIntegrationPackageStorage
import io.sentry.SentryStackTraceFactory
Expand Down Expand Up @@ -46,12 +45,12 @@ internal class OpenHelperSpans(
if (result is CrossProcessCursor) {
return SentryCrossProcessCursor(result, this, sql) as T
}
span = scopes.span?.startChild("db.sql.query", sql, startTimestamp, Instrumenter.SENTRY)
span = scopes.span?.startChild("db.sql.query", sql, startTimestamp)
span?.spanContext?.origin = TRACE_ORIGIN
span?.status = SpanStatus.OK
result
} catch (e: Throwable) {
span = scopes.span?.startChild("db.sql.query", sql, startTimestamp, Instrumenter.SENTRY)
span = scopes.span?.startChild("db.sql.query", sql, startTimestamp)
span?.spanContext?.origin = TRACE_ORIGIN
span?.status = SpanStatus.INTERNAL_ERROR
span?.throwable = e
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package io.sentry.sqlite

import io.sentry.IScopes
import io.sentry.ISpan
import io.sentry.Instrumenter
import io.sentry.ScopesAdapter
import io.sentry.SentryDate
import io.sentry.SentryLongDate
Expand Down Expand Up @@ -50,7 +49,7 @@ internal class DriverSpans(private val scopes: IScopes, private val dbMetadata:
val startTimestamp = SentryLongDate(startTimestampNanos)
val endTimestamp = SentryLongDate(startTimestampNanos + durationNanos)

parent.startChild("db.sql.query", sql, startTimestamp, Instrumenter.SENTRY).apply {
parent.startChild("db.sql.query", sql, startTimestamp).apply {
spanContext.origin = SQLITE_TRACE_ORIGIN
throwable?.let { this.throwable = it }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.drawWithContent
import io.sentry.ISpan
import io.sentry.Instrumenter
import io.sentry.Sentry
import io.sentry.SentryDate
import io.sentry.SpanOptions
Expand Down Expand Up @@ -129,7 +128,6 @@ private fun recordCompositionSpan(
OP_COMPOSITION_SPAN,
tag,
startTimestamp,
Instrumenter.SENTRY,
SpanOptions().apply { origin = OP_TRACE_ORIGIN },
)
.run { finish(null, endTimestamp) }
Expand All @@ -154,7 +152,6 @@ private fun recordRenderSpan(
OP_RENDER_SPAN,
tag,
startTimestamp,
Instrumenter.SENTRY,
SpanOptions().apply { origin = OP_TRACE_ORIGIN },
)
.run { finish(null, endTimestamp) }
Expand Down Expand Up @@ -244,7 +241,6 @@ private class BucketSpans {
operation,
description,
startTimestamp,
Instrumenter.SENTRY,
SpanOptions().apply {
origin = OP_TRACE_ORIGIN
isTrimStart = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,7 @@ public final class io/sentry/opentelemetry/OtelStrongRefSpanWrapper : io/sentry/
public fun startChild (Ljava/lang/String;)Lio/sentry/ISpan;
public fun startChild (Ljava/lang/String;Ljava/lang/String;)Lio/sentry/ISpan;
public fun startChild (Ljava/lang/String;Ljava/lang/String;Lio/sentry/SentryDate;)Lio/sentry/ISpan;
public fun startChild (Ljava/lang/String;Ljava/lang/String;Lio/sentry/SentryDate;Lio/sentry/Instrumenter;)Lio/sentry/ISpan;

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are marked internal on ISpan

public fun startChild (Ljava/lang/String;Ljava/lang/String;Lio/sentry/SentryDate;Lio/sentry/Instrumenter;Lio/sentry/SpanOptions;)Lio/sentry/ISpan;
public fun startChild (Ljava/lang/String;Ljava/lang/String;Lio/sentry/SentryDate;Lio/sentry/SpanOptions;)Lio/sentry/ISpan;
public fun startChild (Ljava/lang/String;Ljava/lang/String;Lio/sentry/SpanOptions;)Lio/sentry/ISpan;
public fun storeInContext (Lio/opentelemetry/context/Context;)Lio/opentelemetry/context/Context;
public fun toBaggageHeader (Ljava/util/List;)Lio/sentry/BaggageHeader;
Expand Down Expand Up @@ -141,8 +140,7 @@ public final class io/sentry/opentelemetry/OtelTransactionSpanForwarder : io/sen
public fun startChild (Ljava/lang/String;)Lio/sentry/ISpan;
public fun startChild (Ljava/lang/String;Ljava/lang/String;)Lio/sentry/ISpan;
public fun startChild (Ljava/lang/String;Ljava/lang/String;Lio/sentry/SentryDate;)Lio/sentry/ISpan;
public fun startChild (Ljava/lang/String;Ljava/lang/String;Lio/sentry/SentryDate;Lio/sentry/Instrumenter;)Lio/sentry/ISpan;
public fun startChild (Ljava/lang/String;Ljava/lang/String;Lio/sentry/SentryDate;Lio/sentry/Instrumenter;Lio/sentry/SpanOptions;)Lio/sentry/ISpan;
public fun startChild (Ljava/lang/String;Ljava/lang/String;Lio/sentry/SentryDate;Lio/sentry/SpanOptions;)Lio/sentry/ISpan;
public fun startChild (Ljava/lang/String;Ljava/lang/String;Lio/sentry/SpanOptions;)Lio/sentry/ISpan;
public fun toBaggageHeader (Ljava/util/List;)Lio/sentry/BaggageHeader;
public fun toSentryTrace ()Lio/sentry/SentryTraceHeader;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import io.sentry.IScopes;
import io.sentry.ISentryLifecycleToken;
import io.sentry.ISpan;
import io.sentry.Instrumenter;
import io.sentry.MeasurementUnit;
import io.sentry.SentryDate;
import io.sentry.SentryTraceHeader;
Expand Down Expand Up @@ -125,29 +124,19 @@ public void setTransactionName(@NotNull String name, @NotNull TransactionNameSou
return delegate.startChild(spanContext, spanOptions);
}

@Override
public @NotNull ISpan startChild(
@NotNull String operation, @Nullable String description, @Nullable SentryDate timestamp) {
return delegate.startChild(operation, description, timestamp);
}

@Override
public @NotNull ISpan startChild(
@NotNull String operation,
@Nullable String description,
@Nullable SentryDate timestamp,
@NotNull Instrumenter instrumenter) {
return delegate.startChild(operation, description, timestamp, instrumenter);
@NotNull SpanOptions spanOptions) {
return delegate.startChild(operation, description, timestamp, spanOptions);
}

@Override
public @NotNull ISpan startChild(
@NotNull String operation,
@Nullable String description,
@Nullable SentryDate timestamp,
@NotNull Instrumenter instrumenter,
@NotNull SpanOptions spanOptions) {
return delegate.startChild(operation, description, timestamp, instrumenter, spanOptions);
@NotNull String operation, @Nullable String description, @Nullable SentryDate timestamp) {
return delegate.startChild(operation, description, timestamp);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import io.sentry.ISentryLifecycleToken;
import io.sentry.ISpan;
import io.sentry.ITransaction;
import io.sentry.Instrumenter;
import io.sentry.MeasurementUnit;
import io.sentry.SentryDate;
import io.sentry.SentryTraceHeader;
Expand Down Expand Up @@ -57,18 +56,8 @@ public OtelTransactionSpanForwarder(final @NotNull IOtelSpanWrapper rootSpan) {
@NotNull String operation,
@Nullable String description,
@Nullable SentryDate timestamp,
@NotNull Instrumenter instrumenter) {
return rootSpan.startChild(operation, description, timestamp, instrumenter);
}

@Override
public @NotNull ISpan startChild(
@NotNull String operation,
@Nullable String description,
@Nullable SentryDate timestamp,
@NotNull Instrumenter instrumenter,
@NotNull SpanOptions spanOptions) {
return rootSpan.startChild(operation, description, timestamp, instrumenter, spanOptions);
return rootSpan.startChild(operation, description, timestamp, spanOptions);
}

@Override
Expand Down Expand Up @@ -224,7 +213,7 @@ public boolean isNoOp() {
@Override
public @NotNull ISpan startChild(
@NotNull String operation, @Nullable String description, @Nullable SentryDate timestamp) {
return rootSpan.startChild(operation, description, timestamp, Instrumenter.SENTRY);
return rootSpan.startChild(operation, description, timestamp);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,7 @@ public final class io/sentry/opentelemetry/OtelSpanWrapper : io/sentry/opentelem
public fun startChild (Ljava/lang/String;)Lio/sentry/ISpan;
public fun startChild (Ljava/lang/String;Ljava/lang/String;)Lio/sentry/ISpan;
public fun startChild (Ljava/lang/String;Ljava/lang/String;Lio/sentry/SentryDate;)Lio/sentry/ISpan;
public fun startChild (Ljava/lang/String;Ljava/lang/String;Lio/sentry/SentryDate;Lio/sentry/Instrumenter;)Lio/sentry/ISpan;
public fun startChild (Ljava/lang/String;Ljava/lang/String;Lio/sentry/SentryDate;Lio/sentry/Instrumenter;Lio/sentry/SpanOptions;)Lio/sentry/ISpan;
public fun startChild (Ljava/lang/String;Ljava/lang/String;Lio/sentry/SentryDate;Lio/sentry/SpanOptions;)Lio/sentry/ISpan;
public fun startChild (Ljava/lang/String;Ljava/lang/String;Lio/sentry/SpanOptions;)Lio/sentry/ISpan;
public fun storeInContext (Lio/opentelemetry/context/Context;)Lio/opentelemetry/context/Context;
public fun toBaggageHeader (Ljava/util/List;)Lio/sentry/BaggageHeader;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
import io.sentry.IScopes;
import io.sentry.ISentryLifecycleToken;
import io.sentry.ISpan;
import io.sentry.Instrumenter;
import io.sentry.MeasurementUnit;
import io.sentry.NoOpScopesLifecycleToken;
import io.sentry.NoOpSpan;
Expand Down Expand Up @@ -144,43 +143,20 @@ public OtelSpanWrapper(
@Override
public @NotNull ISpan startChild(
@NotNull String operation, @Nullable String description, @Nullable SentryDate timestamp) {
return startChild(operation, description, timestamp, Instrumenter.SENTRY);
return startChild(operation, description, timestamp, new SpanOptions());
}

@Override
public @NotNull ISpan startChild(
@NotNull String operation,
@Nullable String description,
@Nullable SentryDate timestamp,
@NotNull Instrumenter instrumenter) {
final @NotNull SpanContext spanContext =
context.copyForChild(operation, getSpanContext().getSpanId(), null);
spanContext.setDescription(description);
spanContext.setInstrumenter(instrumenter);

final @NotNull SpanOptions spanOptions = new SpanOptions();
spanOptions.setStartTimestamp(timestamp);

return startChild(spanContext, spanOptions);
}

@Override
public @NotNull ISpan startChild(
@NotNull String operation,
@Nullable String description,
@Nullable SentryDate timestamp,
@NotNull Instrumenter instrumenter,
@NotNull SpanOptions spanOptions) {
if (timestamp != null) {
spanOptions.setStartTimestamp(timestamp);
}

final @NotNull SpanContext spanContext =
context.copyForChild(operation, getSpanContext().getSpanId(), null);
spanContext.setDescription(description);
spanContext.setInstrumenter(instrumenter);

return startChild(spanContext, spanOptions);
return startChild(operation, description, spanOptions);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
import io.sentry.IScopes;
import io.sentry.ISpan;
import io.sentry.ITransaction;
import io.sentry.Instrumenter;
import io.sentry.ScopeType;
import io.sentry.ScopesAdapter;
import io.sentry.SentryDate;
Expand Down Expand Up @@ -222,7 +221,6 @@ private void createAndFinishSpanForOtelSpan(
parentSentrySpan.getSpanContext().getSpanId(),
new SpanId(spanId));
spanContext.setDescription(spanInfo.getDescription());
spanContext.setInstrumenter(Instrumenter.SENTRY);
if (sentrySpanMaybe != null) {
spanContext.setSamplingDecision(sentrySpanMaybe.getSamplingDecision());
spanOptions.setOrigin(sentrySpanMaybe.getSpanContext().getOrigin());
Expand Down Expand Up @@ -339,7 +337,6 @@ private void transferSpanDetails(
transactionName == null ? DEFAULT_TRANSACTION_NAME : transactionName);
transactionContext.setTransactionNameSource(transactionNameSource);
transactionContext.setOperation(spanInfo.getOp());
transactionContext.setInstrumenter(Instrumenter.SENTRY);
transactionContext.setProfilerId(profilerId);
if (sentrySpanMaybe != null) {
transactionContext.setSamplingDecision(sentrySpanMaybe.getSamplingDecision());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import io.opentelemetry.sdk.trace.ReadWriteSpan
import io.sentry.IScopes
import io.sentry.ISpan
import io.sentry.ISpanFactory
import io.sentry.Instrumenter
import io.sentry.SentryLongDate
import io.sentry.SentryOptions
import io.sentry.SpanOptions
Expand All @@ -22,7 +21,7 @@ import org.mockito.kotlin.whenever

class OtelSpanWrapperTest {
@Test
fun `startChild with timestamp forwards timestamp and Sentry instrumenter`() {
fun `startChild with timestamp and options forwards both`() {
val otelSpan = mock<ReadWriteSpan>()
whenever(otelSpan.spanContext)
.thenReturn(
Expand All @@ -44,17 +43,18 @@ class OtelSpanWrapperTest {
val expectedChild = mock<ISpan>()
whenever(spanFactory.createSpan(eq(scopes), any(), any(), eq(parent))).thenReturn(expectedChild)
val timestamp = SentryLongDate(1234)
val suppliedSpanOptions = SpanOptions()

val child = parent.startChild("child-op", "description", timestamp)
val child = parent.startChild("child-op", "description", timestamp, suppliedSpanOptions)

val spanOptions = argumentCaptor<SpanOptions>()
val spanContext = argumentCaptor<io.sentry.SpanContext>()
verify(spanFactory)
.createSpan(eq(scopes), spanOptions.capture(), spanContext.capture(), eq(parent))
assertThat(child).isSameInstanceAs(expectedChild)
assertThat(spanOptions.firstValue).isSameInstanceAs(suppliedSpanOptions)
assertThat(spanOptions.firstValue.startTimestamp).isSameInstanceAs(timestamp)
assertThat(spanContext.firstValue.operation).isEqualTo("child-op")
assertThat(spanContext.firstValue.description).isEqualTo("description")
assertThat(spanContext.firstValue.instrumenter).isEqualTo(Instrumenter.SENTRY)
}
}
Loading
Loading