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.
Find a file
Rafael Bortolon Paulovic c8ccc27e89
RBAC: Share folder tree getter across BatchCheck groups (#122749)
The RBAC BatchCheck was creating a new folderTreeGetter per action group,
causing redundant folder list calls. With 7 check items grouped into
separate actions, this resulted in 7 folder tree fetches (each listing
all folders via k8s API) per BatchCheck call.

Share a single folder tree getter at the BatchCheck level. When any group
requires fresh data, use a fresh getter and process those groups first so
the fetched tree populates the cache. Non-fresh groups then reuse the
same memoized result. This reduces folder list calls from N (one per
group) to at most 1 per BatchCheck invocation.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 13:16:18 +02:00
.changelog-archive Update dependency prettier to v3.6.2 (#108689) 2025-07-25 17:47:44 +01:00
.citools FeatureFlags: Remove OpenFeature CLI for generating react code (#122335) 2026-04-10 14:08:16 +00:00
.github chore: remove old e2e leftovers (#122774) 2026-04-16 12:37:01 +02:00
.vim Chore: Upgrade yarn and editor sdks (#42847) 2021-12-08 14:40:24 +01:00
.vscode Chore: Move betterer eslint rules to use eslint suppressions (#106267) 2025-09-04 10:47:13 +01:00
.yarn chore(deps): update dependency storybook to v8.6.17 [security] (#120651) 2026-03-19 12:58:01 +01:00
apps Table: Use combobox for multi-frame and add gdev and e2e (#121108) 2026-04-15 11:27:15 -04:00
conf RBAC: Add config option to clean up plugin permissions (#122005) 2026-04-08 09:21:25 +02:00
contribute Feature: Generate typed React hooks from feature flags using OpenFeature CLI (#118867) 2026-04-10 08:50:53 +00:00
cue.mod ci: add validation for cue using new make target and backend check (#121032) 2026-03-25 10:35:49 -06:00
devenv Table: Use combobox for multi-frame and add gdev and e2e (#121108) 2026-04-15 11:27:15 -04:00
docs Docs: fix broken link to GitHub App link in documentation (#122784) 2026-04-16 09:01:17 +00:00
e2e Build: Upgrade TypeScript to 6.0 (#118528) 2026-04-15 16:37:34 +01:00
e2e-playwright Build: Upgrade TypeScript to 6.0 (#118528) 2026-04-15 16:37:34 +01:00
emails Auth: Remove passwordless (magic link) authentication backend implementation (#118881) 2026-03-27 09:19:58 -05:00
grafana-mixin Log Details: Show embedded trace if available (#109926) 2025-08-25 14:06:01 +00:00
hack Go: Update to 1.25.9 (#122094) 2026-04-08 09:38:30 +02:00
kinds Dashboards: Add enableGroupBy field to v1 ad-hoc variable schema and conversions (#121236) 2026-03-31 11:50:21 -04:00
kindsv2 Chore: Remove Bingo as Drone is removed (#110020) 2025-08-22 13:49:44 +02:00
local Packaging: Dockerfile copy local folder (#64766) 2023-03-14 14:44:11 -05:00
packages Dashboard: DashboardCodePane width refactoring and fixes (#122700) 2026-04-16 11:40:40 +02:00
packaging CI: Use docker build without dagger in release-build (#121828) 2026-04-03 10:24:08 +02:00
pkg RBAC: Share folder tree getter across BatchCheck groups (#122749) 2026-04-16 13:16:18 +02:00
public Provisioning: Remove public preview badge (#122588) 2026-04-16 13:38:22 +03:00
scripts Chore: Remove leftover husky pre-commit hook and cleanup scripts (#122787) 2026-04-16 09:53:13 +00:00
tools Alerting: Add alertmanager integration tests (#100106) 2025-02-13 11:36:45 +01:00
.air.toml make: build-go: add trimpath for non-dev, and debug-friendly flags for dev (#120264) 2026-03-13 10:40:45 +01:00
.browserslistrc
.dockerignore CI: Use docker build without dagger in release-build (#121828) 2026-04-03 10:24:08 +02:00
.editorconfig
.gitattributes Chore: Mark more files as generated in gitattributes (#113776) 2025-11-13 09:09:15 +00:00
.gitignore Feature: Generate typed React hooks from feature flags using OpenFeature CLI (#118867) 2026-04-10 08:50:53 +00:00
.golangci.yml Elasticsearch: Remove core datasource (#119956) 2026-03-30 10:49:36 +01:00
.ignore Remove support for Google Spanner database. (#105846) 2025-05-23 11:35:59 +02:00
.levignore.js Adds levitate levignore configuration file to prevent breaking change notifications from expected typescript symbols (#74371) 2023-09-05 15:00:13 +02:00
.madgerc Exclude type only imports circular dependencies check (#120075) 2026-03-12 08:37:48 -04:00
.nvmrc Chore: Update node to v24 (#112649) 2025-10-29 17:17:07 +01:00
.nxignore Alerting/Chore: Mock API (MSW) in browser (#89223) 2024-09-04 10:22:03 +01:00
.policy.yml chore: remove old e2e leftovers (#122774) 2026-04-16 12:37:01 +02:00
.policy.yml.tmpl feat: adopt policy-bot (#121777) 2026-04-07 09:50:37 +02:00
.prettierignore Theme: Regenerate schema and ignore from prettier (#117011) 2026-01-28 15:27:23 +00:00
.prettierrc.js Toolkit: Remove deprecated plugin:build (#67485) 2023-04-28 14:33:16 +02:00
.trivyignore CI: Add Trivy GitHub Action (#88987) 2024-06-10 16:53:48 -04:00
.vale.ini Lint only Markdown files (#101533) 2025-03-04 11:00:35 +00:00
.yarnrc.yml Yarn: Enable global cache (#120578) 2026-03-20 14:11:47 +00:00
AGENTS.md Dashboard: Preserve timezone user-preference when converting V1 → V2 (#122267) 2026-04-15 12:12:09 +02:00
CHANGELOG.md Release: update changelog for main (#122530) 2026-04-14 11:27:53 +00:00
CLAUDE.md agents: add CLAUDE.md (#120503) 2026-03-17 13:10:51 +01:00
CODE_OF_CONDUCT.md Fixing typos (#70487) 2023-06-22 09:43:38 +01:00
CONTRIBUTING.md Update CONTRIBUTING.md (#117033) 2026-01-30 11:17:02 +01:00
crowdin.yml Internationalisation: Mark up @grafana/prometheus package (#105861) 2025-06-12 11:29:33 +01:00
cypress.config.js e2e: improves flakiness and speed (#103533) 2025-04-16 05:21:06 +01:00
Dockerfile Packaging: Fix packaging issues with windows .exe file and Ubuntu image (#122650) 2026-04-15 10:24:27 +02:00
embed.go Core: Remove thema and kindsys dependencies (#84499) 2024-03-21 11:11:29 +01:00
eslint-suppressions.json Datasources: Allow editing data source title (#122053) 2026-04-15 18:26:11 +01:00
eslint.config.js Build: Upgrade TypeScript to 6.0 (#118528) 2026-04-15 16:37:34 +01:00
go.mod chore: update grafana-authlib with new cacheKey signer changes (#122491) 2026-04-14 13:49:34 -07:00
go.sum chore: update grafana-authlib with new cacheKey signer changes (#122491) 2026-04-14 13:49:34 -07:00
go.work Go: Update to 1.25.9 (#122094) 2026-04-08 09:38:30 +02:00
go.work.sum chore: update grafana-authlib with new cacheKey signer changes (#122491) 2026-04-14 13:49:34 -07:00
GOVERNANCE.md Update dependency prettier to v3.6.2 (#108689) 2025-07-25 17:47:44 +01:00
HALL_OF_FAME.md Update HALL_OF_FAME.md (#102267) 2025-03-17 08:25:02 +01:00
i18next.config.ts Add faceted labels filter for time series legend (#119918) 2026-03-12 15:57:58 +01:00
jest.config.codeowner.js Jest/Codeowners: Fix path (#122248) 2026-04-14 13:00:32 +00:00
jest.config.js Elasticsearch: Remove core datasource (#119956) 2026-03-30 10:49:36 +01:00
latest.json Release: Deprecate latest.json and replace with api call to grafana.com (#80537) 2024-01-16 11:19:32 +00:00
lefthook.rc Chore: Fix lefthook not running (#106196) 2025-05-29 11:06:33 +02:00
lefthook.yml Chore: remove betterer command from lefthook (#110600) 2025-09-04 15:16:21 +01:00
lerna.json Release: Bump version to 13.1.0-pre (#122222) 2026-04-09 12:58:20 +02:00
LICENSE Re-license Grafana to AGPLv3 (#33184) 2021-04-20 19:03:30 +02:00
LICENSING.md Actions: Introduce actionlint (#105224) 2025-05-13 08:23:59 +02:00
MAINTAINERS.md Adds johnny as codeowner for alerting docs (#99877) 2025-02-04 13:10:57 +01:00
Makefile Chore: Remove leftover husky pre-commit hook and cleanup scripts (#122787) 2026-04-16 09:53:13 +00: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
nx.json Chore: Disable tui for Nx (#109896) 2025-08-20 10:08:03 +00:00
package.json Build: Upgrade TypeScript to 6.0 (#118528) 2026-04-15 16:37:34 +01:00
playwright.config.ts Dashboard: Graduate Dynamic Dashboards to GA (#121836) 2026-04-03 17:04:02 +03:00
playwright.storybook.config.ts Chore: Add lint rule for consistent type imports (#121336) 2026-03-30 12:44:01 +01:00
project.json Frontend: use custom conditions for development and build (#111685) 2025-12-18 11:47:38 +01:00
README.md add feedback survey to contributing related docs (#113168) 2025-10-30 09:36:44 +01:00
relyance.yaml Add Relyance github action (#107012) 2025-07-11 08:44:47 +02: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
stylelint.config.js Update dependency stylelint to v16 (#83252) 2024-02-23 11:56:38 +02: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 Build: Upgrade TypeScript to 6.0 (#118528) 2026-04-15 16:37:34 +01:00
WORKFLOW.md Minor correction done in WORKFLOW.md (#80505) 2024-04-12 17:56:10 +02:00
yarn.lock Build(deps): Bump axios from 1.13.5 to 1.15.0 (#122724) 2026-04-16 08:22:17 +02:00

Grafana Logo (Light) Grafana Logo (Dark)

The open-source platform for monitoring and observability

License 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:

Share your contributor experience in our feedback survey to help us improve.

Get involved

This project is tested with BrowserStack.

License

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