Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Alertmanager Bouncer

Sometimes you want to apply business logic to Alertmanager, enforcing authors, logic around silence times etc. According to upstream, this logic doesn't belong in Alertmanager itself - fair enough, but that leaves us wondering where to put it.

AlertManager bouncer is a reverse proxy which has the ability to intercept POSTs to the Alertmanager API, and accept, or reject them based on a set of policies.

Command Line Help

usage: alertmanager_bouncer --backend.addr=BACKEND.ADDR --listen.addr=LISTEN.ADDR --config.bouncersfile=CONFIG.BOUNCERSFILE [<flags>]

A Business Logic Reverse Proxy for Alertmanager

  --help                        Show context-sensitive help (also try --help-long and --help-man).
  --backend.addr=BACKEND.ADDR   The URL of the backend to upstream to
  --listen.addr=LISTEN.ADDR     The URL for the reverse proxy to listen on
                                The file containing the list of bouncers to create
  --timeout.dial=30s            The timeout of the initial connection to the backend
  --timeout.tlshandshake=10s    The timeout of the TLS handshake to the backend, after a connection is established
  --timeout.responseheader=10s  The timeout of the receive of the initial headers from the backend
  --timeout.serverread=5s       The timeout of the reverse proxy to read requests
  --timeout.serverwrite=10s     The timeout of the reverse proxy to write the response to the upstream client
  --tls.certfile=TLS.CERTFILE   The file path of the TLS cert file on disk, if you want to serve TLS
  --tls.keyfile=TLS.KEYFILE     The file path of the TLS key file on disk, if you want to serve TLS


To define the bouncers for your proxy, you need to define them in YAML in the file passed to config.bouncersfile. The format of this file is as follows:

# The bouncers for our proxy
  # Bouncer which enforces that all silences have an author that ends with
  - method: POST
    uriRegex: /api/v[12]/silences # Handles both the v1 and v2 API
      - name: AllSilencesHaveAuthor
          domain: ""
    dryrun: false # DryRun = True forces this decider to just log failures, rather than blocking
  # Bouncer which mirrors both silences and alerts to another alertmanager (Maybe for testing)
  - method: POST
    uriRegex: /api/v[12]/(:?silences|alerts)
      - name: Mirror
          destination: "http://alertmanager-2:9091"


Apache License 2.0, see LICENSE.


No releases published


No packages published