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 sentry/api/sentry.api
Original file line number Diff line number Diff line change
Expand Up @@ -353,6 +353,7 @@ public final class io/sentry/DataCategory : java/lang/Enum {
public static final field Default Lio/sentry/DataCategory;
public static final field Error Lio/sentry/DataCategory;
public static final field Feedback Lio/sentry/DataCategory;
public static final field LogItem Lio/sentry/DataCategory;
public static final field Monitor Lio/sentry/DataCategory;
public static final field Profile Lio/sentry/DataCategory;
public static final field ProfileChunkUi Lio/sentry/DataCategory;
Expand Down
1 change: 1 addition & 0 deletions sentry/src/main/java/io/sentry/DataCategory.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public enum DataCategory {
Feedback("feedback"),
Session("session"),
Attachment("attachment"),
LogItem("log_item"),
Monitor("monitor"),
Profile("profile"),
ProfileChunkUi("profile_chunk_ui"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,9 @@ private DataCategory categoryFromItemType(SentryItemType itemType) {
if (SentryItemType.ReplayVideo.equals(itemType)) {
return DataCategory.Replay;
}
if (SentryItemType.Log.equals(itemType)) {
return DataCategory.LogItem;
}

return DataCategory.Default;
}
Expand Down
2 changes: 2 additions & 0 deletions sentry/src/main/java/io/sentry/transport/RateLimiter.java
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,8 @@ private boolean isRetryAfter(final @NotNull String itemType) {
return DataCategory.Replay;
case "feedback":
return DataCategory.Feedback;
case "log":
return DataCategory.LogItem;
default:
return DataCategory.Unknown;
}
Expand Down
28 changes: 28 additions & 0 deletions sentry/src/test/java/io/sentry/transport/RateLimiterTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ import io.sentry.SentryEnvelope
import io.sentry.SentryEnvelopeHeader
import io.sentry.SentryEnvelopeItem
import io.sentry.SentryEvent
import io.sentry.SentryLogEvent
import io.sentry.SentryLogEvents
import io.sentry.SentryLongDate
import io.sentry.SentryOptions
import io.sentry.SentryOptionsManipulator
import io.sentry.SentryReplayEvent
Expand Down Expand Up @@ -340,6 +343,31 @@ class RateLimiterTest {
verifyNoMoreInteractions(fixture.clientReportRecorder)
}

@Test
fun `drop log items as lost`() {
val rateLimiter = fixture.getSUT()
val scopes = mock<IScopes>()
whenever(scopes.options).thenReturn(SentryOptions())

val logEventItem = SentryEnvelopeItem.fromLogs(
fixture.serializer,
SentryLogEvents(
listOf(
SentryLogEvent(SentryId(), SentryLongDate(0), "hello")
)
)
)
val envelope = SentryEnvelope(SentryEnvelopeHeader(null), arrayListOf(logEventItem))

rateLimiter.updateRetryAfterLimits("60:log_item:key", null, 1)
val result = rateLimiter.filter(envelope, Hint())

assertNull(result)

verify(fixture.clientReportRecorder, times(1)).recordLostEnvelopeItem(eq(DiscardReason.RATELIMIT_BACKOFF), same(logEventItem))
verifyNoMoreInteractions(fixture.clientReportRecorder)
}

@Test
fun `drop profileChunk items as lost`() {
val rateLimiter = fixture.getSUT()
Expand Down
Loading