59 Commits

Author SHA1 Message Date
Łukasz Mierzwa
17b4e943b8 feat(backend): add healtcheck:filters option 2020-12-13 13:18:38 +00:00
Łukasz Mierzwa
6a67d5ba8e fix(backend): simplify version probes 2020-10-30 18:09:23 +00:00
Łukasz Mierzwa
640c701295 chore(backend): migrate from gin-gonic/gin to go-chi/chi
Gin comes with a lot of dependencies and doesn't use Go standard http handler.
Chi is smaller and allows to use standard middleware.
2020-10-18 11:57:43 +01:00
Łukasz Mierzwa
170dba8a37 chore(backend): use zerolog instead of logrus 2020-10-15 10:10:00 +01:00
Łukasz Mierzwa
9ebc1b506c fix(backend): don't raise false-positive alerts for alertmanagers with no cluster name 2020-09-09 15:27:14 +01:00
Łukasz Mierzwa
757f3478cf feat(backend): improve alertmanager cluster handling
Always use passed cluster name, generate errors if cluster is in unhealthy state
2020-09-08 17:52:37 +01:00
Łukasz Mierzwa
4059f8bb04 chore(backend): drop support for alertmanager <0.19.0 2020-08-25 17:21:49 +01:00
Łukasz Mierzwa
760acee8d7 feat(api): expose alert fingerprint in the API response 2020-06-30 23:53:56 +01:00
Łukasz Mierzwa
0c65bc7821 feat(tests): add looppointer linter 2020-06-24 22:35:22 +01:00
Łukasz Mierzwa
7a3da15b30 fix(tests): add more test coverage 2020-06-18 14:59:32 +01:00
Łukasz Mierzwa
d07c56d3d8 fix(api): color @cluster label 2020-06-12 19:14:17 +01:00
Łukasz Mierzwa
992d07e904 fix(api): fix handling of clusters in silence responses 2020-06-12 19:14:17 +01:00
Łukasz Mierzwa
91c8170433 fix(backend): add ClusterName() method 2020-06-12 19:14:17 +01:00
Łukasz Mierzwa
4f58ff2e58 feat(backend): use cluster name from config 2020-06-12 19:14:17 +01:00
Łukasz Mierzwa
fbef0aeb5f fix(backend): reduce number of memory allocations 2020-05-28 18:44:13 +01:00
Łukasz Mierzwa
f502319005 feat(backend): allow setting CORS credentials policy 2020-02-19 09:59:35 +00:00
Łukasz Mierzwa
908c2b96d5 fix(project): drop support for Alertmanager v1 API 2020-02-12 16:09:55 +00:00
Łukasz Mierzwa
572f9975b8 feat(backend): add readonly option to alertmanager 2020-01-28 22:26:56 +00:00
Łukasz Mierzwa
a9a7d8fc8d fix(backend): move version logging to include upstream name 2019-12-06 15:30:07 +00:00
Łukasz Mierzwa
0015d3fa4e feat(ui): replace jira link detection with a generic link finder
Fixes #1140
2019-11-11 23:24:06 +00:00
Łukasz Mierzwa
990a3de46b chore(backend): log a warning when alertmanager 0.17 or 0.18 is detected
Fixes #1099
2019-10-29 21:37:40 +00:00
Łukasz Mierzwa
1346237777 fix(project): refactor proxy & external_uri handling
Fixes #1024
2019-10-11 00:10:58 +01:00
Łukasz Mierzwa
4efe17e8f1 feat(api): expose alertmanager headers in the API 2019-09-26 20:37:23 +01:00
Łukasz Mierzwa
ad699fc6fe feat(backend): add external_uri config option for alertmanager upstreams
Fixes #899
2019-08-27 21:58:52 +01:00
Łukasz Mierzwa
77735ffcf1 fix(backend): fix problems found by new linters 2019-08-18 15:51:54 +01:00
Łukasz Mierzwa
29b6c7baae fix(backend): fix problems found by new linters 2019-08-18 10:58:26 +01:00
Łukasz Mierzwa
939970fd5f fix(backend): reformat backend code 2019-08-17 14:52:35 +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
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
Łukasz Mierzwa
5dd3b35f35 chore(backend): move metrics to the main package 2019-05-12 12:11:10 +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
7a0a587ddb feat(api): expose alert.inhibitedBy in the API 2019-03-05 11:00:54 +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
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
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
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
Łukasz Mierzwa
ade996a6ec refactor(api): move autocomplete code to filters 2018-10-08 23:15:28 +01:00
Łukasz Mierzwa
80e7caf627 fix(ui): expose Alertmanager instance public URI in upstreams list 2018-09-11 21:03:54 +01:00
Łukasz Mierzwa
9c16ffa447 chore(project): rename from unsee to karma
Fixes prymitive/unsee#23
2018-09-09 14:12:26 +01:00
Łukasz Mierzwa
c6dc362186 fix(style): error strings should not be capitalized or end with punctuation or a newline 2018-08-11 23:03:02 +01:00
Łukasz Mierzwa
d934dbb053 feat(api): add /labelNames.json endpoint
This endpoint will be used for label name autocomplete in the silence form
2018-08-10 17:36:00 +01:00
Łukasz Mierzwa
6c7ba5551c refactor(api): move silences into a dedicated key in API response
A single silence can supress multiple alerts so to reduce response size and the amount of data react UI needs to track move it out of alert instance (which will deduplicate it) and on each alert only store a reference. In the API return all silences as a global dict and each alert only contains the ID of silences suppressing it.
2018-07-19 23:38:11 +02:00
Łukasz Mierzwa
b71883f1ef Migrate to new repo
Forked unsee from cloudflare, so import paths needs to be updated
2018-06-07 15:30:57 +02:00
Łukasz Mierzwa
fd0eb46adf Sanitize Alertmanager URI before putting it in /alerts.json reponse
Alertmanager URI might contain basic auth username & password, we should replace password with 'xxx' in logs and and error messages.
Go will still print it in HTTP request errors, but that will be fixed in the next Go release - https://go-review.googlesource.com/c/go/+/102855
Fixes #259
2018-04-27 09:36:12 -07:00
Łukasz Mierzwa
0f73b20bc6 Allow passing query args to HTTP requests send to the Alertmanager API
Alertmanager 0.4.x silences endpoint uses pagination, code for this was incorrectly dropped in #216, re-add it. Requires a way for mapper packages to signal the need for passing query args to HTTP requests
2018-01-24 19:09:02 -08:00
Łukasz Mierzwa
a0cf3cc43c Add a JSON tag for ProxyRequests attr 2018-01-23 21:38:46 -08:00
Łukasz Mierzwa
49d1ed2e1e Pass HTTP transport to the proxy
When we proxy requests we should use same transport as we use when collecting alerts & silences
2018-01-23 21:37:56 -08:00
Łukasz Mierzwa
d5a7cb9ace Rename Transport interface to Reader 2018-01-23 19:40:24 -08:00