The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Go to file
Alex Moreno 531b439cf1
Alerting: Add alert pausing feature (#60734)
* Add field in alert_rule model, add state to alert_instance model, and state to eval

* Remove paused state from eval package

* Skip paused alert rules in scheduler

* Add migration to add is_paused field to alert_rule table

* Convert to postable alerts only if not normal, pernding, or paused

* Handle paused eval results in state manager

* Add Paused state to eval package

* Add paused alerts logic in scheduler

* Skip alert on scheduler

* Remove paused status from eval package

* Apply suggestions from code review

Co-authored-by: George Robinson <george.robinson@grafana.com>

* Remove state

* Rethink schedule and manager for paused alerts

* Change return to continue

* Remove unused var

* Rethink alert pausing

* Paused alerts storing annotations

* Only add one state transition

* Revert boolean method renaming refactor

* Revert take image refactor

* Make registry errors public

* Revert method extraction for getting a folder title

* Revert variable renaming refactor

* Undo unnecessary changes

* Revert changes in test

* Remove IsPause check in PatchPartiLAlertRule function

* Use SetNormal to set state

* Fix text by returning to old behaviour on alert rule deletion

* Add test in schedule_unit_test.go to test ticks with paused alerts

* Add coment to clarify usage of context.Background()

* Add comment to clarify resetStateByRuleUID method usage

* Move rule get to a more limited scope

* Update pkg/services/ngalert/schedule/schedule.go

Co-authored-by: George Robinson <george.robinson@grafana.com>

* rum gofmt on pkg/services/ngalert/schedule/schedule.go

* Remove defer cancel for context

* Update pkg/services/ngalert/models/instance_test.go

Co-authored-by: Santiago <santiagohernandez.1997@gmail.com>

* Update pkg/services/ngalert/models/testing.go

Co-authored-by: Santiago <santiagohernandez.1997@gmail.com>

* Update pkg/services/ngalert/schedule/schedule_unit_test.go

Co-authored-by: Santiago <santiagohernandez.1997@gmail.com>

* Update pkg/services/ngalert/schedule/schedule_unit_test.go

Co-authored-by: Santiago <santiagohernandez.1997@gmail.com>

* Update pkg/services/ngalert/models/instance_test.go

Co-authored-by: Santiago <santiagohernandez.1997@gmail.com>

* skip scheduler rule state clean up on paused alert rule

* Update pkg/services/ngalert/schedule/schedule.go

Co-authored-by: Santiago <santiagohernandez.1997@gmail.com>

* Fix mock in test

* Add (hopefully) final suggestions

* Use error channel from recordAnnotationsSync to cancel context

* Run make gen-cue

* Place pause alert check in channel update after version check

* Reduce branching un update channel select

* Add if for error and move code inside if in state manager ResetStateByRuleUID

* Add reason to logs

* Update pkg/services/ngalert/schedule/schedule.go

Co-authored-by: George Robinson <george.robinson@grafana.com>

* Do not delete alert rule routine, just exit on eval if is paused

* Reduce branching and create-close a channel to avoid deadlocks

* Separate state deletion and state reset (includes history saving)

* Add current pause state in rule route in scheduler

* Split clearState and bring errCh closer to RecordStatesAsync call

* Change rule to ruleMeta in RecordStatesAsync

* copy state to be able to modify it

* Add timeout to context creation

* Shorten the timeout

* Use resetState is rule is paused and deleteState if rule is not paused

* Remove Empty state reason

* Save every rule change in historian

* Add tests for DeleteStateByRuleUID and ResetStateByRuleUID

* Remove useless line

* Remove outdated comment

Co-authored-by: George Robinson <george.robinson@grafana.com>
Co-authored-by: Santiago <santiagohernandez.1997@gmail.com>
Co-authored-by: Armand Grillet <2117580+armandgrillet@users.noreply.github.com>
2023-01-26 18:29:10 +01:00
.bingo Chore: Add cuefix hook (#61941) 2023-01-23 20:36:46 -05:00
.changelog-archive Changelog: Move to a folder structure for change logs (#50361) 2022-06-08 15:59:47 -05:00
.github Codeowners: Assign logs files to @grafana/observability-logs (#62239) 2023-01-26 16:50:56 +01:00
.husky Chore: do not run husky hooks on backend-only changes (#48439) 2022-04-29 14:01:02 +01:00
.vim Chore: Upgrade yarn and editor sdks (#42847) 2021-12-08 14:40:24 +01:00
.vscode Add debug option for Golang tests in vscode (#61983) 2023-01-24 14:44:44 +01:00
.yarn Update dependency eslint to v8.32.0 (#61894) 2023-01-25 12:55:00 +00:00
conf Snapshots: Add snapshot enable config (#61587) 2023-01-26 10:28:11 -03:00
contribute Chore: Move to node 18 again (#62079) 2023-01-26 10:19:39 +00:00
cue.mod Introduce "scuemata" system for CUE-based specification of Grafana objects (#32527) 2021-04-08 01:11:11 -07:00
devenv Loki Docker Devenv: Fix undefined variable in error message (#62242) 2023-01-26 16:15:11 +00:00
docs NodeGraph: Schema for panel options (#62121) 2023-01-26 18:02:41 +01:00
e2e Azure Monitor: Implement logic to allow multiple selection (#61740) 2023-01-20 11:19:31 +01:00
emails Email: Use MJML email templates (#57751) 2022-11-17 21:41:46 +01:00
grafana-mixin grafana-mixin: Fix GrafanaRequestsFailing alert (#43116) 2021-12-20 15:12:37 +01:00
kinds Schema: Create PublicDashboard core kind (#62155) 2023-01-26 10:51:00 -03:00
packages Update dependency immutable to v4.2.2 (#62202) 2023-01-26 16:57:10 +00:00
packaging Switch grafana server command to use urfave/cli/v2 (#60684) 2022-12-24 22:33:18 -05:00
pkg Alerting: Add alert pausing feature (#60734) 2023-01-26 18:29:10 +01:00
plugins-bundled Chore: Update version (#58750) 2022-11-15 10:03:05 -03:00
public NodeGraph: Schema for panel options (#62121) 2023-01-26 18:02:41 +01:00
scripts Chore: don't create the npm-artifacts dir since yarn packages:pack does this… (#62246) 2023-01-26 16:41:08 +00:00
tools Image Rendering: Remove PhantomJS support (#23460) 2020-04-15 22:17:41 +02:00
.betterer.results Fix: NPM Package publishing (#62243) 2023-01-26 16:18:05 +00:00
.betterer.ts Chore: convert last test to RTL and remove Enzyme references (#61918) 2023-01-24 09:20:47 +00:00
.bra.toml Server: Switch from separate server & cli to a unified grafana binary (#58286) 2022-11-22 11:53:43 -05:00
.browserslistrc Babel: Target more modern browsers, updates browserlistrc (#32573) 2021-04-01 10:32:00 +02:00
.dockerignore copy .github folder into golang build container since we rely on codeowners (#62122) 2023-01-25 10:31:16 -05:00
.drone.star CI: Add aws-marketplace pipeline (#60484) 2022-12-19 11:25:48 -05:00
.drone.yml Chore: Move to node 18 again (#62079) 2023-01-26 10:19:39 +00:00
.editorconfig Chore: Enable PR testing in Drone (#26189) 2020-07-10 16:09:21 +02:00
.eslintignore Chore: Align on 'internationalization' for feature name (#52585) 2022-07-21 06:31:08 -04:00
.eslintrc Chore: eslint rule for preventing e2e selectors in aria-label (#59731) 2023-01-18 15:02:35 +00:00
.gitattributes CRLF (#28822) 2020-11-05 17:20:40 +01:00
.gitignore Chore: gitignore storage.json (#59225) 2022-11-23 09:31:40 -05:00
.golangci.toml Chore: Missed deprecations due to overly broad lint exclusion (#59732) 2022-12-14 12:32:45 +01:00
.linguirc I18n: Change locale format to IETF language tag (#52596) 2022-07-22 10:50:00 -04:00
.nvmrc Chore: Move to node 18 again (#62079) 2023-01-26 10:19:39 +00:00
.pa11yci-pr.conf.js Chore: Update footer changelog link to github (#57871) 2022-10-31 07:34:21 -04:00
.pa11yci.conf.js A11y: Add Dashboard Settings to Pa11y CI and Refactor local a11y report (#54476) 2022-09-12 15:14:45 +02:00
.prettierignore Chore: Script to generate betterer issue summary (#61857) 2023-01-26 10:48:33 +00:00
.prettierrc.js Prettier: Add prettier config that imports prettier from toolkit (#23729) 2020-04-21 17:23:49 +02:00
.yarnrc.yml Scenes: Use @grafana/scenes (#60972) 2023-01-10 03:30:53 -08:00
babel.config.json Chore: Reorder babel plugins into correct order (#45691) 2022-02-21 17:07:42 +00:00
build.go Chore: move build command to importable package (#38726) 2021-09-03 11:24:21 -05:00
CHANGELOG.md Changelog: Updated changelog for 9.3.6 (#62231) 2023-01-26 17:25:21 +02:00
CODE_OF_CONDUCT.md Docs: Refactor inconsistent unordered lists (#27826) 2020-10-02 11:02:11 -07:00
CONTRIBUTING.md Docs: Clarify contributions for translations (#55574) 2022-09-27 10:21:23 -04:00
crowdin.yml I18n: Update crowdin config and codeowners (#57264) 2022-10-20 14:59:02 +01:00
Dockerfile Chore: Move to node 18 again (#62079) 2023-01-26 10:19:39 +00:00
embed.go Kindsys: Unify plugins, pfs with kind framework (#61192) 2023-01-20 09:41:35 +00:00
go.mod Alerting: Fix Test Receivers when settings are non-strings (#62156) 2023-01-26 12:54:03 +00:00
go.sum Alerting: Fix Test Receivers when settings are non-strings (#62156) 2023-01-26 12:54:03 +00:00
GOVERNANCE.md Chore: Introducing a Grafana HALL_OF_FAME.md (#45878) 2022-05-18 20:13:11 +00:00
HALL_OF_FAME.md Chore: Introducing a Grafana HALL_OF_FAME.md (#45878) 2022-05-18 20:13:11 +00:00
ISSUE_TRIAGE.md ISSUE_TRIAGE.md: update (#60299) 2023-01-19 18:21:36 +01:00
jest.config.js Chore: Bump d3-color to 3.1.0 (#61609) 2023-01-26 13:02:22 +01:00
latest.json Chore: Update latest.json to 9.3.6 (#62235) 2023-01-26 17:33:45 +02:00
lerna.json Chore: Update version (#58750) 2022-11-15 10:03:05 -03:00
LICENSE Re-license Grafana to AGPLv3 (#33184) 2021-04-20 19:03:30 +02:00
LICENSING.md Reconcile coremodels, entities, objects under new kind framework (#56492) 2022-11-10 12:36:40 -08:00
MAINTAINERS.md Add Docs maintainers (#51287) 2022-06-22 13:10:30 -07:00
Makefile Chore: Add cuefix hook (#61941) 2023-01-23 20:36:46 -05:00
metadata.md Docs: Document plugin authentication in metadata schema (#32703) 2021-04-08 18:13:18 +02:00
NOTICE.md Prettier: Fix all markdown files and add markdown files to CI verify step (#39776) 2021-09-29 14:34:40 +02:00
package.json Update dependency immutable to v4.2.2 (#62202) 2023-01-26 16:57:10 +00:00
README.md Docs: Update install guides link in README (#56116) 2022-11-14 11:42:23 +01:00
ROADMAP.md Prettier: Fix all markdown files and add markdown files to CI verify step (#39776) 2021-09-29 14:34:40 +02:00
SECURITY.md Docs: Update RSS feed in security page (#56439) 2022-11-22 10:07:59 +01:00
stylelint.config.js Update dependency stylelint to v14.6.0 (#46626) 2022-03-23 13:40:54 +00:00
SUPPORT.md Prettier: Fix all markdown files and add markdown files to CI verify step (#39776) 2021-09-29 14:34:40 +02:00
tsconfig.json Scenes: Use @grafana/scenes (#60972) 2023-01-10 03:30:53 -08:00
UPGRADING_DEPENDENCIES.md Bump publish docs node version (#46475) 2022-03-11 21:28:12 +01:00
WORKFLOW.md Prettier: Fix all markdown files and add markdown files to CI verify step (#39776) 2021-09-29 14:34:40 +02:00
yarn.lock Update dependency immutable to v4.2.2 (#62202) 2023-01-26 16:57:10 +00:00

Grafana

The open-source platform for monitoring and observability

License Drone Go Report Card

Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored. Create, explore, and share dashboards with your team and foster a data-driven culture:

  • Visualizations: Fast and flexible client side graphs with a multitude of options. Panel plugins offer many different ways to visualize metrics and logs.
  • Dynamic Dashboards: Create dynamic & reusable dashboards with template variables that appear as dropdowns at the top of the dashboard.
  • Explore Metrics: Explore your data through ad-hoc queries and dynamic drilldown. Split view and compare different time ranges, queries and data sources side by side.
  • Explore Logs: Experience the magic of switching from metrics to logs with preserved label filters. Quickly search through all your logs or streaming them live.
  • Alerting: Visually define alert rules for your most important metrics. Grafana will continuously evaluate and send notifications to systems like Slack, PagerDuty, VictorOps, OpsGenie.
  • Mixed Data Sources: Mix different data sources in the same graph! You can specify a data source on a per-query basis. This works for even custom datasources.

Get started

Unsure if Grafana is for you? Watch Grafana in action on play.grafana.org!

Documentation

The Grafana documentation is available at grafana.com/docs.

Contributing

If you're interested in contributing to the Grafana project:

Get involved

License

Grafana is distributed under AGPL-3.0-only. For Apache-2.0 exceptions, see LICENSING.md.