← Back to all sparks
P

Prometheus Alertmanager

INFRA · APIS
Velocity0.0

Alert routing, grouping, silencing and notification dispatcher for Prometheus

Alertmanager is dismantling its global state one contention bug at a time

alertingprometheusrefactordispatcherobservability
Current state
Prometheus Alertmanager is in a maintenance-plus-refactor phase. The 0.32 and 0.33 lines are dominated by internal restructuring — the global alert marker replaced by per-aggregation-group markers, types moved out of shared packages, function signatures changed across the codebase — alongside a steady run of dispatcher fixes for contended routes and goroutine leaks. User-facing additions are modest but real: silence annotations in the UI, receiver labels and filtering on the v2 API, and a structured event recorder behind a feature flag.
Where it's heading
Two threads run in parallel. The first is unwinding shared mutable state: the global marker removal and the per-group marker introduction are the same fix applied structurally rather than patched, and the dispatcher bugfixes in 0.32.1 and 0.32.2 read as the symptoms that motivated it. The second is tightening the build and integration boundary — compiled UI assets left the repository in 0.32.0, and internal signatures changed with an explicit warning to downstream integrators. Neither is a feature push; both make the project easier to change later.
Prediction
The event recorder is gated behind --enable-feature=event-recorder, which is the same staging pattern the project used for flags it later promoted or dropped; expect its status to be resolved in the next minor. Whether more of the marker refactor remains is not visible from these notes.

Recent moves

  1. 1mo ago

    Silence snapshot compatibility fix in Alertmanager 0.33.1

    A three-bugfix patch on the 0.33 line. The substantive one restores the legacy matchers field in silence snapshots, which had been blocking older Alertmanager versions from reading snapshots written by newer ones — a downgrade-path regression rather than a new capability.

    View source ↗
  2. 1mo ago

    Per-group alert markers replace the global marker in 0.33.0

    The release where the marker refactor lands: a global alert marker gives way to per-aggregation-group markers, with the old types removed from the shared packages. Around it sit genuine user-facing additions — silence annotations in the UI, receiver labels and a receiver_matchers filter across three v2 API endpoints, and an opt-in structured event recorder. The long-dead auto-gomaxprocs flag is finally removed.

    View source ↗
  3. 2mo ago

    Dispatcher goroutine leak fix in Alertmanager 0.32.2

    A single-fix patch closing a goroutine leak when a destroyed alert group is swapped. One more entry in the dispatcher-lifecycle sequence that the 0.33.0 marker rework addresses structurally.

    View source ↗
  4. 3mo ago

    Contended-route dispatch fix in Alertmanager 0.32.1

    Fixes dispatching to a contended route and restores prebuilt UI assets to the release archive — the latter a direct consequence of 0.32.0 removing compiled assets from the source tree. Container-based UI builds are now supported.

    View source ↗
  5. 3mo ago

    0.32.1-rc.0 / 2026-04-27

    The release candidate for 0.32.1, carrying an identical changelog to the final two days later. No separate substance.

    View source ↗
  6. 4mo ago

    Alertmanager 0.32.0 stops shipping compiled UI assets in-tree

    Compiled UI assets leave the repository, which breaks any downstream build that consumed them from the source tree and forces a UI build step. Internal function signatures also change across packages, flagged for integrators. The rest is allocation reduction and static asset caching — the start of the performance and build-hygiene pass that 0.33.0 continues.

    View source ↗