Skip to content

Commit c239a32

Browse files
committed
fix outbox sender; test; cleanup api file
1 parent 0cb6e0d commit c239a32

File tree

4 files changed

+64
-4
lines changed

4 files changed

+64
-4
lines changed

sentry/api/sentry.api

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ public abstract interface class io/sentry/BackfillingEventProcessor : io/sentry/
3030
}
3131

3232
public final class io/sentry/Baggage {
33-
public static final field NOOP Lio/sentry/Baggage;
3433
public fun <init> (Lio/sentry/Baggage;)V
3534
public fun <init> (Lio/sentry/ILogger;)V
3635
public fun <init> (Ljava/util/Map;Ljava/lang/String;ZZLio/sentry/ILogger;)V
@@ -1946,7 +1945,6 @@ public final class io/sentry/ProfilingTransactionData$JsonKeys {
19461945
}
19471946

19481947
public final class io/sentry/PropagationContext {
1949-
public static field NOOP Lio/sentry/PropagationContext;
19501948
public fun <init> ()V
19511949
public fun <init> (Lio/sentry/PropagationContext;)V
19521950
public fun <init> (Lio/sentry/protocol/SentryId;Lio/sentry/SpanId;Lio/sentry/SpanId;Lio/sentry/Baggage;Ljava/lang/Boolean;)V

sentry/src/main/java/io/sentry/OutboxSender.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,10 +244,10 @@ private void processEnvelope(final @NotNull SentryEnvelope envelope, final @NotN
244244
"Invalid sample rate parsed from TraceContext: %s",
245245
sampleRateString);
246246
} else {
247-
final @Nullable String sampleRandString = traceContext.getSampleRate();
247+
final @Nullable String sampleRandString = traceContext.getSampleRand();
248248
if (sampleRandString != null) {
249249
final Double sampleRand = Double.parseDouble(sampleRandString);
250-
if (!SampleRateUtils.isValidTracesSampleRate(sampleRand, false)) {
250+
if (SampleRateUtils.isValidTracesSampleRate(sampleRand, false)) {
251251
return new TracesSamplingDecision(true, sampleRate, sampleRand);
252252
}
253253
}

sentry/src/test/java/io/sentry/OutboxSenderTest.kt

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import java.util.Date
2323
import kotlin.test.Test
2424
import kotlin.test.assertEquals
2525
import kotlin.test.assertFalse
26+
import kotlin.test.assertNotNull
2627
import kotlin.test.assertTrue
2728

2829
class OutboxSenderTest {
@@ -141,6 +142,63 @@ class OutboxSenderTest {
141142
whenever(fixture.scopes.options).thenReturn(fixture.options)
142143
whenever(fixture.options.transactionProfiler).thenReturn(NoOpTransactionProfiler.getInstance())
143144

145+
val transactionContext = TransactionContext("fixture-name", "http")
146+
transactionContext.description = "fixture-request"
147+
transactionContext.status = SpanStatus.OK
148+
transactionContext.setTag("fixture-tag", "fixture-value")
149+
transactionContext.samplingDecision = TracesSamplingDecision(true, 0.00000021, 0.021)
150+
151+
val sentryTracer = SentryTracer(transactionContext, fixture.scopes)
152+
val span = sentryTracer.startChild("child")
153+
span.finish(SpanStatus.OK)
154+
sentryTracer.finish()
155+
156+
val sentryTracerSpy = spy(sentryTracer)
157+
whenever(sentryTracerSpy.eventId).thenReturn(SentryId("3367f5196c494acaae85bbbd535379ac"))
158+
159+
val expected = SentryTransaction(sentryTracerSpy)
160+
whenever(fixture.serializer.deserialize(any(), eq(SentryTransaction::class.java))).thenReturn(expected)
161+
162+
val sut = fixture.getSut()
163+
val path = getTempEnvelope(fileName = "envelope-transaction-with-sample-rand.txt")
164+
assertTrue(File(path).exists())
165+
166+
val hints = HintUtils.createWithTypeCheckHint(mock<Retryable>())
167+
sut.processEnvelopeFile(path, hints)
168+
169+
verify(fixture.scopes).captureTransaction(
170+
check {
171+
assertEquals(expected, it)
172+
assertTrue(it.isSampled)
173+
assertEquals(0.00000021, it.samplingDecision?.sampleRate)
174+
assertEquals(0.021, it.samplingDecision?.sampleRand)
175+
assertTrue(it.samplingDecision!!.sampled)
176+
},
177+
check {
178+
assertEquals("b156a475de54423d9c1571df97ec7eb6", it.traceId.toString())
179+
assertEquals("key", it.publicKey)
180+
assertEquals("0.00000021", it.sampleRate)
181+
assertEquals("1.0-beta.1", it.release)
182+
assertEquals("prod", it.environment)
183+
assertEquals("usr1", it.userId)
184+
assertEquals("tx1", it.transaction)
185+
},
186+
any()
187+
)
188+
assertFalse(File(path).exists())
189+
190+
// Additionally make sure we have no errors logged
191+
verify(fixture.logger, never()).log(eq(SentryLevel.ERROR), any(), any<Any>())
192+
verify(fixture.logger, never()).log(eq(SentryLevel.ERROR), any<String>(), any())
193+
}
194+
195+
@Test
196+
fun `backfills sampleRand`() {
197+
fixture.envelopeReader = EnvelopeReader(JsonSerializer(fixture.options))
198+
whenever(fixture.options.maxSpans).thenReturn(1000)
199+
whenever(fixture.scopes.options).thenReturn(fixture.options)
200+
whenever(fixture.options.transactionProfiler).thenReturn(NoOpTransactionProfiler.getInstance())
201+
144202
val transactionContext = TransactionContext("fixture-name", "http")
145203
transactionContext.description = "fixture-request"
146204
transactionContext.status = SpanStatus.OK
@@ -170,6 +228,7 @@ class OutboxSenderTest {
170228
assertEquals(expected, it)
171229
assertTrue(it.isSampled)
172230
assertEquals(0.00000021, it.samplingDecision?.sampleRate)
231+
assertNotNull(it.samplingDecision?.sampleRand)
173232
assertTrue(it.samplingDecision!!.sampled)
174233
},
175234
check {
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{"event_id":"3367f5196c494acaae85bbbd535379ac","trace":{"trace_id":"b156a475de54423d9c1571df97ec7eb6","public_key":"key","release":"1.0-beta.1","environment":"prod","user_id":"usr1","transaction":"tx1","sample_rate":"0.00000021","sample_rand":"0.021"}}
2+
{"type":"transaction","length":640,"content_type":"application/json"}
3+
{"transaction":"a-transaction","type":"transaction","start_timestamp":"2020-10-23T10:24:01.791Z","timestamp":"2020-10-23T10:24:02.791Z","event_id":"3367f5196c494acaae85bbbd535379ac","contexts":{"trace":{"trace_id":"b156a475de54423d9c1571df97ec7eb6","span_id":"0a53026963414893","op":"http","status":"ok"},"custom":{"some-key":"some-value"}},"spans":[{"start_timestamp":"2021-03-05T08:51:12.838Z","timestamp":"2021-03-05T08:51:12.949Z","trace_id":"2b099185293344a5bfdd7ad89ebf9416","span_id":"5b95c29a5ded4281","parent_span_id":"a3b2d1d58b344b07","op":"PersonService.create","description":"desc","status":"aborted","tags":{"name":"value"}}]}

0 commit comments

Comments
 (0)