Commit Graph
151 Commits
Author SHA1 Message Date
Łukasz Mierzwa 4ab8f0305a feat(tests): add more test coverage 2019-08-08 15:45:01 +01:00
Łukasz Mierzwa 6b497217d9 fix(backend): remove endsAt from alerts
This is unused but keeps changing
2019-08-08 15:45:00 +01:00
Łukasz Mierzwa 874976e312 chore(tests): add mock files for alertmanager 0.18.0 2019-08-08 15:45:00 +01:00
Łukasz Mierzwa 86506563e9 feat(api): sort alert groups in the backend 2019-08-08 15:45:00 +01:00
Łukasz Mierzwa 68b6e17e64 chore(backend): reformat code 2019-08-08 15:45:00 +01:00
Łukasz Mierzwa c485e3ed3f chore(tests): add extra labels for more test coverage 2019-08-08 15:45:00 +01:00
Łukasz Mierzwa 9b6273595d chore: move sorting to the backend 2019-08-08 15:45:00 +01:00
Łukasz Mierzwa 49087ee10d fix(api): overview modal should sort label names in ascending order 2019-07-31 13:21:27 +01:00
Łukasz Mierzwa e36f25a248 chore(api): add offset and raw filter value to the counters dict 2019-07-14 18:22:55 +01:00
Łukasz Mierzwa 1a98e01622 feat(backend): allow extracting silence author from auth headers 2019-07-12 23:04:15 +01:00
Łukasz Mierzwa f0fee594d9 feat(api): add labels stats to the api response
These will be used by an overview modal, showing top labels.
2019-07-09 23:03:01 +01:00
Łukasz Mierzwa e20f7049b3 fix(backend): ensure that we always use default timeout for am requests
Timeout attribute for each alertmanager upstream should default to the value of alertmanager.timeout flag.
Without that it will default to 0s which will cause it to timeout instantly
2019-06-27 16:43:55 +01:00
Łukasz Mierzwa 50cdc617e7 fix(backend): don't hardcode success reponse string
Linter doesn't like repeated strings, neither should I
2019-06-22 17:48:33 +01:00
Łukasz Mierzwa 4bd9f447e2 feat(backend): query cluster status via v2 Alertmanager API
This change switches to v2 API when querying for cluster status on Alertmanager 0.17.0+.
v1 will soon be removed so this is needed to support future Alertmanager releases
2019-06-22 17:48:33 +01:00
Giedrius Statkevičius d0a1076962 internal/config: fix tests
Add a new field to the configuration string: log.format. It was missing
thus the unit test fails.
2019-05-27 11:12:51 +03:00
Giedrius Statkevičius 5197e89e73 karma: add ability to configure log format
Add a rudimentary switch which would let users switch between different
formats used for logging. This is needed so that software such as
`logstash` could easily understand the structure of log messages and
index them accordingly.
2019-05-27 11:00:44 +03:00
Łukasz Mierzwa 2efa67ebd3 chore(tests): add more backend test coverage 2019-05-12 14:36:51 +01:00
Łukasz Mierzwa 5dd3b35f35 chore(backend): move metrics to the main package 2019-05-12 12:11:10 +01:00
Łukasz Mierzwa 0c94d7f5ba feat(backend): add alertmanager v0.17.0 mock files for testing
file:// scheme is not supported so we need some changes to always use mocks
2019-05-10 21:08:16 +01:00
Łukasz Mierzwa abaf9f1d47 fix(backend): pass basic auth to the v2 API mapper 2019-05-09 19:17:42 +01:00
Łukasz Mierzwa 94ddb04b93 chore(backend): rename mapper to match alertmanager version 2019-05-03 20:01:43 +01:00
Łukasz Mierzwa 2fea920e57 feat(api): expose silenceform:strip:labels settings in the API 2019-04-29 20:17:40 +01:00
Łukasz Mierzwa 1eb1b6736a feat(config): add options for ignoring labels when populating silences 2019-04-29 20:17:13 +01:00
Łukasz Mierzwa dfea73923c refactor(backend): add support for OpenAPI based client for alertmanager 2019-04-24 20:56:58 +01:00
Łukasz Mierzwa 24e3c904ce fix(backend): correct the name of metric collector 2019-04-24 20:56:00 +01:00
Łukasz Mierzwa 536d9cbba3 feat(backend): add mapper support for alertmanager v0.16+ 2019-04-24 20:56:00 +01:00
Łukasz Mierzwa 571b08638d fix(tests): correctly setup silences for filter tests
ft.Silence is not a pointer so it's never null, fix the check to use the ID which will default to empty string if Silence object is not populated
2019-03-31 20:44:54 -07:00
Łukasz Mierzwa aa070a769c fix(config): change config schema to allow regex based matches
BREAKING CHANGE: this changes configuration schema for custom label values, it provides more flexibility when setting custom labels and also prevents '*' special wildcard value from conflicting with labels, since '*' is a valid label value.

Fixes #537
2019-03-21 11:17:18 +00:00
Łukasz Mierzwa 4ef9052a98 feat(api): allow using wildcards with custom colors
Fixes #537
2019-03-20 21:15:04 +00:00
Łukasz Mierzwa 9f2492d30e chore(backend): switch jarcoal/httpmock imports to use github
This is to use v1.0.0 that was just released, gopkg.in doesn't work anymore
2019-03-17 20:17:20 +01:00
Łukasz Mierzwa 003e2d88ac fix(api): always sort shared silences
Prevent different order between requests, which can also break random tests
2019-03-15 13:27:03 +00:00
Łukasz Mierzwa 49257ec296 fix(api): correctly deduplicate silences
Right now deduplication only works when there's a single silence for the entire group, but not if the group is silences with multiple silences. This change fixes the logic so that we look at silences covering the entire group and move those into shared namespace
2019-03-15 10:49:33 +00:00
Łukasz Mierzwa 1ce7f1b2d0 fix(backend): workaround viper map key parsing
This is a workaround until this issue is fixed upstream.

Fixes #507
2019-03-13 10:30:22 +00:00
Łukasz Mierzwa 6ebc88b0ba feat(api): deduplicate silences
Detect if all alerts are silenced with the same silence ID and expose this information in the API response.
2019-03-08 16:59:47 +00:00
Łukasz Mierzwa 7a0a587ddb feat(api): expose alert.inhibitedBy in the API 2019-03-05 11:00:54 +00:00
Łukasz Mierzwa 058d10f4ba chore(config): move value mapping options to grid:sorting section
Those options are only valid for sorting, so move it to the new config section where all sort options live
2019-02-21 18:15:11 +00:00
Łukasz Mierzwa aa657ea216 feat(backend): allow configuring default grid sort options
This will allow UI to get the defaults for grid sorting via the API
2019-02-20 21:58:59 +00:00
Łukasz Mierzwa 397bbe5783 feat(config): allow configuring label value mapping for sorting
This feature solves the problem of sorting by label when values have special meaning and alphabetic sort doesn't make sense for it.
2019-02-18 23:17:47 +00:00
Łukasz Mierzwa 22f719adc6 fix(api): apply colors to the @alertmanager label
It's a fake label so it needs special code to inject the color information to the API response.

Fixes #421
2019-02-06 17:11:25 +00:00
Łukasz Mierzwa 9e4abbd42b feat(backend): allow setting custom colors for labels
This allows to have a user defined color (rgb or hex) for label values configured in the config file
2019-02-04 13:18:47 +00:00
Łukasz Mierzwa b52c3f7af4 feat(backend): allow disabling TLS certificate validation
Fixes #409
2019-02-01 20:57:34 +01:00
Łukasz Mierzwa af9e55032e feat(api): use metrics to detect Alertmanager version
We need to know upstream version to decide which API endpoints we can use, metrics don't change between versions so they allow us to do that without any prior knowlage or assumptions
2019-01-30 17:57:02 +00:00
Richard Maynard ec14be0288 feat(backend): add support for custom headers (#368)
This will allow the AlertManager upstreams to be sent user defined HTTP headers.
2019-01-17 08:53:33 +00:00
Łukasz Mierzwa e1f9686e3f feat(backend): allow stripping annotations
This allows same filtering we already have with labels. Fixes #312
2019-01-15 22:12:23 +00:00
Łukasz Mierzwa a3ef1dd40e chore(api): drop counters from API response
Not used by any UI code, remove it.
2019-01-05 11:52:45 +00:00
Łukasz Mierzwa 0d68ea4c3c feat(api): store silences per cluster in the API response 2018-12-01 09:53:47 +00:00
Łukasz Mierzwa 93617b3b18 fix(api): ensure that cluster members are always sorted 2018-11-30 23:59:58 +00:00
Łukasz Mierzwa 8b5862d44b chore(api): store cluster as a dict
This will allow silences to be grouped by cluster rather than by alertmanager instance
2018-11-30 23:59:58 +00:00
Łukasz Mierzwa 764f89e1d8 feat(api): expose all known Alertmanager clusters 2018-11-30 18:57:52 +00:00
Łukasz Mierzwa 76dd51bb92 feat(api): expose Alertmanager instance version and cluster members
Store and expose via API the version of each Alertmanager instance and the list of instances in the same cluster
2018-11-30 18:35:34 +00:00