Skip to content

23.4.0

Compare
Choose a tag to compare
@getsentry-bot getsentry-bot released this 17 Apr 13:46

Breaking Changes:

This release contains major changes to the web layer, including TCP and HTTP handling as well as all web endpoint handlers. Due to these changes, some functionality was retired and Relay responds differently in specific cases.

Configuration:

  • SSL support has been dropped. As per official guidelines, Relay should be operated behind a reverse proxy, which can perform SSL termination.
  • Connection config options max_connections, max_pending_connections, and max_connection_rate no longer have an effect. Instead, configure the reverse proxy to handle connection concurrency as needed.

Endpoints:

  • The security endpoint no longer forwards to upstream if the mime type doesn't match supported mime types. Instead, the request is rejected with a corresponding error.
  • Passing store payloads as ?sentry_data=<base64> query parameter is restricted to GET requests on the store endpoint. Other endpoints require the payload to be passed in the request body.
  • Requests with an invalid content-encoding header will now be rejected. Exceptions to this are an empty string and UTF-8, which have been sent historically by some SDKs and are now treated as identity (no encoding). Previously, all unknown encodings were treated as identity.
  • Temporarily, response bodies for some errors are rendered as plain text instead of JSON. This will be addressed in an upcoming release.

Metrics:

  • The route tag of request metrics uses the route pattern instead of schematic names. There is an exact replacement for every previous route. For example, "store-default" is now tagged as "/api/:project_id/store/".
  • Statsd metrics event.size_bytes.raw and event.size_bytes.uncompressed have been removed.

Features:

  • Allow monitor checkins to paass monitor_config for monitor upserts. (#1962)
  • Add replay_id onto event from dynamic sampling context. (#1983)
  • Add product-name for devices, derived from the android model. (#2004)
  • Changes how device class is determined for iPhone devices. Instead of checking processor frequency, the device model is mapped to a device class. (#1970)
  • Don't sanitize transactions if no clustering rules exist and no UUIDs were scrubbed. (#1976)
  • Add thread.lock_mechanism field to protocol. (#1979)
  • Add origin to trace context and span. (#1984)
  • Add jvm debug file type. (#2002)
  • Add new mechanism fields to protocol to support exception groups. (#2020)
  • Change lock_reason attribute to a held_locks dictionary in the thread interface. (#2018)

Internal:

  • Add BufferService with SQLite backend. (#1920)
  • Upgrade the web framework and related dependencies. (#1938)
  • Apply transaction clustering rules before UUID scrubbing rules. (#1964)
  • Use exposed device-class-synthesis feature flag to gate device.class synthesis in light normalization. (#1974)
  • Adds iPad support for device.class synthesis in light normalization. (#2008)
  • Pin schemars dependency to un-break schema docs generation. (#2014)
  • Remove global service registry. (#2022)
  • Apply schema validation to all topics in local development. (#2013)

Monitors:

  • Monitor check-ins may now specify an environment (#2027)