Skip to main content

A self-hostable status webpage that uses Prometheus alerts to create and maintain service status and incident tracking / customer information flow.

Project description

prometheus-adlermanager

What?

A self-hostable status webpage that uses Prometheus alerts to create and maintain service status and incident tracking / customer information flow.

Why?

Prometheus is awesome! And AlertManager and Grafana are quite wonderful too, but they expose too much information.

This project allows you to choose which alerts/statistics get published in a fashion suitable for user-facing status pages.

I want it!

Dependencies

The easiest way to manage dependencies for deployment and development is with pipenv:

  • On Debian-based systems: sudo apt install pipenv
  • On FreeBSD: pkg install py39-pipenv (or devel/py-pipenv from ports)

The actual dependencies are:

  • attrs
  • twisted[conch]
  • service-identity
  • pyyaml
  • klein
  • jinja2
  • markdown

Using Pipenv you can install them for development with:

pipenv install --dev

And for deployment with:

pipenv install

Configuration

This is done via environment variables, Pipenv will import them from a .env file in the root of this repo.

You can use dotenv.example as a base for your settings:

cp dotenv.example .env

Review the available settings and their descriptions, particularly you will want to check DATA_DIR and SSH_KEYS_DIR.

SSH access

In order to access AdlerManager via SSH, you will need to add your public SSH key in authorized_keys format to: ${SSH_KEYS_DIR:-data}/ssh/users/myuser.key

And give yourself access to the given site, by adding your username to its ssh_users list.

Running

To run the server for development you can one of the following commands:

# Using twistd
# https://docs.twisted.org/en/stable/core/howto/basics.html#twistd
pipenv run twistd -ny app.py
# Running as a module
python -m adlermanager

And for deployment, you can use [twistd][twistd] itself to run the process in the background or any other daemon watching strategy of your liking (including e.g. runit or systemd). [twistd]: https://docs.twisted.org/en/stable/core/howto/basics.html#twistd

Using

After that with the defaults you will have the public status web visible in http://localhost:8080 and the ssh interface in localhost port 2222 which you can access with ssh -p 2222 USER@localhost.

How does it work?

We aim to solve that by using the same source of information to publish only the desired state/statistics.

1. Pretend to be an AlertManager

This is done by accepting POST requests from Prometheus on /api/v1/alerts, see https://prometheus.io/docs/alerting/clients/ docs.

2. Structure Alerts into Services and Components

3. Web only lists alerts configured for AdlerManager (public!)

4. Keep track of incidents

5. Allow for public updates / accountability (via SSH!)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

adlermanager-25.3.0.tar.gz (78.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

adlermanager-25.3.0-py3-none-any.whl (82.4 kB view details)

Uploaded Python 3

File details

Details for the file adlermanager-25.3.0.tar.gz.

File metadata

  • Download URL: adlermanager-25.3.0.tar.gz
  • Upload date:
  • Size: 78.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for adlermanager-25.3.0.tar.gz
Algorithm Hash digest
SHA256 02ef3dcac8ed81667bece50daad05ebd5baa5e3946562f9047a7da2d4d87f5f2
MD5 e9c2595e5cc11bc406e5695193800bbc
BLAKE2b-256 f8a92d1ce25ba87e773c7505a84a1ff582dab993d1a6493204618d18ead43140

See more details on using hashes here.

File details

Details for the file adlermanager-25.3.0-py3-none-any.whl.

File metadata

  • Download URL: adlermanager-25.3.0-py3-none-any.whl
  • Upload date:
  • Size: 82.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for adlermanager-25.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0bb384585307b45949b89edd1e858eb6544667dcfb3cb8e728d246bba2522e45
MD5 e0309192bc470d992bb59673b3523d82
BLAKE2b-256 2e802952c56f235615f94686fd4d1b74efa4ffb5a1757e2a4a8c96a433966360

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page