diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b39b437c49..bc13fc4b155 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## Unreleased + +### Fixes + +- Fix Android profile chunk envelope type for UI Profiling ([#4366](https://github.com/getsentry/sentry-java/pull/4366)) + ## 8.11.0 ### Features diff --git a/sentry/src/main/java/io/sentry/SentryItemType.java b/sentry/src/main/java/io/sentry/SentryItemType.java index 47a0eba3c97..068c37ab1f1 100644 --- a/sentry/src/main/java/io/sentry/SentryItemType.java +++ b/sentry/src/main/java/io/sentry/SentryItemType.java @@ -15,7 +15,7 @@ public enum SentryItemType implements JsonSerializable { Attachment("attachment"), Transaction("transaction"), Profile("profile"), - ProfileChunk("profile_chunk_ui"), + ProfileChunk("profile_chunk"), ClientReport("client_report"), ReplayEvent("replay_event"), ReplayRecording("replay_recording"), diff --git a/sentry/src/main/java/io/sentry/transport/RateLimiter.java b/sentry/src/main/java/io/sentry/transport/RateLimiter.java index c2c678cbc30..11a0ea02f46 100644 --- a/sentry/src/main/java/io/sentry/transport/RateLimiter.java +++ b/sentry/src/main/java/io/sentry/transport/RateLimiter.java @@ -191,7 +191,10 @@ private boolean isRetryAfter(final @NotNull String itemType) { return DataCategory.Attachment; case "profile": return DataCategory.Profile; - case "profile_chunk_ui": + // When we send a profile chunk, we have to check for profile_chunk_ui rate limiting, + // because that's what relay returns to rate limit Android. When (if) we will implement JVM + // profiling we will have to check both rate limits. + case "profile_chunk": return DataCategory.ProfileChunkUi; case "transaction": return DataCategory.Transaction; diff --git a/sentry/src/test/java/io/sentry/protocol/SentryItemTypeSerializationTest.kt b/sentry/src/test/java/io/sentry/protocol/SentryItemTypeSerializationTest.kt index 6e7a8191b84..68f8daa1e5d 100644 --- a/sentry/src/test/java/io/sentry/protocol/SentryItemTypeSerializationTest.kt +++ b/sentry/src/test/java/io/sentry/protocol/SentryItemTypeSerializationTest.kt @@ -25,6 +25,7 @@ class SentryItemTypeSerializationTest { assertEquals(serialize(SentryItemType.Attachment), json("attachment")) assertEquals(serialize(SentryItemType.Transaction), json("transaction")) assertEquals(serialize(SentryItemType.Profile), json("profile")) + assertEquals(serialize(SentryItemType.ProfileChunk), json("profile_chunk")) assertEquals(serialize(SentryItemType.ClientReport), json("client_report")) assertEquals(serialize(SentryItemType.ReplayEvent), json("replay_event")) assertEquals(serialize(SentryItemType.ReplayRecording), json("replay_recording")) @@ -41,6 +42,7 @@ class SentryItemTypeSerializationTest { assertEquals(deserialize(json("attachment")), SentryItemType.Attachment) assertEquals(deserialize(json("transaction")), SentryItemType.Transaction) assertEquals(deserialize(json("profile")), SentryItemType.Profile) + assertEquals(deserialize(json("profile_chunk")), SentryItemType.ProfileChunk) assertEquals(deserialize(json("client_report")), SentryItemType.ClientReport) assertEquals(deserialize(json("replay_event")), SentryItemType.ReplayEvent) assertEquals(deserialize(json("replay_recording")), SentryItemType.ReplayRecording)