Commit Graph

18 Commits

Author SHA1 Message Date
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