Skip to content
Draft
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 @@ -36,6 +36,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))

### Features

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 @@ -361,34 +360,22 @@ private void startTracing(final @NotNull Activity activity) {

if (isAppStart) {
if (!createStandaloneAppStart && !options.isEnableStandaloneAppStartTracing()) {
spanOptions.setStartTimestamp(appStartTime);
appStartSpan =
transaction.startChild(
getAppStartOp(coldStart),
getAppStartDesc(coldStart),
appStartTime,
Instrumenter.SENTRY,
spanOptions);
getAppStartOp(coldStart), getAppStartDesc(coldStart), spanOptions);

finishAppStartSpan();
}
}
spanOptions.setStartTimestamp(ttidStartTime);
final @NotNull ISpan ttidSpan =
transaction.startChild(
TTID_OP,
getTtidDesc(activityName),
ttidStartTime,
Instrumenter.SENTRY,
spanOptions);
transaction.startChild(TTID_OP, getTtidDesc(activityName), 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);
transaction.startChild(TTFD_OP, getTtfdDesc(activityName), spanOptions);
try {
ttfdSpanMap.put(activity, ttfdSpan);
ttfdAutoCloseFuture =
Expand Down Expand Up @@ -1125,13 +1112,9 @@ private void onHeadlessAppStart() {

final SpanOptions spanOptions = new SpanOptions();
setSpanOrigin(spanOptions);
spanOptions.setStartTimestamp(AndroidDateUtils.getCurrentSentryDateTime());
final @NotNull ISpan extendedSpan =
transaction.startChild(
APP_START_EXTENDED_OP,
APP_START_EXTENDED_DESC,
AndroidDateUtils.getCurrentSentryDateTime(),
Instrumenter.SENTRY,
spanOptions);
transaction.startChild(APP_START_EXTENDED_OP, APP_START_EXTENDED_DESC, 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 @@ -128,9 +127,10 @@ private fun recordCompositionSpan(
.startChild(
OP_COMPOSITION_SPAN,
tag,
startTimestamp,
Instrumenter.SENTRY,
SpanOptions().apply { origin = OP_TRACE_ORIGIN },
SpanOptions().apply {
origin = OP_TRACE_ORIGIN
this.startTimestamp = startTimestamp
},
)
.run { finish(null, endTimestamp) }
}
Expand All @@ -153,9 +153,10 @@ private fun recordRenderSpan(
.startChild(
OP_RENDER_SPAN,
tag,
startTimestamp,
Instrumenter.SENTRY,
SpanOptions().apply { origin = OP_TRACE_ORIGIN },
SpanOptions().apply {
origin = OP_TRACE_ORIGIN
this.startTimestamp = startTimestamp
},
)
.run { finish(null, endTimestamp) }
}
Expand Down Expand Up @@ -243,10 +244,9 @@ private class BucketSpans {
ownerSpan.startChild(
operation,
description,
startTimestamp,
Instrumenter.SENTRY,
SpanOptions().apply {
origin = OP_TRACE_ORIGIN
this.startTimestamp = startTimestamp
isTrimStart = true
isTrimEnd = true
isIdle = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,6 @@ 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/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 +139,6 @@ 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/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 @@ -131,25 +130,6 @@ public void setTransactionName(@NotNull String name, @NotNull TransactionNameSou
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);
}

@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);
}

@Override
public @NotNull ISpan startChild(@NotNull String operation, @Nullable String description) {
return delegate.startChild(operation, description);
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 @@ -52,25 +51,6 @@ public OtelTransactionSpanForwarder(final @NotNull IOtelSpanWrapper rootSpan) {
return rootSpan.startChild(spanContext, spanOptions);
}

@Override
public @NotNull ISpan startChild(
@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);
}

@Override
public @NotNull ISpan startChild(@NotNull String operation, @Nullable String description) {
return rootSpan.startChild(operation, description);
Expand Down Expand Up @@ -224,7 +204,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 @@ -100,8 +100,6 @@ 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/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 @@ -7,7 +7,6 @@
import io.sentry.Hint;
import io.sentry.IScopes;
import io.sentry.ISpan;
import io.sentry.Instrumenter;
import io.sentry.ScopesAdapter;
import io.sentry.SentryEvent;
import io.sentry.SentryLevel;
Expand Down Expand Up @@ -40,67 +39,51 @@ public OpenTelemetryLinkErrorEventProcessor() {

@Override
public @Nullable SentryEvent process(final @NotNull SentryEvent event, final @NotNull Hint hint) {
final @NotNull Instrumenter instrumenter = scopes.getOptions().getInstrumenter();
if (Instrumenter.OTEL.equals(instrumenter)) {
@NotNull final Span otelSpan = Span.current();
@NotNull final String traceId = otelSpan.getSpanContext().getTraceId();
@NotNull final String spanId = otelSpan.getSpanContext().getSpanId();
@NotNull final Span otelSpan = Span.current();
@NotNull final String traceId = otelSpan.getSpanContext().getTraceId();
@NotNull final String spanId = otelSpan.getSpanContext().getSpanId();

if (TraceId.isValid(traceId) && SpanId.isValid(spanId)) {
final @Nullable ISpan sentrySpan = spanStorage.get(spanId);
if (sentrySpan != null) {
final @NotNull SpanContext sentrySpanSpanContext = sentrySpan.getSpanContext();
final @NotNull String operation = sentrySpanSpanContext.getOperation();
final @Nullable io.sentry.SpanId parentSpanId = sentrySpanSpanContext.getParentSpanId();
final @NotNull SpanContext spanContext =
new SpanContext(
new SentryId(traceId),
new io.sentry.SpanId(spanId),
operation,
parentSpanId,
null);
if (TraceId.isValid(traceId) && SpanId.isValid(spanId)) {
final @Nullable ISpan sentrySpan = spanStorage.get(spanId);
if (sentrySpan != null) {
final @NotNull SpanContext sentrySpanSpanContext = sentrySpan.getSpanContext();
final @NotNull String operation = sentrySpanSpanContext.getOperation();
final @Nullable io.sentry.SpanId parentSpanId = sentrySpanSpanContext.getParentSpanId();
final @NotNull SpanContext spanContext =
new SpanContext(
new SentryId(traceId), new io.sentry.SpanId(spanId), operation, parentSpanId, null);

event.getContexts().setTrace(spanContext);
scopes
.getOptions()
.getLogger()
.log(
SentryLevel.DEBUG,
"Linking Sentry event %s to span %s created via OpenTelemetry (trace %s).",
event.getEventId(),
spanId,
traceId);
} else {
scopes
.getOptions()
.getLogger()
.log(
SentryLevel.DEBUG,
"Not linking Sentry event %s to any transaction created via OpenTelemetry as none has been found for span %s (trace %s).",
event.getEventId(),
spanId,
traceId);
}
event.getContexts().setTrace(spanContext);
scopes
.getOptions()
.getLogger()
.log(
SentryLevel.DEBUG,
"Linking Sentry event %s to span %s created via OpenTelemetry (trace %s).",
event.getEventId(),
spanId,
traceId);
} else {
scopes
.getOptions()
.getLogger()
.log(
SentryLevel.DEBUG,
"Not linking Sentry event %s to any transaction created via OpenTelemetry as traceId %s or spanId %s are invalid.",
"Not linking Sentry event %s to any transaction created via OpenTelemetry as none has been found for span %s (trace %s).",
event.getEventId(),
traceId,
spanId);
spanId,
traceId);
}
} else {
scopes
.getOptions()
.getLogger()
.log(
SentryLevel.DEBUG,
"Not linking Sentry event %s to any transaction created via OpenTelemetry as instrumenter is set to %s.",
"Not linking Sentry event %s to any transaction created via OpenTelemetry as traceId %s or spanId %s are invalid.",
event.getEventId(),
instrumenter);
traceId,
spanId);
}

return event;
Expand Down
Loading
Loading