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
George Robinson 19ebb079ba
Alerting: Add limits and filters to Prometheus Rules API (#66627)
This commit adds support for limits and filters to the Prometheus Rules
API.

Limits:

It adds a number of limits to the Grafana flavour of the Prometheus Rules
API:

- `limit` limits the maximum number of Rule Groups returned
- `limit_rules` limits the maximum number of rules per Rule Group
- `limit_alerts` limits the maximum number of alerts per rule

It sorts Rule Groups and rules within Rule Groups such that data in the
response is stable across requests. It also returns summaries (totals)
for all Rule Groups, individual Rule Groups and rules.

Filters:

Alerts can be filtered by state with the `state` query string. An example
of an HTTP request asking for just firing alerts might be
`/api/prometheus/grafana/api/v1/rules?state=alerting`.

A request can filter by two or more states by adding additional `state`
query strings to the URL. For example `?state=alerting&state=normal`.

Like the alert list panel, the `firing`, `pending` and `normal` state are
first compared against the state of each alert rule. All other states are
ignored. If the alert rule matches then its alert instances are filtered
against states once more.

Alerts can also be filtered by labels using the `matcher` query string.
Like `state`, multiple matchers can be provided by adding additional
`matcher` query strings to the URL.

The match expression should be parsed using existing regular expression
and sent to the API as URL-encoded JSON in the format:

{
    "name": "test",
    "value": "value1",
    "isRegex": false,
    "isEqual": true
}

The `isRegex` and `isEqual` options work as follows:

| IsEqual | IsRegex  | Operator |
| ------- | -------- | -------- |
| true    | false    |    =     |
| true    | true     |    =~    |
| false   | true     |    !~    |
| false   | false    |    !=    |
2023-04-17 17:45:06 +01:00
.bingo Chore: Update Cuetsy to v0.1.8 version (#66456) 2023-04-14 16:45:54 +02:00
.changelog-archive Changelog: Move to a folder structure for change logs (#50361) 2022-06-08 15:59:47 -05:00
.github Use headings in bug report template (#65429) 2023-04-17 11:56:34 +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 Chore: Upgrade to react 18 (#64428) 2023-04-11 10:51:54 +01:00
conf SQL Datasources: Update Max Connection and Max Idle Connection Defaults to 100 and add auto mode (#65834) 2023-04-17 11:44:05 +03:00
contribute Docs: updated emotion's cx link (#66180) 2023-04-11 12:20:11 +02:00
cue.mod Introduce "scuemata" system for CUE-based specification of Grafana objects (#32527) 2021-04-08 01:11:11 -07:00
devenv Devenv: Create new Elasticsearch dashboards for data in data source (#65930) 2023-04-05 14:43:19 +02:00
docs removed duplicate query data source section (#66605) 2023-04-17 06:36:30 -07:00
e2e Chore: Update @grafana/e2e (#66365) 2023-04-14 17:46:49 +01:00
emails Chore: Update emails README (#66173) 2023-04-09 18:20:01 +00:00
grafana-mixin many-to-one requires explicit grouping (#58174) 2023-02-21 11:00:48 +01:00
kinds Chore: Update times in dashboards (#65179) 2023-03-22 15:57:44 +01:00
local Packaging: Dockerfile copy local folder (#64766) 2023-03-14 14:44:11 -05:00
packages TimePicker: Fixes issues with "Recently used absolute ranges" section (#66281) 2023-04-17 17:19:44 +02:00
packaging Packaging: Start Grafana service after InfluxDB (#64090) 2023-03-08 12:47:11 -05:00
pkg Alerting: Add limits and filters to Prometheus Rules API (#66627) 2023-04-17 17:45:06 +01:00
plugins-bundled Chore: Remove deprecated dashboardId from panel query runner (#64786) 2023-04-14 16:50:10 -07:00
public AnnotationList: Fix panel not updating when variable is changed (#65899) 2023-04-17 17:20:05 +02:00
scripts Chore: Try a different way to run integration tests (#66653) 2023-04-17 18:33:43 +02:00
tools Image Rendering: Remove PhantomJS support (#23460) 2020-04-15 22:17:41 +02:00
.betterer.results Chore: remove localStorage mock which doesn't work in node v18.16.0 (#66671) 2023-04-17 14:40:32 +01:00
.betterer.ts Storybook: update Alert story (#63959) 2023-03-30 18:11:30 +02:00
.bra.toml Chore: Remove redundant codegen step from .bra.tom (#62764) 2023-02-02 14:53:54 +01: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: Move release integration pipeline to standalone promotion pipeline (#65787) 2023-04-03 12:43:37 +02:00
.drone.yml Chore: Try a different way to run integration tests (#66653) 2023-04-17 18:33:43 +02: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 Alerting: QoL improvements to the unified alerting multi-replica devenv (#64907) 2023-03-17 07:14:31 +00:00
.golangci.toml switch from github.com/gofrs/uuid to github.com/google/uuid (#65016) 2023-03-21 06:31:29 -04: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 Connections: Turn on feature toggle by default (#64885) 2023-03-22 08:25:35 +01: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 Swagger: Fix circular reference (#62673) 2023-02-02 13:18:04 +02:00
.prettierrc.js Prettier: Add prettier config that imports prettier from toolkit (#23729) 2020-04-21 17:23:49 +02:00
.yarnrc.yml Update Yarn to v3.4.1 (#62894) 2023-02-07 10:42:28 +00:00
babel.config.json Revert: Babel removal and runtime update (#63641) 2023-02-23 09:22:35 -05: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.4.7 (#65292) 2023-03-23 17:41:49 +00:00
CODE_OF_CONDUCT.md Docs: Refactor inconsistent unordered lists (#27826) 2020-10-02 11:02:11 -07:00
CONTRIBUTING.md Docs: Correct contributing.md i18n message (#66103) 2023-04-06 18:42:40 +02:00
crowdin.yml I18n: Update crowdin config and codeowners (#57264) 2022-10-20 14:59:02 +01:00
Dockerfile Chore: Upgrade Go to 1.20.3 (#66264) 2023-04-14 10:01:14 +02:00
embed.go extract kindsys to external library (#64562) 2023-03-15 12:04:28 -04:00
go.mod Chore: Update Cuetsy to v0.1.8 version (#66456) 2023-04-14 16:45:54 +02:00
go.sum Chore: Update Cuetsy to v0.1.8 version (#66456) 2023-04-14 16:45:54 +02:00
GOVERNANCE.md Governance: Update workplace (#63997) 2023-04-03 13:54:54 +02: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 TimePicker: Fixes issues with "Recently used absolute ranges" section (#66281) 2023-04-17 17:19:44 +02:00
latest.json Chore: update latest.json to 9.4.7 (#65211) 2023-03-22 17:00:42 +00:00
lerna.json Prometheus: Show initial hint on builder mode when metric lookup disabled (#65827) 2023-04-12 17:22:35 +02:00
LICENSE Re-license Grafana to AGPLv3 (#33184) 2021-04-20 19:03:30 +02:00
LICENSING.md Explore: Refactor trace view and move to core (#61938) 2023-01-27 14:13:17 +00:00
MAINTAINERS.md Add Docs maintainers (#51287) 2022-06-22 13:10:30 -07:00
Makefile Chore: Try a different way to run integration tests (#66653) 2023-04-17 18:33:43 +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 Chore: upgrade our version of rc-cascader (#66668) 2023-04-17 13:45:18 +01: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 Explore: Refactor trace view and move to core (#61938) 2023-01-27 14:13:17 +00: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 Chore: upgrade our version of rc-cascader (#66668) 2023-04-17 13:45:18 +01: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.