Commit Graph

32 Commits

Author SHA1 Message Date
Fabian Reinartz
99269433f5 implement support for persistence via LevelDB 2015-07-10 18:27:17 +02:00
Fabian Reinartz
d5ff099d05 cleanup dispatcher notifications, fix default route opts 2015-07-04 14:41:10 +02:00
Fabian Reinartz
2bb6233dd8 add initial dispatcher and config storage 2015-07-02 18:38:05 +02:00
Fabian Reinartz
bbe679b432 initial alert routing tree 2015-07-01 17:56:53 +02:00
Fabian Reinartz
d4c90e9e28 Add silence API and memory storage 2015-07-01 13:17:08 +02:00
Fabian Reinartz
e730242749 initial commit with basic files and types 2015-06-30 14:29:30 +02:00
Fabian Reinartz
4c58dc90e6 wipe everything 2015-06-30 12:34:45 +02:00
Fabian Reinartz
2e1a01b2fa switch to YAML config. 2015-06-29 18:53:47 +02:00
Julius Volz
35b3741756 Add runbook and alertmanager URLs to PD+email notifications.
I don't have a way to test all the other notification mechanisms, which
is something we should fix in general. For now, only PagerDuty and email
have the new runbook and alertmanager URL information.

Not very happy with the overall cleanliness of this, and the codebase
overall, of course, but since we need this urgently tomorrow, I hope
this is fine for now.
2015-06-25 18:18:08 +02:00
Brian Brazil
89b13e1c73 Add a generic webhook notifier.
This allows for use cases such as kicking off shell scripts,
logging notifications, or anything else the alertmanager doesn't
directly support.
2015-05-27 23:57:18 +01:00
Julius Volz
b4648a9e33 Migrate logging to use prometheus/log. 2015-05-23 23:21:44 +02:00
Ceesjan Luiten
180f7dcf31 Path prefix to support reverse proxies 2015-04-29 22:10:21 +02:00
Julius Volz
0db99c2c5e Make flag names consistent across projects. 2015-02-09 12:22:44 +01:00
Julius Volz
be0e958d8f Major rewrite of alertmanager, adding inhibit support.
Change-Id: If11f3aec70ba2ac816b9b824a387ffdd2e51790f
2013-09-11 15:34:02 +02:00
Julius Volz
02b970b149 Show status and build information under /status.
Also add Makefile infrastructure for gathering status information.

Change-Id: Id7dcb9655d0b6024bf47d5dd41a7655df3635922
2013-08-14 18:56:41 +02:00
Julius Volz
dcfe55d7e6 Rename alert_manager to alertmanager. 2013-08-05 11:49:56 +02:00
Julius Volz
571931a052 Make config reloadable during runtime. 2013-08-02 17:25:39 +02:00
Julius Volz
1233f671c7 Persist silences to a local JSON file.
Load silences at startup from a local JSON file, write them out every 10
seconds.

It's not perfect (writes may possibly be interrupted/inconsistent if the
program is terminated while writing), but this is a temporary solution
to keep people from going crazy about lost silences until we have a
proper storage management. If the JSON file gets corrupted, the alert
manager simply starts up without any silences loaded.
2013-07-31 17:58:39 +02:00
Julius Volz
65f83e973e Rename suppressions to silences everywhere.
This makes internal code consistent with the API and user interface.
2013-07-31 14:39:01 +02:00
Julius Volz
70e67b920c Implement PagerDuty notifications. 2013-07-30 13:49:55 +02:00
Julius Volz
dbdd7aef16 Indicate silence status for each alert. 2013-07-29 18:45:33 +02:00
Julius Volz
db599b6d26 PR comments fixups. 2013-07-26 17:39:46 +02:00
Julius Volz
24ac73af5d Add loading configuration from file. 2013-07-26 16:12:11 +02:00
juliusv
3f9cc9e3e3 Merge pull request #5 from prometheus/refactor/editable-silences
Implement silence create/read/update/delete API and UI workflow.
2013-07-26 07:08:31 -07:00
Julius Volz
0c3c75edb3 Change Aggregator from channel-based to mutex-based.
This removes >100 lines of boilerplate code in the Aggregator alone.
2013-07-26 02:13:11 +02:00
Julius Volz
ba2247857d Implement silence create/read/update/delete API and UI workflow. 2013-07-26 00:23:13 +02:00
Julius Volz
b49b7bba6f Change Suppressor from channel-based to mutex-based, add tests.
Start with the simplest possible locking scheme: lock the object-global
mutex at the beginning of each user-facing method. This is equivalent to
implicit locking provided by the reactor.

The reasoning behind this change is the incredible overhead of the
previous reactor request/response code:

Overhead for current model for every user-facing method:

- 2 struct type definitions (req/resp)
- 1 channel
  - 1 struct member definition site
  - 1 channel init site
  - 1 struct population site
  - 1 struct servicing site
  - 1 struct closing site
- 1 actual execution method

New lock-based code:

Per object: 1 lock
Per method:
- 1 taking the lock
- 1 actual execution method
2013-07-22 18:32:45 +02:00
Julius Volz
13b106bb2b Ensure flag parsing on startup. 2013-07-22 11:12:25 +02:00
Julius Volz
cf78397107 Change model to be more state- and less event-focussed. 2013-07-19 10:52:04 +02:00
Julius Volz
44c69920f4 Preliminary web interface and pairing refactorings. 2013-07-17 17:45:01 +02:00
Matt T. Proud
48d0ba2b9b Initial interface cleanups. 2013-07-16 23:17:42 +02:00
Julius Volz
f86966a0e7 Initial transliteration of https://gist.github.com/matttproud-soundcloud/fcb5153716eed0816863 2013-07-16 17:03:56 +02:00