Ł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
6b497217d9
fix(backend): remove endsAt from alerts
...
This is unused but keeps changing
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
9b6273595d
chore: move sorting to the backend
2019-08-08 15:45:00 +01:00
Łukasz Mierzwa
f4f4a1860c
feat(api): compress response before putting it in the cache
2019-08-08 11:49:17 +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
2fea920e57
feat(api): expose silenceform:strip:labels settings in the API
2019-04-29 20:17:40 +01: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
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
926278158f
fix(api): update cluster id on API query
2018-12-01 18:17: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
9c16ffa447
chore(project): rename from unsee to karma
...
Fixes prymitive/unsee#23
2018-09-09 14:12:26 +01:00
Łukasz Mierzwa
e04f74cc5e
fix(style): move some code out of alerts() to reduce complexity and make the linter happy
2018-09-09 12:01:15 +01:00
Łukasz Mierzwa
440354de89
feat(api): always provide color information for foo=bar filters
2018-09-09 11:46:45 +01:00
Łukasz Mierzwa
129ffb7e17
fix(test): use httptest.newRequest instead of (incorrect) http.newRequest
...
httptest.newRequest is suppose to be used for testing request handing, http.newRequest is for preparing outgoing requests, this allows to fix cache key selection and increase test coverage
2018-08-21 09:35:49 +01:00
Łukasz Mierzwa
77079a9629
feat(api): export annotation settings in the API
2018-07-19 23:38:11 +02:00
Łukasz Mierzwa
32e3f946ab
refactor(backend): turn index.html back into Go template
...
There are a few config keys that needs to be passed to ui code before react app starts, we'll render them in the index.html as template
2018-07-19 23:38:11 +02:00
Łukasz Mierzwa
2ee239a74c
refactor(api): move settings keys in the API response to a namespace
2018-07-19 23:38:11 +02:00
Łukasz Mierzwa
be8806c22f
feat(ui): remove old /help view, this is now fully managed by the ui
2018-07-19 23:38:11 +02:00
Łukasz Mierzwa
875a4f5217
feat(api): summarize alertmanager counts in group API
2018-07-19 23:38:11 +02: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
79ff668019
refactor(api): deduplicate lables & annotations in API responses
...
Each alert in a group holds only keys that are unique to that alert instance, everything shared by the entire group is moved to group.shared ns
2018-07-19 23:38:11 +02:00
Łukasz Mierzwa
e1530e01cd
refactor(api): provide configured list of static labels in the API response
...
DOM data-* attributes are no longer used for this, feed react data store with this config so it can (re)render labels correctly
2018-07-19 23:38:11 +02:00
Łukasz Mierzwa
8b060054d7
refactor(api): expect filter query args as an array instead of a single string
...
Using a single string separated by ',' means that we cannot use ',' in labels. Use arrays instead to fix that
2018-07-19 23:38:11 +02:00
Łukasz Mierzwa
4fe19c3d73
feat(api): extra fields with parsed filter data in the API response
2018-07-19 23:38:11 +02:00
Łukasz Mierzwa
a4a20ea3ef
feat(ui): new UI written in React
2018-07-19 23:38:11 +02:00
Łukasz Mierzwa
c0fdb71276
feat(api): expose total alerts counter in the api response
2018-07-19 23:38:11 +02:00
Łukasz Mierzwa
b7d274c93b
refactor(api): return alert groups as a mapping id->group
2018-07-19 23:38:11 +02:00
Łukasz Mierzwa
5a51898e43
fix(filters): don't return empty filters in the API response
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
65a27b39df
Move label coloring config options from 'color' to 'labels' section
2017-12-03 10:09:17 -08:00
Łukasz Mierzwa
6273a5a585
Rewrite flag & env handling to use viper
...
This adds support for reading configuration from file, env support is still there and legacy env variables will still work, but flags are now following config schema, so they don't match old flags.
Having a config file allows to express more complex configuration options, which is needed for some feature requests.
2017-11-27 20:34:36 -08:00
Łukasz Mierzwa
5d4ae47888
Convert all packages to be internal
...
Internal packages are supported by Go 1.5+, any package in /internal/ dir is only importable from the same repo. This will cleanup main dir a bit and provide better namespace for unsee subpackages
2017-08-04 16:21:27 -07:00
Łukasz Mierzwa
f202232be8
Version all bundles
...
This will tell webpack to add a hash to all bundles filenames, we generate script tags for loading those and inject them as templates. No more forced cache bypassing
2017-07-29 16:19:48 -07:00
Łukasz Mierzwa
4a75acfdc1
Fix asset paths in tests
2017-07-29 13:53:40 -07:00
Łukasz Mierzwa
8f5c246297
Move to fully webpack managed assets
2017-07-29 13:52:07 -07:00
Łukasz Mierzwa
81ce5d3098
Speed up alert fingerprint generation
...
Dynamic fingerprints made the code much slower, pprof shows they are responsible for ~70% of all cpu usage for any API call. To make it worse they are applied to all alerts, since dedup layer doesn't know which alerts will be filtered later, it operates on all of them. This PR will:
1. add benchmarks to so it's easier to track performance
2. Keep current methods for accessing fingerprints, but use precomputed static fields in those
3. Refactor Alert methods to use pointers, so we're not working on a copy
Benchmark timing went down from ~4000ns to 0.4ns for fingerprint calls and API response times from 1.3s (for my test sample) to 0.2s, which puts it back to the same level as before moving fingerprints to be dynamic. I still don't like this code much, it's all over the place, but I don't have a good idea how to better structure this, let's hope I'll be wiser in the future.
2017-07-05 23:35:00 -07:00
Łukasz Mierzwa
71c0dce1f6
Vendor renamed Sirupsen/logrus to sirupsen/logrus, fix imports
2017-07-02 10:12:33 -07:00
Łukasz Mierzwa
6f1e58d387
Don't flush cache on failed instances
...
Cache handling is done in the upstream handling code, this isn't needed anymore
2017-07-01 12:54:30 -07:00
Łukasz Mierzwa
721b4f8be4
Update silence form to work with multiple Alertmanager instances
2017-06-28 22:36:26 -07:00
Łukasz Mierzwa
c5724bb751
Handle per Alertmanager instance errors in the API and the UI
2017-06-28 22:36:25 -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
23f70880dc
Reverse sort on autocomplete data
...
This way =~ hints will be first, instead of !=. It probably makes sense to have smarter ordering, but this will do for now.
2017-06-13 09:37:34 -07:00
Łukasz Mierzwa
6d15a82e89
Support multiple receivers
2017-06-03 13:23:51 -07:00