Skip to content

chore: update Sentry self-hosted to 26.10.0 - #14

Draft
github-actions[bot] wants to merge 1 commit into
mainfrom
automation/sentry-v26.10.0
Draft

github-actions[bot] wants to merge 1 commit into
mainfrom
automation/sentry-v26.10.0

Conversation

@github-actions

Copy link
Copy Markdown

Sentry self-hosted 26.10.0

Updates the chart app version from 26.7.2 to 26.10.0.

Manual compatibility review

  • Review all upstream release notes below.
  • Review upstream configuration/default changes before merging.
  • Confirm database migrations and any required manual steps.
  • Confirm the chart’s version-gated templates remain correct.

Explicit upgrade-risk signals

  • 26.8.0: migration, removed
  • 26.9.0: breaking, migration, removed
  • 26.10.0: breaking, migration

Sensitive upstream files changed

  • .env
  • docker-compose.yml
  • install.sh
  • install/bootstrap-s3-profiles.sh
  • install/ensure-correct-permissions-profiles-dir.sh
  • install/ensure-sentry-data-ownership.sh
  • install/error-handling.sh
  • install/geoip.sh
  • install/migrate-seaweedfs-kek.sh
  • install/set-up-and-migrate-database.sh
  • install/setup-custom-ca-certificate.sh
  • install/setup-js-sdk-assets.sh
  • install/upgrade-clickhouse.sh
  • install/upgrade-postgres.sh
  • sentry/Dockerfile
  • sentry/entrypoint.sh
  • sentry/sentry.conf.example.py
  • snuba/api_healthcheck.py
  • taskbroker/config.yml

Upstream release notes

26.8.0

[!WARNING]
⚠️ Security Advisory: This release patches GHSA-rrcx-889m-5jj5 — unauthorized organization member addition or identity linking. This is a recommended upgrade.

[!NOTE]
Some real housekeeping this release: 7 containers gone, Redis is now Valkey, and Kafka retention got a lot leaner. If you're running a docker-compose.override.yml, read the first section before you upgrade, the container removals can bite you there.

Removed 7 containers related to generic metrics

We stripped out 7 containers tied to generic metrics — the stuff that used to power web frontend metrics like LCP and TTFB. This data already made the move to span metrics a while back and has been living in the eap_items table on ClickHouse ever since, so these containers were just dead weight. No functional change on your end, just fewer things running and less to worry about. A happy day for self-hosters.

As noted above, ingest-replay-recordings falls into this same cleanup — it's now handled as part of taskworker rather than as its own container. Same job, different home. Again: if you've got a docker-compose.override.yml, double check it against this removal before you upgrade.

Switched Redis to Valkey

Worth restating our general policy here since it comes up: we only touch database dependencies when SaaS does. This time, that means migrating from Redis to Valkey. The main draw is Valkey's multithreading support — in practice that should translate to faster Redis-protocol queries without you having to do anything differently on your end.

Lessened Kafka log retention hours

We dropped KAFKA_LOG_RETENTION_HOURS from 24 down to 3. Honestly, we're not entirely sure why it was set to 24 in the first place, that value really only earns its keep if your processing pipeline is slow. Most setups process fast enough that 24 hours of retention was just burning disk space for no benefit. Three hours should be plenty of buffer while giving you back a meaningful chunk of storage.

One thing that snuck in late (honestly, last minute): we added --auto-offset-reset=earliest --no-strict-offset-reset flags to the Sentry consumers. This was necessary to stop consumers from hitting constant Kafka Offset Out Of Range errors now that retention is so much shorter —without it, a consumer that falls behind could find its offset has already aged out.

Notable updates

Full diff: getsentry/self-hosted@26.7.2...26.8.0


As always, if you hit snags upgrading or just want to talk through your setup, swing by our Discord — we're always happy to help and chat.

New Features ✨

Tasks

Other

Bug Fixes 🐛

  • (ci) Make integration tests on Linux arm64 not flaky by @aldy505 in #4313
  • (seaweedfs) Migrate legacy KEK before starting weed mini by @aminvakil in #4461

Internal Changes 🔧

Deps

Other

  • (consumer) Remove unused billing metrics consumer by @Dav1dde in #4468
  • Ignore kafka > 7.6 by @aminvakil in #4470
  • Ignore multiple images major versions bump by @aminvakil in #4466
  • Ignore kafka major versions bump by @aminvakil in #4462
  • Remove unused generic metrics s/g/d compose services by @sentry-junior in #4467
  • Ignore postgres major versions bump by @aminvakil in #4457
  • Replace curl-pipe-bash with action-setup-cli for Sentry CLI setup by @oioki in #4451
  • Decrease Kafka log retention hours by @aldy505 in #4442
  • Remove disabled changelog-preview workflow by @oioki in #4447

Full changelog: https://github.com/getsentry/self-hosted/releases/tag/26.8.0

26.9.0

[!WARNING]
With the Postgres REINDEX happening due to glibc changes, users upgraded from previous versions may face some duplicate rows error. This has been reported by a few users (#4516 and #4520). Since most duplicate data does not produce any harm, you might want to copy-and-paste the Postgres error into an AI agent and let it generate a fix for you using psql (docker compose exec postgres psql -U postgres -d postgres).

For further help, please open an issue or go to #self-hosted channel on Sentry's Discord.

A solid maintenance release with some nice infrastructure cleanup and a few flags worth exploring.

Planned Postgres 18 Upgrade!

Heads up on Postgres: We're on the clock with Postgres 14—it hits EOL on November 12. We're planning the jump to Postgres 18 in 26.10.0 (October 15), so if you're running self-hosted, mark your calendar. The current release bumps us to postgres:14-trixie to handle some glibc changes; no action needed on your end, the migration script handles it.

Generic Metrics Infra Removal

We've removed the generic-metrics infrastructure that was feeding into the old Explore dashboard. This was doing the work of pulling "metrics" from span/trace attributes and computing them—solid cleanup that eliminates 3 Docker containers and reduces operational overhead. No user-facing impact here, just cleaner deployments.

We also removed process-segments Docker container, and merge it into Taskbroker. That's 4 Docker containers down total!

Regular dependencies bumps

The usual rounds of bumps. Most notable: ClickHouse to 25.8. It's a straightforward bump with no breaking schema changes or migrations required.

Experimental Features to Try

A few feature flags worth flipping if you want to poke around:

  • organizations:investigations — Organization investigation notebooks. Curious what this is about right?
  • organizations:authv2-enable-toggle & organizations:authv2-rollout — New auth page from Evan Purkhiser. Still finding its footing, but feedback's welcome if you try it.
  • organizations:ourlogs-regex-searches — Search Logs with regex patterns. Handy if you're doing complex filtering.

As always, we're in the Discord if you hit snags, have questions about the Postgres timeline, or just want to chat through your setup. We're always happy to help.

New Features ✨

Bug Fixes 🐛

  • (install) Resolve geoip database paths relative to the repo, not cwd by @aguspatur22 in #4510
  • Delete leftover kafka consumer group by @aldy505 in #4482

Documentation 📚

Internal Changes 🔧

Deps

Other

Full changelog: https://github.com/getsentry/self-hosted/releases/tag/26.9.0

26.10.0

[!CAUTION]

This version upgrades Postgres 14 to 18. If you are very concerned about your data, make sure to take a snapshot of your server before upgrading!

Postgres 18 Upgrade

We've finally moved off our very old Postgres 14 and onto Postgres 18. This upgrade includes a breaking change in how Postgres data is stored. See docker-library/postgres#1259 for the details.

If you ever encountered a problem, come to Discord for direct help.

Going Distroless

Distroless images are even more minimal (in terms of image size and included packages) than debian:slim, and in some cases than Alpine. They contain only the application and its runtime dependencies, with no OS shell or package manager. That leaves far less to flag when you scan with Trivy or similar tools. They’re also smaller, which means faster image downloads and less disk space used on your host.

Sentry's RFC process is how this work got started. Alex, our security engineer, submitted an RFC for distroless, and the changes below follow from it:

  • Sentry runs as the sentry user directly. Containers no longer start as root and drop privileges through gosu. This removes a moving part, and there's no root process to worry about (self-hosted#4535).
  • Sentry and Snuba share a healthcheck approach. Both now use a Python script for healthchecks (self-hosted#4539). We've confirmed these work on our self-hosted-lol setup, as shown here.
  • The base image moved from Debian 12 to Debian 13 (sentry#126031). The size and CVE comparison between the two is in the PR comments.
  • We started building a -distroless image variant (sentry#126030). For a comparison against the standard Debian 13 image, see this comment.

We ran a quick test of the distroless variant from a throwaway branch. That branch sidestepped a few minor bash entrypoint issues we haven’t settled on yet, and the run itself had no problems. The distroless sentry image isn’t the default yet, so you’ll need to opt in via :nightly-distroless to use it.

Here’s where each service stands:

  • Relay and Symbolicator: distroless since 2025.
  • Snuba: distroless.
  • Vroom: distroless starting with the next release, 26.11.0.
  • Launchpad, Taskbroker, Uptime-checker, and Sentry: in progress.

Experimental Features to Try

  • organizations:attribute-management enables the Settings > Attributes browser and editor page.
  • organizations:relay-automatic-json-expansion and organizations:explore-automatic-json-expansion-ui control the expansion config. The flag names don't say much, but they let you expand JSON logs, which is worth a look.

Other Notable Things

  • The login page has a new design. Enjoy it.
  • Log search now supports regular expressions. See the changelog entry.
  • We no longer build the jq image ourselves. We use the official one now (self-hosted#4547).
  • Breaking change: Vroom's SENTRY_BUCKET_PROFILES has changed. If you use external storage (S3-compatible or GCS), update your configuration before upgrading.

We're always happy to chat about setups, upgrades, or whatever's giving you trouble. Come find us on Discord.

New Features ✨

Bug Fixes 🐛

Vroom

Other

  • (external-kafka) Refresh patches so they apply to master again by @oioki in #4553
  • (healthcheck) Let Docker enforce HEALTHCHECK_TIMEOUT in check_http.py by @oioki in #4546
  • (seaweedfs) Use compose mounts in migrate by @aminvakil in #4531
  • (tests) Expect React login page in integration tests by @oioki in #4551

Documentation 📚

Internal Changes 🔧

Deps

Sentry

  • Exec the sentry image's Python entrypoint by @oioki in #4536
  • Prepare for a non-root sentry image by @oioki in #4535

Other

  • (healthcheck) Share one python3 HTTP healthcheck for sentry web and snuba api by @oioki in #4539
  • (install) Read the JS SDK loader registry with json.tool instead of cat by @oioki in #4540
  • (integration) Check the enhance-image marker with python instead of bash by @oioki in #4541
  • (profiles) Drop the sentry-vroom volume migration by @oioki in #4552
  • (vroom) Remove ensure-correct-permissions-profiles-dir.sh by @oioki in #4554

Other

Full changelog: https://github.com/getsentry/self-hosted/releases/tag/26.10.0

This PR was created automatically. It never auto-merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants