Commit Graph

26 Commits

Author SHA1 Message Date
Łukasz Mierzwa
71c0dce1f6 Vendor renamed Sirupsen/logrus to sirupsen/logrus, fix imports 2017-07-02 10:12:33 -07:00
Łukasz Mierzwa
cb69029c4f Add @alertmanager filter 2017-07-01 14:02:03 -07:00
Łukasz Mierzwa
5e020b9e01 Store alert source link per Alertmanager instance 2017-06-29 21:18:30 -07:00
Łukasz Mierzwa
16be1627ed Move all *InSlice functions into a slices package 2017-06-28 22:36:25 -07:00
Łukasz Mierzwa
26d14d1bd2 Refactor Alertmanager API client code to use multiple upstream instances
Alerts are stored per instance and deduplicated on read.
2017-06-28 22:35:16 -07:00
Łukasz Mierzwa
64b0a09f9a Generate regex ac hints only when substrings are present 2017-06-06 21:34:56 -07:00
Łukasz Mierzwa
ba354a19e1 Generate ac only if receiver is non-empty 2017-06-03 14:42:46 -07:00
Łukasz Mierzwa
6d15a82e89 Support multiple receivers 2017-06-03 13:23:51 -07:00
Łukasz Mierzwa
a3f58fc52e 0 is the default value 2017-05-30 12:51:05 +01:00
Łukasz Mierzwa
8a77d620fd Rename @status to @state
Fixes #104

@status filter was added to the master branch to support new status key from Alertmanager >=0.6.1
status ended up being nested in Alertmanager (it was added to solve AM issue 609 and that was a long PR with lots of changes), current unsee implementation ended being slightly off with how Alertmanager is naming this, it should actually be @state rather than @status.
2017-05-23 21:52:08 +01:00
Łukasz Mierzwa
37304d615a Remove unused code
setOperator is no longer used, remove it as it's dangerous and useless
2017-05-09 17:49:24 +01:00
Łukasz Mierzwa
25d457b274 Fix race condition in the matcher code
We have a static list of matchers, one for each kind, but newMatcher() was writing to those on every filter creation. Remove writes, set the attribute on matcher init instead.
2017-05-09 17:47:32 +01:00
Łukasz Mierzwa
003010f73b Speed up filter matches by re-using global match object
Instead of compiling filter regexp on every filter match pre-compile it and use same instance
2017-05-06 16:46:06 +01:00
Łukasz Mierzwa
7bf0b9d5d0 More strict filter validation
@silenced=true should now be marked as invalid filter, but it isn't, this commit refactors it so that instead of looping over all filters and falling back to fuzzy (which is very relaxed checking and can't find typos in filter names like @statuz=active) we tokenize the expression into '<filter name> <operator> <value>' and only fallback to fuzzy if there's only a static text (no filter name and operator). This is more manual but provides stronger checks so now @silenced=true is correctly marked as invalid
2017-05-06 16:46:06 +01:00
Łukasz Mierzwa
0d55311a9d Replace @silenced & @inhibited filters with @status
Now that Alertmanager provides status=(unprocessed|suppressed|active) in the API it doesn't make sense to keep having separate filters for each value, merge @silenced & @inhibited into a single filter, update docs and UI
2017-05-05 13:56:48 +01:00
Łukasz Mierzwa
487d7bcde8 Use alert status, inhibitedBy & silencedBy fields instead of silenced & inhibited 2017-05-01 22:20:12 +01:00
Łukasz Mierzwa
82fb5ce0d6 Add more test to cover more filter expressions 2017-04-20 13:36:37 -07:00
Łukasz Mierzwa
44deae4f11 More strict filter syntax checking
Current filter factory rules are very relaxed, anything that doesn't match filter syntax perfectly is passed down to the fuzzy filter, that happily accepts every input and doesn't complain. This change makes syntax checks more strict, we explicitly look for roughly <anything><any of the chars used as operators><anything> (in reality we match the first <anything> used filter specific regex, but that can still be any regex) and only if evaluated filter expression doesn't match this regex we pass it to the fuzzy filter. Once we have a match we check if operator is supported by the filter and we're more strict there, in case of a===b we currently accept = as the operator and ==b as the value, now operator will be === (as we match for any of the operator chars in use) and fail once that doesn't match.
2017-04-20 13:36:18 -07:00
Łukasz Mierzwa
0af0401c6d Add @inhibited filter 2017-04-17 16:01:52 -07:00
Łukasz Mierzwa
e46585db43 sort imports 2017-04-06 19:24:48 -07:00
Łukasz Mierzwa
f0579b087b Rename models, strip Unsee prefix
Now that models package contains only unsee specific models rename everything stripping Unsee prefix from names
2017-04-06 19:24:48 -07:00
Łukasz Mierzwa
681d3d1a5b Remove alertmanager models in the models package
Those aren't needed anymore, only mapper package needs to know Alertmanager schema and it already does so
2017-04-06 19:24:48 -07:00
Łukasz Mierzwa
0a0e3b0d16 Refactor store code to be a little less ugly
This makes the code a little bit cleaner and safer, as it moves lots of locks into the store package, but it could still use some work.
2017-04-01 16:26:39 -07:00
Tristan Colgate
b7dd9d088e Fixes for 0.5.1 2017-03-29 08:40:14 +01:00
Łukasz Mierzwa
3de3a9c481 Generate flag for each environment key
This allows to set config keys via flags, in additions to current env variable only configuration. Flags are autogenerated from supported env keys.
2017-03-26 13:38:37 -07:00
Łukasz Mierzwa
e239fd05fd Import code from internal repository (#1)
Import code from internal repository
2017-03-23 16:58:04 -07:00