Alert manager converts Prometheus alerts into PubSub events which are then used to drive the state in alert-manager.
+-----------------------------+ +--------------------------+ | Prometheus (skia|buildbot) | | Prometheus (skia|public) | +-------------+---------------+ +------------+-------------+ | | | | +--------v--------+ +--------v--------+ | | | | | alert-to-pubsub +-------+ +--+ alert-to-pubsub | | | | | | | +-----------------+ | | +-----------------+ | | +--------v------v----------+ | PubSub | | Topic: prometheus-alerts | +---------------+----------+ | +-----------------+ | | | +-------v-------+ | Cloud Datastore <----------+ | | IncidentAm | | alert-manager | | SilenceAm +----------> | | | +---------------+ +-----------------+
The alert-manager application is state-less, all state is stored in the Cloud Datastore. Also, all the logic for applying silences to Incidents is done in the UI, i.e. the alert-manager backend just reads and writes Incidents and Silences without looking at the interactions between the two.