Jean-Philippe Quéméner
7cfd470c91
fix(alerting): only expose metrics if executing alerts ( #85512 )
2024-04-03 17:18:02 +02:00
Jean-Philippe Quéméner
f2c7023fe6
fix(alerting): use uid and not rand() in tests for title ( #85001 )
2024-03-22 16:26:09 +02:00
Jean-Philippe Quéméner
4dc1ebbb66
fix(alerting): add a proper compare func for location in mute timings ( #82153 )
2024-02-08 13:36:09 +01:00
Jean-Philippe Quéméner
25dd8d5ceb
Docs: add section about periodic state saving for alerting ( #81244 )
2024-01-25 17:05:58 +01:00
Jean-Philippe Quéméner
aa25776f81
Alerting: Add a feature flag to periodically save states ( #80987 )
2024-01-23 17:03:30 +01:00
Jean-Philippe Quéméner
eb7e1216a1
feat(alerting): add async state persister ( #80763 )
2024-01-22 13:07:11 +01:00
Jean-Philippe Quéméner
82638d059f
feat(alerting): add state persister interface ( #80384 )
2024-01-17 13:33:13 +01:00
Jean-Philippe Quéméner
11d4f604f5
fix(alerting): proper handling for queries with multiple conditions in migration ( #78591 )
...
fix(alerting): proper handling for queries with multiple conditions
2023-11-23 18:05:44 +01:00
Jean-Philippe Quéméner
2d2e058563
refactor: use constant for prometheus datasource type ( #78287 )
2023-11-17 01:07:35 +01:00
Jean-Philippe Quéméner
2b8c6d66e1
feat(alerting): add query optimizations for prometheus ( #76015 )
2023-10-17 11:41:25 +02:00
Jean-Philippe Quéméner
f3b6d01306
feat(alerting): enable loki query optimization by default ( #74739 )
2023-09-13 13:52:40 +02:00
Jean-Philippe Quéméner
44b94eca19
docs(alerting): add section about running redis for HA ( #73153 )
2023-08-11 13:57:00 +02:00
Jean-Philippe Quéméner
2266e09f94
Alerting: optimize rules with multiple loki range queries ( #73103 )
2023-08-09 19:00:51 +02:00
Jean-Philippe Quéméner
2c6cf66741
Alerting: Optimize external Loki queries ( #73014 )
2023-08-08 15:13:41 +02:00
Jean-Philippe Quéméner
50f7937675
chore(docs): regenerate feature toggles file ( #71827 )
2023-07-18 11:46:59 +02:00
Jean-Philippe Quéméner
09dd7ae980
chore(cue): run make gen-cue ( #71819 )
2023-07-18 11:03:16 +02:00
Jean-Philippe Quéméner
934ba1aaa1
Alerting: Rewrite range to instant queries if possible ( #69976 )
2023-06-16 19:55:49 +02:00
Jean-Philippe Quéméner
fe2103bfc8
Util: Fix panic when generating UIDs concurrently ( #69476 )
2023-06-05 11:21:11 +02:00
Jean-Philippe Quéméner
22d47d6b96
Alerting: Add info to enable alert forwarding when using an external alertmanager ( #69150 )
2023-05-26 15:30:51 +02:00
Jean-Philippe Quéméner
5717d8954f
Alerting: Return empty list on export if no rules exist ( #69023 )
2023-05-25 14:12:18 +02:00
Jean-Philippe Quéméner
8bb62a8316
Alerting: Add option for memberlist label ( #67982 )
2023-05-09 10:32:23 +02:00
Jean-Philippe Quéméner
bbce69f295
Alerting: Use configured headers for external alertmanager ( #63819 )
2023-04-21 16:16:27 +02:00
Jean-Philippe Quéméner and Steve Simpson
bc11a484ed
Alerting: Add support for running HA using Redis ( #65267 )
...
Co-authored-by: Steve Simpson <steve.simpson@grafana.com >
2023-04-19 17:05:26 +02:00
Jean-Philippe Quéméner
42cdec369d
Datasources: provide generic function to extract custom headers ( #66738 )
2023-04-19 17:04:30 +02:00
Jean-Philippe Quéméner
cb8e01214d
Revert "Alerting: Update Prometheus Alertmanager ( #64434 )" ( #64503 )
...
This reverts commit 5a4ebe3a67 .
2023-03-09 13:32:07 +01:00
Jean-Philippe Quéméner
fb5ed0b0b3
Alerting: fix flaky cache test ( #64499 )
2023-03-09 06:08:05 -05:00
Jean-Philippe Quéméner and Alex Weaver
1694a35e0c
Alerting: implement loki query for alert state history ( #61992 )
...
* Alerting: implement loki query for alert state history
* extract selector building
* add unit tests for selector creation
* backup
* give selectors their own type
* build dataframe
* add some tests
* small changes after manual testing
* use struct client
* golint
* more golint
* Make RuleUID optional for Loki implementation
* Drop initial assumption that we only have one series
* Pare down to three columns, fix timestamp overflows, improve failure cases in loki responses
* Embed structred log lines in the dataframe as objects rather than json strings
* Include state history label filter
* Remove dead code
---------
Co-authored-by: Alex Weaver <weaver.alex.d@gmail.com >
2023-02-02 16:31:51 -06:00
Jean-Philippe Quéméner
44b11d3228
Alerting: support basic auth for the state history loki client ( #61696 )
2023-01-18 20:24:40 +01:00
Jean-Philippe Quéméner
41b3398eb4
Alerting: Enable interpolation for notification policies in file provisioning ( #58956 )
2022-11-22 16:54:24 +01:00
Jean-Philippe Quéméner
f3a307778a
Alerting: cache general folder in migration based on org id ( #55620 )
2022-09-23 18:22:45 +02:00
Jean-Philippe Quéméner
0f2afb6417
Alerting: support env variables in contact point settings when provsioning ( #55666 )
2022-09-23 08:06:51 -05:00
Jean-Philippe Quéméner
74c66b29d0
Alerting: Skip unsupported file types on provisioning ( #55573 )
2022-09-21 16:48:39 +02:00
Jean-Philippe Quéméner
4dc0d49025
Alerting: make sure that rules in rule group are nil if not provided ( #55301 )
2022-09-16 18:54:00 +02:00
Jean-Philippe Quéméner
bc4d929c67
Alerting: remove interpolation of annotations from alert rule file provisioning ( #54975 )
2022-09-09 18:47:54 +02:00
Jean-Philippe Quéméner
d88f1c8e35
Alerting: validate am config changes before persisting ( #54908 )
2022-09-09 10:05:52 +02:00
Jean-Philippe Quéméner
e41f78a56d
Alerting: make sure to update contact point references when updating ( #54896 )
2022-09-08 15:20:52 +02:00
Jean-Philippe Quéméner
a932428057
Alerting: use raw query data in provisioning to bypass interpolation of macros ( #54293 )
2022-08-26 23:54:30 +02:00
Jean-Philippe Quéméner
49b1182f34
Alerting: add missing yaml tag to mute time struct ( #54287 )
2022-08-26 23:30:07 +02:00
Jean-Philippe Quéméner
2fef8e6f2c
Alerting: add docs for file provisioning ( #53101 )
2022-08-17 18:53:36 +02:00
Jean-Philippe Quéméner
7f0002448d
Alerting: use duration model for alert rule provisioning api ( #53196 )
2022-08-12 00:58:02 +02:00
Jean-Philippe Quéméner
e14c91d5d4
Alerting: fetch interval from stored namespace UID ( #53195 )
2022-08-12 00:54:57 +02:00
Jean-Philippe Quéméner
8c5f5e7a32
Alerting: create provisioning dir in docker image ( #53594 )
2022-08-12 00:16:02 +02:00
Jean-Philippe Quéméner
54217a2037
Alerting: set dashboard and panel id using annotations in provisioning api ( #53221 )
2022-08-03 16:05:32 +02:00
Jean-Philippe Quéméner
8fc8d00167
Alerting: Add file provisioning for text templates ( #52952 )
2022-08-01 20:50:03 +02:00
Jean-Philippe Quéméner
3d39594d75
Alerting: Add file provisioning for mute timings ( #52936 )
2022-08-01 14:19:33 -04:00
Jean-Philippe Quéméner
eab6365cf7
Alerting: Add file provisioning for notification policies ( #52877 )
2022-08-01 19:14:57 +02:00
Jean-Philippe Quéméner
d9cace4dca
Alerting: Add file provisioning for contact points ( #51924 )
2022-08-01 18:17:42 +02:00
Jean-Philippe Quéméner
ba9c18d9c3
Alerting: use static channel configuration to determinate secure fields ( #52527 )
...
* Alerting: use static channel configuration to determinate secure fields
* move to channels package
* introduce channel_config package to fix cyclic import
* add missing changes
* compare type to type
2022-07-20 19:58:36 +02:00
Jean-Philippe Quéméner
320262c3db
Alerting: Cleanup the alert_configuration table on write ( #51497 )
2022-07-20 16:54:18 +02:00
Jean-Philippe Quéméner
50ae42130b
Alerting: take datasources as external alertmanagers into consideration ( #52534 )
2022-07-20 16:50:49 +02:00
Jean-Philippe Quéméner
41790083d2
Alerting: Add file provisioning for alert rules ( #51635 )
2022-07-14 23:53:13 +02:00
Jean-Philippe Quéméner
4a76436be2
Altering: validate that the mute time intervals exist when updating routing tree ( #51573 )
...
* validate that the mute time intervals exist when updating routing tree
* run lint
* add tests
2022-07-05 13:09:17 -04:00
Jean-Philippe Quéméner
e64cde8727
Alerting: validate that the receiver exist when updating routing tree ( #51561 )
...
* Alerting: validate that the receiver exist when updating routing tree
* rename interface
* add missing file
* change constructor
* fix e2e tests
* only import package once
* add unit test for bug
* wording
* close response body
* Update pkg/services/ngalert/api/tooling/definitions/alertmanager_validation.go
* refactor to remove database roundtrip
2022-07-05 18:09:57 +02:00
Jean-Philippe Quéméner
580c5b6ad2
Alerting: add YAML support for relative time range ( #51694 )
2022-07-04 06:03:34 -04:00
Jean-Philippe Quéméner
cd0fefec5b
Alerting: change optimistic lock to use proper insert select ( #51461 )
...
* Alerting: change optimistic lock to proper insert select
* remove debug logging
* fix postgres
* fix mysql
* remove empty line for go-lint
* add some docs
* use constants
2022-06-28 00:20:21 +02:00
Jean-Philippe Quéméner and Yuriy Tseretyan
bf255965a2
Alerting: prevent the use of the same uid across all contact points ( #51440 )
...
* Alerting: prevent the use of the same uid across all contact points
* Update pkg/services/ngalert/provisioning/contactpoints.go
Co-authored-by: Yuriy Tseretyan <yuriy.tseretyan@grafana.com >
Co-authored-by: Yuriy Tseretyan <yuriy.tseretyan@grafana.com >
2022-06-27 12:57:47 -04:00
Jean-Philippe Quéméner
1ed7280363
Alerting: add right provenance when creating mute timings ( #50707 )
2022-06-13 18:05:41 +02:00
Jean-Philippe Quéméner
ed6a887737
Alerting: remove unused function in alert rule store ( #50696 )
2022-06-13 11:24:29 -04:00
Jean-Philippe Quéméner
862f51216b
Alerting: improve provisioning docs ( #50347 )
...
* Alerting: improve provisioning docs
* add new provisioning page
* add api docs
* fix formatting and add better descriptions
* fix typo
2022-06-10 16:25:15 +02:00
Jean-Philippe Quéméner
cf684ed38f
Alerting: bump rule version when updating rule group interval ( #50295 )
...
* Alerting: move group update to alert rule service
* rename validateAlertRuleInterval to validateRuleGroupInterval
* init baseinterval correctly
* add seconds suffix
* extract validation function for reusability
* add context to err message
2022-06-09 09:28:32 +02:00
Jean-Philippe Quéméner
fd664e4beb
Alerting: replace a duplicated configuration key ( #50350 )
...
This PR renames the configuration key enabled to capture. This is needed as we already have a configuration key with the name enabled.
Fixes #50328
Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com >
2022-06-08 11:04:51 +08:00
Jean-Philippe Quéméner
4b8a4449ed
Alerting: remove feature toggle for provisioning API ( #50167 )
...
* Alerting: remove feature toggle for provisioning API
* remove missed code parts
* remove unused import
* remove empty line
* mark routes as stable
2022-06-05 07:45:36 +02:00
Jean-Philippe Quéméner
4cc8c6f745
Alerting: Add provenance guard to config api ( #50147 )
...
* Alerting: add provenance guard to config api
* add tests
* only guard if config valid
* adapt error message
* simplify logic
* rename arguments
* make logic more straight forward
* rename opt to options
* remove useless maps
2022-06-04 14:55:46 +02:00
Jean-Philippe Quéméner
0cec12b8a9
strip null from new heatmap dashboard definition ( #50208 )
2022-06-04 14:32:19 +02:00
Jean-Philippe Quéméner
8de4ffe61f
Alerting: only delete mute time if not used by route ( #50193 )
...
* Alerting: only delete mute time if not used by route
* add a testcase
* import package only once
* replace apimodels with definitions
2022-06-04 07:48:24 +02:00
Jean-Philippe Quéméner
d2f3631a47
Alerting: add mute timings provenance to config api ( #50149 )
2022-06-03 19:32:31 +02:00
Jean-Philippe Quéméner
468ed68d64
Alerting: allow custom UID for contact points through API ( #50089 )
...
* Alerting: allow custom UID for contact points through API
* fix auth
2022-06-03 10:33:47 +02:00
Jean-Philippe Quéméner
81d360529b
Alerting: Provisioning API - Alert rules ( #47930 )
2022-06-02 14:48:53 +02:00
Jean-Philippe Quéméner
30d9cc81ec
Alerting: check provenance of alert rules in current API ( #48694 )
2022-05-06 20:55:27 +02:00
Jean-Philippe Quéméner
0a87ef06af
Alerting: add safeguard for migrations that might cause dataloss ( #48526 )
...
* Alerting: add safeguard for migrations that might cause dataloss
* add test for panic
* add documentation
2022-05-02 10:38:42 +02:00
Jean-Philippe Quéméner
9e3a01a1be
Alerting: skip flaky test ( #48500 )
2022-04-29 12:32:30 +02:00
Jean-Philippe Quéméner
9e21e4d1c1
Alerting: indicate whether an alertrule is provisioned ( #48458 )
2022-04-28 21:27:34 +02:00
Jean-Philippe Quéméner
a3256bafa7
Alerting: indicate whether contact point is provisioned ( #48323 )
2022-04-27 20:53:36 +02:00
Jean-Philippe Quéméner
060ccacbf9
Alerting: unwrap upsert into insert and update function ( #47731 )
...
* Alerting: unwrap upsert into insert and update function
* add changelog entry
* remove changelog entry
* rename upsertrule to updaterule
* use directly alertrule model for inserts
* add test for updating a rule with a conflicting name
2022-04-14 14:21:36 +02:00
Jean-Philippe Quéméner
388ecb4037
Alerting: Provisioning API - Contact points ( #47197 )
2022-04-13 22:15:55 +02:00
Jean-Philippe Quéméner
a80f04c949
Alerting: add collision safe update function for alertmanager configurations ( #46692 )
...
* Alerting: add collision safe update function for alertmanager configurations
* fix typo
* use bootstrap func for tests
* move hash calculation to store
* remove icons lol
* remove removed field
2022-03-23 09:31:46 +01:00
Jean-Philippe Quéméner
e135b8531a
Alerting: refactor receiver validation to be reusable ( #46103 )
2022-03-15 00:27:10 +01:00
Jean-Philippe Quéméner
82aa5acba6
Revert "Alerting: Calculate diff for two AlertRules ( #45877 )" ( #46023 )
...
This reverts commit 4e19d7df63 .
2022-03-01 13:40:47 +01:00
Jean-Philippe Quéméner
4fef791c7c
Alerting: enable e2e tests to run in production mode ( #45073 )
...
* Alerting: run e2e tests in production mode
* adapt expected messages
* switch expected and actual to have the right order
2022-02-09 10:26:06 +01:00
Jean-Philippe Quéméner and gillesdemey
8ee3f59cd4
Alerting: recognize Cortex datasources correctly in the frontend ( #44316 )
...
* Alerting: always use msg field for user facing errors
* fix: revert front-end Cortex detection
Co-authored-by: gillesdemey <gilles.de.mey@gmail.com >
2022-01-21 15:44:11 +01:00
Jean-Philippe Quéméner
ffc72aa255
Alerting: fix gosec warning that is not valid ( #43425 )
2021-12-21 19:47:47 +01:00
Jean-Philippe Quéméner
b605340668
Alerting: log errors happening in the API on server side ( #43192 )
...
* Alerting: log errors happening in the API on server side
* adapt tests to reflect changed payload
2021-12-16 13:33:10 +01:00
Jean-Philippe Quéméner
e70cdb3f49
Alerting: add documentation about alertmanager contactpoint support ( #42799 )
2021-12-07 09:04:47 +01:00
Jean-Philippe Quéméner
cec2d965ec
Alerting: validate mute timings in the alertmanager configuration ( #42125 )
...
* Alerting: check for uniqueness of mutetime names
* add some testing
* add name validation
* add root route validation
* add tests for validation
* add check for root route mute_time_intervals
* add duplicate test
* remove useless yaml test
* refactor table test
2021-11-23 16:25:20 +01:00
Jean-Philippe Quéméner
f3b023ffa6
Fix: add the babel config to the dockerfiles ( #42021 )
2021-11-20 15:40:13 +01:00
Jean-Philippe Quéméner
b9cdad3814
Alerting: support mute timings configuration through the api for the embedded alertmanager ( #41533 )
...
* Alerting: accept mute_timing_intervals through the api for the embedded alertmanager
* add workaround for mutetimeinterval
* add mute timings to routes
* revert changes
* Update pkg/services/ngalert/api/api_alertmanager.go
* Update pkg/services/ngalert/api/api_alertmanager.go
* Update pkg/services/ngalert/api/api_alertmanager.go
* update prometheus/alertmanager dependency
* add some var docs
2021-11-19 16:50:55 +01:00
Jean-Philippe Quéméner
2319c52c85
Alerting: fix a bug where the metric in the evaluation string was not correctly populated ( #41731 )
...
Instead of using the frame name as the series name, we now use the name of the series value column if the frame name is not set. Queries to some datasources may end up with an empty frame name, which leads to an empty series name. As the series name is used in the frontend to display which metrics were queried etc. it shouldn't be empty.
2021-11-17 11:00:59 +01:00
Jean-Philippe Quéméner
d1aefa1792
Alerting: fix ngalert alertmanager SQL Syntax Errors ( #40827 )
...
* test kvstore in intregration tests with different databases
* escape 'key' in delete query
* export quote and use it in kvstore
2021-10-25 11:53:41 +02:00
Jean-Philippe Quéméner
74aa105b86
docs: fix typos in unified alerting ( #40696 )
2021-10-20 14:52:57 +02:00
Jean-Philippe Quéméner
153c356993
Alerting: delete orphaned records from kvstore ( #40337 )
2021-10-14 12:04:00 +02:00
Jean-Philippe Quéméner
1b7ca0413a
Alerting: add docs for the new webhook ( #40314 )
2021-10-14 11:07:31 +02:00
Jean-Philippe Quéméner
e1dfec49f9
Alerting: cleanup alert resources on org removal ( #39938 )
2021-10-12 12:05:02 +02:00
Jean-Philippe Quéméner
d9c0220824
Alerting: add organziation ID to the ngAlert webhook payload ( #40189 )
...
* Alerting: add organziation ID to the ngAlert webhook payload
2021-10-08 14:52:44 +02:00