Skip to content

Commit 19c0eaa

Browse files
committed
added API taking traceId and spanID
1 parent b95088c commit 19c0eaa

File tree

10 files changed

+61
-18
lines changed

10 files changed

+61
-18
lines changed

sentry/src/main/java/io/sentry/HubAdapter.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,12 @@ public void reportFullyDisplayed() {
322322
return Sentry.continueTrace(sentryTrace, baggageHeaders);
323323
}
324324

325+
@Override
326+
public void continueTrace(
327+
final @NotNull String traceId, final @NotNull String spanId) {
328+
Sentry.continueTrace(traceId, spanId);
329+
}
330+
325331
@Override
326332
public @Nullable SentryTraceHeader getTraceparent() {
327333
return Sentry.getTraceparent();

sentry/src/main/java/io/sentry/HubScopesWrapper.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,12 @@ public void reportFullyDisplayed() {
316316
return scopes.continueTrace(sentryTrace, baggageHeaders);
317317
}
318318

319+
@Override
320+
public void continueTrace(
321+
@NotNull String traceId, @NotNull String spanId) {
322+
scopes.continueTrace(traceId, spanId);
323+
}
324+
319325
@Override
320326
public @Nullable SentryTraceHeader getTraceparent() {
321327
return scopes.getTraceparent();

sentry/src/main/java/io/sentry/IScopes.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -657,6 +657,14 @@ void setSpanContext(
657657
TransactionContext continueTrace(
658658
final @Nullable String sentryTrace, final @Nullable List<String> baggageHeaders);
659659

660+
/**
661+
* Continue a trace based on the trace ID and span ID provided
662+
*
663+
* @param traceId the trace ID
664+
* @param spanId the span ID this is continuing the trace from
665+
*/
666+
void continueTrace(final @NotNull String traceId, final @NotNull String spanId);
667+
660668
/**
661669
* Returns the "sentry-trace" header that allows tracing across services. Can also be used in
662670
* &lt;meta&gt; HTML tags. Also see {@link IScopes#getBaggage()}.

sentry/src/main/java/io/sentry/JsonSerializer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,8 @@ public <T> void serialize(@NotNull T entity, @NotNull Writer writer) throws IOEx
200200
Objects.requireNonNull(writer, "The Writer object is required.");
201201

202202
if (options.getLogger().isEnabled(SentryLevel.DEBUG)) {
203-
String serialized = serializeToString(entity, options.isEnablePrettySerializationOutput());
204-
options.getLogger().log(SentryLevel.DEBUG, "Serializing object: %s", serialized);
203+
// String serialized = serializeToString(entity, options.isEnablePrettySerializationOutput());
204+
// options.getLogger().log(SentryLevel.DEBUG, "Serializing object: %s", serialized);
205205
}
206206
JsonObjectWriter jsonObjectWriter = new JsonObjectWriter(writer, options.getMaxDepth());
207207
jsonObjectWriter.value(options.getLogger(), entity);

sentry/src/main/java/io/sentry/NoOpHub.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,10 @@ public void reportFullyDisplayed() {}
276276
return null;
277277
}
278278

279+
@Override
280+
public void continueTrace(
281+
final @NotNull String traceID, final @NotNull String spanId) {}
282+
279283
@Override
280284
public @Nullable SentryTraceHeader getTraceparent() {
281285
return null;

sentry/src/main/java/io/sentry/NoOpScopes.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,10 @@ public void reportFullyDisplayed() {}
271271
return null;
272272
}
273273

274+
@Override
275+
public void continueTrace(
276+
final @NotNull String traceId, final @NotNull String spanId) { }
277+
274278
@Override
275279
public @Nullable SentryTraceHeader getTraceparent() {
276280
return null;

sentry/src/main/java/io/sentry/PropagationContext.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,18 @@ public static PropagationContext fromHeaders(
5151
sentryTraceHeader.isSampled());
5252
}
5353

54+
public static @NotNull PropagationContext fromId(
55+
final @NotNull String traceId,
56+
final @NotNull String spanId) {
57+
return new PropagationContext(
58+
new SentryId(traceId),
59+
new SpanId(),
60+
new SpanId(spanId),
61+
null,
62+
null
63+
);
64+
}
65+
5466
private @NotNull SentryId traceId;
5567
private @NotNull SpanId spanId;
5668
private @Nullable SpanId parentSpanId;

sentry/src/main/java/io/sentry/Scopes.java

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -896,18 +896,6 @@ public void flush(long timeoutMillis) {
896896
return transaction;
897897
}
898898

899-
private @NotNull Double getSampleRand(final @NotNull TransactionContext transactionContext) {
900-
final @Nullable Baggage baggage = transactionContext.getBaggage();
901-
if (baggage != null) {
902-
final @Nullable Double sampleRandFromBaggageMaybe = baggage.getSampleRandDouble();
903-
if (sampleRandFromBaggageMaybe != null) {
904-
return sampleRandFromBaggageMaybe;
905-
}
906-
}
907-
908-
return getCombinedScopeView().getPropagationContext().getSampleRand();
909-
}
910-
911899
@Override
912900
@ApiStatus.Internal
913901
public void setSpanContext(
@@ -977,10 +965,7 @@ public void reportFullyDisplayed() {
977965
PropagationContext.fromHeaders(getOptions().getLogger(), sentryTrace, baggageHeaders);
978966
configureScope(
979967
(scope) -> {
980-
scope.withPropagationContext(
981-
oldPropagationContext -> {
982-
scope.setPropagationContext(propagationContext);
983-
});
968+
scope.setPropagationContext(propagationContext);
984969
});
985970
if (getOptions().isTracingEnabled()) {
986971
return TransactionContext.fromPropagationContext(propagationContext);

sentry/src/main/java/io/sentry/ScopesAdapter.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,12 @@ public void reportFullyDisplayed() {
321321
return Sentry.continueTrace(sentryTrace, baggageHeaders);
322322
}
323323

324+
@Override
325+
public void continueTrace(
326+
final @NotNull String traceId, final @NotNull String spanId) {
327+
Sentry.continueTrace(traceId, spanId);
328+
}
329+
324330
@Override
325331
public @Nullable SentryTraceHeader getTraceparent() {
326332
return Sentry.getTraceparent();

sentry/src/main/java/io/sentry/Sentry.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1162,6 +1162,18 @@ public interface OptionsConfiguration<T extends SentryOptions> {
11621162
return getCurrentScopes().continueTrace(sentryTrace, baggageHeaders);
11631163
}
11641164

1165+
/**
1166+
* Continue a trace based on the trace ID and span ID provided
1167+
*
1168+
* @param traceId the trace ID
1169+
* @param spanId the span ID
1170+
*/
1171+
// return TransactionContext (if performance enabled) or null (if performance disabled)
1172+
public static void continueTrace(
1173+
final @NotNull String traceId, final @NotNull String spanId) {
1174+
getCurrentScopes().continueTrace(traceId, spanId);
1175+
}
1176+
11651177
/**
11661178
* Returns the "sentry-trace" header that allows tracing across services. Can also be used in
11671179
* &lt;meta&gt; HTML tags. Also see {@link Sentry#getBaggage()}.

0 commit comments

Comments
 (0)