71 Commits

Author SHA1 Message Date
2212c6dbbb SQL: Define primary key for tables without it (#22255)
The annotation_tag and alert_rule_tag tables did not have
PRIMARY KEY defined what cause problems with migration to
MariaDB with Galera setup with
 innodb_force_primary_key=1
Or MySQL > 8.0.13 with
 sql_require_primary_key=ON

Which can manifest as follows:

MariaDB
Error 1173: This table type requires a primary key

MySQL
ERROR 3750 (HY000): Unable to create or change a table
without a primary key, when the system variable 'sql_require_primary_key' is set.

Extra reading for curious:
https://jfg-mysql.blogspot.com/2017/08/danger-no-pk-with-RBR-and-mariadb-protection.html

Fixes #12971

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-11-17 17:58:56 +01:00
b5379c5335 Chore: Fix SQL related Go variable naming (#28887)
* Chore: Fix variable naming

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-11-11 06:21:08 +01:00
e1e05cad7d Database: Adds new indices to alert_notification_state and alert_rule_tag tables (#28166)
Add non-unique indices to alert_notification_state and alert_rule_tag tables for 
column alert_id.

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>

Fixes #22890
2020-10-13 13:51:54 +02:00
ad4f8b7091 Alerting: Change settings column type to mediumtext (#26549)
* Alerting: Change settings column type to mediumtext

* Remove unnecessary newline
2020-07-24 08:40:06 +03:00
292c985b76 Alerting: Support storing sensitive notifier settings securely/encrypted (#25114)
Support storing sensitive notification settings securely/encrypted.
Move slack notifier url and api token to secure settings.
Migrating slack notifier to store token and url encrypted is currently 
a manual process by saving an existing slack alert notification channel.
saving an existing slack alert notification channel will reset the stored 
non-secure url and token.

Closes #25113
Ref #25967

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-07-08 10:17:05 +02:00
41d432b5ae Chore: Enable whitespace linter (#25903)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-06 20:17:28 +02:00
e06abb30aa Alerting: Add tags to alert rules (#10989)
Ref #6552
2019-06-06 13:29:30 +02:00
b37ee65bd3 Chore: prepare our SQL for cockroach db (#16471)
This is basically implementation of the https://github.com/grafana/grafana/issues/8900#issuecomment-435437167
points, except for the type conversion bit.

I tried to implement idea mentioned in cockroachdb ticket (see below).
And it is possible, but it complicates things as lot - not only we have to
have 4 SQL statements instead of one, but we would have to copy the column
structure as well - PK, FG, indexes and stuff, plus there will
be additional downtime with this approach.

So idea for this pull is to prepare our SQL as much as possible, so when
cockroachdb will add support for full type conversions, we could easilly add
support for it as well.

* Add `CASCADE` to `DROP INDEX` statement

* Make string conversions explicit

Thanks @Luit

Ref #8900
Ref cockroach/cockroach#9851
2019-04-15 18:49:24 +03:00
e218cc7637 docs: updates docs to refer to using uid 2019-01-28 22:03:16 +01:00
f132e929ce Added uid for alert notifications 2019-01-16 16:50:00 +02:00
ccd89eee97 renames debouceduration to for 2018-11-05 11:05:30 +01:00
2d3a575489 adds db migration for debounce_duration 2018-11-05 10:50:28 +01:00
70385119bc removes d in disableResolvedMessage 2018-10-17 10:41:18 +02:00
c4dcf5a4ee fix gofmt, add test, correct noted concerns with default value 2018-10-16 17:33:38 -04:00
6376154b16 add channel option to disable the resolved alert (OK Message) that is sent when condition returns to normal. 2018-10-15 17:16:14 -04:00
7f1d7cefc0 reminder: uses UpdatedAt to track state changes. 2018-10-02 11:19:09 +02:00
75f832cda8 use alert state changes counter as secondary version 2018-10-01 15:58:30 +02:00
5ec086dc56 don't notify if notification state pending
If notification state is pending and last update of state was made
less than a minute ago. In the case of a grafana instance is shut down/crashes
between setting pending state and before sending the notification/marks as complete
this logic should allow the notification to be sent after some time instead of
being left in an inconsistent state where no notifications are being sent.
2018-09-30 21:52:50 +02:00
3fab616239 implement sql queries for transactional alert reminders 2018-09-27 11:14:44 +02:00
ff79f80685 initial rename refactoring 2018-09-27 09:43:00 +02:00
c21938d4c4 use epoch to compare timestamp 2018-06-16 00:03:13 +02:00
ab70ead5e4 alerting: renames journal table to alert_notification_journal 2018-06-05 13:10:38 +02:00
7333d7b8d4 alerting: invert sendOnce to sendReminder 2018-06-05 10:44:17 +02:00
3cb0e27e1c Revert changes post code review and move them to notification page 2018-06-04 13:19:14 +02:00
e068be4c26 Feature for repeated alerting in grafana 2018-06-04 13:19:13 +02:00
c0d5b61403 tweak column lengths for utf8mb4 support on older mysql (#8483) 2017-05-29 08:31:36 +02:00
24d4e50343 utf8mb4 encoding (#7959)
* use utf8mb4 character set for connections to mysql

* use utf8mb4 character set for tables, shorten varchar fields used in unique indexes

* migration type to update table character set

* update table character sets

* set charset for temp_user.status

* gofmt
2017-03-28 14:34:53 +02:00
c893e5d241 feat(notifications): add support for default notifications
ref #5883
2016-09-05 21:35:37 +02:00
6497b307c4 feat(alerting): save execution error upon state changed 2016-08-17 09:27:29 +02:00
f934081bcb feat(alerting): making progress on alerting list, #5784 2016-08-16 09:52:45 +02:00
1418cbbd8b feat(query_part): refactoring query part 2016-08-15 17:20:45 +02:00
16e75a3036 feat(alerting): add alert message to slack integration 2016-08-12 10:12:04 +02:00
357358898d feat(annotations): working on alert annotations, #5694 2016-08-01 10:07:00 +02:00
6cb1dafb1d feat(alerting): progress on notifications 2016-07-25 16:26:28 +02:00
f6a160b270 feat(alerting): testing alert is starting to work 2016-07-21 13:09:12 +02:00
624cd6fc0a feat(alerting): cleanup, removed alert changes table and code 2016-07-13 11:58:55 +02:00
4fc16c36ed feat(alerting): saves new state when alert updates 2016-06-29 00:05:48 +02:00
67197d54f9 feat(alerting): add triggeredAlerts as json to alert_state 2016-06-23 11:14:40 +02:00
fa309ec925 feat(alerting): add default notification group 2016-06-20 15:24:48 +02:00
ebada26b85 Merge branch 'alerting' into alerting_notifications 2016-06-17 08:27:58 +02:00
e8a324c7f5 feat(alerting): add frequency back to alert model 2016-06-17 08:27:38 +02:00
8b91e57ef6 feat(alerting): notification query 2016-06-16 08:16:16 +02:00
dac8b35a1a feat(alerting): renamed scheduler to handler 2016-06-13 15:58:22 +02:00
7f22b9eb6e tech(alerting): expression -> settings 2016-06-13 15:18:19 +02:00
1e41eb8c97 tech(alerting): remove frequency from alert model 2016-06-13 10:42:36 +02:00
382f396247 feat(alerting): more model changes 2016-06-11 10:54:24 +02:00
2b4a9954b1 feat(alerting): progress on alerting UI and model, refactoring of dashboard parser and tests into extractor component, moved tests from sqlstore to alerting package 2016-06-11 10:13:33 +02:00
fdf051ad5a feat(alerting): begin alert rule storage refactoring 2016-06-09 22:21:28 +02:00
34e17f7282 feat(alerting): requests looks to be working again 2016-06-06 17:11:46 +02:00
70cb8400c3 feat(alerting): changed name of root Alerts nav item and page from Alerts to Alerting 2016-06-06 09:17:29 +02:00