From ed8645b331e79384d501016ff6e70c9bab287f02 Mon Sep 17 00:00:00 2001 From: Philipp Suess Date: Mon, 29 Jun 2026 10:23:17 +0200 Subject: [PATCH 1/2] docs(develop): update profile data categories from Relay Bring the rate-limiting Definitions list in line with the profile data categories that SDKs actually act on. The list predated Relay's profile category split, so it was missing profile_chunk_ui, profile_backend, and profile_ui. Also annotate each profile category with its SDK rate-limiting behavior. Only categories that can appear in the X-Sentry-Rate-Limits header are listed. profile_duration and profile_duration_ui are excluded: despite their 'apply to profile chunks' doc comment in data_category.rs, Relay's EnvelopeLimiter has no CategoryLimit for them and never enforces them against envelope items (they are billing/outcome categories). profile_indexed is excluded as well since SDKs ignore it. Surfaced while investigating a Cocoa profiling issue. Refs getsentry/sentry-cocoa#8174 Co-Authored-By: Claude --- develop-docs/sdk/foundations/transport/rate-limiting.mdx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/develop-docs/sdk/foundations/transport/rate-limiting.mdx b/develop-docs/sdk/foundations/transport/rate-limiting.mdx index e529ef2252b891..b940222b398d5c 100644 --- a/develop-docs/sdk/foundations/transport/rate-limiting.mdx +++ b/develop-docs/sdk/foundations/transport/rate-limiting.mdx @@ -94,8 +94,11 @@ While these [data categories](https://github.com/getsentry/relay/blob/master/rel - `security`: Events with event_type `csp` - `attachment`: Attachment bytes stored (unused for rate limiting) - `session`: Session update events - - `profile`: Profiling events - - `profile_chunk`: Continuous Profiling chunks + - `profile`: Profiling events (rate limiting: apply to all profiles). + - `profile_chunk`: Continuous Profiling chunks (rate limiting: apply to profile chunks). + - `profile_chunk_ui`: UI Profiling chunks; counterpart to `profile_chunk` for UI platforms cocoa, android, and javascript (rate limiting: apply to profile chunks). + - `profile_backend`: Transaction profiles for backend platforms (rate limiting: optional, apply to backend transaction profiles). + - `profile_ui`: Transaction profiles for UI platforms (rate limiting: optional, apply to UI transaction profiles). - `replay`: Session Replays - `feedback`: User Feedbacks - `trace_metric`: Metric type events. From d0d5df138b42725afd888ed19e193dd13627c437 Mon Sep 17 00:00:00 2001 From: Philipp Suess Date: Tue, 30 Jun 2026 06:08:00 +0200 Subject: [PATCH 2/2] include feedback and improve wording --- .../sdk/foundations/transport/rate-limiting.mdx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/develop-docs/sdk/foundations/transport/rate-limiting.mdx b/develop-docs/sdk/foundations/transport/rate-limiting.mdx index b940222b398d5c..e1bed19427bee6 100644 --- a/develop-docs/sdk/foundations/transport/rate-limiting.mdx +++ b/develop-docs/sdk/foundations/transport/rate-limiting.mdx @@ -94,17 +94,20 @@ While these [data categories](https://github.com/getsentry/relay/blob/master/rel - `security`: Events with event_type `csp` - `attachment`: Attachment bytes stored (unused for rate limiting) - `session`: Session update events - - `profile`: Profiling events (rate limiting: apply to all profiles). - - `profile_chunk`: Continuous Profiling chunks (rate limiting: apply to profile chunks). - - `profile_chunk_ui`: UI Profiling chunks; counterpart to `profile_chunk` for UI platforms cocoa, android, and javascript (rate limiting: apply to profile chunks). - - `profile_backend`: Transaction profiles for backend platforms (rate limiting: optional, apply to backend transaction profiles). - - `profile_ui`: Transaction profiles for UI platforms (rate limiting: optional, apply to UI transaction profiles). - `replay`: Session Replays - `feedback`: User Feedbacks - `trace_metric`: Metric type events. - `trace_metric_byte`: Metric bytes stored. - `internal`: a sentry/system internal event[^internal] + Relay utilizes various data categories for profiles, allowing separate rate limiting for each. SDKs must implement the same logic applied to other data categories and discard the associated profiling data when a rate limit is active: + + - `profile`: Profiling events for backend platforms. + - `profile_chunk`: Continuous Profiling chunks for backend platforms. + - `profile_chunk_ui`: Continuous Profiling chunks for UI platforms. + - `profile_backend`: Transaction profiles for backend platforms. + - `profile_ui`: Transaction profiles for UI platforms. + - **Scope**: The unit / model in Sentry that quotas are enforced for. - `organization` - `project`