Skip to content

Releases: getsentry/relay

24.4.2

29 Apr 23:38
Compare
Choose a tag to compare

Breaking Changes:

  • Stop supporting dynamic sampling mode "total", which adjusted for the client sample rate. (#3474)

Bug fixes:

  • Respect country code TLDs when scrubbing span tags. (#3458)
  • Extract HTTP status code from span data when sent as integers. (#3491)

Features:

  • Separate the logic for producing UserReportV2 events (user feedback) and handle attachments in the same envelope as feedback. (#3403)
  • Use same keys for OTel span attributes and Sentry span data. (#3457)
  • Support passing owner when upserting Monitors. (#3468)
  • Add features to ClientSDKInfo (#3478
  • Extract frames.slow, frames.frozen, and frames.total metrics from mobile spans. (#3473)
  • Extract frames.delay metric from mobile spans. (#3472)
  • Consider "Bearer" (case-insensitive) a password. PII will scrub all strings matching that substring. (#3484)
  • Add support for CF-Connecting-IP header. (#3496)

Internal:

  • Emit gauges for total and self times for spans. (#3448)
  • Collect exclusive_time_light metrics for cache.* spans. (#3466)
  • Build and publish ARM docker images for Relay. (#3272).

24.4.1

18 Apr 17:26
Compare
Choose a tag to compare

Features:

  • Add inbound filters for Annotated types. (#3420)
  • Add Linux distributions to os context. (#3443)

Internal:

  • Emit negative outcomes in metric stats for metrics. (#3436)
  • Add new inbound filter: Permission denied to access property "x" (#3442)

24.4.0

15 Apr 23:58
Compare
Choose a tag to compare

Bug fixes:

  • Fix performance regression in disk spooling by using page counts to estimate the spool size. (#3379)
  • Perform clock drift normalization only when sent_at is set in the Envelope headers. (#3405)

Features:

  • Breaking change: Kafka topic configuration keys now support the default topic name. The previous aliases metrics and metrics_transactions are no longer supported if configuring topics manually. Use ingest-metrics or metrics_sessions instead of metrics, and ingest-performance-metrics or metrics_generic instead of metrics_transactions. (#3361)
  • Breaking change: Remove ShardedProducer and related code. The sharded configuration for Kafka is no longer supported. (#3415)
  • Add support for continuous profiling. (#3270)
  • Add support for Reporting API for CSP reports (#3277)
  • Extract op and description while converting opentelemetry spans to sentry spans. (#3287)
  • Drop event_id and remote_addr from all outcomes. (#3319)
  • Support for AI token metrics (#3250)
  • Accept integers in event.user.username. (#3328)
  • Produce user feedback to ingest-feedback-events topic, with rollout rate. (#3344)
  • Extract cache.item_size and cache.hit data into span indexed ([#3367]#3367)
  • Allow IP addresses in metrics domain tag. (#3365)
  • Support the full unicode character set via UTF-8 encoding for metric tags submitted via the statsd format. Certain restricted characters require escape sequences, see docs for the precise rules. (#3358)
  • Stop extracting count_per_segment and count_per_op metrics. (#3380)
  • Add cardinality_limited outcome with id 6. (#3389)
  • Extract cache.item_size and cache.hit metrics. ([#3371]#3371)
  • Optionally convert segment spans to transactions for compatibility. (#3375)
  • Add feature flag for replay video event types. (#3402)
  • Extract scrubbed IP addresses into the span.domain tag. (#3383)

Internal:

  • Enable db.redis span metrics extraction. (#3283)
  • Add data categories for continuous profiling. (#3284, #3303)
  • Apply rate limits to span metrics. (#3255)
  • Extract metrics from transaction spans. (#3273, #3324)
  • Implement volume metric stats. (#3281)
  • Implement cardinality metric stats. (#3360)
  • Scrub transactions before enforcing quotas. (#3248)
  • Implement metric name based cardinality limits. (#3313)
  • Kafka topic config supports default topic names as keys. (#3282, #3350)
  • Set all span tags on the transaction span. (#3310)
  • Emit outcomes for user feedback events. (#3026)
  • Collect duration for all spans. (#3322)
  • Add project_id as part of the span Kafka message headers. (#3320)
  • Stop producing to sessions topic, the feature is now fully migrated to metrics. (#3271)
  • Pass retention_days in the Kafka profile messages. (#3362)
  • Support and expose namespaces for metric rate limit propagation via the x-sentry-rate-limits header. (#3347)
  • Tag span duration metric by group for all ops supporting description scrubbing. (#3370)
  • Copy transaction tags to segment. (#3386)
  • Route spans according to trace_id. (#3387)
  • Log span when encountering a validation error. (#3401)
  • Optionally skip normalization. (#3377)
  • Scrub file extensions in file spans and tags. (#3413)

24.3.0

15 Mar 17:46
Compare
Choose a tag to compare

Features:

  • Extend GPU context with data for Unreal Engine crash reports. (#3144)
  • Implement base64 and zstd metric bucket encodings. (#3218)
  • Implement COGS measurements into Relay. (#3157)
  • Parametrize transaction in dynamic sampling context. (#3141)
  • Adds ReplayVideo envelope-item type. (#3105)
  • Parse & scrub span description for supabase. (#3153, #3156)
  • Introduce generic filters in global configs. (#3161)
  • Individual cardinality limits can now be set into passive mode and not be enforced. (#3199)
  • Allow enabling SSL for Kafka. (#3232)
  • Enable HTTP compression for all APIs. (#3233)
  • Add process.load span to ingested mobile span ops. (#3227)
  • Track metric bucket metadata for Relay internal usage. (#3254)
  • Enforce rate limits for standalone spans. (#3238)
  • Extract span.status_code tag for HTTP spans. (#3245)

Bug Fixes:

  • Forward metrics in proxy mode. (#3106)
  • Do not PII-scrub code locations by default. (#3116)
  • Accept transactions with unfinished spans. (#3162)
  • Don't run validation on renormalization, and don't normalize spans from librelay calls. (#3214)
  • Set segment_id as optional (#3275)

Internal:

  • Add quotas to global config. (#3086)
  • Adds support for dynamic metric bucket encoding. (#3137)
  • Use statsdproxy to pre-aggregate metrics. (#2425)
  • Add SDK information to spans. (#3178)
  • Drop replay envelopes if any item fails. (#3201)
  • Filter null values from metrics summary tags. (#3204)
  • Emit a usage metric for every span seen. (#3209)
  • Add namespace for profile metrics. (#3229)
  • Add segment_id to the profile. (#3265)

24.2.0

15 Feb 21:08
Compare
Choose a tag to compare

Bug Fixes:

  • Fix regression in SQL query scrubbing. (#3091)
  • Normalize route in trace context data field. (#3104)
  • Limit the length of scrubbed span descriptions. (#3115)

Features:

  • Add protobuf support for ingesting OpenTelemetry spans and use official opentelemetry-proto generated structs. (#3044)

Internal:

  • Set the span op on segments. (#3082)

24.1.2

08 Feb 18:14
Compare
Choose a tag to compare

Features:

  • Add raw_domain tag to indexed spans. (#2975)
  • Obtain span.domain field from the span data's url.scheme and server.address properties when applicable. (#2975)
  • Do not truncate simplified SQL expressions. (#3003)
  • Add app_start_type as a tag for self time and duration for app start spans. (#3027), (#3066)

Internal:

  • Emit a usage metric for total spans. (#3007)
  • Drop timestamp from metrics partition key. (#3025)
  • Drop spans ending outside the valid timestamp range. (#3013)
  • Extract INP metrics from spans. (#2969, #3041)
  • Add ability to rate limit metric buckets by namespace. (#2941)
  • Upgrade sqlparser to 0.43.1.(#3057)
  • Implement project scoped cardinality limits. (#3071)

24.1.1

26 Jan 18:42
Compare
Choose a tag to compare

Features:

  • Add new legacy browser filters. (#2950)

Internal:

  • Implement quota system for cardinality limiter. (#2972)
  • Use cardinality limits from project config instead of Relay config. (#2990)
  • Proactively move on-disk spool to memory. (#2949)
  • Default missing Event.platform and Event.level fields during light normalization. (#2961)
  • Copy event measurements to span & normalize span measurements. (#2953)
  • Add allow_negative to BuiltinMeasurementKey. Filter out negative BuiltinMeasurements if allow_negative is false. (#2982)
  • Add possiblity to block metrics or their tags with glob-patterns. (#2954, #2973)
  • Forward profiles of non-sampled transactions. (#2940)
  • Enable throttled periodic unspool of the buffered envelopes. (#2993)

Bug Fixes:

  • Add automatic PII scrubbing to logentry.params. (#2956)
  • Avoid producing null values in metric data. These values were the result of Infinity or NaN values extracted from event data. The values are now discarded during extraction. (#2958)
  • Fix processing of user reports. (#2981, #2984)
  • Fetch project config when metrics are received. (#2987)

24.1.0

16 Jan 22:00
Compare
Choose a tag to compare

Features:

  • Add a global throughput rate limiter for metric buckets. (#2928)
  • Group db spans with repeating logical conditions together. (#2929)

Bug Fixes:

  • Normalize event timestamps before validating them, fixing cases where Relay would drop valid events with reason "invalid_transaction". (#2878)
  • Resolve a division by zero in performance score computation that leads to dropped metrics for transactions. (#2911)

Internal:

  • Add duration metric for mobile app start spans. (#2906)
  • Introduce the configuration option http.global_metrics. When enabled, Relay submits metric buckets not through regular project-scoped Envelopes, but instead through the global endpoint. When this Relay serves a high number of projects, this can reduce the overall request volume. (#2902)
  • Record the size of global metrics requests in statsd as upstream.metrics.body_size. (#2908)
  • Make Kafka spans compatible with the Snuba span schema. (#2917, #2926)
  • Only extract span metrics / tags when they are needed. (#2907, #2923, #2924)
  • Normalize metric resource identifiers in event._metrics_summary and span._metrics_summary. (#2914)
  • Validate error_id and trace_id vectors in replay deserializer. (#2931)
  • Add a data category for indexed spans. (#2937)
  • Add nested Android app start span ops to span ingestion (#2927)

23.12.1

21 Dec 16:48
Compare
Choose a tag to compare

Internal:

  • Use a Lua script and in-memory cache for the cardinality limiting to reduce load on Redis. (#2849)
  • Extract metrics for file spans. (#2874)
  • Add an internal endpoint that allows Relays to submit metrics from multiple projects in a single request. (#2869)
  • Emit a processor.message.duration metric to assess the throughput of the internal CPU pool. (#2877)

23.12.0

19 Dec 12:42
Compare
Choose a tag to compare

Features:

  • Ingest OpenTelemetry and standalone Sentry spans via HTTP or an envelope. (#2620)
  • Partition and split metric buckets just before sending. Log outcomes for metrics. (#2682)
  • Support optional PerformanceScoreWeightedComponent in performance score processing. (#2783)
  • Return global config ready status to downstream relays. (#2765)
  • Add Mixed JS/Android Profiles events processing. (#2706)
  • Allow to ingest measurements on a span. (#2792)
  • Extract size metrics for all resource spans when permitted. (#2805)
  • Allow access to more fields in dynamic sampling and metric extraction. (#2820)
  • Add Redis set based cardinality limiter for metrics. (#2745)
  • Support issue thresholds for Cron Monitor configurations (#2842)

Bug Fixes:

  • In on-demand metric extraction, use the normalized URL instead of raw URLs sent by SDKs. This bug prevented metrics for certain dashboard queries from being extracted. (#2819)
  • Ignore whitespaces when parsing user reports. (#2798)

Internal:

  • Support source context in metric code locations metadata entries. (#2781)
  • Temporarily add metric summaries on spans and top-level transaction events to link DDM with performance monitoring. (#2757)
  • Add size limits on metric related envelope items. (#2800)
  • Include the size offending item in the size limit error message. (#2801)
  • Allow ingestion of metrics summary on spans. (#2823)
  • Add metric_bucket data category. (#2824)
  • Org rate limit metrics per bucket. (#2836)
  • Emit image resource spans, grouped by domain and extension. (#2826, #2855)
  • Parse timestamps from strings in span OpenTelemetry schema. (#2857)