Alert dashboard for Prometheus Alertmanager.
0.16.x is NOT supported by karma due to changes
in the API, see this issue
A new API endpoint
was added for 0.17.0 and
>=0.17.0 is supported.
Alertmanager UI is useful for browsing alerts and managing silences, but it’s lacking as a dashboard tool - karma aims to fill this gap.
Alert aggregation and deduplication
Starting with the
0.7.0 release it can aggregate alerts from multiple
Alertmanager instances, running either in HA mode or separate. Unique alerts are
displayed by filtering duplicates. Each alert is tagged with the names of all
Alertmanager instances it was found at and can be filtered based on those tags
@alertmanager). Note that
@alertmanager tags will be visible only if karma
is configured with multiple Alertmanager instances.
Alerts are displayed grouped preserving group_by configuration option in Alertmanager. If a group contains multiple alerts only the first few alerts will be presented. Alerts are expanded or hidden using - / + buttons. The default number of alerts can be configured in the UI settings module. Each group can be collapsed to only show the title bar using top right toggle icon. Each individual alert will show unique labels and annotations. Labels and annotations that are shared between all alerts are moved to the footer.
If all alerts in a group were suppressed by the same silence then, to save screen space, the silence will also be moved to the footer.
Silence modal allows to create new silences and manage all silences already present in Alertmanager.
Clicking on the alert counter in the top left corner will open the overview modal, which allows to quickly get an overview of the top label values for all current alerts.
v0.50 karma can create short lived silences to acknowledge
alerts with a single button click. To create silences that will resolve itself
only after all alerts are resolved you can use
See configuration docs for
v0.52 release karma includes both light and dark themes.
By default it will follow browser preference using
Online demo is running latest master branch or PR branch version. It might include features that are experimental and not yet ready to be included.
Release notes can be found on GitHub Release Page.
To get notifications about new karma releases go to
GitHub karma page, click
Releases only. This requires GitHub user account.
To subscribe to email notifications without GitHub account you can subscribe to
the RSS feed that
To get email notifications from those feeds use one of the free services
providing RSS to email notifications, like
I created karma while working for Cloudflare, originally it was called unsee. This project is based on that code but the UI part was rewritten from scratch using React. New UI required changes to the backend so the API is also incompatible. Given that the React rewrite resulted in roughly 50% of new code and to avoid confusion for user I’ve decided to rename it to karma, especially that the original project wasn’t being maintained anymore.
Supported Alertmanager versions
Alertmanager’s API isn’t stable yet and can change between releases, see
VERSIONS in internal/mock/Makefile for list of all
Alertmanager releases that are tested and supported by karma.
Due to API differences between those releases some features will work
differently or be missing, it’s recommended to use the latest supported
The karma process doesn’t send any API request to the Alertmanager that could modify alerts or silence state, but it does provide a web interface that allows a user to send such requests directly to the Alertmanager API. If you wish to deploy karma as a read-only tool please ensure that:
- the karma process is able to connect to the Alertmanager API
- read-only users are able to connect to the karma web interface
- read-only users are NOT able to connect to the Alertmanager API
karma process metrics are accessible under
/metrics path by default.
If you set the
--listen.prefix option a path relative to it will be
Building and running
Building from source
To clone git repo and build the binary yourself run:
git clone https://github.com/prymitive/karma $GOPATH/src/github.com/prymitive/karma cd $GOPATH/src/github.com/prymitive/karma
To finally compile
karma the binary run:
Note that building locally from sources requires Go, nodejs and yarn. See Docker build options below for instructions on building from withing docker container.
karma can be configured using config file, command line flags or environment
variables. Config file is the recommended method, it’s also the only way to
configure karma to use multiple Alertmanager servers for collecting alerts.
To run karma with a single Alertmanager server set
environment variable or pass
--alertmanger.uri flag on the command line, with
Alertmanager URI as argument, example:
ALERTMANAGER_URI=https://alertmanager.example.com karma karma --alertmanager.uri https://alertmanager.example.com
There is a make target which will compile and run karma:
By default it will listen on port
8080 and Alertmanager mock data will be
used, to override Alertmanager URI set
make PORT=5000 ALERTMANAGER_URI=https://alertmanager.example.com run
Running pre-build docker image
Official docker images are built and hosted on hub.docker.com.
Images are built automatically for:
- release tags in git -
- master branch commits -
To start a release image run:
docker run -e ALERTMANAGER_URI=https://alertmanager.example.com lmierzwa/karma:vX.Y.Z
Latest release details can be found on GitHub.
To start docker image build from lastet master branch run:
docker run -e ALERTMANAGER_URI=https://alertmanager.example.com lmierzwa/karma:latest
Note that latest master branch might have bugs or breaking changes. Using release images is strongly recommended for any production use.
Building a Docker image
This will build a Docker image from sources.
Running the Docker image
Will run locally built Docker image. Same defaults and override variables
apply as with
make run. Example:
make PORT=5000 ALERTMANAGER_URI=https://alertmanager.example.com run-docker
/health endpoint can be used for health check probes, it always responds with
200 OK code and
Pong response body.
Please see CONFIGURATION for full list of available configuration options and example.yaml for a config file example.
Please see CONTRIBUTING for details.
Apache License 2.0, please see LICENSE.