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
Joe Blubaugh b476ae62fb
Alerting: Write and Delete multiple alert instances. (#55350)
Prior to this change, all alert instance writes and deletes happened
individually, in their own database transaction. This change batches up
writes or deletes for a given rule's evaluation loop into a single
transaction before applying it.

These new transactions are off by default, guarded by the feature toggle "alertingBigTransactions"

Before:

```
goos: darwin
goarch: arm64
pkg: github.com/grafana/grafana/pkg/services/ngalert/store
BenchmarkAlertInstanceOperations-8           398           2991381 ns/op         1133537 B/op      27703 allocs/op
--- BENCH: BenchmarkAlertInstanceOperations-8
    util.go:127: alert definition: {orgID: 1, UID: FovKXiRVzm} with title: "an alert definition FTvFXmRVkz" interval: 60 created
    util.go:127: alert definition: {orgID: 1, UID: foDFXmRVkm} with title: "an alert definition fovFXmRVkz" interval: 60 created
    util.go:127: alert definition: {orgID: 1, UID: VQvFuigVkm} with title: "an alert definition VwDKXmR4kz" interval: 60 created
PASS
ok      github.com/grafana/grafana/pkg/services/ngalert/store   1.619s
```

After:

```
goos: darwin
goarch: arm64
pkg: github.com/grafana/grafana/pkg/services/ngalert/store
BenchmarkAlertInstanceOperations-8          1440            816484 ns/op          352297 B/op       6529 allocs/op
--- BENCH: BenchmarkAlertInstanceOperations-8
    util.go:127: alert definition: {orgID: 1, UID: 302r_igVzm} with title: "an alert definition q0h9lmR4zz" interval: 60 created
    util.go:127: alert definition: {orgID: 1, UID: 71hrlmR4km} with title: "an alert definition nJ29_mR4zz" interval: 60 created
    util.go:127: alert definition: {orgID: 1, UID: Cahr_mR4zm} with title: "an alert definition ja2rlmg4zz" interval: 60 created
PASS
ok      github.com/grafana/grafana/pkg/services/ngalert/store   1.383s
```

So we cut time by about 75% and memory allocations by about 60% when
storing and deleting 100 instances.
2022-10-06 14:22:58 +08:00
.bingo Chore: Update swagger to v0.30.2 (#55159) 2022-09-14 14:47:19 +00:00
.changelog-archive Changelog: Move to a folder structure for change logs (#50361) 2022-06-08 15:59:47 -05:00
.github Fix update-changelog.yml version input (#56224) 2022-10-04 02:55:13 -04: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 Chore: Fix Debug Jest test command for vscode (#45420) 2022-02-17 14:18:09 +01:00
.yarn Update Storybook updates to v6.5.10 (#49793) 2022-10-03 09:23:47 +02:00
conf Annotation: Optionally allow storing longer annotation tags (#54754) 2022-09-23 06:04:41 -04:00
contribute StyleGuide: Minor fix for themes.md (#56012) 2022-10-05 08:50:39 +02:00
cue.mod Introduce "scuemata" system for CUE-based specification of Grafana objects (#32527) 2021-04-08 01:11:11 -07:00
devenv Glue: Correlations minor APIs behavior improvements (#56078) 2022-10-04 09:39:55 +01:00
docs Fixes alertmanagers whats new entry (#56356) 2022-10-05 08:39:50 +01:00
e2e E2E: Remove time zone scenario flackyness (#55458) 2022-10-05 16:00:33 +03:00
emails Alerting: Preserve new-lines from custom email templates in rendered email (#52253) 2022-07-19 11:05:50 -05:00
grafana-mixin grafana-mixin: Fix GrafanaRequestsFailing alert (#43116) 2021-12-20 15:12:37 +01:00
packages Alerting: Write and Delete multiple alert instances. (#55350) 2022-10-06 14:22:58 +08:00
packaging Alerting: add docs for file provisioning (#53101) 2022-08-17 18:53:36 +02:00
pkg Alerting: Write and Delete multiple alert instances. (#55350) 2022-10-06 14:22:58 +08:00
plugins-bundled Chore: Update versions (#55813) 2022-09-27 14:07:16 +02:00
public Search: fuzzy match dashboard names in frontend from full list (#55721) 2022-10-05 18:32:35 -04:00
scripts Update grabpl version to v3.0.11 (#56377) 2022-10-05 14:18:28 +03:00
tools Image Rendering: Remove PhantomJS support (#23460) 2020-04-15 22:17:41 +02:00
.betterer.results Toolkit: Remove changelog command (already replaced by a github workflow) (#56073) 2022-10-05 14:44:53 +02:00
.betterer.ts Chore: Ignore type assertions in __mocks__ (#53593) 2022-08-11 14:06:15 +00:00
.bra.toml bra: Ignore wildcard generated go files (#51399) 2022-06-24 20:55:49 +02:00
.browserslistrc Babel: Target more modern browsers, updates browserlistrc (#32573) 2021-04-01 10:32:00 +02:00
.dockerignore Add support for local Makefile to docker (#41296) 2021-11-04 11:13:10 -03:00
.drone.star CI: Stop publishing OSS images for security mode (#56088) 2022-10-05 09:39:38 +03:00
.drone.yml Update grabpl version to v3.0.11 (#56377) 2022-10-05 14:18:28 +03: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 enable rule jsx-a11y/iframe-has-title (#56292) 2022-10-04 16:04:28 +01:00
.gitattributes CRLF (#28822) 2020-11-05 17:20:40 +01:00
.gitignore Update Storybook updates to v6.5.10 (#49793) 2022-10-03 09:23:47 +02:00
.golangci.toml Chore: Upgrade Go to 1.19.1 (#54902) 2022-09-12 12:03:49 +02:00
.linguirc I18n: Change locale format to IETF language tag (#52596) 2022-07-22 10:50:00 -04:00
.nvmrc Update Yarn to v3.2.0 (#45714) 2022-03-09 10:10:51 +01:00
.pa11yci-pr.conf.js A11y: Add Dashboard Settings to Pa11y CI and Refactor local a11y report (#54476) 2022-09-12 15:14:45 +02: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 Implementing OpenApi 3 specs (converted from Swagger 2) (#53243) 2022-08-04 13:51:12 -03:00
.prettierrc.js Prettier: Add prettier config that imports prettier from toolkit (#23729) 2020-04-21 17:23:49 +02:00
.yarnrc.yml Update Storybook updates to v6.5.10 (#49793) 2022-10-03 09:23:47 +02: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 ReleaseNotes: Updated changelog and release notes for 9.1.7 (#56323) 2022-10-04 16:56:21 +00: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 Add crowdin config (#53096) 2022-08-02 05:15:37 -04:00
Dockerfile Chore: Upgrade Go to 1.19.1 (#54902) 2022-09-12 12:03:49 +02:00
Dockerfile.ubuntu Chore: Upgrade Go to 1.19.1 (#54902) 2022-09-12 12:03:49 +02:00
embed.go plugins: New static scanner and validator, with Thema slot support (#53754) 2022-08-22 12:11:45 -04:00
go.mod Update github.com/labstack/echo/v4 (#56226) 2022-10-04 14:31:05 +03:00
go.sum Update github.com/labstack/echo/v4 (#56226) 2022-10-04 14:31:05 +03: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 Updated broken links (#43849) 2022-02-15 13:42:21 +00:00
jest.config.js Chore: Upgrade to jest 28 (#49679) 2022-05-30 14:14:34 +01:00
latest.json Chore: update latest.json to 9.1.7 (#56315) 2022-10-04 19:32:13 +03:00
lerna.json Chore: Update versions (#55813) 2022-09-27 14:07:16 +02:00
LICENSE Re-license Grafana to AGPLv3 (#33184) 2021-04-20 19:03:30 +02:00
LICENSING.md Relicense Tempo datasource plugin to Apache 2 (#55866) 2022-09-27 20:53:11 +02:00
MAINTAINERS.md Add Docs maintainers (#51287) 2022-06-22 13:10:30 -07:00
Makefile Chore: Upgrade Go to 1.19.1 (#54902) 2022-09-12 12:03:49 +02: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 Search: fuzzy match dashboard names in frontend from full list (#55721) 2022-10-05 18:32:35 -04:00
PLUGIN_DEV.md Chore: Updated the link to the plugin developer guide docs - it used to point to an old version (#40710) 2021-10-25 12:11:44 +04:00
README.md Update README.md (#45946) 2022-03-02 15:52:45 +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 Update SECURITY.md (#42149) 2021-11-24 14:06:18 +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 Chore: Enable useUnknownInCatchVariables for stricter type checking in catch blocks (#50591) 2022-06-15 08:59:29 +01: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 Search: fuzzy match dashboard names in frontend from full list (#55721) 2022-10-05 18:32:35 -04: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.