Commit Graph

3657 Commits

Author SHA1 Message Date
Alexander Weaver 8efd4350b4 Alerting: Remove double quotes from matchers (#50038) (#50046)
* Alerting: Remove double quotes from matchers

With #38629 a new Alertmanager configuration object was introduced with `object_matchers`, it was meant to circumvent around the fact that Prometheus label names don't support a set of characters that Grafana needs to support for alerts, silences, matchers, etc. (with a common example being elasticsearch's `.`).
This new object does not include the label of sanitzation or validation that its Prometheus equivalent supports in `matchers` and therefore are semantically not equivalent.

This triggered the problem that when the migration is run, we use `matchers` as the object to populate in configuration for routing policies, but when the UI does its first save this object is transformed to `object_matchers`.

Matchers that were previously running just fine would immediately stop working as soon as the configuration is saved.

This problem surfaced with the introduction of #49952 where we stopped stripping double quotes from matchers (not just regex but _all_ of them).

* Add comment explaining rationale and future removal

Co-authored-by: Alex Weaver <weaver.alex.d@gmail.com>
(cherry picked from commit 1a50b0dbb7)

Co-authored-by: gotjosh <josue.abreu@gmail.com>
2022-06-01 16:52:07 -05:00
Grot (@grafanabot) 382eaaa773 Secrets: Fix unified secrets backwards compatibility (#49719) (#50009)
* Fix unified secrets backwards compatibility

* Add compatibility fix to AddDataSource function

* Allow updating password on fail to decrypt secrets

* If unified secret is corrupt try migrating

(cherry picked from commit 470be98588)

Co-authored-by: Guilherme Caulada <guilherme.caulada@grafana.com>
2022-06-01 11:10:02 -03:00
Grot (@grafanabot) 338f6797b2 RBAC: Include alert.rules action when setting folder permissions (#49946) (#50006)
(cherry picked from commit bdff63d4a8)

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2022-06-01 15:41:07 +02:00
Grot (@grafanabot) 39f461ea78 Metrics: Remove support for using summaries instead of histogram for HTTP instrumentation (#49985) (#50003)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
(cherry picked from commit 9562fb389f)

Co-authored-by: Carl Bergquist <carl.bergquist@gmail.com>
2022-06-01 14:49:37 +02:00
Grot (@grafanabot) 5c19011dc1 Alerting: Add GetImages to ImageStore (#49717) (#49791)
GetImages does a `TOKEN IN` query for each token in the argument.

(cherry picked from commit 47a3ddd968)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2022-06-01 05:10:03 +02:00
Grot (@grafanabot) 849a0932e8 Alerting: Add templated subject config to email notifier (#49742) (#49846)
* Add subject templating to email notifier

* Fix linting

(cherry picked from commit d92625125b)

Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
2022-06-01 04:14:56 +02:00
Grot (@grafanabot) 088125ae28 Plugins: Support headers field for check health (#49930) (#49949)
(cherry picked from commit a7813275a5)

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2022-05-31 18:22:35 +02:00
Grot (@grafanabot) e3127d4070 Datasource: Fix allowed cookies to be forwarded as header to backend datasources (#49541) (#49935)
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
(cherry picked from commit 1196b4a609)

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2022-05-31 17:17:55 +02:00
Grot (@grafanabot) 6d107a7f41 Alerting: Add Go error message to warning log for screenshots. (#49870) (#49917)
Makes debugging problems with alert screenshotting easier.

(cherry picked from commit 56f40bd413)

Co-authored-by: Joe Blubaugh <joe.blubaugh@grafana.com>
2022-05-31 15:07:57 +02:00
Grot (@grafanabot) 1d83694679 RBAC: drop permissions with folder:create action added by migration (#49878) (#49891)
(cherry picked from commit f4f25d911b)

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2022-05-31 12:58:06 +02:00
Grot (@grafanabot) 2a2982f9cc Alerting: Chore: Fix event name in ngalert/README.md (#49863)
Fix event name from *evalContext to *evaluation as #45144.

(cherry picked from commit 8b2a3a018d)

Co-authored-by: kyamau <kyamau.cs@gmail.com>
2022-05-31 10:59:31 +08:00
Grot (@grafanabot) ed06e3e4f9 Alerting: Enable Unified Alerting for open source and enterprise (#49834) (#49845)
This commit enables Unified Alerting for open source and enterprise unless disabled in configuration.

(cherry picked from commit 3b7f871bf4)

Co-authored-by: George Robinson <george.robinson@grafana.com>
2022-05-30 18:13:39 +02:00
Grot (@grafanabot) 6949f6dddc Prometheus: Predefined scopes for Azure authentication (#49557) (#49842)
* Predefined scopes for Azure Prometheus

* Allow override of audience

(cherry picked from commit 2b83cf4618)

Co-authored-by: Sergey Kostrukov <sergey@kostrukov.com>
2022-05-30 17:56:41 +02:00
Grot (@grafanabot) 64feb04206 Prometheus: Disable prometheusStreamingJSONParser by default (#49825) (#49832)
(cherry picked from commit b8563958bd)

Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>
2022-05-30 16:24:33 +02:00
Grot (@grafanabot) 6054bd0e2c Alerting: Add tests for Slack Notifier Image Upload (#49669) (#49747)
Tests that file bytes are correctly read from storage when an image is
available without a URL. Tests that not found and success cases are both
handled.

(cherry picked from commit d5a327f43d)

Co-authored-by: Joe Blubaugh <joe.blubaugh@grafana.com>
2022-05-27 10:46:15 +08:00
Grot (@grafanabot) afa40190d4 SearchV2: improve searcher API, and include a fallback SQL based implementation (#49535) (#49746)
(cherry picked from commit a641949a05)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2022-05-26 17:30:58 -07:00
Grot (@grafanabot) 7e4327d254 Alerting: Endpoints for provisioning mute timings (#49635) (#49735)
* Add validator for mute timing and make it provisionable

* Add tests to ensure prometheus validators are running and errors are propagated

* Internal API for manipulating mute timings

* Define and generate API layer

* Wire up generated code

* Implement API handlers

* Tests for golang layer

* Fix reference bug

* Fix linter and auth tests

* Resolve semantic errors and regenerate

* Remove pointless comment

* Extract out provisioning path param keys, simplify

* Expected number of paths

(cherry picked from commit 909ebcf979)

Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
2022-05-26 16:06:52 -05:00
Grot (@grafanabot) 83b73db401 Alerting: Fix swagger specification (#49273) (#49687)
* Alerting: fix specification

* Update merged swagger specification

(cherry picked from commit 7cf321d7bd)

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
2022-05-26 13:56:23 +02:00
Grot (@grafanabot) e3a35bd2ff Remove migrations from behind configs (#49415) (#49684) 2022-05-26 13:41:03 +02:00
Grot (@grafanabot) 3fac10229b Notification history: Enable by default (#49502) (#49681)
* remove persistNotifications feature flag

* remove unused imports

(cherry picked from commit 8b509eb6dd)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2022-05-26 13:19:18 +02:00
Grot (@grafanabot) dd1d1dae04 Alerting: Add stored screenshot utilities to the channels package. (#49470) (#49664)
Adds three functions:
`withStoredImages` iterates over a list of models.Alerts, extracting a stored image's data from storage, if available, and executing a user-provided function.
`withStoredImage` does this for an image attached to a specific alert.
`openImage` finds and opens an image file on disk.

Moves `store.Image` to `models.Image`
Simplifies `channels.ImageStore` interface and updates notifiers that use it to use the simpler methods.
Updates all pkg/alert/notifier/channels to use withStoredImage routines.

(cherry picked from commit 9e8efaa459)

Co-authored-by: Joe Blubaugh <joe.blubaugh@grafana.com>
2022-05-26 16:12:10 +08:00
Grot (@grafanabot) 4bd6f62dfd AccessControl: Replace IsEnterprise checks with license checks (#49572) (#49646)
(cherry picked from commit 5caf97be40)

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2022-05-25 20:59:47 +02:00
Grot (@grafanabot) 1d4e2d12da Prometheus: Enable prometheusStreamingJSONParser by default (#49475) (#49636)
(cherry picked from commit 70b3a0a500)

Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>
2022-05-25 19:12:24 +02:00
Grot (@grafanabot) 312b57aa76 Login: Fix AuthInfo update process (#49556) (#49565)
* Login: Fix AuthInfo update process

* Fix GoDoc

* Add regression test for oauth info overwrite

Co-authored-by: jguer <joao.guerreiro@grafana.com>
(cherry picked from commit 73a729bbe8)

Co-authored-by: Joan López de la Franca Beltran <5459617+joanlopez@users.noreply.github.com>
2022-05-25 10:17:56 +02:00
Grot (@grafanabot) 1e2708cbcf Prometheus: Streaming JSON parser performance improvements (#48792) (#49542)
(cherry picked from commit 94b9c524a8)

Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>
2022-05-24 22:35:19 +02:00
Grot (@grafanabot) 4dd08e7da6 Alerting: Validate alert notification UID length (#45546) (#49513)
* validate alert notification UID length

* simplify-ish

* remove unused field

* whoopsie

* delete newline

* remove check

* apply feedback

(cherry picked from commit 635fa4ab0f)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2022-05-24 17:21:27 +02:00
Kat Yang 50c2b4682a Chore: Rename integration tests (#49438)
* Chore: Rename integration tests

* Remove one Integration

Co-authored-by: Ida Furjesova <ida.furjesova@grafana.com>
2022-05-24 11:04:03 +02:00
Joe Blubaugh a0193c248f Alerting: Add entries to ngAlert changelog for screenshots. (#49457)
Notes the PRs that added the feature.
2022-05-24 16:50:07 +08:00
Joan López de la Franca Beltran 3e4b4dba46 Encryption: Enable envelope encryption by default (#49301)
* Encryption: Enable envelope encryption by default

* Stop relying on feature toggles from settings (deprecated)

* Database encryption docs (envelope encryption)

* Remove deprecated (and no longer used) FT

* Apply suggestions from code review

Co-authored-by: Tania <yalyna.ts@gmail.com>
2022-05-24 10:34:47 +02:00
Eric Leijonmarck cbf71fbd7f Serviceaccounts: Do not display service accounts assigned to team (#48995)
* Add IsServiceAccount to query

* test for excluding service accounts in query

* align test

* test update

* added logging

* should fix tests

* moved test to bottom

* add back setup function

* Remove IsServiceAccount from query

Instead use false for is_service_account
and when the time comes to implement service accounts
for team. we deal with it

* missed teamtest

* formatting
2022-05-24 16:52:39 +10:00
Alexander Emelin 1e7e149ed6 search: close unused reader and writer on re-indexing (#49458) 2022-05-24 09:42:21 +03:00
Alexander Weaver a92f85a87b Alerting: Factor out shared code for working with configs in provisioning package (#49419)
* Factor out shared code for working with configs

* Refactor in notification policies and contact points

* Better file ordering

* Address feedback
2022-05-23 18:16:03 -05:00
Alexander Weaver 2ba4f7ed7d Alerting: Attach image URLs to Google Chat notifications. (#49445)
* Add a test card to see what styles look like

* Add text and image cards

* Address feedback
2022-05-23 18:15:44 -05:00
Alexander Weaver d7c65d3323 Alerting: Attach image URLs or upload files to Discord notifications. (#49439)
* Images in discord

* Drop duplicated field initialization

* Fix tests

* Use the proper context
2022-05-23 17:28:16 -05:00
Alexander Emelin 7411c81e7f Search: use prefix search for queries exceeding ngram filter max length (#49409) 2022-05-23 14:33:56 -07:00
Alexander Weaver ac8951f689 Alerting: Add support for documenting which alerting APIs are stable (#49018)
* Support for documenting stable vs unstable alerting routes

* empty commit, restart drone

* Touch-up references in root makefile and drop trailing escape newline

* Rebase and regenerate

* Extend README with docs for this change
2022-05-23 14:08:27 -05:00
Ryan McKinley 8af587e7ba Search: support alpha + and enterprise sorting values (#49362) 2022-05-23 10:05:15 -07:00
Ryan McKinley 9a59ccd644 Search: remove internal ID from bluge index (#49205)
Co-authored-by: Alexander Emelin <frvzmb@gmail.com>
2022-05-23 09:22:35 -07:00
Kristin Laemmert 8c753999df chore: replace artisanal FakeDashboardService with generated mock (#49276)
* chore: replace handmade FakeDashboardService with generated mock

Maintaining a handcrafted FakeDashboardService is not sustainable now that we are in the process of moving the dashboard-related functions out of sqlstore.

* remove dialect global variable
2022-05-23 11:14:27 -04:00
Joe Blubaugh ccd160a75e Alerting: Add image url or file attachment to email notifications. (#49381)
If an image token is present in an alert instance, the email notifier will attempt to find a public URL for the image token. If found, it will add that to the email as the `ImageLink` field. If only local file data is available, the notifier will attach the file to the outgoing email using the `EmbeddedImage` field.
2022-05-23 23:08:28 +08:00
Jguer 3250bf6b2b AccessControl: Add migration for seeding managed inherited permissions (#49337)
* AccessControl: Add migration for seeding managed inherited permissions

Co-authored-by: Karl Persson <kalle.persson@grafana.com>

* AccessControl: move to single file

* AccessControl: Add tests for managed permission migration

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* AccessControl: Ensure no duplicate insertion

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* Remove commented code

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* Add code migration constant

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* Ensure DB is clean between tests

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* Update pkg/services/sqlstore/migrations/accesscontrol/managed_permission_migrator.go

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2022-05-23 16:50:10 +02:00
Joe Blubaugh 307e33614e Alerting: Add image_urls to OpsGenie notification details. (#49379)
Adds an array of image_urls to the OpsGenie details field in a message, if image urls are available.

```json
{
  "message": "Alert with Images!",
  "details": {
    "image_urls": ["http://www.example.com"]
  }
}
```
2022-05-23 22:41:29 +08:00
Yuriy Tseretyan 3dfafbadef Alerting: Fix access to alerts for viewer with editor permissions when RBAC is disabled (#49270)
* Add folder edit permission for users with Viewer role
* relax permissions required to create an alert when RBAC is disabled
2022-05-23 09:58:20 -04:00
Joe Blubaugh 4ea0b39db1 Alerting: Add Image URLs to Microsoft Teams notifier. (#49385)
If there are screenshot images with URLs, they will be attached to the
Microsoft teams notification in the first sections, as a slice of image
objects.
2022-05-23 21:53:36 +08:00
Jguer 6891bbf03c ServiceAccounts: Add identifiable token prefix to service account tokens (#49011)
* Add prefixed API key gen.

* Retrieve API Key by hash

* Handle prefixed API keys for login

* Add placeholder key generator

* fix spelling

* add get by hash sqlstore test

* reformat query

* quote usage of reserved keyword key

* use constant

* improve error handling and pre-select key type

Co-authored-by: Victor Cinaglia <victor@grafana.com>

* nits

Co-authored-by: Victor Cinaglia <victor@grafana.com>
2022-05-23 13:14:38 +02:00
Joan López de la Franca Beltran e43879e55d Encryption: Add support for multiple data keys per day (#47765)
* Add database migrations

* Use short uids as data key ids

* Add support for manual data key rotation

* Fix duplicated mutex unlocks

* Fix migration

* Manage current data keys per name

* Adjust key re-encryption and test

* Modify rename column migration for MySQL compatibility

* Refactor secrets manager and data keys cache

* Multiple o11y adjustments

* Fix stats query

* Apply suggestions from code review

Co-authored-by: Tania <yalyna.ts@gmail.com>

* Fix linter

* Docs: Rotate data encryption keys API endpoint

Co-authored-by: Tania <yalyna.ts@gmail.com>
2022-05-23 13:13:55 +02:00
Joe Blubaugh 1cc034d960 Alerting: Add a "Reason" to Alert Instances to show underlying cause of state. (#49259)
This change adds a field to state.State and models.AlertInstance
that indicate the "Reason" that an instance has its current state. This
helps us account for cases where the state is "Normal" but the
underlying evaluation returned "NoData" or "Error", for example.

Fixes #42606

Signed-off-by: Joe Blubaugh <joe.blubaugh@grafana.com>
2022-05-23 16:49:49 +08:00
Joe Blubaugh 26a206cce2 Alerting: Attach image URL to alerts in Webhook notifier format. (#49378)
Attaches an imageURL field to any alert messages that have a screenshot
token whose URL we can successfully read from disk.
2022-05-23 16:44:19 +08:00
Joe Blubaugh 11a908cc91 Alerting: Add Screenshot URLs to Pagerduty Notifier (#49377)
PagerDuty takes an "images" array of link objects in it's request body.
2022-05-23 16:40:58 +08:00
Joe Blubaugh 12c25759da Alerting: Attach screenshot data to Slack notifications. (#49374)
This change extracts screenshot data from alert messages via a private annotation `__alertScreenshotToken__` and attaches a URL to a Slack message or uploads the data to an image upload endpoint if needed.

This change also implements a few foundational functions for use in other notifiers.
2022-05-23 14:24:20 +08:00