Skip to content

Releases: getsentry/relay

22.8.0

15 Aug 17:38
Compare
Choose a tag to compare

Features:

  • Remove timeout-based expiry of envelopes in Relay's internal buffers. The cache.envelope_expiry is now inactive. To control the size of the envelope buffer, use cache.envelope_buffer_size exclusively, instead. (#1398)
  • Parse sample rates as JSON. (#1353)
  • Filter events in external Relays, before extracting metrics. (#1379)
  • Add privatekey and private_key as secret key name to datascrubbers. (#1376)
  • Explain why we responded with 429. (#1389)

Bug Fixes:

  • Fix a bug where unreal crash reports were dropped when metrics extraction is enabled. (#1355)
  • Extract user from metrics with EventUser's priority. (#1363)
  • Honor SentryConfig.enabled and don't init SDK at all if it is false. (#1380)
  • The priority thread metadata on profiles is now optional, do not fail the profile if it's not present. (#1392)

Internal:

  • Support compressed project configs in redis cache. (#1345)
  • Refactor profile processing into its own crate. (#1340)
  • Treat "unknown" transaction source as low cardinality for safe SDKs. (#1352, #1356)
  • Conditionally write a default transaction source to the transaction payload. (#1354)
  • Generate mobile measurements frames_frozen_rate, frames_slow_rate, stall_percentage. (#1373)
  • Change to the internals of the healthcheck endpoint. (#1374, #1377)
  • Re-encode the Typescript payload to normalize. (#1372)
  • Partially normalize events before extracting metrics. (#1366)
  • Spawn more threads for CPU intensive work. (#1378)
  • Add missing fields to DeviceContext (#1383)
  • Improve performance of Redis accesses by not running PING everytime a connection is reused. (#1394)
  • Distinguish between various discard reasons for profiles. (#1395)
  • Add missing fields to GPUContext (#1391)
  • Store actor now uses Tokio for message handling instead of Actix. (#1397)
  • Add app_memory to AppContext struct. (#1403)

22.7.0

15 Jul 18:43
Compare
Choose a tag to compare

Features:

  • Adjust sample rate by envelope header's sample_rate. (#1327)
  • Support transaction_info on event payloads. (#1330)

Bug Fixes:

  • Parse custom units with length < 15 without crashing. (#1312)
  • Split large metrics requests into smaller batches. This avoids failed metrics submission and lost Release Health data due to 413 Payload Too Large errors on the upstream. (#1326)
  • Metrics extraction: Map missing transaction status to "unknown". (#1333)
  • Fix CVE-2022-2068 and CVE-2022-2097 by updating to OpenSSL 1.1.1q. (#1334)

Internal:

  • Reduce number of metrics extracted for release health. (#1316)
  • Indicate with thread is the main thread in thread metadata for profiles. (#1320)
  • Increase profile maximum size by an order of magnitude. (#1321)
  • Add data category constant for processed transactions, encompassing all transactions that have been received and sent through dynamic sampling as well as metrics extraction. (#1306)
  • Extract metrics also from trace-sampled transactions. (#1317)
  • Extract metrics from a configurable amount of custom transaction measurements. (#1324)
  • Metrics: Drop transaction tag for high-cardinality sources. (#1339)

22.6.0

15 Jun 18:01
Compare
Choose a tag to compare

Compatibility: This version of Relay requires Sentry server 22.6.0 or newer.

Features:

  • Relay is now compatible with CentOS 7 and Red Hat Enterprise Linux 7 onward (kernel version 2.6.32), depending on glibc 2.17 or newer. The crash-handler feature, which is currently enabled in the build published to DockerHub, additionally requires curl 7.29 or newer. (#1279)
  • Optionally start relay with --upstream-dsn to pass a Sentry DSN instead of the URL. This can be convenient when starting Relay in environments close to an SDK, where a DSN is already available. (#1277)
  • Add a new runtime mode --aws-runtime-api=$AWS_LAMBDA_RUNTIME_API that integrates Relay with the AWS Extensions API lifecycle. (#1277)
  • Add ReplayRecording ItemType. (#1236)

Bug Fixes:

  • Session metrics extraction: Count distinct_ids from all session updates to prevent undercounting users. (#1275)

  • Session metrics extraction: Count crashed+abnormal towards errored_preaggr. (#1274)

Internal:

  • Add version 3 to the project configs endpoint. This allows returning pending results which need to be polled later and avoids blocking batched requests on single slow entries. (#1263)
  • Emit specific event type tags for "processing.event.produced" metric. (#1270)
  • Add support for profile outcomes. (#1272)
  • Avoid potential panics when scrubbing minidumps. (#1282)
  • Fix typescript profile validation. (#1283)
  • Track memory footprint of metrics buckets. (#1284, #1287, #1288)
  • Support dedicated topics per metrics usecase, drop metrics from unknown usecases. (#1285)
  • Add support for Rust profiles ingestion (#1296)

22.5.0

16 May 18:54
Compare
Choose a tag to compare

Features:

  • Add platform, op, http.method and status tag to all extracted transaction metrics. (#1227)
  • Add units in built-in measurements. (#1229)
  • Add protocol support for custom units on transaction measurements. (#1256)

Bug Fixes:

  • fix(metrics): Enforce metric name length limit. (#1238)
  • Accept and forward unknown Envelope items. In processing mode, drop items individually rather than rejecting the entire request. This allows SDKs to send new data in combined Envelopes in the future. (#1246)
  • Stop extracting metrics with outdated names from sessions. (#1251, #1252)
  • Update symbolic to pull in fixed Unreal parser that now correctly handles zero-length files. (#1266)

Internal:

  • Add sampling + tagging by event platform and transaction op. Some (unused) tagging rules from 22.4.0 have been renamed. (#1231)
  • Refactor aggregation error, recover from errors more gracefully. (#1240)
  • Remove/reject nul-bytes from metric strings. (#1235)
  • Remove the unused "internal" data category. (#1245)
  • Add the client and version as sdk tag to extracted session metrics in the format name/version. (#1248)
  • Expose shutdown_timeout in OverridableConfig (#1247)
  • Normalize all profiles and reject invalid ones. (#1250)
  • Raise a new InvalidCompression Outcome for invalid Unreal compression. (#1237)
  • Add a profile data category and count profiles in an envelope to apply rate limits. (#1259)
  • Support dynamic sampling by custom tags, operating system name and version, as well as device name and family. (#1268)

22.4.0

15 Apr 20:22
Compare
Choose a tag to compare

Features:

  • Map Windows version from raw_description to version name (XP, Vista, 11, ...). (#1219)

Bug Fixes:

  • Prevent potential OOM panics when handling corrupt Unreal Engine crashes. (#1216)

Internal:

  • Remove unused item types. (#1211)
  • Pin click dependency in requirements-dev.txt. (#1214)
  • Use fully qualified metric resource identifiers (MRI) for metrics ingestion. For example, the sessions duration is now called d:sessions/duration@s. (#1215)
  • Introduce metric units for rates and information, add support for custom user-declared units, and rename duration units to self-explanatory identifiers such as second. (#1217)
  • Increase the max profile size to accomodate a new platform. (#1223)
  • Set environment as optional when parsing a profile so we get a null value later on. (#1224)
  • Expose new tagging rules interface for metrics extracted from transactions. (#1225)
  • Return better BadStoreRequest for unreal events. (#1226)

22.3.0

15 Mar 18:24
Compare
Choose a tag to compare

Features:

  • Tag transaction metrics by user satisfaction. (#1197)

Bug Fixes:

  • CVE-2022-24713: Prevent denial of service through untrusted regular expressions used for PII scrubbing. (#1207)
  • Prevent dropping metrics during Relay shutdown if the project is outdated or not cached at time of the shutdown. (#1205)
  • Prevent a potential OOM when validating corrupted or exceptional minidumps. (#1209)

Internal:

  • Spread out metric aggregation over the aggregation window to avoid concentrated waves of metrics requests to the upstream every 10 seconds. Relay now applies jitter to initial_delay to spread out requests more evenly over time. (#1185)
  • Use a randomized Kafka partitioning key for sessions instead of the session ID. (#1194)
  • Add new statsd metrics for bucketing efficiency. (#1199, #1192, #1200)
  • Add a Profile ItemType to represent the profiling data sent from Sentry SDKs. (#1179)

22.2.0

15 Feb 19:23
Compare
Choose a tag to compare

Features:

  • Add the relay.override_project_ids configuration flag to support migrating projects from self-hosted to Sentry SaaS. (#1175)

Internal:

  • Add an option to dispatch billing outcomes to a dedicated topic. (#1168)
  • Add new ItemType to handle profiling data. (#1170)

Bug Fixes:

  • Fix regression in CSP report parsing. (#1174)
  • Ignore replacement_chunks when they aren't used. (#1180)

22.1.0

17 Jan 16:34
Compare
Choose a tag to compare

Features

  • Flush metrics and outcome aggregators on graceful shutdown. (#1159)
  • Extract metrics from sampled transactions. (#1161)

Internal

  • Extract normalized dist as metric. (#1158)
  • Extract transaction user as metric. (#1164)

21.12.0

15 Dec 22:06
Compare
Choose a tag to compare

Features:

  • Extract measurement ratings, port from frontend. (#1130)
  • External Relays perform dynamic sampling and emit outcomes as client reports. This feature is now enabled by default. (#1119)
  • Metrics extraction config, custom tags. (#1141)
  • Update the user agent parser (uap-core Feb 2020 to Nov 2021). This allows Relay and Sentry to infer more recent browsers, operating systems, and devices in events containing a user agent header. (#1143, #1145)
  • Improvements to Unity OS context parsing (#1150)

Bug Fixes:

  • Support Unreal Engine 5 crash reports. (#1132)
  • Perform same validation for aggregate sessions as for individual sessions. (#1140)
  • Add missing .NET 4.8 release value. (#1142)
  • Properly document which timestamps are accepted. (#1152)

Internal:

  • Add more statsd metrics for relay metric bucketing. (#1124, #1128)
  • Add an internal option to capture minidumps for hard crashes. This has to be enabled via the sentry._crash_db config parameter. (#1127)
  • Fold processing vs non-processing into single actor. (#1133)
  • Aggregate outcomes for dynamic sampling, invalid project ID, and rate limits. (#1134)
  • Extract session metrics from aggregate sessions. (#1140)
  • Prefix names of extracted metrics by sentry.sessions. or sentry.transactions.. (#1147)
  • Extract transaction duration as metric. (#1148)

21.11.0

15 Nov 22:25
Compare
Choose a tag to compare

Features:

  • Add bucket width to bucket protocol. (#1103)
  • Support multiple kafka cluster configurations (#1101)

Bug Fixes:

  • Avoid unbounded decompression of encoded requests. A particular request crafted to inflate to large amounts of memory, such as a zip bomb, could put Relay out of memory. (#1117, #1122, #1123)
  • Avoid unbounded decompression of UE4 crash reports. Some crash reports could inflate to large amounts of memory before being checked for size, which could put Relay out of memory. (#1121)

Internal:

  • Aggregate client reports before sending them onwards. (#1118)