Alert dashboard for Prometheus Alertmanager
Go JavaScript HTML CSS Python Makefile Shell
Clone or download
Latest commit 4c306c0 May 18, 2018
Permalink
Failed to load latest commit information.
assets Save space between alert groups Mar 30, 2018
docs Remove myself from CODEOWNERS May 17, 2018
hooks Put the branch name first on the version string for docker master builds Apr 20, 2017
internal Sanitize Alertmanager URI before putting it in /alerts.json reponse Apr 27, 2018
.bootstraprc bootstrap-loader config file Jul 29, 2017
.dockerignore Use make targets in the dockerfile Aug 9, 2017
.eslintignore Update git ignore file Aug 8, 2017
.eslintrc.yaml Enable node mode in eslint and remove uneeded overrides Jul 31, 2017
.gitignore Remove bindata_assetfs.go from git Aug 8, 2017
.travis.yml Use Go 1.10.1 Apr 18, 2018
CONTRIBUTING.md Remove bindata_assetfs.go from git Aug 8, 2017
Dockerfile Use Go 1.10.1 Apr 18, 2018
Gopkg.lock Update Go vendor packages Jan 25, 2018
Gopkg.toml dep prune is depracated, drop it Feb 1, 2018
LICENSE Update license file to contain full license Jun 16, 2017
Makefile Ensure that go-bindata-assetfs creates the expected fine Apr 17, 2018
README.md Fix docs issues found by markdown linter Jan 20, 2018
alerts.go Sanitize Alertmanager URI before putting it in /alerts.json reponse Apr 27, 2018
api_test.go Comment out dead condition Mar 7, 2018
assets.go Version all bundles Jul 29, 2017
main.go Add --version flag Jan 27, 2018
package-lock.json Update nodejs deps May 18, 2018
package.json Update nodejs deps May 18, 2018
proxy.go Set Basic Auth on proxied requests if user:pass is set in the Alertma… Apr 18, 2018
proxy_test.go Set Basic Auth on proxied requests if user:pass is set in the Alertma… Apr 18, 2018
screenshot.png Update screenshot using two alertmanager instances Jul 2, 2017
timer.go Convert all packages to be internal Aug 4, 2017
views.go Move label coloring config options from 'color' to 'labels' section Dec 3, 2017
views_test.go Log Alertmanager version used for testing Feb 13, 2018
webpack.config.js Migrate from babel-preset-es2015 to babel-preset-env Oct 30, 2017

README.md

unsee

Alert dashboard for Prometheus Alertmanager.

Alertmanager UI is useful for browsing alerts and managing silences, but it's lacking as a dashboard tool - unsee aims to fill this gap. Starting with 0.7.0 release it can also aggregate alerts from multiple Alertmanager instances, running either in HA mode or separate. Duplicated alerts are deduplicated so only unique alerts are displayed. Each alert is tagged with names of all Alertmanager instances it was found at and can be filtered based on those tags.

Screenshot

To get notifications about new unsee releases you can subscribe to the RSS feed that GitHub provides To get email notifications please use one of the free services providing RSS to email notifications, like Blogtrottr.

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 unsee. Due to API differences between those releases some features will work differently or be missing, it's recommended to use the latest supported Alertmanager version.

Security

The unsee 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 unsee as a read-only tool please ensure that:

  • the unsee process is able to connect to the Alertmanager API
  • read-only users are able to connect to the unsee web interface
  • read-only users are NOT able to connect to the Alertmanager API

Metrics

unsee process metrics are accessible under /metrics path by default. If you set the --listen.prefix option a path relative to it will be used.

Building and running

Building from source

To clone git repo and build the binary yourself run:

git clone https://github.com/cloudflare/unsee $GOPATH/src/github.com/cloudflare/unsee
cd $GOPATH/src/github.com/cloudflare/unsee

To finally compile unsee the binary run:

make

Note that building locally from sources requires Go, nodejs and npm. See Docker build options below for instructions on building from withing docker container.

Running

unsee 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 unsee to use multiple Alertmanager servers for collecting alerts. To run unsee with a single Alertmanager server set ALERTMANAGER_URI environment variable or pass --alertmanger.uri flag on the command line, with Alertmanager URI as argument, example:

ALERTMANAGER_URI=https://alertmanager.example.com unsee
unsee --alertmanager.uri https://alertmanager.example.com

There is a make target which will compile and run unsee:

make run

By default it will listen on port 8080 and Alertmanager mock data will be used, to override Alertmanager URI set ALERTMANAGER_URI and/or PORT make variables. Example:

make PORT=5000 ALERTMANAGER_URI=https://alertmanager.example.com run

Docker

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 - cloudflare/unsee:vX.Y.Z
  • master branch commits - cloudflare/unsee:latest

Examples

To start a release image run:

docker run -e ALERTMANAGER_URI=https://alertmanager.example.com cloudflare/unsee: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 cloudflare/unsee: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

make docker-image

This will build a Docker image from sources.

Running the Docker image

make run-docker

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

Configuration

Please see CONFIGURATION for full list of available configuration options and example.yaml for a config file example.

Contributing

Please see CONTRIBUTING for details.

License

Apache License 2.0, please see LICENSE.