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(ordevel/py-pipenvfrom 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!)
Metadata
Release files for adlermanager 25.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| adlermanager-25.4.0.tar.gz | 78.5 kB | Without provenance | Details for adlermanager-25.4.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| adlermanager-25.4.0-py3-none-any.whl | Python 3 | none | any | Details for adlermanager-25.4.0-py3-none-any.whl |
Total release size: 160.9 kB
Release files / adlermanager-25.4.0.tar.gz
| Download URL | adlermanager-25.4.0.tar.gz |
|---|---|
| Size | 78.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
83c2030160ab9e3373b42051f8e1e3e870eed3416054245b30ff1c90b2816b7e
|
|
BLAKE2b-256 checksum How to use checksums |
84eee19bc4dc5bc30e35f48364fa4c060bc85412ccfd1210ac745cfca2c43a3c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-httpx/0.28.1
|
Release files / adlermanager-25.4.0-py3-none-any.whl
| Download URL | adlermanager-25.4.0-py3-none-any.whl |
|---|---|
| Size | 82.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
10db4e99337908411ef259cdc232103202c1219fae2df524e3f42bd36ed6ecf1
|
|
BLAKE2b-256 checksum How to use checksums |
c38ff01ea8ade09c1d0662b7cc2cf810a78c4194fb76e9ba7d2e9ad60d3e2d30
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-httpx/0.28.1
|
Security for adlermanager 25.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.