Compare commits

..

133 Commits

Author SHA1 Message Date
Develer
aa02c68764 Expressions: Distinguish SQL creation vs navigation tracking 2025-11-24 16:10:57 +01:00
Matheus Macabu
0c965a9cb1 CloudMigrations: Remove feature toggle and introduce config setting to disable it (#114223)
Some checks failed
Frontend performance tests / performance-tests (push) Has been cancelled
Actionlint / Lint GitHub Actions files (push) Has been cancelled
Backend Code Checks / Detect whether code changed (push) Has been cancelled
Backend Code Checks / Validate Backend Configs (push) Has been cancelled
Backend Unit Tests / Detect whether code changed (push) Has been cancelled
Backend Unit Tests / Grafana (1/8) (push) Has been cancelled
Backend Unit Tests / Grafana (2/8) (push) Has been cancelled
Backend Unit Tests / Grafana (3/8) (push) Has been cancelled
Backend Unit Tests / Grafana (4/8) (push) Has been cancelled
Backend Unit Tests / Grafana (5/8) (push) Has been cancelled
Backend Unit Tests / Grafana (6/8) (push) Has been cancelled
Backend Unit Tests / Grafana (7/8) (push) Has been cancelled
Backend Unit Tests / Grafana (8/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (1/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (2/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (3/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (4/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (5/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (6/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (7/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (8/8) (push) Has been cancelled
Backend Unit Tests / All backend unit tests complete (push) Has been cancelled
CodeQL checks / Detect whether code changed (push) Has been cancelled
CodeQL checks / Analyze (actions) (push) Has been cancelled
CodeQL checks / Analyze (go) (push) Has been cancelled
CodeQL checks / Analyze (javascript) (push) Has been cancelled
Lint Frontend / Detect whether code changed (push) Has been cancelled
Lint Frontend / Lint (push) Has been cancelled
Lint Frontend / Typecheck (push) Has been cancelled
Lint Frontend / Verify API clients (push) Has been cancelled
Lint Frontend / Verify API clients (enterprise) (push) Has been cancelled
golangci-lint / Detect whether code changed (push) Has been cancelled
golangci-lint / go-fmt (push) Has been cancelled
golangci-lint / lint-go (push) Has been cancelled
Verify i18n / verify-i18n (push) Has been cancelled
Documentation / Build & Verify Docs (push) Has been cancelled
End-to-end tests / Detect whether code changed (push) Has been cancelled
End-to-end tests / Build & Package Grafana (push) Has been cancelled
End-to-end tests / Build E2E test runner (push) Has been cancelled
End-to-end tests / push-docker-image (push) Has been cancelled
End-to-end tests / dashboards-suite (old arch) (push) Has been cancelled
End-to-end tests / panels-suite (old arch) (push) Has been cancelled
End-to-end tests / smoke-tests-suite (old arch) (push) Has been cancelled
End-to-end tests / various-suite (old arch) (push) Has been cancelled
End-to-end tests / Verify Storybook (Playwright) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (1/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (2/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (3/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (4/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (5/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (6/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (7/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (8/8) (push) Has been cancelled
End-to-end tests / run-azure-monitor-e2e (push) Has been cancelled
End-to-end tests / All Playwright tests complete (push) Has been cancelled
End-to-end tests / A11y test (push) Has been cancelled
End-to-end tests / Publish metrics (push) Has been cancelled
End-to-end tests / All E2E tests complete (push) Has been cancelled
Frontend tests / Detect whether code changed (push) Has been cancelled
Frontend tests / Unit tests (1 / 16) (push) Has been cancelled
Frontend tests / Unit tests (10 / 16) (push) Has been cancelled
Frontend tests / Unit tests (11 / 16) (push) Has been cancelled
Frontend tests / Unit tests (12 / 16) (push) Has been cancelled
Frontend tests / Unit tests (13 / 16) (push) Has been cancelled
Frontend tests / Unit tests (14 / 16) (push) Has been cancelled
Frontend tests / Unit tests (15 / 16) (push) Has been cancelled
Frontend tests / Unit tests (16 / 16) (push) Has been cancelled
Frontend tests / Unit tests (2 / 16) (push) Has been cancelled
Frontend tests / Unit tests (3 / 16) (push) Has been cancelled
Frontend tests / Unit tests (4 / 16) (push) Has been cancelled
Frontend tests / Unit tests (5 / 16) (push) Has been cancelled
Frontend tests / Unit tests (6 / 16) (push) Has been cancelled
Frontend tests / Unit tests (7 / 16) (push) Has been cancelled
Frontend tests / Unit tests (8 / 16) (push) Has been cancelled
Frontend tests / Unit tests (9 / 16) (push) Has been cancelled
Frontend tests / Decoupled plugin tests (push) Has been cancelled
Frontend tests / Packages unit tests (push) Has been cancelled
Frontend tests / All frontend unit tests complete (push) Has been cancelled
Frontend tests / Devenv frontend-service build (push) Has been cancelled
Integration Tests / Detect whether code changed (push) Has been cancelled
Integration Tests / Sqlite (1/4) (push) Has been cancelled
Integration Tests / Sqlite (2/4) (push) Has been cancelled
Integration Tests / Sqlite (3/4) (push) Has been cancelled
Integration Tests / Sqlite (4/4) (push) Has been cancelled
Integration Tests / Sqlite Without CGo (1/4) (push) Has been cancelled
Integration Tests / Sqlite Without CGo (2/4) (push) Has been cancelled
Integration Tests / Sqlite Without CGo (3/4) (push) Has been cancelled
Integration Tests / Sqlite Without CGo (4/4) (push) Has been cancelled
Integration Tests / Sqlite Without CGo (profiled) (push) Has been cancelled
Integration Tests / MySQL (1/16) (push) Has been cancelled
Integration Tests / MySQL (10/16) (push) Has been cancelled
Integration Tests / MySQL (11/16) (push) Has been cancelled
Integration Tests / MySQL (12/16) (push) Has been cancelled
Integration Tests / MySQL (13/16) (push) Has been cancelled
Integration Tests / MySQL (14/16) (push) Has been cancelled
Integration Tests / MySQL (15/16) (push) Has been cancelled
Integration Tests / MySQL (16/16) (push) Has been cancelled
Integration Tests / MySQL (2/16) (push) Has been cancelled
Integration Tests / MySQL (3/16) (push) Has been cancelled
Integration Tests / MySQL (4/16) (push) Has been cancelled
Integration Tests / MySQL (5/16) (push) Has been cancelled
Integration Tests / MySQL (6/16) (push) Has been cancelled
Integration Tests / MySQL (7/16) (push) Has been cancelled
Integration Tests / MySQL (8/16) (push) Has been cancelled
Integration Tests / MySQL (9/16) (push) Has been cancelled
Integration Tests / Postgres (1/16) (push) Has been cancelled
Integration Tests / Postgres (10/16) (push) Has been cancelled
Integration Tests / Postgres (11/16) (push) Has been cancelled
Integration Tests / Postgres (12/16) (push) Has been cancelled
Integration Tests / Postgres (13/16) (push) Has been cancelled
Integration Tests / Postgres (14/16) (push) Has been cancelled
Integration Tests / Postgres (15/16) (push) Has been cancelled
Integration Tests / Postgres (16/16) (push) Has been cancelled
Integration Tests / Postgres (2/16) (push) Has been cancelled
Integration Tests / Postgres (3/16) (push) Has been cancelled
Integration Tests / Postgres (4/16) (push) Has been cancelled
Integration Tests / Postgres (5/16) (push) Has been cancelled
Integration Tests / Postgres (6/16) (push) Has been cancelled
Integration Tests / Postgres (7/16) (push) Has been cancelled
Integration Tests / Postgres (8/16) (push) Has been cancelled
Integration Tests / Postgres (9/16) (push) Has been cancelled
Integration Tests / All backend integration tests complete (push) Has been cancelled
publish-technical-documentation-next / sync (push) Has been cancelled
Reject GitHub secrets / reject-gh-secrets (push) Has been cancelled
Build Release Packages / setup (push) Has been cancelled
Build Release Packages / Dispatch grafana-enterprise build (push) Has been cancelled
Build Release Packages / / darwin-amd64 (push) Has been cancelled
Build Release Packages / / darwin-arm64 (push) Has been cancelled
Build Release Packages / / linux-amd64 (push) Has been cancelled
Build Release Packages / / linux-armv6 (push) Has been cancelled
Build Release Packages / / linux-armv7 (push) Has been cancelled
Build Release Packages / / linux-arm64 (push) Has been cancelled
Build Release Packages / / linux-s390x (push) Has been cancelled
Build Release Packages / / windows-amd64 (push) Has been cancelled
Build Release Packages / / windows-arm64 (push) Has been cancelled
Build Release Packages / Upload artifacts (push) Has been cancelled
Build Release Packages / publish-dockerhub (push) Has been cancelled
Build Release Packages / Dispatch publish NPM canaries (push) Has been cancelled
Build Release Packages / notify-pr (push) Has been cancelled
Run dashboard schema v2 e2e / dashboard-schema-v2-e2e (push) Has been cancelled
Shellcheck / Shellcheck scripts (push) Has been cancelled
Run Storybook a11y tests / Detect whether code changed (push) Has been cancelled
Run Storybook a11y tests / Run Storybook a11y tests (light theme) (push) Has been cancelled
Run Storybook a11y tests / Run Storybook a11y tests (dark theme) (push) Has been cancelled
Swagger generated code / Detect whether code changed (push) Has been cancelled
Swagger generated code / Verify committed API specs match (push) Has been cancelled
Dispatch sync to mirror / dispatch-job (push) Has been cancelled
trigger-dashboard-search-e2e / trigger-search-e2e (push) Has been cancelled
Trivy Scan / trivy-scan (push) Has been cancelled
2025-11-24 14:15:23 +01:00
Mustafa Sencer Özcan
2f6836e78a fix: make graceful handle default for the malformed dashboard jsons during unified migration (#114295)
* fix: graceful handling by default

* fix: make fallback the default behavior
2025-11-24 14:12:52 +01:00
Alexander Akhmetov
67ad43a784 Alerting: Fix rules API pagination when using in-memory filters (#114334) 2025-11-24 12:48:22 +01:00
Konrad Lalik
01a4a5409a Alerting: Add alertingUIUseFullyCompatBackendFilters feature toggle (#114153)
* Add alertingUIUseFullyCompatBackendFilters for fully compatible backend filters

* Remove hide from admin flag
2025-11-24 12:42:09 +01:00
Matheus Macabu
b5335d9357 Alerting: Remove dependency on yaml/v2 package (#114348) 2025-11-24 12:38:44 +01:00
Andre Pereira
4e228cab00 Trace View: UI improvements (#114156)
* Fix unclear child span relationship

* Trace view UI improvements

* Fix tests
2025-11-24 11:15:03 +00:00
Mustafa Sencer Özcan
bca58f5626 feat: add folder tree validation for unified data migration (#114342)
* fix: add validator

* fix: revert startup index
2025-11-24 11:02:14 +01:00
Zoltán Bedi
8d75d79313 PostgreSQL: Remove feature toggle postgresDSUsePGX (#113675)
* PostgreSQL: Remove feature toggle `postgresDSUsePGX`

* Fix tests and linting

* Address review comments
2025-11-24 10:26:41 +01:00
Hugo Häggmark
39dc659ad8 chore: reduce Azure barrel files (#114297)
Some checks failed
Frontend performance tests / performance-tests (push) Has been cancelled
Actionlint / Lint GitHub Actions files (push) Has been cancelled
Backend Code Checks / Detect whether code changed (push) Has been cancelled
Backend Code Checks / Validate Backend Configs (push) Has been cancelled
Backend Unit Tests / Detect whether code changed (push) Has been cancelled
Backend Unit Tests / Grafana (1/8) (push) Has been cancelled
Backend Unit Tests / Grafana (2/8) (push) Has been cancelled
Backend Unit Tests / Grafana (3/8) (push) Has been cancelled
Backend Unit Tests / Grafana (4/8) (push) Has been cancelled
Backend Unit Tests / Grafana (5/8) (push) Has been cancelled
Backend Unit Tests / Grafana (6/8) (push) Has been cancelled
Backend Unit Tests / Grafana (7/8) (push) Has been cancelled
Backend Unit Tests / Grafana (8/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (1/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (2/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (3/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (4/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (5/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (6/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (7/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (8/8) (push) Has been cancelled
Backend Unit Tests / All backend unit tests complete (push) Has been cancelled
CodeQL checks / Detect whether code changed (push) Has been cancelled
CodeQL checks / Analyze (actions) (push) Has been cancelled
CodeQL checks / Analyze (go) (push) Has been cancelled
CodeQL checks / Analyze (javascript) (push) Has been cancelled
Lint Frontend / Detect whether code changed (push) Has been cancelled
Lint Frontend / Lint (push) Has been cancelled
Lint Frontend / Typecheck (push) Has been cancelled
Lint Frontend / Verify API clients (push) Has been cancelled
Lint Frontend / Verify API clients (enterprise) (push) Has been cancelled
Verify i18n / verify-i18n (push) Has been cancelled
End-to-end tests / Detect whether code changed (push) Has been cancelled
End-to-end tests / Build & Package Grafana (push) Has been cancelled
End-to-end tests / Build E2E test runner (push) Has been cancelled
End-to-end tests / push-docker-image (push) Has been cancelled
End-to-end tests / dashboards-suite (old arch) (push) Has been cancelled
End-to-end tests / panels-suite (old arch) (push) Has been cancelled
End-to-end tests / smoke-tests-suite (old arch) (push) Has been cancelled
End-to-end tests / various-suite (old arch) (push) Has been cancelled
End-to-end tests / Verify Storybook (Playwright) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (1/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (2/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (3/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (4/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (5/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (6/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (7/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (8/8) (push) Has been cancelled
End-to-end tests / run-azure-monitor-e2e (push) Has been cancelled
End-to-end tests / All Playwright tests complete (push) Has been cancelled
End-to-end tests / A11y test (push) Has been cancelled
End-to-end tests / Publish metrics (push) Has been cancelled
End-to-end tests / All E2E tests complete (push) Has been cancelled
Frontend tests / Detect whether code changed (push) Has been cancelled
Frontend tests / Unit tests (1 / 16) (push) Has been cancelled
Frontend tests / Unit tests (10 / 16) (push) Has been cancelled
Frontend tests / Unit tests (11 / 16) (push) Has been cancelled
Frontend tests / Unit tests (12 / 16) (push) Has been cancelled
Frontend tests / Unit tests (13 / 16) (push) Has been cancelled
Frontend tests / Unit tests (14 / 16) (push) Has been cancelled
Frontend tests / Unit tests (15 / 16) (push) Has been cancelled
Frontend tests / Unit tests (16 / 16) (push) Has been cancelled
Frontend tests / Unit tests (2 / 16) (push) Has been cancelled
Frontend tests / Unit tests (3 / 16) (push) Has been cancelled
Frontend tests / Unit tests (4 / 16) (push) Has been cancelled
Frontend tests / Unit tests (5 / 16) (push) Has been cancelled
Frontend tests / Unit tests (6 / 16) (push) Has been cancelled
Frontend tests / Unit tests (7 / 16) (push) Has been cancelled
Frontend tests / Unit tests (8 / 16) (push) Has been cancelled
Frontend tests / Unit tests (9 / 16) (push) Has been cancelled
Frontend tests / Decoupled plugin tests (push) Has been cancelled
Frontend tests / Packages unit tests (push) Has been cancelled
Frontend tests / All frontend unit tests complete (push) Has been cancelled
Frontend tests / Devenv frontend-service build (push) Has been cancelled
Integration Tests / Detect whether code changed (push) Has been cancelled
Integration Tests / Sqlite (1/4) (push) Has been cancelled
Integration Tests / Sqlite (2/4) (push) Has been cancelled
Integration Tests / Sqlite (3/4) (push) Has been cancelled
Integration Tests / Sqlite (4/4) (push) Has been cancelled
Integration Tests / Sqlite Without CGo (1/4) (push) Has been cancelled
Integration Tests / Sqlite Without CGo (2/4) (push) Has been cancelled
Integration Tests / Sqlite Without CGo (3/4) (push) Has been cancelled
Integration Tests / Sqlite Without CGo (4/4) (push) Has been cancelled
Integration Tests / Sqlite Without CGo (profiled) (push) Has been cancelled
Integration Tests / MySQL (1/16) (push) Has been cancelled
Integration Tests / MySQL (10/16) (push) Has been cancelled
Integration Tests / MySQL (11/16) (push) Has been cancelled
Integration Tests / MySQL (12/16) (push) Has been cancelled
Integration Tests / MySQL (13/16) (push) Has been cancelled
Integration Tests / MySQL (14/16) (push) Has been cancelled
Integration Tests / MySQL (15/16) (push) Has been cancelled
Integration Tests / MySQL (16/16) (push) Has been cancelled
Integration Tests / MySQL (2/16) (push) Has been cancelled
Integration Tests / MySQL (3/16) (push) Has been cancelled
Integration Tests / MySQL (4/16) (push) Has been cancelled
Integration Tests / MySQL (5/16) (push) Has been cancelled
Integration Tests / MySQL (6/16) (push) Has been cancelled
Integration Tests / MySQL (7/16) (push) Has been cancelled
Integration Tests / MySQL (8/16) (push) Has been cancelled
Integration Tests / MySQL (9/16) (push) Has been cancelled
Integration Tests / Postgres (1/16) (push) Has been cancelled
Integration Tests / Postgres (10/16) (push) Has been cancelled
Integration Tests / Postgres (11/16) (push) Has been cancelled
Integration Tests / Postgres (12/16) (push) Has been cancelled
Integration Tests / Postgres (13/16) (push) Has been cancelled
Integration Tests / Postgres (14/16) (push) Has been cancelled
Integration Tests / Postgres (15/16) (push) Has been cancelled
Integration Tests / Postgres (16/16) (push) Has been cancelled
Integration Tests / Postgres (2/16) (push) Has been cancelled
Integration Tests / Postgres (3/16) (push) Has been cancelled
Integration Tests / Postgres (4/16) (push) Has been cancelled
Integration Tests / Postgres (5/16) (push) Has been cancelled
Integration Tests / Postgres (6/16) (push) Has been cancelled
Integration Tests / Postgres (7/16) (push) Has been cancelled
Integration Tests / Postgres (8/16) (push) Has been cancelled
Integration Tests / Postgres (9/16) (push) Has been cancelled
Integration Tests / All backend integration tests complete (push) Has been cancelled
Reject GitHub secrets / reject-gh-secrets (push) Has been cancelled
Build Release Packages / setup (push) Has been cancelled
Build Release Packages / Dispatch grafana-enterprise build (push) Has been cancelled
Build Release Packages / / darwin-amd64 (push) Has been cancelled
Build Release Packages / / darwin-arm64 (push) Has been cancelled
Build Release Packages / / linux-amd64 (push) Has been cancelled
Build Release Packages / / linux-armv6 (push) Has been cancelled
Build Release Packages / / linux-armv7 (push) Has been cancelled
Build Release Packages / / linux-arm64 (push) Has been cancelled
Build Release Packages / / linux-s390x (push) Has been cancelled
Build Release Packages / / windows-amd64 (push) Has been cancelled
Build Release Packages / / windows-arm64 (push) Has been cancelled
Build Release Packages / Upload artifacts (push) Has been cancelled
Build Release Packages / publish-dockerhub (push) Has been cancelled
Build Release Packages / Dispatch publish NPM canaries (push) Has been cancelled
Build Release Packages / notify-pr (push) Has been cancelled
Run dashboard schema v2 e2e / dashboard-schema-v2-e2e (push) Has been cancelled
Shellcheck / Shellcheck scripts (push) Has been cancelled
Run Storybook a11y tests / Detect whether code changed (push) Has been cancelled
Run Storybook a11y tests / Run Storybook a11y tests (light theme) (push) Has been cancelled
Run Storybook a11y tests / Run Storybook a11y tests (dark theme) (push) Has been cancelled
Swagger generated code / Detect whether code changed (push) Has been cancelled
Swagger generated code / Verify committed API specs match (push) Has been cancelled
Dispatch sync to mirror / dispatch-job (push) Has been cancelled
Update `make docs` procedure / main (push) Has been cancelled
Clean up orphaned branches / cleanup-branches (push) Has been cancelled
2025-11-24 06:03:45 +01:00
grafana-pr-automation[bot]
4b0d6a2e1a I18n: Download translations from Crowdin (#114332)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-24 00:32:34 +00:00
Adela Almasan
2ee9561920 Chore: Fix panels smoke test (#113187)
Some checks failed
Frontend performance tests / performance-tests (push) Has been cancelled
Actionlint / Lint GitHub Actions files (push) Has been cancelled
Backend Code Checks / Detect whether code changed (push) Has been cancelled
Backend Code Checks / Validate Backend Configs (push) Has been cancelled
Backend Unit Tests / Detect whether code changed (push) Has been cancelled
Backend Unit Tests / Grafana (1/8) (push) Has been cancelled
Backend Unit Tests / Grafana (2/8) (push) Has been cancelled
Backend Unit Tests / Grafana (3/8) (push) Has been cancelled
Backend Unit Tests / Grafana (4/8) (push) Has been cancelled
Backend Unit Tests / Grafana (5/8) (push) Has been cancelled
Backend Unit Tests / Grafana (6/8) (push) Has been cancelled
Backend Unit Tests / Grafana (7/8) (push) Has been cancelled
Backend Unit Tests / Grafana (8/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (1/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (2/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (3/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (4/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (5/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (6/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (7/8) (push) Has been cancelled
Backend Unit Tests / Grafana Enterprise (8/8) (push) Has been cancelled
Backend Unit Tests / All backend unit tests complete (push) Has been cancelled
CodeQL checks / Detect whether code changed (push) Has been cancelled
CodeQL checks / Analyze (actions) (push) Has been cancelled
CodeQL checks / Analyze (go) (push) Has been cancelled
CodeQL checks / Analyze (javascript) (push) Has been cancelled
Lint Frontend / Detect whether code changed (push) Has been cancelled
Lint Frontend / Lint (push) Has been cancelled
Lint Frontend / Typecheck (push) Has been cancelled
Lint Frontend / Verify API clients (push) Has been cancelled
Lint Frontend / Verify API clients (enterprise) (push) Has been cancelled
golangci-lint / Detect whether code changed (push) Has been cancelled
golangci-lint / go-fmt (push) Has been cancelled
golangci-lint / lint-go (push) Has been cancelled
Crowdin Upload Action / upload-sources-to-crowdin (push) Has been cancelled
Verify i18n / verify-i18n (push) Has been cancelled
Documentation / Build & Verify Docs (push) Has been cancelled
End-to-end tests / Detect whether code changed (push) Has been cancelled
End-to-end tests / Build & Package Grafana (push) Has been cancelled
End-to-end tests / Build E2E test runner (push) Has been cancelled
End-to-end tests / push-docker-image (push) Has been cancelled
End-to-end tests / dashboards-suite (old arch) (push) Has been cancelled
End-to-end tests / panels-suite (old arch) (push) Has been cancelled
End-to-end tests / smoke-tests-suite (old arch) (push) Has been cancelled
End-to-end tests / various-suite (old arch) (push) Has been cancelled
End-to-end tests / Verify Storybook (Playwright) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (1/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (2/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (3/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (4/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (5/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (6/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (7/8) (push) Has been cancelled
End-to-end tests / Playwright E2E tests (8/8) (push) Has been cancelled
End-to-end tests / run-azure-monitor-e2e (push) Has been cancelled
End-to-end tests / All Playwright tests complete (push) Has been cancelled
End-to-end tests / A11y test (push) Has been cancelled
End-to-end tests / Publish metrics (push) Has been cancelled
End-to-end tests / All E2E tests complete (push) Has been cancelled
Frontend tests / Detect whether code changed (push) Has been cancelled
Frontend tests / Unit tests (1 / 16) (push) Has been cancelled
Frontend tests / Unit tests (10 / 16) (push) Has been cancelled
Frontend tests / Unit tests (11 / 16) (push) Has been cancelled
Frontend tests / Unit tests (12 / 16) (push) Has been cancelled
Frontend tests / Unit tests (13 / 16) (push) Has been cancelled
Frontend tests / Unit tests (14 / 16) (push) Has been cancelled
Frontend tests / Unit tests (15 / 16) (push) Has been cancelled
Frontend tests / Unit tests (16 / 16) (push) Has been cancelled
Frontend tests / Unit tests (2 / 16) (push) Has been cancelled
Frontend tests / Unit tests (3 / 16) (push) Has been cancelled
Frontend tests / Unit tests (4 / 16) (push) Has been cancelled
Frontend tests / Unit tests (5 / 16) (push) Has been cancelled
Frontend tests / Unit tests (6 / 16) (push) Has been cancelled
Frontend tests / Unit tests (7 / 16) (push) Has been cancelled
Frontend tests / Unit tests (8 / 16) (push) Has been cancelled
Frontend tests / Unit tests (9 / 16) (push) Has been cancelled
Frontend tests / Decoupled plugin tests (push) Has been cancelled
Frontend tests / Packages unit tests (push) Has been cancelled
Frontend tests / All frontend unit tests complete (push) Has been cancelled
Frontend tests / Devenv frontend-service build (push) Has been cancelled
Integration Tests / Detect whether code changed (push) Has been cancelled
Integration Tests / Sqlite (1/4) (push) Has been cancelled
Integration Tests / Sqlite (2/4) (push) Has been cancelled
Integration Tests / Sqlite (3/4) (push) Has been cancelled
Integration Tests / Sqlite (4/4) (push) Has been cancelled
Integration Tests / Sqlite Without CGo (1/4) (push) Has been cancelled
Integration Tests / Sqlite Without CGo (2/4) (push) Has been cancelled
Integration Tests / Sqlite Without CGo (3/4) (push) Has been cancelled
Integration Tests / Sqlite Without CGo (4/4) (push) Has been cancelled
Integration Tests / Sqlite Without CGo (profiled) (push) Has been cancelled
Integration Tests / MySQL (1/16) (push) Has been cancelled
Integration Tests / MySQL (10/16) (push) Has been cancelled
Integration Tests / MySQL (11/16) (push) Has been cancelled
Integration Tests / MySQL (12/16) (push) Has been cancelled
Integration Tests / MySQL (13/16) (push) Has been cancelled
Integration Tests / MySQL (14/16) (push) Has been cancelled
Integration Tests / MySQL (15/16) (push) Has been cancelled
Integration Tests / MySQL (16/16) (push) Has been cancelled
Integration Tests / MySQL (2/16) (push) Has been cancelled
Integration Tests / MySQL (3/16) (push) Has been cancelled
Integration Tests / MySQL (4/16) (push) Has been cancelled
Integration Tests / MySQL (5/16) (push) Has been cancelled
Integration Tests / MySQL (6/16) (push) Has been cancelled
Integration Tests / MySQL (7/16) (push) Has been cancelled
Integration Tests / MySQL (8/16) (push) Has been cancelled
Integration Tests / MySQL (9/16) (push) Has been cancelled
Integration Tests / Postgres (1/16) (push) Has been cancelled
Integration Tests / Postgres (10/16) (push) Has been cancelled
Integration Tests / Postgres (11/16) (push) Has been cancelled
Integration Tests / Postgres (12/16) (push) Has been cancelled
Integration Tests / Postgres (13/16) (push) Has been cancelled
Integration Tests / Postgres (14/16) (push) Has been cancelled
Integration Tests / Postgres (15/16) (push) Has been cancelled
Integration Tests / Postgres (16/16) (push) Has been cancelled
Integration Tests / Postgres (2/16) (push) Has been cancelled
Integration Tests / Postgres (3/16) (push) Has been cancelled
Integration Tests / Postgres (4/16) (push) Has been cancelled
Integration Tests / Postgres (5/16) (push) Has been cancelled
Integration Tests / Postgres (6/16) (push) Has been cancelled
Integration Tests / Postgres (7/16) (push) Has been cancelled
Integration Tests / Postgres (8/16) (push) Has been cancelled
Integration Tests / Postgres (9/16) (push) Has been cancelled
Integration Tests / All backend integration tests complete (push) Has been cancelled
publish-kinds-next / main (push) Has been cancelled
publish-technical-documentation-next / sync (push) Has been cancelled
Reject GitHub secrets / reject-gh-secrets (push) Has been cancelled
Build Release Packages / setup (push) Has been cancelled
Build Release Packages / Dispatch grafana-enterprise build (push) Has been cancelled
Build Release Packages / / darwin-amd64 (push) Has been cancelled
Build Release Packages / / darwin-arm64 (push) Has been cancelled
Build Release Packages / / linux-amd64 (push) Has been cancelled
Build Release Packages / / linux-armv6 (push) Has been cancelled
Build Release Packages / / linux-armv7 (push) Has been cancelled
Build Release Packages / / linux-arm64 (push) Has been cancelled
Build Release Packages / / linux-s390x (push) Has been cancelled
Build Release Packages / / windows-amd64 (push) Has been cancelled
Build Release Packages / / windows-arm64 (push) Has been cancelled
Build Release Packages / Upload artifacts (push) Has been cancelled
Build Release Packages / publish-dockerhub (push) Has been cancelled
Build Release Packages / Dispatch publish NPM canaries (push) Has been cancelled
Build Release Packages / notify-pr (push) Has been cancelled
Run dashboard schema v2 e2e / dashboard-schema-v2-e2e (push) Has been cancelled
Shellcheck / Shellcheck scripts (push) Has been cancelled
Run Storybook a11y tests / Detect whether code changed (push) Has been cancelled
Run Storybook a11y tests / Run Storybook a11y tests (light theme) (push) Has been cancelled
Run Storybook a11y tests / Run Storybook a11y tests (dark theme) (push) Has been cancelled
Swagger generated code / Detect whether code changed (push) Has been cancelled
Swagger generated code / Verify committed API specs match (push) Has been cancelled
Dispatch sync to mirror / dispatch-job (push) Has been cancelled
trigger-dashboard-search-e2e / trigger-search-e2e (push) Has been cancelled
Trivy Scan / trivy-scan (push) Has been cancelled
Relyance Compliance Inspection / relyance-compliance-inspector (push) Has been cancelled
Crowdin Download Action / download-sources-from-crowdin (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
/ Alerting Swagger spec generation cron job (push) Has been cancelled
* update test

* update
2025-11-21 20:35:25 +00:00
Larissa Wandzura
01eee72c80 DOCS: Fixed PDC link for CloudWatch data source (#114200)
fixed broken link (refURI) for PDC
2025-11-21 14:22:38 -06:00
Moustafa Baiou
8108d3c795 Alerting: Add tracing to prometheus rules api (#114282)
To better observe and identify performance bottlenecks in the prometheus rules API.

The following spans were added:
- `api.prometheus.RouteGetRuleStatuses`
- `api.prometheus.PrepareRuleGroupStatusesV2`

The `api.prometheus.PrepareRuleGroupStatusesV2` includes attributes to capture the parameters used in the request to help with debugging and performance analysis.
2025-11-21 15:00:35 -05:00
Adela Almasan
8cf777b5e8 VizSuggestions: Empty state (#114049)
* newVizSuggestions feature toggle

* panel empty state

* add data check

* select first suggestion

* update text

* PanelEmptyState component

* add test

* ?

* remove fake translation

* updates

* move empty state to UnconfiguredPanel
2025-11-21 13:42:41 -05:00
Denis Vodopianov
0e460a267e chore : Deprecating FeatureToggles.IsEnabled (#113062)
* Deprecating features.IsEnabled

* add one more nolint

* add one more nolint

* Give better hints to devs in the deprecation message of IsEnabledGlobally

* adding more doc strings

* fix linter after rebase

* Extend deprecation message
2025-11-21 18:43:42 +01:00
Matias Chomicki
43217025cf processing: set log clone as not collapsed (#114313) 2025-11-21 17:01:04 +00:00
Daniele Stefano Ferru
7299651a32 Hotfix: Granting None role Viewer access for a fixed API group list (#114310) 2025-11-21 17:50:25 +01:00
Beverly Buchanan
1b2fe6d6a8 RBAC plugin doc: add k8s rbac to list (#114265) 2025-11-21 17:44:00 +01:00
João Calisto
c2c443757d Unified Storage: allow rebuilding indexes for resource with a new grpc endpoint (#113748)
* Unified Storage: allow rebuilding indexes for resource from a new grpc endpoint

* remove log line

* fix trace def

* lint

* fix after rebase

* addressing code review changes

* update with one channel per rebuild request

* other review suggestions

* update with review suggestions

* run mockery generate for MockResourceClient

* update tests

* update tests and lint

* fix test
2025-11-21 16:42:15 +00:00
Victor Marin
336aa06966 Dashboards: Add non-applicable filter pills per panel (#112507)
* wip non-applicable pills

* refactor

* fix

* tests

* locales

* canary version

* mods

* fix query fetching

* fix

* fix

* Add VizPanelSubHeader component

* lint

* extra check

* refactor

* wip

* refactor wipp

* refactor

* refactor

* use canary scenes

* prettier

* canary scenes

* interpolate ds uid for ds var case

* refactor

* refactor

* memoize values + tests + rename component

* refactor

* refactor

* refactor

* refactor

* canary scenes + fixes

* Fix infinite loop casused by unstable useEffect dependency

* lint

* helper functions

* bump scenes

* reduce applicability calls to only when filters or groupBy keys change, not any var state change

* refactor

* fix

* fix

* fixes

---------

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2025-11-21 18:03:27 +02:00
Matheus Macabu
5e949fc955 Secrets: Fix secure value creation timestamp changing when updating it (#114290) 2025-11-21 16:31:17 +01:00
Bruno
0d67442f1a Secrets manager: create secure value using the active keeper (#114039)
* Secrets manager: create secure value using the active keeper

* SecureValueService.Update: fetch secure value from db to get the keeper

* fix keeper_store_test.go

* SecureValueService: fix bug in update where the current version keeper wasn't being passed to the createNewVersion method

* make gofmt

* remove outdated test

* update TestModel

* undo enterprise_imports changes

* use xkube.Namespace

* migrator: set secret_secure_value.keeper to 'system' when the column is null

* indent cue

* fix tests

* fix enterprise imports

* properly fix enterprise imports

* make update-workspace

* go mod tidy

---------

Co-authored-by: Matheus Macabu <macabu.matheus@gmail.com>
2025-11-21 11:20:16 -03:00
Galen Kistler
133677d1d6 Explore: fix logs viz toggle alignment (#114302)
chore: fix alignment
2025-11-21 14:05:19 +00:00
Gareth
57d0228317 Tempo: Bump gRPC limit to allow for larger streaming queries (#114286) 2025-11-21 23:01:52 +09:00
Konrad Lalik
10e0c435ad Alerting: Fix NotificationPreview permission checking (#114303)
Add permission check to NotificationPreview component
2025-11-21 14:59:25 +01:00
Peter Štibraný
198375599e Fix/ignore some common dashboard problems (#114296)
* Fix some common problems found when parsing dashboards for indexing
2025-11-21 14:41:45 +01:00
Peter Štibraný
def4c644ec Use infra/log instead of slog in pkg/storage/unified (#114292)
Use infra/log instead of slog. Use log.FromContext to add contextual info to log messages.
2025-11-21 14:38:09 +01:00
Galen Kistler
c0f6d90971 Loki: Set Query limits context header (#114112)
* feat(lokiQueryLimitsContext): send full query range & expr on initial split requests
2025-11-21 07:19:55 -06:00
Gábor Farkas
669382c212 datasources: ClearAuthHeadersMiddleware: refactor (#113707)
* refactor: extract logic

* directly use the setting.cfg in the middleware

* more granular config handling, per section

* fixed unit test

* refactor code to avoid lint error
2025-11-21 14:18:32 +01:00
Matheus Macabu
203549ce3c Chore: Fix enterprise imports drift (#114288)
* Chore: Fix enterprise imports drift

* Fix indirect dependency
2025-11-21 12:53:15 +01:00
Sergej-Vlasov
b366217aa6 SchemaV2ToScenes: Adjust ad hoc multi value check in v2 (#114291)
adjust ad hoc multi value check in v2
2025-11-21 11:40:44 +00:00
Mustafa Sencer Özcan
af684248b5 feat: add reindex trigger as a migration validation (#114283)
* feat: add search validation

* chore: remove comment

* fix: remove local test

* fix: revert rebuild index portion

* chore: remove unnecessary comments

* refactor: validator

* fix: revert setting
2025-11-21 12:21:19 +01:00
Matias Chomicki
b17ba6677e Logs: Feature flag logsInfiniteScrolling removed (#113585)
* Remove feature flag definition

* Remove feature flag from code

* Update imports

* LogsNavigationPages: remove deprecated component

* Finally deprecate navigation pages

* Update tests

* Update translations

* Remove unused code

* More cleanup

* Test cleanup

* Remove deprecated props

* More props removal

* Update feature flags

* Revert changes
2025-11-21 11:51:56 +01:00
Oscar Kilhed
e09905df35 SchemaV2: Add library panel repeat options to v2 schema during conversion (#114109)
* Add library panel repeat options to v2 schema during conversion

* use any instead of interface{}

* change to common.Unstructured instead of byte[] for model field

* Fix the tests and let the library panel behavior fetch repeat options in public and scripted dashboards

* fix library panel differences between backend and frontend conversion
2025-11-21 11:41:03 +01:00
Galen Kistler
3d2f702ae5 Loki: fix status in body not matching http status code (#114201)
* fix: status in body not matching http status code
2025-11-21 04:40:29 -06:00
Victor Marin
42babc7ce7 Select: Fix width bug when maxVisibleValues is set (#113913)
* fix

* fix
2025-11-21 12:14:50 +02:00
Sonia Aguilar
e7377a8842 Alerting: Update docs for ash AI helper button (#114229)
Update docs for ash AI helper button
2025-11-21 09:31:22 +01:00
Mustafa Sencer Özcan
e2cbf8abf1 fix: handle empty provisioning folder gracefully in stub provisioning (#114273)
fix: provisioning folder empty case
2025-11-21 09:04:04 +01:00
Konrad Lalik
6f68b96097 Alerting: Fix minInterval interpolation when creating rules from panel (#114238)
Interpolate minInterval query parameter before query conversion
2025-11-21 08:56:17 +01:00
grafana-pr-automation[bot]
07d975134d I18n: Download translations from Crowdin (#114278)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-21 00:39:57 +00:00
Jesse David Peterson
ef00dd4940 Dashboard: New experimental time range zoom shortcuts (#114190)
* feat(toggle): new feature toggle for time range zoom keyboard shortcuts

* feat(keyboard-shortcuts): handle `t +` and `t -` key combinations

* test(keyboard-shortcuts): validate time range zoom with `t +`, and `t -`

* chore(i18n): update keyboard shortcut translations

* refactor(time-range): no-op when timespan is zero instead of defaulting
2025-11-20 17:14:27 -04:00
Paul Marbach
6f9c867660 Timeseries: More nuanced editing of linear threshold to avoid crashes (#112301)
* Timeseries: More nuanced editing of linear threshold to avoid crashes

* remove useEffect import

* remove unused import

* update error and invalid field handling to call out error case
2025-11-20 18:49:46 +00:00
Larissa Wandzura
0b020c5e30 DOCS: add alias to SQL expressions doc (#114253)
added alias to SQL expressions since the doc moved
2025-11-20 17:44:06 +00:00
Ashley Harrison
496d6f8021 Frontend Service: Avoid double counting boot errors (#114250)
avoid double counting boot errors
2025-11-20 17:33:58 +00:00
Ezequiel Victorero
5ca3c27e4f Chore: Fix playlist flaky test (#114241) 2025-11-20 14:17:53 -03:00
Juan Cabanas
4d25381716 DashboardLibrary: Template dashboards public preview (#114230) 2025-11-20 13:51:59 -03:00
Peter Štibraný
534ed3421b Fix search by both tags and folders. (#114246)
* Fix search by both tags and folders.

* Move // nolint:gocyclo to the new method.

* Revert unnecessary change.
2025-11-20 17:09:49 +01:00
Mustafa Sencer Özcan
30c04ab3fc feat: inject unified data migrations in dual writer (#114138)
* feat: draft changes for on-prem unified migration

* feat: further draft changes for on-prem unified migration

* fix: remove some tbis

* refactor: rename

* fix: another approach

* fix: background service related issues

* fix: address comments

* fix: make gen-go

* fix: background service related issues

* feat: refactor dual writer and legacy migrator

* fix: minor issues

* feat: working version in oss

* fix: wire

* fix: revert test data override

* fix: enterprise related issues

* chore: add todo

* fix: revert dual writer method

* fix: lint

* chore: logger format

* fix: reduce log level

* fix: log change

* fix: disable

* fix: address comments

* fix: return error on dual writer service

* fix: merge conflict

---------

Co-authored-by: Rafael Paulovic <rafael.paulovic@grafana.com>
2025-11-20 16:40:20 +01:00
Alexander Zobnin
cb06bba243 Zanzana: Add token namespace to config (#114165) 2025-11-20 15:54:32 +01:00
Gabriel MABILLE
b5a50e7772 grafana-iam: Use the UniStore as the default store (#113614)
* `grafana-iam`: Use the UniStore as the default store

* Refactor all instantiations

* Remove enableDualWriter

* Nit. dw is clear enough

* Use the correct access control client
2025-11-20 15:51:50 +01:00
Rafael Bortolon Paulovic
65fd15bbf9 feat: define unified disable migrations flag (#114120)
chore: add US data migrations config
2025-11-20 15:47:44 +01:00
Robby Milo
7db72e03b5 remove image rendering docs (#114217) 2025-11-20 15:39:10 +01:00
Kristina Demeshchik
834f1c5e98 TS checker: Increase memory limit (#114236)
Increase ts checker memory limit
2025-11-20 09:13:19 -05:00
Roberto Jiménez Sánchez
41276676eb Provisioning: add retry logic for transient errors in Kubernetes client (#114215)
* feat: add retry logic for transient errors in Kubernetes client

Add retry wrapper for dynamic.ResourceInterface that automatically retries
transient errors using Kubernetes' wait.ExponentialBackoff utility.

- Implements retry logic with exponential backoff for all Kubernetes API operations
- Detects transient errors: ServiceUnavailable, ServerTimeout, TooManyRequests,
  InternalError, Timeout, and network errors
- Uses wait.ExponentialBackoff from k8s.io/apimachinery/pkg/util/wait
- Respects context cancellation
- Includes comprehensive unit tests

Part of https://github.com/grafana/git-ui-sync-project/issues/634

* docs: add detailed documentation for defaultRetryBackoff

Document when retry attempts will happen, what errors trigger retries,
and the retry behavior (attempts, delays, exponential backoff, jitter).

* feat: add logging and increase retry attempts for Kubernetes client

- Add context logger to track retry attempts (Info for retries, Warn for exhaustion)
- Increase retry attempts from 5 to 8 steps (~10 seconds total retry window)
- Document when all retry attempts will fail:
  * API server completely unavailable/unreachable
  * Network connectivity issues persist beyond retry window
  * Consistent transient errors for entire retry duration
  * Context cancellation before retries complete

* chore: update retry client documentation

* fix: resolve linting issues in retry client

- Replace type assertions with errors.As for wrapped errors
- Remove deprecated Temporary() check (deprecated since Go 1.18)
- Update tests to remove temporary error test case

* fix: resolve staticcheck S1008 linting issue in retry_client.go

Simplify return statement to use errors.As directly instead of if-return pattern
2025-11-20 15:12:07 +01:00
Will Browne
7d179120b6 Plugins: Replace CDN class with FS CDN type (#113968)
replace cdn class with fs type
2025-11-20 14:03:24 +00:00
Tom Ratcliffe
3999d108f7 Folders: Make listFolders call correct API and fix tags sorting (#114181) 2025-11-20 14:00:33 +00:00
Roberto Jiménez Sánchez
a4cbbe10c0 Provisioning: Add retry logic for nanogit client operations (#114216)
* chore(deps): update nanogit to v0.3.0 in go.mod and go.sum files

* Add retry logic for nanogit client operations

- Configure retry logic in withGitContext to ensure all Git operations have retry support
- Use nanogit's ExponentialBackoffRetrier with 8 attempts (~10s retry window)
- Retry transient network errors and HTTP-specific server errors (5xx for GET/DELETE, 429 for all)
- Rename logger function to withGitContext to better reflect its responsibilities

* fix: resolve staticcheck S1008 linting issue in retry_client.go

Simplify return statement to use errors.As directly instead of if-return pattern

* Revert "fix: resolve staticcheck S1008 linting issue in retry_client.go"

This reverts commit bd367b5629.
2025-11-20 13:55:45 +00:00
Ryan McKinley
c9801fc66e FeatureFlags: Remove unused settings for admin UI (#114137) 2025-11-20 13:33:44 +00:00
Alexander Zobnin
f6a1d4a14e Revert Auth: Add None role to Viewer case (#114224) 2025-11-20 14:02:15 +01:00
Konrad Lalik
24d970e4b9 Alerting: Remove stale filtering code (#114231)
Remove the old filters file, update import paths
2025-11-20 13:58:13 +01:00
dependabot[bot]
e6a4e6fa4e deps(go): bump github.com/prometheus/common from 0.67.1 to 0.67.2 in /pkg/promlib (#113145)
* deps(go): bump github.com/prometheus/common in /pkg/promlib

Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.67.1 to 0.67.2.
- [Release notes](https://github.com/prometheus/common/releases)
- [Changelog](https://github.com/prometheus/common/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus/common/compare/v0.67.1...v0.67.2)

---
updated-dependencies:
- dependency-name: github.com/prometheus/common
  dependency-version: 0.67.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* deps(go): update github.com/prometheus/common to v0.67.3

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2025-11-20 12:50:38 +00:00
Priyansh Gupta
7f52586c68 Prometheus: Hide 'Kick start your query' button for existing queries (#113980)
* Prometheus: Hide 'Kick start your query' button for existing queries

* refactor: simplify query check logic in Prometheus editor

Remove unnecessary useMemo and buildVisualQueryFromString logic.
Just check query.expr directly to determine button visibility.

* fix: format code with prettier
2025-11-20 13:19:54 +01:00
Mihai Doarna
fbadbf385d IAM: Add validation for new tokens with no expiration when token_expiration_day_limit is set (#114166)
* do not create sa with no expiration when day limit is set

* disable No expiration option if day limit is set

* make i18n-extract

* run prettier

* address feedback
2025-11-20 13:44:15 +02:00
Ida Štambuk
b2f022fb5e Dynamic Dashboards: Make outline open by default (#114146) 2025-11-20 12:37:12 +01:00
Jay Clifford
e9116cd23c chore(testid): added missing testid to add datasource button (#114169)
* added missing testid

* added to pages.ts

* added e2e to datasource button

* fixed lint
2025-11-20 12:27:04 +01:00
Torkel Ödegaard
4637da8fcc Sidebar: A new reusable component for side toolbars and panes (#114141)
* initial wip

* fixes

* Switching to context

* New button design

* Overflow ellipsis

* Changes to button

* initial resize work

* resize progress

* Update

* no reszier in tabs mode

* fixing text truncte, and tabs right position

* Minor story tweaks

* added unit test

* added unit test

* Minor change

* minor story fix

* Fixes
2025-11-20 12:22:47 +01:00
Nathan Marrs
1d2426f880 Dashboard Favorites: Dashboard star icon stuck in loading state on initial load (#114211)
Co-Author: Haris Rozajac <haris.rozajac12@gmail.com>
2025-11-20 11:14:29 +00:00
Andreas Christou
3c777399d5 MSSQL: Minor refactor (#113976)
* Moving things around

* Copy parseURL function to where it's used

* Update test

* Remove experimental-strip-types

* Revert "Remove experimental-strip-types"

This reverts commit 70fbc1c0cd.

* Trigger build
2025-11-20 11:09:09 +00:00
Gareth
0efffd9ec8 Live: Add configuration for client_queue_max_size (#114225)
Live: add configuration for client_queue_max_size
2025-11-20 20:08:26 +09:00
Ida Štambuk
6e9a33e712 Dynamic Dashboards: Add more tracking (#114098) 2025-11-20 12:01:21 +01:00
Charandas
3c0d5745fe chore: remove remaining references to singular namespace (#114208) 2025-11-20 11:23:36 +01:00
Matheus Macabu
5d26bc5ee1 FeatureToggles: Remove feedbackButton unused toggle (#114222) 2025-11-20 11:18:50 +01:00
Anna Urbiztondo
bf509de89f Docs: IaC edits (#114086)
* Removed Grizzly from table

* Fixes

* Review

* Reviews

* Edits

* More edits

* Prettier

* Remove agent

* Review, removing Agent docs

* Prettier

* Fixes

* Prettier

* Edit

* Update docs/sources/as-code/infrastructure-as-code/ansible/ansible-cloud-stack/index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/as-code/infrastructure-as-code/ansible/ansible-cloud-stack/index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/as-code/infrastructure-as-code/ansible/ansible-cloud-stack/index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/as-code/infrastructure-as-code/ansible/ansible-cloud-stack/index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/as-code/infrastructure-as-code/ansible/ansible-cloud-stack/index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/as-code/infrastructure-as-code/ansible/ansible-cloud-stack/index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/as-code/infrastructure-as-code/ansible/ansible-cloud-stack/index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/as-code/infrastructure-as-code/ansible/ansible-cloud-stack/index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/as-code/infrastructure-as-code/ansible/ansible-cloud-stack/index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/as-code/infrastructure-as-code/ansible/ansible-cloud-stack/index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/as-code/infrastructure-as-code/ansible/ansible-cloud-stack/index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/as-code/infrastructure-as-code/ansible/ansible-cloud-stack/index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/as-code/infrastructure-as-code/ansible/ansible-cloud-stack/index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/as-code/infrastructure-as-code/ansible/ansible-cloud-stack/index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/as-code/infrastructure-as-code/ansible/ansible-cloud-stack/index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Update docs/sources/as-code/infrastructure-as-code/ansible/ansible-cloud-stack/index.md

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>

* Feedback

* Prettier

* Variable style edits

---------

Co-authored-by: Clayton Cornell <131809008+clayton-cornell@users.noreply.github.com>
2025-11-20 10:24:47 +01:00
petergreen86
fbe29596f1 Docs: Team Sync correction (#114043) 2025-11-20 10:20:02 +01:00
Steve Simpson
cc6e037093 Alerting: Add message to alert_rule_version table (Part 1). (#114194)
This adds a `message` column to the `alert_rule_version` table. This follows the
pattern established for dashboards as closely as possible. A new type is
introduced internally for passing the new `message` field around in a type-safe
manner, but doing the same for the API types becomes very messy. In that case, a
new field is added with omitempty.

Note this PR is only:
- The column addition
- The "read" path; API for listing versions

Subsequent PRs will add code to actually set the message when updating rules.
2025-11-20 10:00:27 +01:00
Matheus Macabu
1d763df932 Docs: Document font_min_text_size setting in reporting section (#114155)
* Docs: Document font_min_text_size setting in reporting section

* better wording
2025-11-20 09:50:07 +01:00
Konrad Lalik
4e24b2977c Alerting: Fix expression queries when coming from a panel (#114095)
* Add getDefaultExpressions tests

* Fix expression queries when building form values from a panel

* make query params empty and add some better types

* update snapshots

* fix tests

* Revert devenv changes

* update shapshot

---------

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2025-11-20 08:38:49 +01:00
grafana-pr-automation[bot]
b0f3e531b1 I18n: Download translations from Crowdin (#114206)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-20 00:40:29 +00:00
Paul Marbach
946e6d9641 Table: Improve JSON rendering in inspect for JSON strings (#114189) 2025-11-19 19:38:06 -05:00
maicon
5754d7fbad chore: bump authlib/types to v0.0.0-20251119142549-be091cf2f4d4 (#114177)
* chore: bump authlib/types to v0.0.0-20251119142549-be091cf2f4d4

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* Update Go Workspace

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* Stop supporting deprecated namespace format in TestExtendedJWT_Authenticate

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

* Update go mod

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>

---------

Signed-off-by: Maicon Costa <maiconscosta@gmail.com>
2025-11-19 16:05:20 -08:00
Josh Hunt
a4e1db66d3 Chore: Add html_handler_requests metric (#113991)
* Chore: Add html_handler_requests metric for tracking requests handled by index.go

* make a member of HttpServer

* make it a histogram instead

* update test
2025-11-19 16:40:54 -05:00
Isabel Matwawana
fabb4a603d Docs: Add panel time zoom with mouse (#113721)
Co-authored-by: Jesse David Peterson <jesdavpet@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2025-11-19 21:27:11 +00:00
alerting-team[bot]
53c39ccda3 Alerting: Update alerting module to 3befd25883e0d17673e5590cc5c5702bbc031b16 (#114062)
* [create-pull-request] automated change

* fix module path for alerting notify test receivers

---------

Co-authored-by: moustafab <27738648+moustafab@users.noreply.github.com>
Co-authored-by: Moustafa Baiou <moustafa.baiou@grafana.com>
2025-11-19 21:24:08 +00:00
Dave Henderson
7264803016 chore(deps): Switch to maintained gopkg.in/yaml fork (#114131)
Signed-off-by: Dave Henderson <dave.henderson@grafana.com>
2025-11-19 15:20:32 -05:00
Ieva
84d6f54daa Chore: Remove references to editors_can_admin (#114168)
remove references to editors_can_admin
2025-11-19 19:40:54 +00:00
Juan Cabanas
62b8caec9b DashboardLibrary: Add template dashboard tests (#114179)
* dashboard template tests

* command plaette restored

* command plaette restored
2025-11-19 16:26:34 -03:00
Alexander Akhmetov
5a0e9e4183 Alerting: Add rule_uid filter support to the Prometheus-compatible list rules API (#114182) 2025-11-19 20:01:40 +01:00
Victor Cinaglia
164873591b IAM: Optionally make refresh tokens required if use_refresh_token is enabled (#114174)
* OAuth: Optionally make refresh tokens required if use_refresh_token is enabled

* make linter happy

* feedback: log missing refresh token during token refresh

* feedback: tweak wording in the message & change level
2025-11-19 15:21:40 -03:00
Eric Hilse
f074431a36 Plugins: add card extension to nav-landing-page (#113768)
* Plugins: add card extension to nav-landing-page

* feat(nav-landing-page): update card extension to include category and onClick support

* feat(NavLandingPage): add setPluginLinksHook to test setup

* feat(NavLandingPageCard): refactor className handling using cx for better style management

* feat(NavLandingPage): update card extension targets to use plural form for consistency

* feat(NavLandingPage): add warning for mutually exclusive extension points
2025-11-19 11:19:14 -07:00
Isabel Matwawana
e9c959a0e5 Docs: Add template dashboards page (#114113) 2025-11-19 12:48:23 -05:00
dependabot[bot]
235dec4e77 Bump glob from 10.4.1 to 11.1.0 in /e2e-playwright/test-plugins/grafana-extensionstest-app (#114061)
* Bump glob in /e2e-playwright/test-plugins/grafana-extensionstest-app

Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.1 to 11.1.0.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v10.4.1...v11.1.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 11.1.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* update lockfile

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: samsch <git@samsch.org>
2025-11-19 12:27:05 -05:00
Denis Vodopianov
043b1a702a chore: Reflect changes in FF management in contribute guidelines. (#113312)
* Reflect changes in FF management in contribute guidelines.

* add a ref to the OpenFeature project

* fix codestyle in md file

* yet another key point

* Update contribute/feature-toggles.md

Co-authored-by: Tania <10127682+undef1nd@users.noreply.github.com>

* Update contribute/feature-toggles.md

Co-authored-by: Dave Henderson <dave.henderson@grafana.com>

---------

Co-authored-by: Tania <10127682+undef1nd@users.noreply.github.com>
Co-authored-by: Dave Henderson <dave.henderson@grafana.com>
2025-11-19 11:57:49 -05:00
Brendan O'Handley
77d98fc73d Transformations: feature toggle cleanup transformations redesign (#113561)
* remove feature toggle transformationsRedesign

* remove for event tracking

* remove uneccessary code
2025-11-19 10:54:05 -06:00
Brendan O'Handley
20a8987ff1 Dataplane: feature toggle cleanup dataplane frontend fallback (#113542)
* remove feature toggle dataplaneFrontendFallback because GA

* remove feature toggle logic

* fix import

* fix toggle ownership from merging main

* merge main

* fix extra feature toggle
2025-11-19 10:53:24 -06:00
Luminessa Starlight
3e7b952488 Chore: Rudderstack upgrade to SDK v3 behind flag (#114126)
* add rudderstack version upgrade feature flag

* add new rudderstack backend file
gate new backend with feature flag

* fix global type error
2025-11-19 11:48:23 -05:00
Moustafa Baiou
1f9ed37b1b Alerting: Optimize cache metrics updates (#114134) 2025-11-19 11:39:13 -05:00
Peter Štibraný
42db6324c9 Collect and log search stats. (#114107)
* Collect and log search stats.

* Fix compilation problems.
2025-11-19 16:52:47 +01:00
Tom Ratcliffe
1fcf15d05f API Clients: Update codeowners for API clients to be more granular (#113928)
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2025-11-19 15:24:29 +00:00
Andrew Hackmann
a327fec8df Elasticsearch: data query refactor (#113360)
* split up data_query.go

* split up response_parser

* remove white space
2025-11-19 15:10:12 +00:00
Kevin Yu
a6343d7a68 CloudWatch Logs: Hide internal logs field (#114121) 2025-11-19 07:00:03 -08:00
Ivan Ortega Alba
40fb421556 Schema: Implement v2beta1 → v2alpha1 conversion (#113876) 2025-11-19 15:56:33 +01:00
github-actions[bot]
e66a49ce06 Release: update changelog for main (#114148)
* Update changelog

* Update changelog

* Update changelog

* Update changelog

* Update changelog

* Update changelog

* Update changelog

* Update changelog

* update changelog

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>
2025-11-19 14:49:52 +00:00
Erik Sundell
be0857fa8f Plugins: Pass build mode to frontend (#114092)
* pass build mode to frontend

* set buildMode build time using shared plugin webpack conf
2025-11-19 15:42:27 +01:00
Peter Štibraný
acf6f1ae5f Ignore boolean ".spec.refresh" silently. (#114167) 2025-11-19 15:42:14 +01:00
ismail simsek
74e98fc183 Prometheus: Filter label values based on the search in metrics browser (#113949)
Filter label values based on the search
2025-11-19 15:38:31 +01:00
Matias Chomicki
dde5b6476c Remove feature flag from bad rebase (#114154) 2025-11-19 13:56:15 +01:00
Ashley Harrison
341a32266d Toggletip: Ensure consistent positioning in all scenarios (#114085)
* portal toggletip content

* add test to check focus trapping

* kick CI
2025-11-19 12:53:21 +00:00
Ashley Harrison
3f008acde2 PanelChrome: Wrap in a div to allow for hover headers (#114037)
wrap PanelChrome in a div that's outside of `overflow: hidden;` to allow for hover headers
2025-11-19 12:52:09 +00:00
Ashley Harrison
cf24e0bbd8 ToolbarButton: Require tooltip or aria-label if no children are present (#114097)
* split into separate stories

* make tooltip/aria-label required if no children present

* kick CI

* fix unit tests

* cleaner

* clean up story
2025-11-19 12:51:29 +00:00
Hugo Häggmark
5f3dcadf9e Docs: Revert move of plugin schema file (#114139)
* Docs: revert move of plugin schema file

* Trigger build
2025-11-19 13:40:52 +01:00
Jean-Philippe Quéméner
0e4b701bd6 fix(dashboards): apply permission search filter if provided (#114147) 2025-11-19 13:05:07 +01:00
Mariell Hoversholm
d19828870b feat: remove newPDFRendering ff (#113451) 2025-11-19 12:50:41 +01:00
Gábor Farkas
fc18c9315e update grafana/gafana-plugin-sdk-go dependency, and adjusted code accordingly (#113922)
* update dependencies

* query: stop handling _timeRange

* fixed unit test
2025-11-19 12:44:13 +01:00
Matias Chomicki
9dd68dbbcc Logs: Feature flag logRowsPopoverMenu removed (#113583)
* logRowsPopoverMenu: remove feature flag

* Remove import

* Remove feature flag
2025-11-19 11:43:59 +00:00
Matias Chomicki
bef8414781 logParser: memoize getVisibleFieldIndices (#113602)
* logParser: memoize getVisibleFieldIndices

* Remove unnecessary parameter
2025-11-19 12:17:10 +01:00
Tom Ratcliffe
6f8c1525da Folders: Improve wording for actions and move/delete (#114090) 2025-11-19 11:05:11 +00:00
Sam Jewell
cff5a42bce Rework Title of SQL Transformation card (#114093)
* Rework UI of SQL Transformation card

I made a few changes:
- Green - to indicate that this is DIFFERENT from the other transforms, not similar
- Command prompt, not a preview of the table input and output - to indicate that
   - you code this yourself, and
   - the output table format is not predictable - it's entirely outside of our control

I updated the card title to "Transform with SQL" because I felt this was more
indicative of what the user will be doing. It's a call to action.

* Reverse the change to the illustration

The changes to the illustration aren't ready yet,
As per PR feedback in comment: https://github.com/grafana/grafana/pull/114093#issuecomment-3547943167

* Update tests and code with new header text
2025-11-19 10:51:33 +00:00
Konrad Lalik
56e148408e Alerting: Remove unknown state filter (#114143)
* Remove unknown state filter

* Update translations
2025-11-19 11:42:39 +01:00
Ashley Harrison
99e0654fc9 Chore: Convert some more react class components to functional (#113951)
* convert LoginCtrl to a functional component

* convert NumberInput to a functional component

* convert StringArrayEditor to a functional component

* convert TeamPicker to a functional component

* convert AddToOrgModal to a functional component

* don't set noMargin yet

* convert UserProfile to a functional component

* convert AnnotationFieldMapper to a functional component

* convert PanelHeaderCorner to a functional component

* convert ShareExport to a functional component

* convert ShareLink to a functional component

* convert RawPrometheusContainer to a functional component
2025-11-19 09:58:16 +00:00
Lauren
6dcb921333 Alerting: Fix for fetching evaluation group in new filter (#113694)
* Alerting: Fix for fetching evaluation group in new filter

* WIP: Add async evaluation groups dropdown with 500 group limit

* Add text to query param if threshold limit reached

* update translations, remove group info tooltip

* resolve PR comment
2025-11-19 09:11:07 +00:00
Misi
56c2c1cfe2 IAM: Add validation to ExternalGroupMapping (#113957)
* Add validation before ExternalGroupMapping creation

* Add FIXME to implement team lookup

* Lint
2025-11-19 09:48:09 +01:00
Mustafa Sencer Özcan
0d4ad01b65 feat: add unified data migrations for dashboard and folders (#113853) 2025-11-19 09:09:08 +01:00
Jara Suárez de Puga García
92bee5e510 Docs: Update documentation on PDF/Email generation with logo (#114005)
Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com>
2025-11-19 08:43:38 +01:00
Ryan McKinley
00329cab14 Stars: Move stars from preferences apiserver to a new collections apiserver (#114006) 2025-11-19 08:28:39 +03:00
grafana-pr-automation[bot]
e558c9af5d I18n: Download translations from Crowdin (#114130)
New Crowdin translations by GitHub Action

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-19 00:40:18 +00:00
Jacob Valdez
03ed5a372d Docs: What's new and Upgrade guide v12.3 (#113372) 2025-11-18 20:24:25 +00:00
Ryan McKinley
2f591aaaeb GitSync: Fix documentation link (#114119) 2025-11-18 19:10:46 +00:00
owensmallwood
8dddff3ce4 Unified Storage: Pass ns, group, resource to GetResourceStats instead of just namespace (#114050)
* passes nsr to GetResourceStats instead of just namespace

* removes ns check

* fixes failing tests

* make update-workspace

* pass group and resource from rebuild request when getting resource stats
2025-11-18 13:05:21 -06:00
Kristina Demeshchik
bf3de07147 QueryEditor: datasource getQueryDisplayText error (#114106)
Fixes an issue where `getQueryDisplayText` throes an error and breaks the query editor.
2025-11-18 13:58:55 -05:00
Juan Cabanas
1458a28eee DashboardLibrary: Fix 404 not found error when browsing the page (#114094)
* 404 fix

* any enabled added
2025-11-18 15:43:25 -03:00
Paul Marbach
92ac33736b Suggestions: Proposed PanelPlugin API (#113688)
* Suggestions: Update ownership of core files and improve some types

* Suggestions: Proposed PanelPlugin API

* get rid of .useSuggestionsConfig

* update i18n

* iterate on TypeScript types, add example in radialbar

* tweak implementation, add commentary

* actually, suggestions really does not need panel defaults

* split suggestions handler into its own file and add tests for radialbar

* small comment revision

* fix test

* add ds.hasData check back for state-timeline

* restore a handful of comments that got lost in the merge shuffle

* more updated commnets

* remove pluginId from VisualizationSuggestion, whoops

* fix getAllSuggestions test

* update i18n

* might as well restore description here

* move fieldconfig back on radialbar

* call them suppliers, remove boolean return type in favor of internal util

* Update packages/grafana-data/src/panel/PanelPlugin.ts

* Update packages/grafana-data/src/panel/PanelPlugin.ts

* Update packages/grafana-data/src/panel/PanelPlugin.ts

* tweak return type for setSuggestionSupplier to be this
2025-11-18 18:49:29 +01:00
Matheus Macabu
a636e1dc8e Docs: Add secrets management beta API docs (#114020)
* Docs: Add secrets management beta API docs

* Apply suggestions from code review

Co-authored-by: Anna Urbiztondo <anna.urbiztondo@grafana.com>

* backtick params

* all caps JSON

* Apply suggestions from code review

Co-authored-by: Jacob Valdez <jacob.valdez@grafana.com>

* fix tab

* run yarn prettier

* fix anchor and permission for update

* example delete request

* Apply suggestions from code review

---------

Co-authored-by: Anna Urbiztondo <anna.urbiztondo@grafana.com>
Co-authored-by: Jacob Valdez <jacob.valdez@grafana.com>
2025-11-18 17:19:54 +00:00
935 changed files with 38801 additions and 22879 deletions

11
.github/CODEOWNERS vendored
View File

@@ -48,7 +48,7 @@
/docs/sources/whatsnew/ @jtvdez
/docs/sources/developer-resources/plugins/ @grafana/plugins-platform-frontend @grafana/plugins-platform-backend
/docs/sources/developers/plugins/ @grafana/plugins-platform-frontend @grafana/plugins-platform-backend
/docs/sources/visualizations/dashboards/ @imatwawana
/docs/sources/visualizations/panels-visualizations/ @imatwawana
@@ -89,6 +89,7 @@
/apps/folder/ @grafana/grafana-app-platform-squad
/apps/playlist/ @grafana/grafana-app-platform-squad
/apps/plugins/ @grafana/plugins-platform-backend
/apps/collections/ @grafana/grafana-app-platform-squad @grafana/grafana-frontend-platform
/apps/preferences/ @grafana/grafana-app-platform-squad @grafana/grafana-frontend-platform
/apps/shorturl/ @grafana/sharing-squad
/apps/secret/ @grafana/grafana-operator-experience-squad
@@ -743,6 +744,14 @@ i18next.config.ts @grafana/grafana-frontend-platform
# @grafana/api-clients
/packages/grafana-api-clients/ @grafana/grafana-frontend-platform @grafana/grafana-search-navigate-organise
/packages/grafana-api-clients/src/clients/rtkq/advisor/ @grafana/plugins-platform-frontend
/packages/grafana-api-clients/src/clients/rtkq/correlations/ @grafana/datapro
/packages/grafana-api-clients/src/clients/rtkq/dashboard/ @grafana/dashboards-squad
/packages/grafana-api-clients/src/clients/rtkq/folder/ @grafana/grafana-search-navigate-organise
/packages/grafana-api-clients/src/clients/rtkq/iam/ @grafana/access-squad @grafana/identity-squad
/packages/grafana-api-clients/src/clients/rtkq/preferences/ @grafana/plugins-platform-frontend
/packages/grafana-api-clients/src/clients/rtkq/provisioning/ @grafana/grafana-git-ui-sync-team
/packages/grafana-api-clients/src/clients/rtkq/shorturl/ @grafana/sharing-squad
# root files, mostly frontend
/.browserslistrc @grafana/frontend-ops

View File

@@ -181,7 +181,9 @@ linters:
- pkg: io/ioutil
desc: 'Deprecated: As of Go 1.16, the same functionality is now provided by package io or package os, and those implementations should be preferred in new code. See the specific function documentation for details.'
- pkg: gopkg.in/yaml.v2
desc: Grafana packages are not allowed to depend on gopkg.in/yaml.v2 as gopkg.in/yaml.v3 is now available
desc: use go.yaml.in/yaml/v3 instead
- pkg: gopkg.in/yaml.v3
desc: use go.yaml.in/yaml/v3 instead
- pkg: github.com/pkg/errors
desc: 'Deprecated: Go 1.13 supports the functionality provided by pkg/errors in the standard library.'
- pkg: github.com/xorcare/pointer

View File

@@ -1,3 +1,251 @@
<!-- 12.3.0 START -->
# 12.3.0 (2025-11-19)
### Features and enhancements
- **API Clients:** Add lazy hooks to clients [#113226](https://github.com/grafana/grafana/pull/113226), [@tomratcliffe](https://github.com/tomratcliffe)
- **API clients:** Automatically set PATCH headers [#111879](https://github.com/grafana/grafana/pull/111879), [@Clarity-89](https://github.com/Clarity-89)
- **API clients:** Extract into a package [#111810](https://github.com/grafana/grafana/pull/111810), [@Clarity-89](https://github.com/Clarity-89)
- **API clients:** Extract into a package (Enterprise)
- **API clients:** Update API clients to include all endpoints & add hooks [#113061](https://github.com/grafana/grafana/pull/113061), [@tomratcliffe](https://github.com/tomratcliffe)
- **AccessControl:** Include hidden roles in service account role display [#112924](https://github.com/grafana/grafana/pull/112924), [@Jguer](https://github.com/Jguer)
- **AccessControl:** Increase limit of LBAC for Datasources rules [#111560](https://github.com/grafana/grafana/pull/111560), [@Jguer](https://github.com/Jguer)
- **Accessibility:** Wrap data source info onto 2 lines at small viewports [#113033](https://github.com/grafana/grafana/pull/113033), [@ashharrison90](https://github.com/ashharrison90)
- **Alert Enrichment:** Add mutator to insert rule UID labels to allow for efficient use of labelSelector (Enterprise)
- **Alerting:** Add enrichment components to rule view page (Enterprise)
- **Alerting:** Add enrichment section to rule view page (Enterprise)
- **Alerting:** Add jitter support for periodic alert state storage to reduce database load spikes [#111357](https://github.com/grafana/grafana/pull/111357), [@softho0n](https://github.com/softho0n)
- **Alerting:** Add position-based matching for identical alert rules [#112407](https://github.com/grafana/grafana/pull/112407), [@konrad147](https://github.com/konrad147)
- **Alerting:** Create alertingAlertRuleFormSchema in restrictedGrafanaApis [#112794](https://github.com/grafana/grafana/pull/112794), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Display error message in central state history view [#111445](https://github.com/grafana/grafana/pull/111445), [@laurenashleigh](https://github.com/laurenashleigh)
- **Alerting:** Enrichment per rule wip-2 (Enterprise)
- **Alerting:** Hide metadata if grouping by folder [#113216](https://github.com/grafana/grafana/pull/113216), [@laurenashleigh](https://github.com/laurenashleigh)
- **Alerting:** Improve template ai helper prompt and add some examples (Enterprise)
- **Alerting:** Move enrichment tab between details and versions [#110886](https://github.com/grafana/grafana/pull/110886), [@laurenashleigh](https://github.com/laurenashleigh)
- **Alerting:** Remove ai feedback button from alert form [#112713](https://github.com/grafana/grafana/pull/112713), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Remove unused components [#111320](https://github.com/grafana/grafana/pull/111320), [@laurenashleigh](https://github.com/laurenashleigh)
- **Alerting:** Remove useRulesSourcesWithRuler for SmartAlertTypeDetector [#111623](https://github.com/grafana/grafana/pull/111623), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Surface remote AM silence creation errors properly [#112757](https://github.com/grafana/grafana/pull/112757), [@moustafab](https://github.com/moustafab)
- **Alerting:** Triage [#110339](https://github.com/grafana/grafana/pull/110339), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Triage rule details drawer [#112055](https://github.com/grafana/grafana/pull/112055), [@konrad147](https://github.com/konrad147)
- **Alerting:** Update prompt examples for template AI Helper (Enterprise)
- **Alerting:** Update width to instance details drawer in Triage page [#113209](https://github.com/grafana/grafana/pull/113209), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Use new enrichment endpoints in FE (Enterprise)
- **Alerting:** Use ruleUid as a prop instead of extracting it from the rule context (Enterprise)
- **Analytics:** Aggregate daily summary in datasources analytics (Enterprise)
- **Analytics:** Apply proper batching to Loki exports and add configurable settings (Enterprise)
- **Annotations:** Exclude internal dashboard id when saved via UID [#111535](https://github.com/grafana/grafana/pull/111535), [@ryantxu](https://github.com/ryantxu)
- **Azure:** Use SSO settings in plugin context [#112058](https://github.com/grafana/grafana/pull/112058), [@aangelisc](https://github.com/aangelisc)
- **Buttons:** Active style for buttons [#111235](https://github.com/grafana/grafana/pull/111235), [@gtk-grafana](https://github.com/gtk-grafana)
- **Caching:** Disable cache if datasource has oauthPassThru=true (Enterprise)
- **Canvas:** Allow non-icon bg image fields [#112308](https://github.com/grafana/grafana/pull/112308), [@fastfrwrd](https://github.com/fastfrwrd)
- **Chore:** Add logsdrilldown replace to apps/iam/go.mod [#112581](https://github.com/grafana/grafana/pull/112581), [@njvrzm](https://github.com/njvrzm)
- **CloudWatch Logs:** Don't add console link to every field in the logs response [#112230](https://github.com/grafana/grafana/pull/112230), [@idastambuk](https://github.com/idastambuk)
- **CloudWatch Logs:** Support Log Anomalies query type [#113067](https://github.com/grafana/grafana/pull/113067), [@idastambuk](https://github.com/idastambuk)
- **CloudWatch:** Add syntax highlighting and autocomplete for logs diff command [#111207](https://github.com/grafana/grafana/pull/111207), [@kevinwcyu](https://github.com/kevinwcyu)
- **CloudWatch:** Add tracking for logs anomalies [#113181](https://github.com/grafana/grafana/pull/113181), [@idastambuk](https://github.com/idastambuk)
- **Dashboard Controls:** Add annotations to the dashboard controls menu [#112816](https://github.com/grafana/grafana/pull/112816), [@leventebalogh](https://github.com/leventebalogh)
- **Dashboard Picker:** Update to use correct search + dashboards APIs [#112341](https://github.com/grafana/grafana/pull/112341), [@tomratcliffe](https://github.com/tomratcliffe)
- **Dashboard:** Backend always set `metricEditorMode: 0` regardless `metricQueryType` and `expression` [#111613](https://github.com/grafana/grafana/pull/111613), [@ivanortegaalba](https://github.com/ivanortegaalba)
- **Dashboards:** Add a new variable type called "Switch" [#111366](https://github.com/grafana/grafana/pull/111366), [@leventebalogh](https://github.com/leventebalogh)
- **Dashboards:** Hide error notifications in kiosk mode on dashboards [#112390](https://github.com/grafana/grafana/pull/112390), [@ivanortegaalba](https://github.com/ivanortegaalba)
- **Dynamic Dashboards:** Expand dashboards_init_dashboard_completed tracking info [#111102](https://github.com/grafana/grafana/pull/111102), [@idastambuk](https://github.com/idastambuk)
- **ErrorBoundary:** Report specific boundary type to Faro [#112071](https://github.com/grafana/grafana/pull/112071), [@tskarhed](https://github.com/tskarhed)
- **Explore:** Use compact mode only when targeting Tempo [#113037](https://github.com/grafana/grafana/pull/113037), [@ifrost](https://github.com/ifrost)
- **FeatureToggles:** Remove deprecated experimental apiserver [#111617](https://github.com/grafana/grafana/pull/111617), [@ryantxu](https://github.com/ryantxu)
- **Fields Selector:** Add component and integrate with Logs and Logs table visualization [#112534](https://github.com/grafana/grafana/pull/112534), [@matyax](https://github.com/matyax)
- **Flame Graph:** Anchor exact match when clicking a table symbol in search [#111101](https://github.com/grafana/grafana/pull/111101), [@samarthbagga-meesho](https://github.com/samarthbagga-meesho)
- **FlameGraph:** Improve prompt for open assistant to analyze flamegraph [#113071](https://github.com/grafana/grafana/pull/113071), [@simonswine](https://github.com/simonswine)
- **FolderPicker:** Don't show expand button for empty folders and move search icon [#111872](https://github.com/grafana/grafana/pull/111872), [@aocenas](https://github.com/aocenas)
- **FolderPicker:** Show parent folder when searching [#111026](https://github.com/grafana/grafana/pull/111026), [@aocenas](https://github.com/aocenas)
- **Geomap:** Add a MapLibre style base layer [#109841](https://github.com/grafana/grafana/pull/109841), [@remogeissbuehler](https://github.com/remogeissbuehler)
- **Geomap:** Move beta layers to GA [#113186](https://github.com/grafana/grafana/pull/113186), [@drew08t](https://github.com/drew08t)
- **Go:** Update to 1.25.2 + golangci-lint v2.5.0 + golang.org/x/net v0.45.0 [#112149](https://github.com/grafana/grafana/pull/112149), [@macabu](https://github.com/macabu)
- **Go:** Update to 1.25.3 [#112359](https://github.com/grafana/grafana/pull/112359), [@macabu](https://github.com/macabu)
- **Grafana Advisor:** Prometheus Type Migration check [#110853](https://github.com/grafana/grafana/pull/110853), [@bossinc](https://github.com/bossinc)
- **Grafana Data Source:** Add random walk configuration options [#113009](https://github.com/grafana/grafana/pull/113009), [@nmarrs](https://github.com/nmarrs)
- **IAM:** Add uid column in team_member DB table [#112439](https://github.com/grafana/grafana/pull/112439), [@dmihai](https://github.com/dmihai)
- **Jaeger:** Migrate API calls to gRPC endpoint [#113297](https://github.com/grafana/grafana/pull/113297), [@jcolladokuri](https://github.com/jcolladokuri)
- **LBAC for data sources:** Provide user feedback of potential performance loss from LBAC rules (Enterprise)
- **Library Panels:** Remove direct use of legacy search [#112231](https://github.com/grafana/grafana/pull/112231), [@tomratcliffe](https://github.com/tomratcliffe)
- **Logs panel:** Respect selected fields for downloading logs [#111753](https://github.com/grafana/grafana/pull/111753), [@matyax](https://github.com/matyax)
- **Nav:** Render menu items as `p` tags so truncation logic can work [#113248](https://github.com/grafana/grafana/pull/113248), [@tomratcliffe](https://github.com/tomratcliffe)
- **Navigation:** Move Cost management and billing plugin to root [#111739](https://github.com/grafana/grafana/pull/111739), [@gubjanos](https://github.com/gubjanos)
- **PanelTimeCompare:** Support saving time compare window [#113150](https://github.com/grafana/grafana/pull/113150), [@torkelo](https://github.com/torkelo)
- **PanelTimeSettings:** Support panel time range settings changes from dashboard in view mode [#113027](https://github.com/grafana/grafana/pull/113027), [@torkelo](https://github.com/torkelo)
- **Plugins:** Install Grafana Pathfinder behind a feature flag [#109909](https://github.com/grafana/grafana/pull/109909), [@Jayclifford345](https://github.com/Jayclifford345)
- **PostgreSQL:** Support PGPASSFILE by making password optional [#108856](https://github.com/grafana/grafana/pull/108856), [@taraspos](https://github.com/taraspos)
- **Provisioning:** Watch file system for changes [#112184](https://github.com/grafana/grafana/pull/112184), [@ryantxu](https://github.com/ryantxu)
- **Reporting:** Add support for schema v2 dashboards (Enterprise)
- **Reporting:** Wait for streaming to end before exporting CSVs (Enterprise)
- **SQL Expressions:** Add Functions to Allow list [#113291](https://github.com/grafana/grafana/pull/113291), [@kylebrandt](https://github.com/kylebrandt)
- **Snapshots:** Use appSubUrl for View all snapshots [#111652](https://github.com/grafana/grafana/pull/111652), [@Clarity-89](https://github.com/Clarity-89)
- **Span Details:** Bring back span id to span details [#112411](https://github.com/grafana/grafana/pull/112411), [@ifrost](https://github.com/ifrost)
- **Span Details:** Wrap label values [#112413](https://github.com/grafana/grafana/pull/112413), [@ifrost](https://github.com/ifrost)
- **Stars:** Refactor StarsToolbarButton and unify nav update logic [#112582](https://github.com/grafana/grafana/pull/112582), [@tomratcliffe](https://github.com/tomratcliffe)
- **Stat/BarGauge:** Border radius tweak [#112562](https://github.com/grafana/grafana/pull/112562), [@torkelo](https://github.com/torkelo)
- **Table:** Add some error-case handling to ImageCell [#110461](https://github.com/grafana/grafana/pull/110461), [@fastfrwrd](https://github.com/fastfrwrd)
- **Table:** Allow FieldType.other containing arrays to use Pills [#111205](https://github.com/grafana/grafana/pull/111205), [@fastfrwrd](https://github.com/fastfrwrd)
- **Table:** Disable virtualization, hover overflow, and scrollbar width resizing on Safari 26 [#111834](https://github.com/grafana/grafana/pull/111834), [@fastfrwrd](https://github.com/fastfrwrd)
- **Table:** Pill and JSON Cells should allow formatting [#111951](https://github.com/grafana/grafana/pull/111951), [@fastfrwrd](https://github.com/fastfrwrd)
- **Table:** Support DataLinks and Actions in SparklineCell [#112244](https://github.com/grafana/grafana/pull/112244), [@fastfrwrd](https://github.com/fastfrwrd)
- **Table:** Update ad-hoc filter to use name instead of displayName [#112815](https://github.com/grafana/grafana/pull/112815), [@fastfrwrd](https://github.com/fastfrwrd)
- **Tempo:** Migrates tags and tag values to datasource backend CallResource requests (Enterprise)
- **Theme:** Changes light theme canvas color a more white shade [#111318](https://github.com/grafana/grafana/pull/111318), [@torkelo](https://github.com/torkelo)
- **Themes:** Update themes border radius [#111478](https://github.com/grafana/grafana/pull/111478), [@torkelo](https://github.com/torkelo)
- **TimeComparison:** Automatically show/hide menu on hover [#112750](https://github.com/grafana/grafana/pull/112750), [@jesdavpet](https://github.com/jesdavpet)
- **TimeSeries:** Allow custom time units on x-axis [#112913](https://github.com/grafana/grafana/pull/112913), [@leeoniya](https://github.com/leeoniya)
- **Timeseries:** Numeric duration values could render as NaN (#73795) [#112076](https://github.com/grafana/grafana/pull/112076), [@fastfrwrd](https://github.com/fastfrwrd)
- **Transformations:** Hide "Match all/any" conditions for less than two filters [#109754](https://github.com/grafana/grafana/pull/109754), [@sudoice](https://github.com/sudoice)
- **UI Extensions:** Remove path validation from link extensions [#112259](https://github.com/grafana/grafana/pull/112259), [@leventebalogh](https://github.com/leventebalogh)
### Bug fixes
- **Access Control:** Fix the permission checks for saving/updating/deleting annotations [#112953](https://github.com/grafana/grafana/pull/112953), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Accessibility:** Improve no-unreduced-motion rule and fix violations [#110304](https://github.com/grafana/grafana/pull/110304), [@tomratcliffe](https://github.com/tomratcliffe)
- **Alerting Provisioning:** Don't error on recording rules without conditions [#109410](https://github.com/grafana/grafana/pull/109410), [@djpnicholls](https://github.com/djpnicholls)
- **Alerting:** Clear outdated settings when switching contact point type [#111869](https://github.com/grafana/grafana/pull/111869), [@konrad147](https://github.com/konrad147)
- **Alerting:** Fix enrichment tab to be rendered only for grafana alerting rules [#113030](https://github.com/grafana/grafana/pull/113030), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Fix instances matching in notification policies [#112326](https://github.com/grafana/grafana/pull/112326), [@konrad147](https://github.com/konrad147)
- **Alerting:** Fix threshold params [#111645](https://github.com/grafana/grafana/pull/111645), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Fix unmarshalling of GettableStatus to include time intervals [#112602](https://github.com/grafana/grafana/pull/112602), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Migrate `spec.title` and `spec.name` fieldSelectors [#111993](https://github.com/grafana/grafana/pull/111993), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Normalize health when filtering rules [#113087](https://github.com/grafana/grafana/pull/113087), [@gillesdemey](https://github.com/gillesdemey)
- **Alerting:** Prohibit receivers with empty name [#113064](https://github.com/grafana/grafana/pull/113064), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Provisioning to fix contact point type on save [#112246](https://github.com/grafana/grafana/pull/112246), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Remove \_\_grafana_origin when duplicating rule [#112396](https://github.com/grafana/grafana/pull/112396), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **AnnoList:** Fix annotations not loading when in a repeated row [#111540](https://github.com/grafana/grafana/pull/111540), [@joshhunt](https://github.com/joshhunt)
- **Annotations:** Fix issue with transformation logic in scenes [#112288](https://github.com/grafana/grafana/pull/112288), [@fastfrwrd](https://github.com/fastfrwrd)
- **Auth:** Fix render user OAuth passthrough [#111636](https://github.com/grafana/grafana/pull/111636), [@charandas](https://github.com/charandas)
- **ComboBox:** Add loading state to dropdown and prefixIcon [#112967](https://github.com/grafana/grafana/pull/112967), [@tomratcliffe](https://github.com/tomratcliffe)
- **Connections:** Fix connections home page on enterprise [#111751](https://github.com/grafana/grafana/pull/111751), [@oshirohugo](https://github.com/oshirohugo)
- **Dashboard:** Fix editor specific permissions in /api [#113292](https://github.com/grafana/grafana/pull/113292), [@stephaniehingtgen](https://github.com/stephaniehingtgen)
- **Dashboards:** Fix bug with anon users with editor permissions creating dashboards [#113260](https://github.com/grafana/grafana/pull/113260), [@stephaniehingtgen](https://github.com/stephaniehingtgen)
- **Dashboards:** Fix missing Ctrl+O keyboard shortcut for crosshair toggle [#111310](https://github.com/grafana/grafana/pull/111310), [@ivanortegaalba](https://github.com/ivanortegaalba)
- **Dashboards:** Fix moving to root folder [#111515](https://github.com/grafana/grafana/pull/111515), [@stephaniehingtgen](https://github.com/stephaniehingtgen)
- **Dashboards:** Fix preload field not being persisted via /v1beta1 [#112475](https://github.com/grafana/grafana/pull/112475), [@ivanortegaalba](https://github.com/ivanortegaalba)
- **Flame Graph:** Use suffix for values formatted with a short formatter [#110999](https://github.com/grafana/grafana/pull/110999), [@ifrost](https://github.com/ifrost)
- **FlameGraph:** Ensure total is only counted once for recursive function calls [#111548](https://github.com/grafana/grafana/pull/111548), [@simonswine](https://github.com/simonswine)
- **FolderPermissions:** Return 404 error when folder does not exist instead of 500 [#112919](https://github.com/grafana/grafana/pull/112919), [@Jguer](https://github.com/Jguer)
- **FolderPicker:** Fix expand toggle also selecting folder [#111755](https://github.com/grafana/grafana/pull/111755), [@aocenas](https://github.com/aocenas)
- **Graphite:** Fix legacy response unmarshalling [#112968](https://github.com/grafana/grafana/pull/112968), [@aangelisc](https://github.com/aangelisc)
- **Histogram:** Properly handle sparse heatmap-cells frames [#112907](https://github.com/grafana/grafana/pull/112907), [@leeoniya](https://github.com/leeoniya)
- **LDAP Authentication:** Fix URL to propagate username context as parameter [#111723](https://github.com/grafana/grafana/pull/111723), [@bradleypettit](https://github.com/bradleypettit)
- **Node graph:** Fix context menu position after scrolling [#112374](https://github.com/grafana/grafana/pull/112374), [@adrapereira](https://github.com/adrapereira)
- **Playlist:** Fix navigation issues with emoji-titled dashboards during dual-write migration [#111659](https://github.com/grafana/grafana/pull/111659), [@axelavargas](https://github.com/axelavargas)
- **Plugin Details Page:** Fix tabs not loading on hard refresh [#112915](https://github.com/grafana/grafana/pull/112915), [@sunker](https://github.com/sunker)
- **Plugin navigation:** Fix active nav item selection when there are more than 10 items in a group [#112886](https://github.com/grafana/grafana/pull/112886), [@aocenas](https://github.com/aocenas)
- **Plugins:** Dependencies do not inherit parent URL for preinstall [#111762](https://github.com/grafana/grafana/pull/111762), [@wbrowne](https://github.com/wbrowne)
- **Plugins:** Set isProvisioned for local plugins without remote counterpart [#111268](https://github.com/grafana/grafana/pull/111268), [@oshirohugo](https://github.com/oshirohugo)
- **Prometheus:** Fix incremental querying logic for public dashboards [#111642](https://github.com/grafana/grafana/pull/111642), [@jcolladokuri](https://github.com/jcolladokuri)
- **Prometheus:** Fix parsing logic of prometheus expressions to honor the order of binary operations [#112220](https://github.com/grafana/grafana/pull/112220), [@jcolladokuri](https://github.com/jcolladokuri)
- **Security:** fix for CVE-2025-41115 in SCIM (System for Cross-domain Identity Management) (Enterprise)
- **SoloPanel:** Fixes issue with solo route and scopes variable [#112769](https://github.com/grafana/grafana/pull/112769), [@torkelo](https://github.com/torkelo)
- **Stars:** Fix starred state not being updated [#111936](https://github.com/grafana/grafana/pull/111936), [@Clarity-89](https://github.com/Clarity-89)
- **Stat:** Fix math for percent change value heights when sparkline is not rendered [#112599](https://github.com/grafana/grafana/pull/112599), [@fastfrwrd](https://github.com/fastfrwrd)
- **StateTimeline:** Fix color display in tooltip [#112878](https://github.com/grafana/grafana/pull/112878), [@fastfrwrd](https://github.com/fastfrwrd)
- **Table:** Fix cell inspect for Sparkline and inferred JSON cells [#113059](https://github.com/grafana/grafana/pull/113059), [@fastfrwrd](https://github.com/fastfrwrd)
- **TextPanel:** Fix `CodeEditor` not appearing properly [#111937](https://github.com/grafana/grafana/pull/111937), [@ashharrison90](https://github.com/ashharrison90)
- **UnitPicker/Cascader:** Fixes type to search for unit feature [#112614](https://github.com/grafana/grafana/pull/112614), [@torkelo](https://github.com/torkelo)
- **VizTooltip:** Better overflow handling on long series names [#112240](https://github.com/grafana/grafana/pull/112240), [@fastfrwrd](https://github.com/fastfrwrd)
### Breaking changes
- **Faro:** Update configuration with best practices [#112108](https://github.com/grafana/grafana/pull/112108), [@joshhunt](https://github.com/joshhunt)
- **LibraryPanels:** Remove unique name constraints [#113077](https://github.com/grafana/grafana/pull/113077), [@ryantxu](https://github.com/ryantxu)
- **RBAC:** Only write action sets [#112429](https://github.com/grafana/grafana/pull/112429), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
### Plugin development fixes & changes
- **Checkbox:** Improve accessibility of the `indeterminate` state [#112388](https://github.com/grafana/grafana/pull/112388), [@ashharrison90](https://github.com/ashharrison90)
- **Collapse:** Improve layout and deprecate `collapsible` prop [#113164](https://github.com/grafana/grafana/pull/113164), [@ashharrison90](https://github.com/ashharrison90)
- **Docs:** Add storybook links to components [#113102](https://github.com/grafana/grafana/pull/113102), [@samsch](https://github.com/samsch)
- **Modal:** Fix button focus being clipped [#112867](https://github.com/grafana/grafana/pull/112867), [@ashharrison90](https://github.com/ashharrison90)
- **Slider:** Expose prop to control visibility of input [#113084](https://github.com/grafana/grafana/pull/113084), [@ashharrison90](https://github.com/ashharrison90)
- **Slider:** Make `inputId` a required param and fix minor a11y violations [#112006](https://github.com/grafana/grafana/pull/112006), [@ashharrison90](https://github.com/ashharrison90)
<!-- 12.3.0 END -->
<!-- 12.1.4 START -->
# 12.1.4 (2025-11-19)
### Bug fixes
- **Alerting:** Fix unmarshalling of GettableStatus to include time intervals [#112733](https://github.com/grafana/grafana/pull/112733), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **AnalyticsSummaries:** Fix dashboard rollup not resetting "last X days" metrics to zero (Enterprise)
- **AnalyticsSummaries:** Fix dashboard rollup totals resetting incorrectly (Enterprise)
- **Security:** fix for CVE-2025-41115 in SCIM (System for Cross-domain Identity Management) (Enterprise)
<!-- 12.1.4 END -->
<!-- 12.0.7 START -->
# 12.0.7 (2025-11-19)
### Bug fixes
- **Alerting:** Fix unmarshalling of GettableStatus to include time intervals [#112732](https://github.com/grafana/grafana/pull/112732), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **AnalyticsSummaries:** Fix dashboard rollup not resetting "last X days" metrics to zero (Enterprise)
- **AnalyticsSummaries:** Fix dashboard rollup totals resetting incorrectly (Enterprise)
- **Security:** fix for CVE-2025-41115 in SCIM (System for Cross-domain Identity Management) (Enterprise)
<!-- 12.0.7 END -->
<!-- 12.2.2 START -->
# 12.2.2 (2025-11-19)
### Features and enhancements
- **Access control:** Reduce memory usage when fetching user's permissions [#113414](https://github.com/grafana/grafana/pull/113414), [@hairyhenderson](https://github.com/hairyhenderson)
- **Table:** Pill and JSON Cells should allow formatting [#113130](https://github.com/grafana/grafana/pull/113130), [@fastfrwrd](https://github.com/fastfrwrd)
### Bug fixes
- **AnalyticsSummaries:** Fix dashboard rollup not resetting "last X days" metrics to zero (Enterprise)
- **AnalyticsSummaries:** Fix dashboard rollup totals resetting incorrectly (Enterprise)
- **Security:** fix for CVE-2025-41115 in SCIM (System for Cross-domain Identity Management) (Enterprise)
<!-- 12.2.2 END -->
<!-- 11.6.8 START -->
# 11.6.8 (2025-11-19)
### Bug fixes
- **Alerting:** Fix unmarshalling of GettableStatus to include time intervals [#112731](https://github.com/grafana/grafana/pull/112731), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **AnalyticsSummaries:** Fix dashboard rollup not resetting "last X days" metrics to zero (Enterprise)
- **AnalyticsSummaries:** Fix dashboard rollup totals resetting incorrectly (Enterprise)
- **Seeder:** Add check in `filterRemovedPermissions` for already existing new permissions before seeding (Enterprise)
<!-- 11.6.8 END -->
<!-- 12.2.1+security-01 START -->
# 12.2.1+security-01 (2025-11-19)
### Bug fixes
- **Security:** fix for CVE-2025-41115 in SCIM (System for Cross-domain Identity Management) (Enterprise)
<!-- 12.2.1+security-01 END -->
<!-- 12.1.3+security-01 START -->
# 12.1.3+security-01 (2025-11-19)
### Bug fixes
- **Security:** fix for CVE-2025-41115 in SCIM (System for Cross-domain Identity Management) (Enterprise)
<!-- 12.1.3+security-01 END -->
<!-- 12.0.6+security-01 START -->
# 12.0.6+security-01 (2025-11-19)
### Bug fixes
- **Security:** fix for CVE-2025-41115 in SCIM (System for Cross-domain Identity Management) (Enterprise)
<!-- 12.0.6+security-01 END -->
<!-- 12.2.1 START -->
# 12.2.1 (2025-10-21)

View File

@@ -98,6 +98,7 @@ COPY apps/shorturl apps/shorturl
COPY apps/annotation apps/annotation
COPY apps/correlations apps/correlations
COPY apps/preferences apps/preferences
COPY apps/collections apps/collections
COPY apps/provisioning apps/provisioning
COPY apps/secret apps/secret
COPY apps/scope apps/scope
@@ -106,7 +107,6 @@ COPY apps/logsdrilldown apps/logsdrilldown
COPY apps/advisor apps/advisor
COPY apps/dashboard apps/dashboard
COPY apps/folder apps/folder
COPY apps/preferences apps/preferences
COPY apps/iam apps/iam
COPY apps apps
COPY kindsv2 kindsv2

View File

@@ -6,11 +6,11 @@ require (
github.com/Masterminds/semver/v3 v3.4.0
github.com/google/go-cmp v0.7.0
github.com/google/go-github/v70 v70.0.0
github.com/grafana/authlib/types v0.0.0-20250926065801-df98203cff37
github.com/grafana/authlib/types v0.0.0-20251119142549-be091cf2f4d4
github.com/grafana/grafana v0.0.0-00010101000000-000000000000
github.com/grafana/grafana-app-sdk v0.48.2
github.com/grafana/grafana-app-sdk/logging v0.48.1
github.com/grafana/grafana-plugin-sdk-go v0.282.0
github.com/grafana/grafana-plugin-sdk-go v0.283.0
github.com/grafana/grafana/pkg/apimachinery v0.0.0
github.com/stretchr/testify v1.11.1
k8s.io/apimachinery v0.34.2
@@ -62,7 +62,7 @@ require (
github.com/apache/arrow-go/v18 v18.4.1 // indirect
github.com/armon/go-metrics v0.4.1 // indirect
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
github.com/at-wat/mqtt-go v0.19.4 // indirect
github.com/at-wat/mqtt-go v0.19.6 // indirect
github.com/aws/aws-sdk-go v1.55.7 // indirect
github.com/aws/aws-sdk-go-v2 v1.39.1 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.18.14 // indirect
@@ -147,7 +147,7 @@ require (
github.com/google/go-querystring v1.1.0 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/google/wire v0.7.0 // indirect
github.com/grafana/alerting v0.0.0-20251009192429-9427c24835ae // indirect
github.com/grafana/alerting v0.0.0-20251119204204-77fa75125181 // indirect
github.com/grafana/authlib v0.0.0-20250930082137-a40e2c2b094f // indirect
github.com/grafana/dataplane/sdata v0.0.9 // indirect
github.com/grafana/dskit v0.0.0-20250908063411-6b6da59b5cc4 // indirect
@@ -232,7 +232,7 @@ require (
github.com/prometheus/alertmanager v0.28.0 // indirect
github.com/prometheus/client_golang v1.23.2 // indirect
github.com/prometheus/client_model v0.6.2 // indirect
github.com/prometheus/common v0.67.2 // indirect
github.com/prometheus/common v0.67.3 // indirect
github.com/prometheus/common/sigv4 v0.1.0 // indirect
github.com/prometheus/exporter-toolkit v0.14.0 // indirect
github.com/prometheus/procfs v0.16.1 // indirect

View File

@@ -166,8 +166,8 @@ github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI=
github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
github.com/at-wat/mqtt-go v0.19.4 h1:R2cbCU7O5PHQ38unbe1Y51ncG3KsFEJV6QeipDoqdLQ=
github.com/at-wat/mqtt-go v0.19.4/go.mod h1:AsiWc9kqVOhqq7LzUeWT/AkKUBfx3Sw5cEe8lc06fqA=
github.com/at-wat/mqtt-go v0.19.6 h1:+jo59yGHB3oqBU8nSFYbq6KDgN4ngMpqts5Qtyq61pc=
github.com/at-wat/mqtt-go v0.19.6/go.mod h1:Y/YrYwUlLE4N53//699Zir3WJnxSdJojvLEAbZxJjgQ=
github.com/aws/aws-sdk-go v1.17.7/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
github.com/aws/aws-sdk-go v1.55.7 h1:UJrkFq7es5CShfBwlWAC8DA077vp8PyVbQd3lqLiztE=
@@ -647,12 +647,12 @@ github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z
github.com/gorilla/mux v1.7.1/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
github.com/grafana/alerting v0.0.0-20251009192429-9427c24835ae h1:NLPwY3tIP0lg0g9wTRiMcypm6VRXW6W+MOLBsq8JSVA=
github.com/grafana/alerting v0.0.0-20251009192429-9427c24835ae/go.mod h1:VGjS5gDwWEADPP6pF/drqLxEImgeuHlEW5u8E5EfIrM=
github.com/grafana/alerting v0.0.0-20251119204204-77fa75125181 h1:nbxKRtrbuhvOYmI2RhOYauHRJCtpR+vTNIgg1lFUCws=
github.com/grafana/alerting v0.0.0-20251119204204-77fa75125181/go.mod h1:VtPNIFlEOJPPEc13Ax6ZTbNV3M/sAzLID72YjgzOPVA=
github.com/grafana/authlib v0.0.0-20250930082137-a40e2c2b094f h1:Cbm6OKkOcJ+7CSZsGsEJzktC/SIa5bxVeYKQLuYK86o=
github.com/grafana/authlib v0.0.0-20250930082137-a40e2c2b094f/go.mod h1:axY0cdOg3q0TZHwpHnIz5x16xZ8ZBxJHShsSHHXcHQg=
github.com/grafana/authlib/types v0.0.0-20250926065801-df98203cff37 h1:qEwZ+7MbPjzRvTi31iT9w7NBhKIpKwZrFbYmOZLqkwA=
github.com/grafana/authlib/types v0.0.0-20250926065801-df98203cff37/go.mod h1:qeWYbnWzaYGl88JlL9+DsP1GT2Cudm58rLtx13fKZdw=
github.com/grafana/authlib/types v0.0.0-20251119142549-be091cf2f4d4 h1:Muoy+FMGrHj3GdFbvsMzUT7eusgii9PKf9L1ZaXDDbY=
github.com/grafana/authlib/types v0.0.0-20251119142549-be091cf2f4d4/go.mod h1:qeWYbnWzaYGl88JlL9+DsP1GT2Cudm58rLtx13fKZdw=
github.com/grafana/dataplane/examples v0.0.1 h1:K9M5glueWyLoL4//H+EtTQq16lXuHLmOhb6DjSCahzA=
github.com/grafana/dataplane/examples v0.0.1/go.mod h1:h5YwY8s407/17XF5/dS8XrUtsTVV2RnuW8+m1Mp46mg=
github.com/grafana/dataplane/sdata v0.0.9 h1:AGL1LZnCUG4MnQtnWpBPbQ8ZpptaZs14w6kE/MWfg7s=
@@ -667,8 +667,8 @@ github.com/grafana/grafana-aws-sdk v1.3.0 h1:/bfJzP93rCel1GbWoRSq0oUo424MZXt8jAp
github.com/grafana/grafana-aws-sdk v1.3.0/go.mod h1:VGycF0JkCGKND2O5je1ucOqPJ0ZNhZYzV3c2bNBAaGk=
github.com/grafana/grafana-azure-sdk-go/v2 v2.3.1 h1:FFcEA01tW+SmuJIuDbHOdgUBL+d7DPrZ2N4zwzPhfGk=
github.com/grafana/grafana-azure-sdk-go/v2 v2.3.1/go.mod h1:Oi4anANlCuTCc66jCyqIzfVbgLXFll8Wja+Y4vfANlc=
github.com/grafana/grafana-plugin-sdk-go v0.282.0 h1:9JT9E6T0h8HsK9emTZ5s01uCKaf0Ok4PjYbb7M/iOjM=
github.com/grafana/grafana-plugin-sdk-go v0.282.0/go.mod h1:20qhoYxIgbZRmwCEO1KMP8q2yq/Kge5+xE/99/hLEk0=
github.com/grafana/grafana-plugin-sdk-go v0.283.0 h1:G7IHshAr30rLWV9FtX3iLlFTTlBhuOkfe7xVAoIP5rE=
github.com/grafana/grafana-plugin-sdk-go v0.283.0/go.mod h1:20qhoYxIgbZRmwCEO1KMP8q2yq/Kge5+xE/99/hLEk0=
github.com/grafana/grafana/pkg/promlib v0.0.8 h1:VUWsqttdf0wMI4j9OX9oNrykguQpZcruudDAFpJJVw0=
github.com/grafana/grafana/pkg/promlib v0.0.8/go.mod h1:U1ezG/MGaEPoThqsr3lymMPN5yIPdVTJnDZ+wcXT+ao=
github.com/grafana/grafana/pkg/semconv v0.0.0-20250804150913-990f1c69ecc2 h1:A65jWgLk4Re28gIuZcpC0aTh71JZ0ey89hKGE9h543s=
@@ -1046,8 +1046,8 @@ github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8b
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
github.com/prometheus/common v0.67.2 h1:PcBAckGFTIHt2+L3I33uNRTlKTplNzFctXcWhPyAEN8=
github.com/prometheus/common v0.67.2/go.mod h1:63W3KZb1JOKgcjlIr64WW/LvFGAqKPj0atm+knVGEko=
github.com/prometheus/common v0.67.3 h1:shd26MlnwTw5jksTDhC7rTQIteBxy+ZZDr3t7F2xN2Q=
github.com/prometheus/common v0.67.3/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI=
github.com/prometheus/common/sigv4 v0.1.0 h1:qoVebwtwwEhS85Czm2dSROY5fTo2PAPEVdDeppTwGX4=
github.com/prometheus/common/sigv4 v0.1.0/go.mod h1:2Jkxxk9yYvCkE5G1sQT7GuEXm57JrvHu9k5YwTjsNtI=
github.com/prometheus/exporter-toolkit v0.14.0 h1:NMlswfibpcZZ+H0sZBiTjrA3/aBFHkNZqE+iCj5EmRg=

View File

@@ -32,7 +32,6 @@ require (
github.com/go-openapi/swag/jsonname v0.25.1 // indirect
github.com/go-test/deep v1.1.1 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang-jwt/jwt/v5 v5.3.0 // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/gnostic-models v0.7.0 // indirect
github.com/google/go-cmp v0.7.0 // indirect
@@ -60,7 +59,7 @@ require (
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/prometheus/client_golang v1.23.2 // indirect
github.com/prometheus/client_model v0.6.2 // indirect
github.com/prometheus/common v0.67.2 // indirect
github.com/prometheus/common v0.67.3 // indirect
github.com/prometheus/procfs v0.16.1 // indirect
github.com/puzpuzpuz/xsync/v2 v2.5.1 // indirect
github.com/rogpeppe/go-internal v1.14.1 // indirect

View File

@@ -140,8 +140,8 @@ github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:
github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
github.com/prometheus/common v0.67.2 h1:PcBAckGFTIHt2+L3I33uNRTlKTplNzFctXcWhPyAEN8=
github.com/prometheus/common v0.67.2/go.mod h1:63W3KZb1JOKgcjlIr64WW/LvFGAqKPj0atm+knVGEko=
github.com/prometheus/common v0.67.3 h1:shd26MlnwTw5jksTDhC7rTQIteBxy+ZZDr3t7F2xN2Q=
github.com/prometheus/common v0.67.3/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI=
github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg=
github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is=

View File

@@ -5,7 +5,7 @@ go 1.25.3
require (
github.com/grafana/grafana-app-sdk v0.48.2
github.com/grafana/grafana-app-sdk/logging v0.48.1
github.com/prometheus/common v0.67.2
github.com/prometheus/common v0.67.3
k8s.io/apimachinery v0.34.2
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912
)

View File

@@ -104,8 +104,8 @@ github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h
github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg=
github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
github.com/prometheus/common v0.67.2 h1:PcBAckGFTIHt2+L3I33uNRTlKTplNzFctXcWhPyAEN8=
github.com/prometheus/common v0.67.2/go.mod h1:63W3KZb1JOKgcjlIr64WW/LvFGAqKPj0atm+knVGEko=
github.com/prometheus/common v0.67.3 h1:shd26MlnwTw5jksTDhC7rTQIteBxy+ZZDr3t7F2xN2Q=
github.com/prometheus/common v0.67.3/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI=
github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg=
github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is=
github.com/puzpuzpuz/xsync/v2 v2.5.1 h1:mVGYAvzDSu52+zaGyNjC+24Xw2bQi3kTr4QJ6N9pIIU=

View File

@@ -49,7 +49,7 @@ require (
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/prometheus/client_golang v1.23.2 // indirect
github.com/prometheus/client_model v0.6.2 // indirect
github.com/prometheus/common v0.67.2 // indirect
github.com/prometheus/common v0.67.3 // indirect
github.com/prometheus/procfs v0.16.1 // indirect
github.com/puzpuzpuz/xsync/v2 v2.5.1 // indirect
github.com/rogpeppe/go-internal v1.14.1 // indirect

View File

@@ -104,8 +104,8 @@ github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h
github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg=
github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
github.com/prometheus/common v0.67.2 h1:PcBAckGFTIHt2+L3I33uNRTlKTplNzFctXcWhPyAEN8=
github.com/prometheus/common v0.67.2/go.mod h1:63W3KZb1JOKgcjlIr64WW/LvFGAqKPj0atm+knVGEko=
github.com/prometheus/common v0.67.3 h1:shd26MlnwTw5jksTDhC7rTQIteBxy+ZZDr3t7F2xN2Q=
github.com/prometheus/common v0.67.3/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI=
github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg=
github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is=
github.com/puzpuzpuz/xsync/v2 v2.5.1 h1:mVGYAvzDSu52+zaGyNjC+24Xw2bQi3kTr4QJ6N9pIIU=

10
apps/collections/Makefile Normal file
View File

@@ -0,0 +1,10 @@
include ../sdk.mk
.PHONY: generate # Run Grafana App SDK code generation
generate: install-app-sdk update-app-sdk
@$(APP_SDK_BIN) generate \
--source=./kinds/ \
--gogenpath=./pkg/apis \
--grouping=group \
--genoperatorstate=false \
--defencoding=none

69
apps/collections/go.mod Normal file
View File

@@ -0,0 +1,69 @@
module github.com/grafana/grafana/apps/collections
go 1.25.3
require (
github.com/grafana/grafana-app-sdk v0.48.2
github.com/grafana/grafana/pkg/apimachinery v0.0.0-20250804150913-990f1c69ecc2
github.com/stretchr/testify v1.11.1
k8s.io/apimachinery v0.34.2
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912
)
require (
github.com/beorn7/perks v1.0.1 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/emicklei/go-restful/v3 v3.13.0 // indirect
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
github.com/getkin/kin-openapi v0.133.0 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-openapi/jsonpointer v0.22.1 // indirect
github.com/go-openapi/jsonreference v0.21.2 // indirect
github.com/go-openapi/swag v0.23.0 // indirect
github.com/go-openapi/swag/jsonname v0.25.1 // indirect
github.com/go-test/deep v1.1.1 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/google/gnostic-models v0.7.0 // indirect
github.com/grafana/grafana-app-sdk/logging v0.48.1 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/mailru/easyjson v0.9.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037 // indirect
github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90 // indirect
github.com/perimeterx/marshmallow v1.1.5 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/prometheus/client_golang v1.23.2 // indirect
github.com/prometheus/client_model v0.6.2 // indirect
github.com/prometheus/common v0.67.3 // indirect
github.com/prometheus/procfs v0.16.1 // indirect
github.com/stretchr/objx v0.5.2 // indirect
github.com/woodsbury/decimal128 v1.3.0 // indirect
github.com/x448/float16 v0.8.4 // indirect
go.opentelemetry.io/otel v1.38.0 // indirect
go.opentelemetry.io/otel/trace v1.38.0 // indirect
go.yaml.in/yaml/v2 v2.4.3 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
golang.org/x/net v0.47.0 // indirect
golang.org/x/oauth2 v0.33.0 // indirect
golang.org/x/sys v0.38.0 // indirect
golang.org/x/term v0.37.0 // indirect
golang.org/x/text v0.31.0 // indirect
golang.org/x/time v0.14.0 // indirect
google.golang.org/protobuf v1.36.10 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/client-go v0.34.2 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
sigs.k8s.io/randfill v1.0.0 // indirect
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
sigs.k8s.io/yaml v1.6.0 // indirect
)

187
apps/collections/go.sum Normal file
View File

@@ -0,0 +1,187 @@
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/emicklei/go-restful/v3 v3.13.0 h1:C4Bl2xDndpU6nJ4bc1jXd+uTmYPVUwkD6bFY/oTyCes=
github.com/emicklei/go-restful/v3 v3.13.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM=
github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ=
github.com/getkin/kin-openapi v0.133.0 h1:pJdmNohVIJ97r4AUFtEXRXwESr8b0bD721u/Tz6k8PQ=
github.com/getkin/kin-openapi v0.133.0/go.mod h1:boAciF6cXk5FhPqe/NQeBTeenbjqU4LhWBf09ILVvWE=
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-openapi/jsonpointer v0.22.1 h1:sHYI1He3b9NqJ4wXLoJDKmUmHkWy/L7rtEo92JUxBNk=
github.com/go-openapi/jsonpointer v0.22.1/go.mod h1:pQT9OsLkfz1yWoMgYFy4x3U5GY5nUlsOn1qSBH5MkCM=
github.com/go-openapi/jsonreference v0.21.2 h1:Wxjda4M/BBQllegefXrY/9aq1fxBA8sI5M/lFU6tSWU=
github.com/go-openapi/jsonreference v0.21.2/go.mod h1:pp3PEjIsJ9CZDGCNOyXIQxsNuroxm8FAJ/+quA0yKzQ=
github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE=
github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ=
github.com/go-openapi/swag/jsonname v0.25.1 h1:Sgx+qbwa4ej6AomWC6pEfXrA6uP2RkaNjA9BR8a1RJU=
github.com/go-openapi/swag/jsonname v0.25.1/go.mod h1:71Tekow6UOLBD3wS7XhdT98g5J5GR13NOTQ9/6Q11Zo=
github.com/go-test/deep v1.1.1 h1:0r/53hagsehfO4bzD2Pgr/+RgHqhmf+k1Bpse2cTu1U=
github.com/go-test/deep v1.1.1/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo=
github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/grafana/grafana-app-sdk v0.48.2 h1:CQQDhwo1fWaXQVKvxxOcK6azbuY3E2TgJHNAZlYYn7U=
github.com/grafana/grafana-app-sdk v0.48.2/go.mod h1:LDOvQ7OOyHLcXdSa0InATCa5OMoYAd6E1+rGLrMgHuk=
github.com/grafana/grafana-app-sdk/logging v0.48.1 h1:veM0X5LAPyN3KsDLglWjIofndbGuf7MqnrDuDN+F/Ng=
github.com/grafana/grafana-app-sdk/logging v0.48.1/go.mod h1:Gh/nBWnspK3oDNWtiM5qUF/fardHzOIEez+SPI3JeHA=
github.com/grafana/grafana/pkg/apimachinery v0.0.0-20250804150913-990f1c69ecc2 h1:X0cnaFdR+iz+sDSuoZmkryFSjOirchHe2MdKSRwBWgM=
github.com/grafana/grafana/pkg/apimachinery v0.0.0-20250804150913-990f1c69ecc2/go.mod h1:RRvSjHH12/PnQaXraMO65jUhVu8n59mzvhfIMBETnV4=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4=
github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8=
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037 h1:G7ERwszslrBzRxj//JalHPu/3yz+De2J+4aLtSRlHiY=
github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037/go.mod h1:2bpvgLBZEtENV5scfDFEtB/5+1M4hkQhDQrccEJ/qGw=
github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90 h1:bQx3WeLcUWy+RletIKwUIt4x3t8n2SxavmoclizMb8c=
github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90/go.mod h1:y5+oSEHCPT/DGrS++Wc/479ERge0zTFxaF8PbGKcg2o=
github.com/perimeterx/marshmallow v1.1.5 h1:a2LALqQ1BlHM8PZblsDdidgv1mWi1DgC2UmX50IvK2s=
github.com/perimeterx/marshmallow v1.1.5/go.mod h1:dsXbUu8CRzfYP5a87xpp0xq9S3u0Vchtcl8we9tYaXw=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o=
github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg=
github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
github.com/prometheus/common v0.67.3 h1:shd26MlnwTw5jksTDhC7rTQIteBxy+ZZDr3t7F2xN2Q=
github.com/prometheus/common v0.67.3/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI=
github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg=
github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU=
github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
github.com/woodsbury/decimal128 v1.3.0 h1:8pffMNWIlC0O5vbyHWFZAt5yWvWcrHA+3ovIIjVWss0=
github.com/woodsbury/decimal128 v1.3.0/go.mod h1:C5UTmyTjW3JftjUFzOVhC20BEQa2a4ZKOB5I6Zjb+ds=
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8=
go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM=
go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0=
go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8=
go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
golang.org/x/oauth2 v0.33.0 h1:4Q+qn+E5z8gPRJfmRy7C2gGG3T4jIprK6aSYgTXGRpo=
golang.org/x/oauth2 v0.33.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU=
golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI=
golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=
google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
k8s.io/api v0.34.2 h1:fsSUNZhV+bnL6Aqrp6O7lMTy6o5x2C4XLjnh//8SLYY=
k8s.io/api v0.34.2/go.mod h1:MMBPaWlED2a8w4RSeanD76f7opUoypY8TFYkSM+3XHw=
k8s.io/apimachinery v0.34.2 h1:zQ12Uk3eMHPxrsbUJgNF8bTauTVR2WgqJsTmwTE/NW4=
k8s.io/apimachinery v0.34.2/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw=
k8s.io/client-go v0.34.2 h1:Co6XiknN+uUZqiddlfAjT68184/37PS4QAzYvQvDR8M=
k8s.io/client-go v0.34.2/go.mod h1:2VYDl1XXJsdcAxw7BenFslRQX28Dxz91U9MWKjX97fE=
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE=
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ=
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y=
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE=
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=
sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco=
sigs.k8s.io/structured-merge-diff/v6 v6.3.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE=
sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs=
sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4=

View File

@@ -0,0 +1,4 @@
module: "github.com/grafana/grafana/apps/preferences/kinds"
language: {
version: "v0.9.0"
}

View File

@@ -0,0 +1,17 @@
package preferences
manifest: {
appName: "collections"
groupOverride: "collections.grafana.app"
versions: {
"v1alpha1": {
codegen: {
ts: {enabled: false}
go: {enabled: true}
}
kinds: [
starsV1alpha1,
]
}
}
}

View File

@@ -0,0 +1,18 @@
package v1alpha1
import "k8s.io/apimachinery/pkg/runtime/schema"
const (
// APIGroup is the API group used by all kinds in this package
APIGroup = "collections.grafana.app"
// APIVersion is the API version used by all kinds in this package
APIVersion = "v1alpha1"
)
var (
// GroupVersion is a schema.GroupVersion consisting of the Group and Version constants for this package
GroupVersion = schema.GroupVersion{
Group: APIGroup,
Version: APIVersion,
}
)

View File

@@ -0,0 +1,58 @@
package v1alpha1
import (
"fmt"
time "time"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"github.com/grafana/grafana/pkg/apimachinery/utils"
)
var StarsResourceInfo = utils.NewResourceInfo(APIGroup, APIVersion,
"stars", "stars", "Stars",
func() runtime.Object { return &Stars{} },
func() runtime.Object { return &StarsList{} },
utils.TableColumns{
Definition: []metav1.TableColumnDefinition{
{Name: "Name", Type: "string", Format: "name"},
{Name: "Created At", Type: "date"},
},
Reader: func(obj any) ([]any, error) {
p, ok := obj.(*Stars)
if ok && p != nil {
return []any{
p.Name,
p.CreationTimestamp.UTC().Format(time.RFC3339),
}, nil
}
return nil, fmt.Errorf("expected stars")
},
},
)
var (
SchemeBuilder runtime.SchemeBuilder
localSchemeBuilder = &SchemeBuilder
AddToScheme = localSchemeBuilder.AddToScheme
schemeGroupVersion = GroupVersion
)
func init() {
localSchemeBuilder.Register(addKnownTypes, addDefaultingFuncs)
}
// Adds the list of known types to the given scheme.
func addKnownTypes(scheme *runtime.Scheme) error {
scheme.AddKnownTypes(schemeGroupVersion,
&Stars{},
&StarsList{},
)
metav1.AddToGroupVersion(scheme, schemeGroupVersion)
return nil
}
func addDefaultingFuncs(scheme *runtime.Scheme) error {
return nil // return RegisterDefaults(scheme)
}

View File

@@ -10,7 +10,7 @@ import (
// schema is unexported to prevent accidental overwrites
var (
schemaStars = resource.NewSimpleSchema("preferences.grafana.app", "v1alpha1", &Stars{}, &StarsList{}, resource.WithKind("Stars"),
schemaStars = resource.NewSimpleSchema("collections.grafana.app", "v1alpha1", &Stars{}, &StarsList{}, resource.WithKind("Stars"),
resource.WithPlural("stars"), resource.WithScope(resource.NamespacedScope))
kindStars = resource.Kind{
Schema: schemaStars,

View File

@@ -0,0 +1,187 @@
//go:build !ignore_autogenerated
// +build !ignore_autogenerated
// SPDX-License-Identifier: AGPL-3.0-only
// Code generated by openapi-gen. DO NOT EDIT.
package v1alpha1
import (
common "k8s.io/kube-openapi/pkg/common"
spec "k8s.io/kube-openapi/pkg/validation/spec"
)
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
return map[string]common.OpenAPIDefinition{
"github.com/grafana/grafana/apps/collections/pkg/apis/collections/v1alpha1.Stars": schema_pkg_apis_collections_v1alpha1_Stars(ref),
"github.com/grafana/grafana/apps/collections/pkg/apis/collections/v1alpha1.StarsList": schema_pkg_apis_collections_v1alpha1_StarsList(ref),
"github.com/grafana/grafana/apps/collections/pkg/apis/collections/v1alpha1.StarsResource": schema_pkg_apis_collections_v1alpha1_StarsResource(ref),
"github.com/grafana/grafana/apps/collections/pkg/apis/collections/v1alpha1.StarsSpec": schema_pkg_apis_collections_v1alpha1_StarsSpec(ref),
}
}
func schema_pkg_apis_collections_v1alpha1_Stars(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Properties: map[string]spec.Schema{
"kind": {
SchemaProps: spec.SchemaProps{
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
Type: []string{"string"},
Format: "",
},
},
"apiVersion": {
SchemaProps: spec.SchemaProps{
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
Type: []string{"string"},
Format: "",
},
},
"metadata": {
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
},
},
"spec": {
SchemaProps: spec.SchemaProps{
Description: "Spec is the spec of the Stars",
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/collections/pkg/apis/collections/v1alpha1.StarsSpec"),
},
},
},
Required: []string{"metadata", "spec"},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/collections/pkg/apis/collections/v1alpha1.StarsSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
}
}
func schema_pkg_apis_collections_v1alpha1_StarsList(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Properties: map[string]spec.Schema{
"kind": {
SchemaProps: spec.SchemaProps{
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
Type: []string{"string"},
Format: "",
},
},
"apiVersion": {
SchemaProps: spec.SchemaProps{
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
Type: []string{"string"},
Format: "",
},
},
"metadata": {
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
},
},
"items": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/collections/pkg/apis/collections/v1alpha1.Stars"),
},
},
},
},
},
},
Required: []string{"metadata", "items"},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/collections/pkg/apis/collections/v1alpha1.Stars", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
}
}
func schema_pkg_apis_collections_v1alpha1_StarsResource(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Properties: map[string]spec.Schema{
"group": {
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
"kind": {
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
"names": {
VendorExtensible: spec.VendorExtensible{
Extensions: spec.Extensions{
"x-kubernetes-list-type": "set",
},
},
SchemaProps: spec.SchemaProps{
Description: "The set of resources",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
},
},
},
Required: []string{"group", "kind", "names"},
},
},
}
}
func schema_pkg_apis_collections_v1alpha1_StarsSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Type: []string{"object"},
Properties: map[string]spec.Schema{
"resource": {
SchemaProps: spec.SchemaProps{
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
SchemaProps: spec.SchemaProps{
Default: map[string]interface{}{},
Ref: ref("github.com/grafana/grafana/apps/collections/pkg/apis/collections/v1alpha1.StarsResource"),
},
},
},
},
},
},
Required: []string{"resource"},
},
},
Dependencies: []string{
"github.com/grafana/grafana/apps/collections/pkg/apis/collections/v1alpha1.StarsResource"},
}
}

View File

@@ -0,0 +1,2 @@
API rule violation: list_type_missing,github.com/grafana/grafana/apps/collections/pkg/apis/collections/v1alpha1,StarsSpec,Resource
API rule violation: streaming_list_type_json_tags,github.com/grafana/grafana/apps/collections/pkg/apis/collections/v1alpha1,StarsList,ListMeta

View File

@@ -0,0 +1,132 @@
//
// This file is generated by grafana-app-sdk
// DO NOT EDIT
//
package apis
import (
"encoding/json"
"fmt"
"strings"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/kube-openapi/pkg/spec3"
"k8s.io/kube-openapi/pkg/validation/spec"
"github.com/grafana/grafana-app-sdk/app"
"github.com/grafana/grafana-app-sdk/resource"
"github.com/grafana/grafana/apps/collections/pkg/apis/collections/v1alpha1"
)
var (
rawSchemaStarsv1alpha1 = []byte(`{"Resource":{"additionalProperties":false,"properties":{"group":{"type":"string"},"kind":{"type":"string"},"names":{"description":"The set of resources\n+listType=set","items":{"type":"string"},"type":"array"}},"required":["group","kind","names"],"type":"object"},"Stars":{"properties":{"spec":{"$ref":"#/components/schemas/spec"}},"required":["spec"]},"spec":{"additionalProperties":false,"properties":{"resource":{"items":{"$ref":"#/components/schemas/Resource"},"type":"array"}},"required":["resource"],"type":"object"}}`)
versionSchemaStarsv1alpha1 app.VersionSchema
_ = json.Unmarshal(rawSchemaStarsv1alpha1, &versionSchemaStarsv1alpha1)
)
var appManifestData = app.ManifestData{
AppName: "collections",
Group: "collections.grafana.app",
PreferredVersion: "v1alpha1",
Versions: []app.ManifestVersion{
{
Name: "v1alpha1",
Served: true,
Kinds: []app.ManifestVersionKind{
{
Kind: "Stars",
Plural: "Stars",
Scope: "Namespaced",
Conversion: false,
Admission: &app.AdmissionCapabilities{
Validation: &app.ValidationCapability{
Operations: []app.AdmissionOperation{
app.AdmissionOperationCreate,
app.AdmissionOperationUpdate,
},
},
},
Schema: &versionSchemaStarsv1alpha1,
},
},
Routes: app.ManifestVersionRoutes{
Namespaced: map[string]spec3.PathProps{},
Cluster: map[string]spec3.PathProps{},
Schemas: map[string]spec.Schema{},
},
},
},
}
func LocalManifest() app.Manifest {
return app.NewEmbeddedManifest(appManifestData)
}
func RemoteManifest() app.Manifest {
return app.NewAPIServerManifest("collections")
}
var kindVersionToGoType = map[string]resource.Kind{
"Stars/v1alpha1": v1alpha1.StarsKind(),
}
// ManifestGoTypeAssociator returns the associated resource.Kind instance for a given Kind and Version, if one exists.
// If there is no association for the provided Kind and Version, exists will return false.
func ManifestGoTypeAssociator(kind, version string) (goType resource.Kind, exists bool) {
goType, exists = kindVersionToGoType[fmt.Sprintf("%s/%s", kind, version)]
return goType, exists
}
var customRouteToGoResponseType = map[string]any{}
// ManifestCustomRouteResponsesAssociator returns the associated response go type for a given kind, version, custom route path, and method, if one exists.
// kind may be empty for custom routes which are not kind subroutes. Leading slashes are removed from subroute paths.
// If there is no association for the provided kind, version, custom route path, and method, exists will return false.
// Resource routes (those without a kind) should prefix their route with "<namespace>/" if the route is namespaced (otherwise the route is assumed to be cluster-scope)
func ManifestCustomRouteResponsesAssociator(kind, version, path, verb string) (goType any, exists bool) {
if len(path) > 0 && path[0] == '/' {
path = path[1:]
}
goType, exists = customRouteToGoResponseType[fmt.Sprintf("%s|%s|%s|%s", version, kind, path, strings.ToUpper(verb))]
return goType, exists
}
var customRouteToGoParamsType = map[string]runtime.Object{}
func ManifestCustomRouteQueryAssociator(kind, version, path, verb string) (goType runtime.Object, exists bool) {
if len(path) > 0 && path[0] == '/' {
path = path[1:]
}
goType, exists = customRouteToGoParamsType[fmt.Sprintf("%s|%s|%s|%s", version, kind, path, strings.ToUpper(verb))]
return goType, exists
}
var customRouteToGoRequestBodyType = map[string]any{}
func ManifestCustomRouteRequestBodyAssociator(kind, version, path, verb string) (goType any, exists bool) {
if len(path) > 0 && path[0] == '/' {
path = path[1:]
}
goType, exists = customRouteToGoRequestBodyType[fmt.Sprintf("%s|%s|%s|%s", version, kind, path, strings.ToUpper(verb))]
return goType, exists
}
type GoTypeAssociator struct{}
func NewGoTypeAssociator() *GoTypeAssociator {
return &GoTypeAssociator{}
}
func (g *GoTypeAssociator) KindToGoType(kind, version string) (goType resource.Kind, exists bool) {
return ManifestGoTypeAssociator(kind, version)
}
func (g *GoTypeAssociator) CustomRouteReturnGoType(kind, version, path, verb string) (goType any, exists bool) {
return ManifestCustomRouteResponsesAssociator(kind, version, path, verb)
}
func (g *GoTypeAssociator) CustomRouteQueryGoType(kind, version, path, verb string) (goType runtime.Object, exists bool) {
return ManifestCustomRouteQueryAssociator(kind, version, path, verb)
}
func (g *GoTypeAssociator) CustomRouteRequestBodyGoType(kind, version, path, verb string) (goType any, exists bool) {
return ManifestCustomRouteRequestBodyAssociator(kind, version, path, verb)
}

View File

@@ -49,7 +49,7 @@ require (
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/prometheus/client_golang v1.23.2 // indirect
github.com/prometheus/client_model v0.6.2 // indirect
github.com/prometheus/common v0.67.2 // indirect
github.com/prometheus/common v0.67.3 // indirect
github.com/prometheus/procfs v0.16.1 // indirect
github.com/puzpuzpuz/xsync/v2 v2.5.1 // indirect
github.com/rogpeppe/go-internal v1.14.1 // indirect

View File

@@ -104,8 +104,8 @@ github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h
github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg=
github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
github.com/prometheus/common v0.67.2 h1:PcBAckGFTIHt2+L3I33uNRTlKTplNzFctXcWhPyAEN8=
github.com/prometheus/common v0.67.2/go.mod h1:63W3KZb1JOKgcjlIr64WW/LvFGAqKPj0atm+knVGEko=
github.com/prometheus/common v0.67.3 h1:shd26MlnwTw5jksTDhC7rTQIteBxy+ZZDr3t7F2xN2Q=
github.com/prometheus/common v0.67.3/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI=
github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg=
github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is=
github.com/puzpuzpuz/xsync/v2 v2.5.1 h1:mVGYAvzDSu52+zaGyNjC+24Xw2bQi3kTr4QJ6N9pIIU=

View File

@@ -4,10 +4,10 @@ go 1.25.3
require (
cuelang.org/go v0.11.1
github.com/grafana/authlib/types v0.0.0-20250926065801-df98203cff37
github.com/grafana/authlib/types v0.0.0-20251119142549-be091cf2f4d4
github.com/grafana/grafana-app-sdk v0.48.2
github.com/grafana/grafana-app-sdk/logging v0.48.1
github.com/grafana/grafana-plugin-sdk-go v0.282.0
github.com/grafana/grafana-plugin-sdk-go v0.283.0
github.com/grafana/grafana/pkg/apimachinery v0.0.0-20250514132646-acbc7b54ed9e
github.com/prometheus/client_golang v1.23.2
github.com/stretchr/testify v1.11.1
@@ -84,7 +84,7 @@ require (
github.com/pierrec/lz4/v4 v4.1.22 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/prometheus/client_model v0.6.2 // indirect
github.com/prometheus/common v0.67.2 // indirect
github.com/prometheus/common v0.67.3 // indirect
github.com/prometheus/procfs v0.16.1 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/spf13/pflag v1.0.10 // indirect

View File

@@ -81,16 +81,16 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/grafana/authlib v0.0.0-20250930082137-a40e2c2b094f h1:Cbm6OKkOcJ+7CSZsGsEJzktC/SIa5bxVeYKQLuYK86o=
github.com/grafana/authlib v0.0.0-20250930082137-a40e2c2b094f/go.mod h1:axY0cdOg3q0TZHwpHnIz5x16xZ8ZBxJHShsSHHXcHQg=
github.com/grafana/authlib/types v0.0.0-20250926065801-df98203cff37 h1:qEwZ+7MbPjzRvTi31iT9w7NBhKIpKwZrFbYmOZLqkwA=
github.com/grafana/authlib/types v0.0.0-20250926065801-df98203cff37/go.mod h1:qeWYbnWzaYGl88JlL9+DsP1GT2Cudm58rLtx13fKZdw=
github.com/grafana/authlib/types v0.0.0-20251119142549-be091cf2f4d4 h1:Muoy+FMGrHj3GdFbvsMzUT7eusgii9PKf9L1ZaXDDbY=
github.com/grafana/authlib/types v0.0.0-20251119142549-be091cf2f4d4/go.mod h1:qeWYbnWzaYGl88JlL9+DsP1GT2Cudm58rLtx13fKZdw=
github.com/grafana/dskit v0.0.0-20250908063411-6b6da59b5cc4 h1:jSojuc7njleS3UOz223WDlXOinmuLAIPI0z2vtq8EgI=
github.com/grafana/dskit v0.0.0-20250908063411-6b6da59b5cc4/go.mod h1:VahT+GtfQIM+o8ht2StR6J9g+Ef+C2Vokh5uuSmOD/4=
github.com/grafana/grafana-app-sdk v0.48.2 h1:CQQDhwo1fWaXQVKvxxOcK6azbuY3E2TgJHNAZlYYn7U=
github.com/grafana/grafana-app-sdk v0.48.2/go.mod h1:LDOvQ7OOyHLcXdSa0InATCa5OMoYAd6E1+rGLrMgHuk=
github.com/grafana/grafana-app-sdk/logging v0.48.1 h1:veM0X5LAPyN3KsDLglWjIofndbGuf7MqnrDuDN+F/Ng=
github.com/grafana/grafana-app-sdk/logging v0.48.1/go.mod h1:Gh/nBWnspK3oDNWtiM5qUF/fardHzOIEez+SPI3JeHA=
github.com/grafana/grafana-plugin-sdk-go v0.282.0 h1:9JT9E6T0h8HsK9emTZ5s01uCKaf0Ok4PjYbb7M/iOjM=
github.com/grafana/grafana-plugin-sdk-go v0.282.0/go.mod h1:20qhoYxIgbZRmwCEO1KMP8q2yq/Kge5+xE/99/hLEk0=
github.com/grafana/grafana-plugin-sdk-go v0.283.0 h1:G7IHshAr30rLWV9FtX3iLlFTTlBhuOkfe7xVAoIP5rE=
github.com/grafana/grafana-plugin-sdk-go v0.283.0/go.mod h1:20qhoYxIgbZRmwCEO1KMP8q2yq/Kge5+xE/99/hLEk0=
github.com/grafana/grafana/pkg/apimachinery v0.0.0-20250514132646-acbc7b54ed9e h1:BTKk7LHuG1kmAkucwTA7DuMbKpKvJTKrGdBmUNO4dfQ=
github.com/grafana/grafana/pkg/apimachinery v0.0.0-20250514132646-acbc7b54ed9e/go.mod h1:IA4SOwun8QyST9c5UNs/fN37XL6boXXDvRYFcFwbipg=
github.com/grafana/otel-profiling-go v0.5.1 h1:stVPKAFZSa7eGiqbYuG25VcqYksR6iWvF3YH66t4qL8=
@@ -202,8 +202,8 @@ github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h
github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg=
github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
github.com/prometheus/common v0.67.2 h1:PcBAckGFTIHt2+L3I33uNRTlKTplNzFctXcWhPyAEN8=
github.com/prometheus/common v0.67.2/go.mod h1:63W3KZb1JOKgcjlIr64WW/LvFGAqKPj0atm+knVGEko=
github.com/prometheus/common v0.67.3 h1:shd26MlnwTw5jksTDhC7rTQIteBxy+ZZDr3t7F2xN2Q=
github.com/prometheus/common v0.67.3/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI=
github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg=
github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is=
github.com/protocolbuffers/txtpbfmt v0.0.0-20241112170944-20d2c9ebc01d h1:HWfigq7lB31IeJL8iy7jkUmU/PG1Sr8jVGhS749dbUA=

View File

@@ -11,11 +11,13 @@ import (
"github.com/grafana/grafana/apps/dashboard/pkg/migration/schemaversion"
)
func RegisterConversions(s *runtime.Scheme, dsIndexProvider schemaversion.DataSourceIndexProvider, _ schemaversion.LibraryElementIndexProvider) error {
func RegisterConversions(s *runtime.Scheme, dsIndexProvider schemaversion.DataSourceIndexProvider, leIndexProvider schemaversion.LibraryElementIndexProvider) error {
// Wrap the provider once with 10s caching for all conversions.
// This prevents repeated DB queries across multiple conversion calls while allowing
// the cache to refresh periodically, making it suitable for long-lived singleton usage.
dsIndexProvider = schemaversion.WrapIndexProviderWithCache(dsIndexProvider)
// Wrap library element provider with caching as well
leIndexProvider = schemaversion.WrapLibraryElementProviderWithCache(leIndexProvider)
// v0 conversions
if err := s.AddConversionFunc((*dashv0.Dashboard)(nil), (*dashv1.Dashboard)(nil),
@@ -26,13 +28,13 @@ func RegisterConversions(s *runtime.Scheme, dsIndexProvider schemaversion.DataSo
}
if err := s.AddConversionFunc((*dashv0.Dashboard)(nil), (*dashv2alpha1.Dashboard)(nil),
withConversionMetrics(dashv0.APIVERSION, dashv2alpha1.APIVERSION, func(a, b interface{}, scope conversion.Scope) error {
return Convert_V0_to_V2alpha1(a.(*dashv0.Dashboard), b.(*dashv2alpha1.Dashboard), scope, dsIndexProvider)
return Convert_V0_to_V2alpha1(a.(*dashv0.Dashboard), b.(*dashv2alpha1.Dashboard), scope, dsIndexProvider, leIndexProvider)
})); err != nil {
return err
}
if err := s.AddConversionFunc((*dashv0.Dashboard)(nil), (*dashv2beta1.Dashboard)(nil),
withConversionMetrics(dashv0.APIVERSION, dashv2beta1.APIVERSION, func(a, b interface{}, scope conversion.Scope) error {
return Convert_V0_to_V2beta1(a.(*dashv0.Dashboard), b.(*dashv2beta1.Dashboard), scope, dsIndexProvider)
return Convert_V0_to_V2beta1(a.(*dashv0.Dashboard), b.(*dashv2beta1.Dashboard), scope, dsIndexProvider, leIndexProvider)
})); err != nil {
return err
}
@@ -46,13 +48,13 @@ func RegisterConversions(s *runtime.Scheme, dsIndexProvider schemaversion.DataSo
}
if err := s.AddConversionFunc((*dashv1.Dashboard)(nil), (*dashv2alpha1.Dashboard)(nil),
withConversionMetrics(dashv1.APIVERSION, dashv2alpha1.APIVERSION, func(a, b interface{}, scope conversion.Scope) error {
return Convert_V1beta1_to_V2alpha1(a.(*dashv1.Dashboard), b.(*dashv2alpha1.Dashboard), scope, dsIndexProvider)
return Convert_V1beta1_to_V2alpha1(a.(*dashv1.Dashboard), b.(*dashv2alpha1.Dashboard), scope, dsIndexProvider, leIndexProvider)
})); err != nil {
return err
}
if err := s.AddConversionFunc((*dashv1.Dashboard)(nil), (*dashv2beta1.Dashboard)(nil),
withConversionMetrics(dashv1.APIVERSION, dashv2beta1.APIVERSION, func(a, b interface{}, scope conversion.Scope) error {
return Convert_V1beta1_to_V2beta1(a.(*dashv1.Dashboard), b.(*dashv2beta1.Dashboard), scope, dsIndexProvider)
return Convert_V1beta1_to_V2beta1(a.(*dashv1.Dashboard), b.(*dashv2beta1.Dashboard), scope, dsIndexProvider, leIndexProvider)
})); err != nil {
return err
}

View File

@@ -33,7 +33,8 @@ import (
func TestConversionMatrixExist(t *testing.T) {
// Initialize the migrator with a test data source provider
dsProvider := migrationtestutil.NewDataSourceProvider(migrationtestutil.StandardTestConfig)
leProvider := migrationtestutil.NewLibraryElementProvider()
// Use TestLibraryElementProvider for tests that need library panel models with repeat options
leProvider := migrationtestutil.NewTestLibraryElementProvider()
migration.Initialize(dsProvider, leProvider)
versions := []metav1.Object{
@@ -86,7 +87,8 @@ func TestDeepCopyValid(t *testing.T) {
func TestDashboardConversionToAllVersions(t *testing.T) {
// Initialize the migrator with a test data source provider
dsProvider := migrationtestutil.NewDataSourceProvider(migrationtestutil.StandardTestConfig)
leProvider := migrationtestutil.NewLibraryElementProvider()
// Use TestLibraryElementProvider for tests that need library panel models with repeat options
leProvider := migrationtestutil.NewTestLibraryElementProvider()
migration.Initialize(dsProvider, leProvider)
// Set up conversion scheme
@@ -246,7 +248,8 @@ func TestDashboardConversionToAllVersions(t *testing.T) {
func TestMigratedDashboardsConversion(t *testing.T) {
// Initialize the migrator with a test data source provider
dsProvider := migrationtestutil.NewDataSourceProvider(migrationtestutil.StandardTestConfig)
leProvider := migrationtestutil.NewLibraryElementProvider()
// Use TestLibraryElementProvider for tests that need library panel models with repeat options
leProvider := migrationtestutil.NewTestLibraryElementProvider()
migration.Initialize(dsProvider, leProvider)
// Set up conversion scheme
@@ -381,7 +384,8 @@ func testConversion(t *testing.T, convertedDash metav1.Object, filename, outputD
func TestConversionMetrics(t *testing.T) {
// Initialize migration with test providers
dsProvider := migrationtestutil.NewDataSourceProvider(migrationtestutil.StandardTestConfig)
leProvider := migrationtestutil.NewLibraryElementProvider()
// Use TestLibraryElementProvider for tests that need library panel models with repeat options
leProvider := migrationtestutil.NewTestLibraryElementProvider()
migration.Initialize(dsProvider, leProvider)
// Create a test registry for metrics
@@ -509,7 +513,8 @@ func TestConversionMetrics(t *testing.T) {
// TestConversionMetricsWrapper tests the withConversionMetrics wrapper function
func TestConversionMetricsWrapper(t *testing.T) {
dsProvider := migrationtestutil.NewDataSourceProvider(migrationtestutil.StandardTestConfig)
leProvider := migrationtestutil.NewLibraryElementProvider()
// Use TestLibraryElementProvider for tests that need library panel models with repeat options
leProvider := migrationtestutil.NewTestLibraryElementProvider()
migration.Initialize(dsProvider, leProvider)
// Create a test registry for metrics
@@ -678,7 +683,8 @@ func TestSchemaVersionExtraction(t *testing.T) {
t.Run(tt.name, func(t *testing.T) {
// Test the schema version extraction logic by creating a wrapper and checking the metrics labels
dsProvider := migrationtestutil.NewDataSourceProvider(migrationtestutil.StandardTestConfig)
leProvider := migrationtestutil.NewLibraryElementProvider()
// Use TestLibraryElementProvider for tests that need library panel models with repeat options
leProvider := migrationtestutil.NewTestLibraryElementProvider()
migration.Initialize(dsProvider, leProvider)
// Create a test registry for metrics
@@ -723,7 +729,8 @@ func TestSchemaVersionExtraction(t *testing.T) {
// TestConversionLogging tests that conversion-level logging works correctly
func TestConversionLogging(t *testing.T) {
dsProvider := migrationtestutil.NewDataSourceProvider(migrationtestutil.StandardTestConfig)
leProvider := migrationtestutil.NewLibraryElementProvider()
// Use TestLibraryElementProvider for tests that need library panel models with repeat options
leProvider := migrationtestutil.NewTestLibraryElementProvider()
migration.Initialize(dsProvider, leProvider)
// Create a test registry for metrics
@@ -815,7 +822,8 @@ func TestConversionLogging(t *testing.T) {
// TestConversionLogLevels tests that appropriate log levels are used
func TestConversionLogLevels(t *testing.T) {
dsProvider := migrationtestutil.NewDataSourceProvider(migrationtestutil.StandardTestConfig)
leProvider := migrationtestutil.NewLibraryElementProvider()
// Use TestLibraryElementProvider for tests that need library panel models with repeat options
leProvider := migrationtestutil.NewTestLibraryElementProvider()
migration.Initialize(dsProvider, leProvider)
t.Run("log levels and structured fields verification", func(t *testing.T) {
@@ -887,7 +895,8 @@ func TestConversionLogLevels(t *testing.T) {
// TestConversionLoggingFields tests that all expected fields are included in log messages
func TestConversionLoggingFields(t *testing.T) {
dsProvider := migrationtestutil.NewDataSourceProvider(migrationtestutil.StandardTestConfig)
leProvider := migrationtestutil.NewLibraryElementProvider()
// Use TestLibraryElementProvider for tests that need library panel models with repeat options
leProvider := migrationtestutil.NewTestLibraryElementProvider()
migration.Initialize(dsProvider, leProvider)
t.Run("verify all log fields are present", func(t *testing.T) {

View File

@@ -0,0 +1,93 @@
{
"kind": "Dashboard",
"apiVersion": "dashboard.grafana.app/v1beta1",
"metadata": {
"name": "library-panel-repeat-options-test",
"labels": {
"test": "library-panel-repeat"
}
},
"spec": {
"title": "Library Panel Repeat Options Test Dashboard",
"description": "Testing library panel repeat options migration from v1beta1 to v2alpha1",
"tags": ["test", "library-panels", "repeat"],
"schemaVersion": 38,
"panels": [
{
"id": 1,
"title": "Library Panel with Horizontal Repeat",
"type": "library-panel-ref",
"gridPos": {
"x": 0,
"y": 0,
"w": 12,
"h": 8
},
"libraryPanel": {
"uid": "lib-panel-repeat-h",
"name": "Library Panel with Horizontal Repeat"
}
},
{
"id": 2,
"title": "Library Panel with Vertical Repeat",
"type": "library-panel-ref",
"gridPos": {
"x": 0,
"y": 8,
"w": 6,
"h": 4
},
"libraryPanel": {
"uid": "lib-panel-repeat-v",
"name": "Library Panel with Vertical Repeat"
}
},
{
"id": 3,
"title": "Library Panel Instance Override",
"type": "library-panel-ref",
"gridPos": {
"x": 6,
"y": 8,
"w": 12,
"h": 8
},
"libraryPanel": {
"uid": "lib-panel-repeat-h",
"name": "Library Panel with Horizontal Repeat"
},
"repeat": "instance-var",
"repeatDirection": "v",
"maxPerRow": 5
},
{
"id": 4,
"title": "Library Panel without Repeat",
"type": "library-panel-ref",
"gridPos": {
"x": 0,
"y": 12,
"w": 6,
"h": 3
},
"libraryPanel": {
"uid": "lib-panel-no-repeat",
"name": "Library Panel without Repeat"
}
}
],
"time": {
"from": "now-1h",
"to": "now"
},
"templating": {
"list": []
},
"annotations": {
"list": []
},
"links": []
}
}

View File

@@ -1,6 +1,6 @@
{
"apiVersion": "dashboard.grafana.app/v2alpha1",
"kind": "Dashboard",
"apiVersion": "dashboard.grafana.app/v2alpha1",
"metadata": {
"name": "test-v2alpha1-complete",
"labels": {
@@ -11,26 +11,14 @@
}
},
"spec": {
"title": "Test: Complete V2alpha1 Dashboard Example",
"description": "This dashboard demonstrates all features that need to be converted from v2alpha1 to v2beta1",
"editable": true,
"liveNow": true,
"preload": true,
"cursorSync": "Tooltip",
"tags": ["test", "example", "migration"],
"annotations": [
{
"kind": "AnnotationQuery",
"spec": {
"builtIn": true,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": false,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"query": {
"kind": "grafana",
"spec": {
@@ -39,257 +27,39 @@
"tags": [],
"type": "dashboard"
}
}
},
"enable": true,
"hide": false,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations \u0026 Alerts",
"builtIn": true
}
},
{
"kind": "AnnotationQuery",
"spec": {
"builtIn": false,
"datasource": {
"type": "prometheus",
"uid": "gdev-prometheus"
},
"enable": true,
"hide": false,
"iconColor": "yellow",
"name": "Prometheus Annotations",
"query": {
"kind": "prometheus",
"spec": {
"expr": "changes(process_start_time_seconds[1m])",
"refId": "Anno"
}
}
}
}
],
"variables": [
{
"kind": "QueryVariable",
"spec": {
"name": "prometheus_query",
"datasource": {
"type": "prometheus",
"uid": "gdev-prometheus"
},
"query": {
"kind": "prometheus",
"spec": {
"expr": "up"
}
},
"refresh": "time",
"regex": "",
"sort": "alphabetical",
"multi": true,
"includeAll": true,
"current": {
"text": "All",
"value": ["$__all"]
},
"hide": "dontHide",
"label": "Prometheus Query",
"description": "Shows all up metrics",
"skipUrlSync": false,
"definition": "up"
}
},
{
"kind": "TextVariable",
"spec": {
"name": "text_var",
"label": "Text Variable",
"description": "A simple text variable",
"query": "server1,server2,server3",
"current": {
"selected": true,
"text": "server1",
"value": "server1"
},
"hide": "dontHide",
"skipUrlSync": false
}
},
{
"kind": "ConstantVariable",
"spec": {
"name": "constant_var",
"label": "Constant",
"description": "A constant value",
"query": "production",
"current": {
"selected": true,
"text": "production",
"value": "production"
},
"hide": "dontHide",
"skipUrlSync": true
}
},
{
"kind": "DatasourceVariable",
"spec": {
"name": "ds_var",
"label": "Datasource",
"description": "Select a datasource",
"pluginId": "prometheus",
"refresh": "load",
"regex": "/^gdev-/",
"current": {
"text": "gdev-prometheus",
"value": "gdev-prometheus"
},
"options": [
{
"text": "gdev-prometheus",
"value": "gdev-prometheus"
}
],
"multi": false,
"includeAll": false,
"hide": "dontHide",
"skipUrlSync": false
}
},
{
"kind": "IntervalVariable",
"spec": {
"name": "interval",
"label": "Interval",
"description": "Time interval selection",
"query": "1m,5m,10m,30m,1h,6h,12h,1d",
"current": {
"selected": true,
"text": "5m",
"value": "5m"
},
"options": [
{
"text": "1m",
"value": "1m"
},
{
"text": "5m",
"value": "5m"
},
{
"text": "10m",
"value": "10m"
},
{
"text": "30m",
"value": "30m"
},
{
"text": "1h",
"value": "1h"
},
{
"text": "6h",
"value": "6h"
},
{
"text": "12h",
"value": "12h"
},
{
"text": "1d",
"value": "1d"
}
],
"auto": true,
"auto_min": "10s",
"auto_count": 30,
"refresh": "load",
"hide": "dontHide",
"skipUrlSync": false
}
},
{
"kind": "CustomVariable",
"spec": {
"name": "custom_var",
"label": "Custom Options",
"description": "Custom multi-value variable",
"query": "prod : Production, staging : Staging, dev : Development",
"current": {
"text": ["Production"],
"value": ["prod"]
},
"options": [
{
"text": "Production",
"value": "prod"
},
{
"text": "Staging",
"value": "staging"
},
{
"text": "Development",
"value": "dev"
}
],
"multi": true,
"includeAll": true,
"allValue": "*",
"hide": "dontHide",
"skipUrlSync": false,
"allowCustomValue": true
}
},
{
"kind": "GroupByVariable",
"spec": {
"name": "group_by",
"datasource": {
"type": "prometheus",
"uid": "gdev-prometheus"
},
"current": {
"text": "instance",
"value": "instance"
},
"description": "Group metrics by label",
"hide": "dontHide",
"label": "Group By"
}
},
{
"kind": "AdhocVariable",
"spec": {
"name": "filters",
"datasource": {
"type": "prometheus",
"uid": "gdev-prometheus"
},
"baseFilters": [
{
"key": "job",
"operator": "=",
"value": "grafana",
"condition": "AND"
}
],
"filters": [],
"hide": "dontHide",
"label": "Filters",
"defaultKeys": [
{
"text": "job",
"value": "job",
"expandable": true
},
{
"text": "instance",
"value": "instance",
"expandable": true
}
]
},
"enable": true,
"hide": false,
"iconColor": "yellow",
"name": "Prometheus Annotations",
"builtIn": false
}
}
],
"cursorSync": "Tooltip",
"description": "This dashboard demonstrates all features that need to be converted from v2alpha1 to v2beta1",
"editable": true,
"elements": {
"panel-1": {
"kind": "Panel",
@@ -297,6 +67,7 @@
"id": 1,
"title": "Panel with Conditional Rendering",
"description": "This panel demonstrates conditional rendering features",
"links": [],
"data": {
"kind": "QueryGroup",
"spec": {
@@ -304,16 +75,18 @@
{
"kind": "PanelQuery",
"spec": {
"refId": "A",
"datasource": {
"uid": "gdev-prometheus"
},
"query": {
"kind": "prometheus",
"spec": {
"expr": "up{job=\"grafana\"}"
}
}
},
"datasource": {
"type": "prometheus",
"uid": "gdev-prometheus"
},
"refId": "A",
"hidden": false
}
}
],
@@ -323,13 +96,16 @@
"spec": {
"id": "reduce",
"options": {
"mode": "reduceFields",
"includeTimeField": false,
"reducers": ["mean"]
"mode": "reduceFields",
"reducers": [
"mean"
]
}
}
}
]
],
"queryOptions": {}
}
},
"vizConfig": {
@@ -344,22 +120,6 @@
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": 0
},
{
"color": "green",
"value": 1
}
]
},
"mappings": [
{
"type": "value",
@@ -374,7 +134,23 @@
}
}
}
]
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"value": 0,
"color": "red"
},
{
"value": 1,
"color": "green"
}
]
},
"color": {
"mode": "thresholds"
}
},
"overrides": []
}
@@ -448,15 +224,281 @@
]
}
},
"links": [],
"liveNow": true,
"preload": true,
"tags": [
"test",
"example",
"migration"
],
"timeSettings": {
"timezone": "browser",
"weekStart": "monday",
"fiscalYearStartMonth": 0,
"autoRefresh": "10s",
"autoRefreshIntervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
"from": "now-6h",
"to": "now",
"hideTimepicker": false
"autoRefresh": "10s",
"autoRefreshIntervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"hideTimepicker": false,
"weekStart": "monday",
"fiscalYearStartMonth": 0
},
"title": "Test: Complete V2alpha1 Dashboard Example",
"variables": [
{
"kind": "QueryVariable",
"spec": {
"name": "prometheus_query",
"current": {
"text": "All",
"value": [
"$__all"
]
},
"label": "Prometheus Query",
"hide": "dontHide",
"refresh": "time",
"skipUrlSync": false,
"description": "Shows all up metrics",
"datasource": {
"type": "prometheus",
"uid": "gdev-prometheus"
},
"query": {
"kind": "prometheus",
"spec": {
"expr": "up"
}
},
"regex": "",
"sort": "alphabetical",
"definition": "up",
"options": null,
"multi": true,
"includeAll": true,
"allowCustomValue": false
}
},
{
"kind": "TextVariable",
"spec": {
"name": "text_var",
"current": {
"selected": true,
"text": "server1",
"value": "server1"
},
"query": "server1,server2,server3",
"label": "Text Variable",
"hide": "dontHide",
"skipUrlSync": false,
"description": "A simple text variable"
}
},
{
"kind": "ConstantVariable",
"spec": {
"name": "constant_var",
"query": "production",
"current": {
"selected": true,
"text": "production",
"value": "production"
},
"label": "Constant",
"hide": "dontHide",
"skipUrlSync": true,
"description": "A constant value"
}
},
{
"kind": "DatasourceVariable",
"spec": {
"name": "ds_var",
"pluginId": "prometheus",
"refresh": "load",
"regex": "/^gdev-/",
"current": {
"text": "gdev-prometheus",
"value": "gdev-prometheus"
},
"options": [
{
"text": "gdev-prometheus",
"value": "gdev-prometheus"
}
],
"multi": false,
"includeAll": false,
"label": "Datasource",
"hide": "dontHide",
"skipUrlSync": false,
"description": "Select a datasource",
"allowCustomValue": false
}
},
{
"kind": "IntervalVariable",
"spec": {
"name": "interval",
"query": "1m,5m,10m,30m,1h,6h,12h,1d",
"current": {
"selected": true,
"text": "5m",
"value": "5m"
},
"options": [
{
"text": "1m",
"value": "1m"
},
{
"text": "5m",
"value": "5m"
},
{
"text": "10m",
"value": "10m"
},
{
"text": "30m",
"value": "30m"
},
{
"text": "1h",
"value": "1h"
},
{
"text": "6h",
"value": "6h"
},
{
"text": "12h",
"value": "12h"
},
{
"text": "1d",
"value": "1d"
}
],
"auto": true,
"auto_min": "10s",
"auto_count": 30,
"refresh": "load",
"label": "Interval",
"hide": "dontHide",
"skipUrlSync": false,
"description": "Time interval selection"
}
},
{
"kind": "CustomVariable",
"spec": {
"name": "custom_var",
"query": "prod : Production, staging : Staging, dev : Development",
"current": {
"text": [
"Production"
],
"value": [
"prod"
]
},
"options": [
{
"text": "Production",
"value": "prod"
},
{
"text": "Staging",
"value": "staging"
},
{
"text": "Development",
"value": "dev"
}
],
"multi": true,
"includeAll": true,
"allValue": "*",
"label": "Custom Options",
"hide": "dontHide",
"skipUrlSync": false,
"description": "Custom multi-value variable",
"allowCustomValue": true
}
},
{
"kind": "GroupByVariable",
"spec": {
"name": "group_by",
"datasource": {
"type": "prometheus",
"uid": "gdev-prometheus"
},
"current": {
"text": "instance",
"value": "instance"
},
"options": null,
"multi": false,
"label": "Group By",
"hide": "dontHide",
"skipUrlSync": false,
"description": "Group metrics by label"
}
},
{
"kind": "AdhocVariable",
"spec": {
"name": "filters",
"datasource": {
"type": "prometheus",
"uid": "gdev-prometheus"
},
"baseFilters": [
{
"key": "job",
"operator": "=",
"value": "grafana",
"condition": "AND"
}
],
"filters": [],
"defaultKeys": [
{
"text": "job",
"value": "job",
"expandable": true
},
{
"text": "instance",
"value": "instance",
"expandable": true
}
],
"label": "Filters",
"hide": "dontHide",
"skipUrlSync": false,
"allowCustomValue": false
}
}
]
},
"status": {
"conversion": {
"failed": false,
"storedVersion": "v2beta1"
}
}
}
}

View File

@@ -1,73 +1,98 @@
{
"apiVersion": "dashboard.grafana.app/v2alpha1",
"kind": "Dashboard",
"apiVersion": "dashboard.grafana.app/v2alpha1",
"metadata": {
"name": "test-v2alpha1-groupby-adhoc-vars"
},
"spec": {
"annotations": [],
"cursorSync": "",
"elements": {},
"layout": null,
"links": [],
"preload": false,
"tags": null,
"timeSettings": {
"from": "",
"to": "",
"autoRefresh": "",
"autoRefreshIntervals": null,
"hideTimepicker": false,
"fiscalYearStartMonth": 0
},
"title": "Test: V2alpha1 dashboard with group by and adhoc variables",
"variables": [
{
"kind": "GroupByVariable",
"spec": {
"current": {
"text": "text7",
"value": "value7"
},
"name": "",
"datasource": {
"type": "prometheus",
"uid": "gdev-prometheus"
},
"description": "A group by variable",
"current": {
"text": "text7",
"value": "value7"
},
"options": null,
"multi": false,
"label": "Group By Variable",
"hide": "dontHide",
"label": "Group By Variable"
"skipUrlSync": false,
"description": "A group by variable"
}
},
{
"kind": "AdhocVariable",
"spec": {
"baseFilters": [
{
"condition": "AND",
"key": "key1",
"operator": "=",
"value": "value1"
},
{
"condition": "OR",
"key": "key2",
"operator": "=",
"value": "value2"
}
],
"name": "adhocVar",
"datasource": {
"type": "prometheus",
"uid": "datasource-3"
},
"defaultKeys": [
"baseFilters": [
{
"expandable": true,
"group": "defaultGroup1",
"text": "defaultKey1",
"value": "defaultKey1"
"key": "key1",
"operator": "=",
"value": "value1",
"condition": "AND"
},
{
"key": "key2",
"operator": "=",
"value": "value2",
"condition": "OR"
}
],
"description": "An adhoc variable",
"filters": [
{
"condition": "AND",
"key": "key3",
"operator": "=",
"value": "value3"
"value": "value3",
"condition": "AND"
}
],
"defaultKeys": [
{
"text": "defaultKey1",
"value": "defaultKey1",
"group": "defaultGroup1",
"expandable": true
}
],
"hide": "dontHide",
"label": "Adhoc Variable",
"name": "adhocVar",
"hide": "dontHide",
"skipUrlSync": false,
"description": "An adhoc variable",
"allowCustomValue": true
}
}
]
},
"status": {
"conversion": {
"failed": false,
"storedVersion": "v2beta1"
}
}
}

View File

@@ -1,202 +1,218 @@
{
"apiVersion": "dashboard.grafana.app/v2alpha1",
"kind": "Dashboard",
"metadata": {
"name": "test-v2alpha1-viz-config",
"labels": {},
"annotations": {}
},
"spec": {
"elements": {
"panel-1": {
"kind": "Panel",
"spec": {
"data": {
"kind": "QueryGroup",
"spec": {
"queries": [
{
"kind": "PanelQuery",
"spec": {
"hidden": false,
"datasource": {
"uid": "gdev-testdata"
},
"query": {
"kind": "grafana-testdata-datasource",
"spec": {
"scenarioId": "random_walk",
"seriesCount": 3
},
"version": "v0"
},
"refId": "A"
}
}
],
"queryOptions": {},
"transformations": []
}
},
"description": "",
"id": 1,
"links": [],
"title": "Simple timeseries (WITH DS REF)",
"vizConfig": {
"kind": "timeseries",
"spec": {
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
"kind": "Dashboard",
"apiVersion": "dashboard.grafana.app/v2alpha1",
"metadata": {
"name": "test-v2alpha1-viz-config"
},
"spec": {
"annotations": [],
"cursorSync": "",
"elements": {
"panel-1": {
"kind": "Panel",
"spec": {
"id": 1,
"title": "Simple timeseries (WITH DS REF)",
"description": "",
"links": [],
"data": {
"kind": "QueryGroup",
"spec": {
"queries": [
{
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "grafana-testdata-datasource",
"spec": {
"scenarioId": "random_walk",
"seriesCount": 3
}
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
"datasource": {
"type": "grafana-testdata-datasource",
"uid": "gdev-testdata"
},
"refId": "A",
"hidden": false
}
}
],
"transformations": [],
"queryOptions": {}
}
},
"vizConfig": {
"kind": "timeseries",
"spec": {
"pluginVersion": "12.1.0-pre",
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"fieldConfig": {
"defaults": {
"thresholds": {
"mode": "absolute",
"steps": [
{
"value": 0,
"color": "green"
},
{
"value": 80,
"color": "red"
}
]
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
}
},
"pluginVersion": "12.1.0-pre"
"overrides": []
}
}
}
}
},
"layout": {
"kind": "AutoGridLayout",
"spec": {
"columnWidthMode": "standard",
"items": [
{
"kind": "AutoGridLayoutItem",
"spec": {
"element": {
"kind": "ElementReference",
"name": "panel-3"
}
}
},
{
"kind": "AutoGridLayoutItem",
"spec": {
"element": {
"kind": "ElementReference",
"name": "panel-4"
}
}
},
{
"kind": "AutoGridLayoutItem",
"spec": {
"element": {
"kind": "ElementReference",
"name": "panel-2"
}
}
},
{
"kind": "AutoGridLayoutItem",
"spec": {
"element": {
"kind": "ElementReference",
"name": "panel-1"
}
}
},
{
"kind": "AutoGridLayoutItem",
"spec": {
"element": {
"kind": "ElementReference",
"name": "panel-5"
}
}
},
{
"kind": "AutoGridLayoutItem",
"spec": {
"element": {
"kind": "ElementReference",
"name": "panel-6"
}
}
},
"layout": {
"kind": "AutoGridLayout",
"spec": {
"maxColumnCount": 3,
"columnWidthMode": "standard",
"rowHeightMode": "standard",
"items": [
{
"kind": "AutoGridLayoutItem",
"spec": {
"element": {
"kind": "ElementReference",
"name": "panel-3"
}
}
],
"maxColumnCount": 3,
"rowHeightMode": "standard"
}
},
"links": [],
"liveNow": false,
"preload": false,
"tags": [],
"timeSettings": {
"autoRefresh": "",
"autoRefreshIntervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
"fiscalYearStartMonth": 0,
"from": "now-6h",
"hideTimepicker": false,
"timezone": "browser",
"to": "now"
},
"title": "Test: V2alpha1 dashboard with viz config"
},
{
"kind": "AutoGridLayoutItem",
"spec": {
"element": {
"kind": "ElementReference",
"name": "panel-4"
}
}
},
{
"kind": "AutoGridLayoutItem",
"spec": {
"element": {
"kind": "ElementReference",
"name": "panel-2"
}
}
},
{
"kind": "AutoGridLayoutItem",
"spec": {
"element": {
"kind": "ElementReference",
"name": "panel-1"
}
}
},
{
"kind": "AutoGridLayoutItem",
"spec": {
"element": {
"kind": "ElementReference",
"name": "panel-5"
}
}
},
{
"kind": "AutoGridLayoutItem",
"spec": {
"element": {
"kind": "ElementReference",
"name": "panel-6"
}
}
}
]
}
},
"status": {}
"links": [],
"liveNow": false,
"preload": false,
"tags": [],
"timeSettings": {
"timezone": "browser",
"from": "now-6h",
"to": "now",
"autoRefresh": "",
"autoRefreshIntervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"hideTimepicker": false,
"fiscalYearStartMonth": 0
},
"title": "Test: V2alpha1 dashboard with viz config",
"variables": []
},
"status": {
"conversion": {
"failed": false,
"storedVersion": "v2beta1"
}
}
}

View File

@@ -0,0 +1,509 @@
{
"kind": "Dashboard",
"apiVersion": "dashboard.grafana.app/v2beta1",
"metadata": {
"name": "test-v2alpha1-complete",
"labels": {
"category": "test"
},
"annotations": {
"description": "Complete example of v2alpha1 dashboard features"
}
},
"spec": {
"annotations": [
{
"kind": "AnnotationQuery",
"spec": {
"query": {
"kind": "DataQuery",
"group": "grafana",
"version": "v0",
"datasource": {
"name": "-- Grafana --"
},
"spec": {
"limit": 100,
"matchAny": false,
"tags": [],
"type": "dashboard"
}
},
"enable": true,
"hide": false,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations \u0026 Alerts",
"builtIn": true
}
},
{
"kind": "AnnotationQuery",
"spec": {
"query": {
"kind": "DataQuery",
"group": "prometheus",
"version": "v0",
"datasource": {
"name": "gdev-prometheus"
},
"spec": {
"expr": "changes(process_start_time_seconds[1m])",
"refId": "Anno"
}
},
"enable": true,
"hide": false,
"iconColor": "yellow",
"name": "Prometheus Annotations",
"builtIn": false
}
}
],
"cursorSync": "Tooltip",
"description": "This dashboard demonstrates all features that need to be converted from v2alpha1 to v2beta1",
"editable": true,
"elements": {
"panel-1": {
"kind": "Panel",
"spec": {
"id": 1,
"title": "Panel with Conditional Rendering",
"description": "This panel demonstrates conditional rendering features",
"links": [],
"data": {
"kind": "QueryGroup",
"spec": {
"queries": [
{
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"group": "prometheus",
"version": "v0",
"datasource": {
"name": "gdev-prometheus"
},
"spec": {
"expr": "up{job=\"grafana\"}"
}
},
"refId": "A",
"hidden": false
}
}
],
"transformations": [
{
"kind": "reduce",
"spec": {
"id": "reduce",
"options": {
"includeTimeField": false,
"mode": "reduceFields",
"reducers": [
"mean"
]
}
}
}
],
"queryOptions": {}
}
},
"vizConfig": {
"kind": "VizConfig",
"group": "stat",
"version": "12.1.0-pre",
"spec": {
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"textMode": "auto"
},
"fieldConfig": {
"defaults": {
"mappings": [
{
"type": "value",
"options": {
"0": {
"text": "Down",
"color": "red"
},
"1": {
"text": "Up",
"color": "green"
}
}
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"value": 0,
"color": "red"
},
{
"value": 1,
"color": "green"
}
]
},
"color": {
"mode": "thresholds"
}
},
"overrides": []
}
}
}
}
}
},
"layout": {
"kind": "RowsLayout",
"spec": {
"rows": [
{
"kind": "Row",
"spec": {
"title": "Conditional Row",
"collapse": false,
"hideHeader": false,
"fillScreen": false,
"conditionalRendering": {
"kind": "ConditionalRenderingGroup",
"spec": {
"visibility": "show",
"condition": "and",
"items": [
{
"kind": "ConditionalRenderingVariable",
"spec": {
"variable": "group_by",
"operator": "includes",
"value": "instance"
}
},
{
"kind": "ConditionalRenderingData",
"spec": {
"value": true
}
},
{
"kind": "ConditionalRenderingTimeRangeSize",
"spec": {
"value": "1h"
}
}
]
}
},
"layout": {
"kind": "GridLayout",
"spec": {
"items": [
{
"kind": "GridLayoutItem",
"spec": {
"x": 0,
"y": 0,
"width": 24,
"height": 8,
"element": {
"kind": "ElementReference",
"name": "panel-1"
}
}
}
]
}
}
}
}
]
}
},
"links": [],
"liveNow": true,
"preload": true,
"tags": [
"test",
"example",
"migration"
],
"timeSettings": {
"timezone": "browser",
"from": "now-6h",
"to": "now",
"autoRefresh": "10s",
"autoRefreshIntervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"hideTimepicker": false,
"weekStart": "monday",
"fiscalYearStartMonth": 0
},
"title": "Test: Complete V2alpha1 Dashboard Example",
"variables": [
{
"kind": "QueryVariable",
"spec": {
"name": "prometheus_query",
"current": {
"text": "All",
"value": [
"$__all"
]
},
"label": "Prometheus Query",
"hide": "dontHide",
"refresh": "time",
"skipUrlSync": false,
"description": "Shows all up metrics",
"query": {
"kind": "DataQuery",
"group": "prometheus",
"version": "v0",
"datasource": {
"name": "gdev-prometheus"
},
"spec": {
"expr": "up"
}
},
"regex": "",
"sort": "alphabetical",
"definition": "up",
"options": null,
"multi": true,
"includeAll": true,
"allowCustomValue": false
}
},
{
"kind": "TextVariable",
"spec": {
"name": "text_var",
"current": {
"selected": true,
"text": "server1",
"value": "server1"
},
"query": "server1,server2,server3",
"label": "Text Variable",
"hide": "dontHide",
"skipUrlSync": false,
"description": "A simple text variable"
}
},
{
"kind": "ConstantVariable",
"spec": {
"name": "constant_var",
"query": "production",
"current": {
"selected": true,
"text": "production",
"value": "production"
},
"label": "Constant",
"hide": "dontHide",
"skipUrlSync": true,
"description": "A constant value"
}
},
{
"kind": "DatasourceVariable",
"spec": {
"name": "ds_var",
"pluginId": "prometheus",
"refresh": "load",
"regex": "/^gdev-/",
"current": {
"text": "gdev-prometheus",
"value": "gdev-prometheus"
},
"options": [
{
"text": "gdev-prometheus",
"value": "gdev-prometheus"
}
],
"multi": false,
"includeAll": false,
"label": "Datasource",
"hide": "dontHide",
"skipUrlSync": false,
"description": "Select a datasource",
"allowCustomValue": false
}
},
{
"kind": "IntervalVariable",
"spec": {
"name": "interval",
"query": "1m,5m,10m,30m,1h,6h,12h,1d",
"current": {
"selected": true,
"text": "5m",
"value": "5m"
},
"options": [
{
"text": "1m",
"value": "1m"
},
{
"text": "5m",
"value": "5m"
},
{
"text": "10m",
"value": "10m"
},
{
"text": "30m",
"value": "30m"
},
{
"text": "1h",
"value": "1h"
},
{
"text": "6h",
"value": "6h"
},
{
"text": "12h",
"value": "12h"
},
{
"text": "1d",
"value": "1d"
}
],
"auto": true,
"auto_min": "10s",
"auto_count": 30,
"refresh": "onTimeRangeChanged",
"label": "Interval",
"hide": "dontHide",
"skipUrlSync": false,
"description": "Time interval selection"
}
},
{
"kind": "CustomVariable",
"spec": {
"name": "custom_var",
"query": "prod : Production, staging : Staging, dev : Development",
"current": {
"text": [
"Production"
],
"value": [
"prod"
]
},
"options": [
{
"text": "Production",
"value": "prod"
},
{
"text": "Staging",
"value": "staging"
},
{
"text": "Development",
"value": "dev"
}
],
"multi": true,
"includeAll": true,
"allValue": "*",
"label": "Custom Options",
"hide": "dontHide",
"skipUrlSync": false,
"description": "Custom multi-value variable",
"allowCustomValue": true
}
},
{
"kind": "GroupByVariable",
"group": "prometheus",
"datasource": {
"name": "gdev-prometheus"
},
"spec": {
"name": "group_by",
"current": {
"text": "instance",
"value": "instance"
},
"options": null,
"multi": false,
"label": "Group By",
"hide": "dontHide",
"skipUrlSync": false,
"description": "Group metrics by label"
}
},
{
"kind": "AdhocVariable",
"group": "prometheus",
"datasource": {
"name": "gdev-prometheus"
},
"spec": {
"name": "filters",
"baseFilters": [
{
"key": "job",
"operator": "=",
"value": "grafana",
"condition": "AND"
}
],
"filters": [],
"defaultKeys": [
{
"text": "job",
"value": "job",
"expandable": true
},
{
"text": "instance",
"value": "instance",
"expandable": true
}
],
"label": "Filters",
"hide": "dontHide",
"skipUrlSync": false,
"allowCustomValue": false
}
}
]
},
"status": {
"conversion": {
"failed": false,
"storedVersion": "v2alpha1"
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,98 @@
{
"kind": "Dashboard",
"apiVersion": "dashboard.grafana.app/v2beta1",
"metadata": {
"name": "test-v2alpha1-groupby-adhoc-vars"
},
"spec": {
"annotations": [],
"cursorSync": "",
"elements": {},
"layout": null,
"links": [],
"preload": false,
"tags": null,
"timeSettings": {
"from": "",
"to": "",
"autoRefresh": "",
"autoRefreshIntervals": null,
"hideTimepicker": false,
"fiscalYearStartMonth": 0
},
"title": "Test: V2alpha1 dashboard with group by and adhoc variables",
"variables": [
{
"kind": "GroupByVariable",
"group": "prometheus",
"datasource": {
"name": "gdev-prometheus"
},
"spec": {
"name": "",
"current": {
"text": "text7",
"value": "value7"
},
"options": null,
"multi": false,
"label": "Group By Variable",
"hide": "dontHide",
"skipUrlSync": false,
"description": "A group by variable"
}
},
{
"kind": "AdhocVariable",
"group": "prometheus",
"datasource": {
"name": "datasource-3"
},
"spec": {
"name": "adhocVar",
"baseFilters": [
{
"key": "key1",
"operator": "=",
"value": "value1",
"condition": "AND"
},
{
"key": "key2",
"operator": "=",
"value": "value2",
"condition": "OR"
}
],
"filters": [
{
"key": "key3",
"operator": "=",
"value": "value3",
"condition": "AND"
}
],
"defaultKeys": [
{
"text": "defaultKey1",
"value": "defaultKey1",
"group": "defaultGroup1",
"expandable": true
}
],
"label": "Adhoc Variable",
"hide": "dontHide",
"skipUrlSync": false,
"description": "An adhoc variable",
"allowCustomValue": true
}
}
]
},
"status": {
"conversion": {
"failed": false,
"storedVersion": "v2alpha1"
}
}
}

View File

@@ -0,0 +1,220 @@
{
"kind": "Dashboard",
"apiVersion": "dashboard.grafana.app/v2beta1",
"metadata": {
"name": "test-v2alpha1-viz-config"
},
"spec": {
"annotations": [],
"cursorSync": "",
"elements": {
"panel-1": {
"kind": "Panel",
"spec": {
"id": 1,
"title": "Simple timeseries (WITH DS REF)",
"description": "",
"links": [],
"data": {
"kind": "QueryGroup",
"spec": {
"queries": [
{
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"group": "grafana-testdata-datasource",
"version": "v0",
"datasource": {
"name": "gdev-testdata"
},
"spec": {
"scenarioId": "random_walk",
"seriesCount": 3
}
},
"refId": "A",
"hidden": false
}
}
],
"transformations": [],
"queryOptions": {}
}
},
"vizConfig": {
"kind": "VizConfig",
"group": "timeseries",
"version": "12.1.0-pre",
"spec": {
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"fieldConfig": {
"defaults": {
"thresholds": {
"mode": "absolute",
"steps": [
{
"value": 0,
"color": "green"
},
{
"value": 80,
"color": "red"
}
]
},
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
}
},
"overrides": []
}
}
}
}
}
},
"layout": {
"kind": "AutoGridLayout",
"spec": {
"maxColumnCount": 3,
"columnWidthMode": "standard",
"rowHeightMode": "standard",
"items": [
{
"kind": "AutoGridLayoutItem",
"spec": {
"element": {
"kind": "ElementReference",
"name": "panel-3"
}
}
},
{
"kind": "AutoGridLayoutItem",
"spec": {
"element": {
"kind": "ElementReference",
"name": "panel-4"
}
}
},
{
"kind": "AutoGridLayoutItem",
"spec": {
"element": {
"kind": "ElementReference",
"name": "panel-2"
}
}
},
{
"kind": "AutoGridLayoutItem",
"spec": {
"element": {
"kind": "ElementReference",
"name": "panel-1"
}
}
},
{
"kind": "AutoGridLayoutItem",
"spec": {
"element": {
"kind": "ElementReference",
"name": "panel-5"
}
}
},
{
"kind": "AutoGridLayoutItem",
"spec": {
"element": {
"kind": "ElementReference",
"name": "panel-6"
}
}
}
]
}
},
"links": [],
"liveNow": false,
"preload": false,
"tags": [],
"timeSettings": {
"timezone": "browser",
"from": "now-6h",
"to": "now",
"autoRefresh": "",
"autoRefreshIntervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"hideTimepicker": false,
"fiscalYearStartMonth": 0
},
"title": "Test: V2alpha1 dashboard with viz config",
"variables": []
},
"status": {
"conversion": {
"failed": false,
"storedVersion": "v2alpha1"
}
}
}

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -90,7 +90,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -134,7 +134,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -90,7 +90,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -191,7 +191,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"__legacyStringValue": "label_values(server)"
}

View File

@@ -197,7 +197,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {
"__legacyStringValue": "label_values(server)"

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -75,7 +75,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -98,7 +98,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -121,7 +121,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -144,7 +144,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -167,7 +167,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -190,7 +190,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",

View File

@@ -77,7 +77,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -102,7 +102,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -127,7 +127,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -152,7 +152,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -177,7 +177,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -202,7 +202,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -90,7 +90,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -134,7 +134,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -178,7 +178,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -222,7 +222,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"editorMode": "builder",
"expr": "{\"a.utf8.metric 🤘\", job=\"prometheus-utf8\"}",

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "cpu_usage"
}
@@ -92,7 +92,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "memory_usage"
}
@@ -195,7 +195,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"__legacyStringValue": "label_values(server)"
}

View File

@@ -201,7 +201,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {
"__legacyStringValue": "label_values(server)"

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -31,7 +31,7 @@
"kind": "AnnotationQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {}
},
"enable": true,
@@ -66,7 +66,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"expr": "sum by (job, version) (up{job=~\".*\"})",
"format": "table",
@@ -209,7 +209,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"expr": "sum by (deployment) (up{job=\"kube-state-metrics\"})",
"format": "table",
@@ -331,7 +331,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"expr": "sum by (statefulset) (up{job=\"kube-state-metrics\"})",
"format": "table",
@@ -453,7 +453,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"expr": "max by (pod) (up{job=\"mimir-aggregator\"})",
"format": "time_series",
@@ -541,7 +541,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"expr": "sum by (deployment) (up{job=\"kube-state-metrics\"})",
"format": "table",
@@ -663,7 +663,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"expr": "sum by (statefulset) (up{job=\"kube-state-metrics\"})",
"format": "table",
@@ -962,7 +962,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"__legacyStringValue": "label_values(up, job)"
}
@@ -989,7 +989,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"__legacyStringValue": "label_values(up{job=~\"$cluster\"}, instance)"
}

View File

@@ -978,7 +978,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {
"__legacyStringValue": "label_values(up, job)"
@@ -1007,7 +1007,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {
"__legacyStringValue": "label_values(up{job=~\"$cluster\"}, instance)"

View File

@@ -95,7 +95,9 @@
"templating": {
"list": [
{
"datasource": "prometheus",
"datasource": {
"type": "prometheus"
},
"name": "server",
"options": [],
"query": "label_values(server)",

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -35,7 +35,7 @@
"uid": "grafana"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -63,7 +63,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -107,7 +107,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -208,7 +208,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"__legacyStringValue": "label_values(server)"
}

View File

@@ -215,7 +215,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {
"__legacyStringValue": "label_values(server)"

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -47,7 +47,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"expr": "increase(demo_latency_iota{env=~\"$env\", region=~\"$region\", node=~\"$node\", service=~\"$service\", type=\"primary\"}[$__rate_interval])",
"format": "time_series",
@@ -152,7 +152,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"expr": "increase(demo_latency_iota{env=~\"$env\", region=~\"$region\", node=~\"$node\", service=~\"$service\", type=\"secondary\"}[$__rate_interval])",
"format": "time_series",
@@ -257,7 +257,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"expr": "increase(example_events_kappa{env=~\"$env\", region=~\"$region\", node=~\"$node\", service=~\"$service\"}[$__rate_interval])",
"format": "time_series",
@@ -366,7 +366,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"expr": "random_metric_alpha{env=~\"$env\", region=~\"$region\", node=~\"$node\"}",
"format": "time_series",
@@ -475,7 +475,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"expr": "rate(sample_counter_beta{env=~\"$env\", region=~\"$region\", node=~\"$node\"}[$__rate_interval])",
"format": "time_series",
@@ -584,7 +584,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"expr": "increase(test_errors_gamma{env=~\"$env\", region=~\"$region\", node=~\"$node\"}[$__rate_interval])",
"format": "time_series",
@@ -693,7 +693,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"expr": "rate(demo_events_delta{env=~\"$env\", region=~\"$region\", node=~\"$node\"}[$__rate_interval])",
"format": "time_series",
@@ -802,7 +802,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"expr": "example_usage_epsilon{env=~\"$env\", region=~\"$region\", node=~\"$node\"}",
"format": "time_series",
@@ -910,7 +910,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"expr": "random_total_zeta{env=~\"$env\", region=~\"$region\", node=~\"$node\"}",
"format": "time_series",
@@ -930,7 +930,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"expr": "sample_target_eta{env=~\"$env\", region=~\"$region\", node=~\"$node\"}",
"format": "time_series",
@@ -1038,7 +1038,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"expr": "100 * random_total_zeta{env=~\"$env\", region=~\"$region\", node=~\"$node\"} / clamp_min(test_available_theta{env=~\"$env\", region=~\"$region\", node=~\"$node\"},1)",
"format": "time_series",
@@ -1346,7 +1346,7 @@
"uid": "${example_datasource}"
},
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"__legacyStringValue": "label_values(system_info_lambda{}, env)"
}
@@ -1377,7 +1377,7 @@
"uid": "${example_datasource}"
},
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"__legacyStringValue": "label_values(system_info_lambda{env=~\"$env\"}, region)"
}
@@ -1408,7 +1408,7 @@
"uid": "${example_datasource}"
},
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"__legacyStringValue": "label_values(system_info_lambda{env=~\"$env\", region=~\"$region\"}, node)"
}
@@ -1439,7 +1439,7 @@
"uid": "${example_datasource}"
},
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"__legacyStringValue": "label_values(example_events_kappa{env=~\"$env\", region=~\"$region\", node=~\"$node\"}, service)"
}

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -90,7 +90,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -134,7 +134,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -178,7 +178,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -306,7 +306,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -350,7 +350,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -394,7 +394,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -438,7 +438,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -93,7 +93,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "loki",
"spec": {
"expr": "{namespace=\"default\", cluster=\"$cluster\", job=\"app-service\"} | logfmt"
}
@@ -144,7 +144,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -191,7 +191,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "max(app_worker_threads_active{cluster=\"$cluster\", namespace=\"default\"})",
"instant": true
@@ -238,7 +238,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "tempo",
"spec": {
"filters": [
{
@@ -305,7 +305,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "histogram_quantile(0.99, sum(rate(app_operation_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"default\"}[7d])) by (le, resources_changed_bucket, action)) and on(resources_changed_bucket, action) sum(rate(app_operation_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"default\"}[7d])) by (resources_changed_bucket, action) \u003e 0",
"legendFormat": "{{action}} q0.99 - size {{resources_changed_bucket}}"
@@ -323,7 +323,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "histogram_quantile(0.9, sum(rate(app_operation_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"default\"}[7d])) by (le, resources_changed_bucket, action)) and on(resources_changed_bucket, action) sum(rate(app_operation_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"default\"}[7d])) by (resources_changed_bucket, action) \u003e 0",
"legendFormat": "{{action}} q0.95 - size {{resources_changed_bucket}}"
@@ -341,7 +341,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "histogram_quantile(0.5, sum(rate(app_operation_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"default\"}[7d])) by (le, resources_changed_bucket, action)) and on(resources_changed_bucket, action) sum(rate(app_operation_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"default\"}[7d])) by (resources_changed_bucket, action) \u003e 0",
"legendFormat": "{{action}} q0.5 - size {{resources_changed_bucket}}"
@@ -359,7 +359,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "histogram_quantile(0.1, sum(rate(app_operation_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"default\"}[7d])) by (le, resources_changed_bucket, action)) and on(resources_changed_bucket, action) sum(rate(app_operation_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"default\"}[7d])) by (resources_changed_bucket, action) \u003e 0",
"legendFormat": "{{action}} q0.1 - size {{resources_changed_bucket}}"
@@ -461,7 +461,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "histogram_quantile(0.99, sum(rate(app_operation_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"default\"}[5m])) by (le, resources_changed_bucket, action))",
"legendFormat": "{{action}} q0.99 - size {{resources_changed_bucket}}"
@@ -479,7 +479,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "histogram_quantile(0.95, sum(rate(app_operation_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"default\"}[5m])) by (le, resources_changed_bucket, action))",
"legendFormat": "{{action}} q0.95 - size {{resources_changed_bucket}}"
@@ -497,7 +497,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "histogram_quantile(0.5, sum(rate(app_operation_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"default\"}[5m])) by (le, resources_changed_bucket, action))",
"legendFormat": "{{action}} q0.5 - size {{resources_changed_bucket}}"
@@ -515,7 +515,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "histogram_quantile(0.1, sum(rate(app_operation_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"default\"}[5m])) by (le, resources_changed_bucket, action))",
"legendFormat": "{{action}} q0.1 - size {{resources_changed_bucket}}"
@@ -562,7 +562,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "clamp_min(sum(app_operation_queue_size{cluster=\"$cluster\", namespace=\"default\"}), 0)",
"legendFormat": "Queue size"
@@ -609,7 +609,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "avg(histogram_quantile(0.5, sum(rate(app_operation_queue_wait_seconds_bucket{cluster=\"$cluster\", namespace=\"default\"}[7d])) by (le)))",
"legendFormat": "Queue size"
@@ -660,7 +660,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "histogram_quantile(0.99, sum(rate(app_operation_queue_wait_seconds_bucket{cluster=\"$cluster\", namespace=\"default\"}[$__rate_interval])) by (le))",
"legendFormat": "q0.99"
@@ -678,7 +678,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "histogram_quantile(0.95, sum(rate(app_operation_queue_wait_seconds_bucket{cluster=\"$cluster\", namespace=\"default\"}[$__rate_interval])) by (le))",
"legendFormat": "q0.95"
@@ -696,7 +696,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "histogram_quantile(0.5, sum(rate(app_operation_queue_wait_seconds_bucket{cluster=\"$cluster\", namespace=\"default\"}[$__rate_interval])) by (le))",
"legendFormat": "q0.5"
@@ -714,7 +714,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "histogram_quantile(0.1, sum(rate(app_operation_queue_wait_seconds_bucket{cluster=\"$cluster\", namespace=\"default\"}[$__rate_interval])) by (le))",
"legendFormat": "q0.1"
@@ -761,7 +761,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -808,7 +808,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "count by (cluster, channel)(label_replace(label_replace(kube_pod_container_info{namespace=\"default\", container=\"app-worker\", pod=~\"app-worker.*\", cluster=~\"$cluster\"}, \"version\", \"$1\", \"image\", \".+:(.+)\"), \"channel\", \"$1\", \"container\", \".+-(.+)\"))",
"legendFormat": "{{cluster}}"
@@ -855,7 +855,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "max(kube_pod_container_resource_requests{namespace=\"default\", resource=\"memory\", cluster=~\"$cluster\", container=\"app-worker\", pod=~\"app-worker.*\"})",
"legendFormat": "Memory Request"
@@ -873,7 +873,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "max(kube_pod_container_resource_limits{namespace=\"default\", resource=\"memory\", cluster=~\"$cluster\", container=\"app-worker\", pod=~\"app-worker.*\"})",
"legendFormat": "Memory Limit"
@@ -891,7 +891,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "max(container_memory_usage_bytes{namespace=\"default\",cluster=~\"$cluster\", container=\"app-worker\", pod=~\"app-worker.*\"}) by (pod)",
"legendFormat": "Container usage {{pod}}"
@@ -938,7 +938,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "sum(irate(container_cpu_usage_seconds_total{namespace=\"default\", cluster=~\"$cluster\", container=\"app-worker\", pod=~\"app-worker-.*\"}[$__rate_interval])) by (pod, container, cpu)",
"legendFormat": "Usage {{pod}}"
@@ -956,7 +956,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "sum(irate(container_cpu_cfs_throttled_seconds_total{namespace=\"default\", cluster=~\"$cluster\", container=\"app-worker\", pod=~\"app-worker-.*\"}[$__rate_interval])) by (pod, container)",
"legendFormat": "Throttling {{pod}}"
@@ -974,7 +974,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "max(kube_pod_container_resource_limits{namespace=\"default\", cluster=~\"$cluster\", container=\"app-worker\", pod=~\"app-worker-.*\", resource=\"cpu\"})",
"legendFormat": "CPU limit"
@@ -992,7 +992,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "max(kube_pod_container_resource_requests{namespace=\"default\", cluster=~\"$cluster\", container=\"app-worker\", pod=~\"app-worker-.*\", resource=\"cpu\"})",
"legendFormat": "CPU request"
@@ -1039,7 +1039,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -1086,7 +1086,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -1133,7 +1133,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "sum by (action) (app_jobs_processed_total{outcome=\"success\", cluster=\"$cluster\", namespace=\"default\"})\n/\nsum by (action) (app_jobs_processed_total{cluster=\"$cluster\", namespace=\"default\"})\n",
"legendFormat": "{{action}}"
@@ -1199,7 +1199,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "loki",
"spec": {
"expr": "{namespace=\"default\", cluster=\"$cluster\", job=\"app-service\"} | logfmt | level=\"error\""
}
@@ -1640,7 +1640,7 @@
"uid": "${prom}"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"__legacyStringValue": "label_values(app_worker_threads_active,cluster)"
}

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -90,7 +90,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -134,7 +134,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -178,7 +178,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -222,7 +222,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -266,7 +266,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -310,7 +310,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -354,7 +354,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -398,7 +398,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -442,7 +442,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -112,7 +112,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -161,7 +161,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -211,7 +211,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -267,7 +267,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -51,7 +51,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -100,7 +100,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -149,7 +149,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -199,7 +199,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -248,7 +248,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -292,7 +292,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"target": "cpu.usage"
}
@@ -92,7 +92,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"target": "memory.usage"
}
@@ -138,7 +138,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -182,7 +182,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"target": "disk.io"
}
@@ -311,7 +311,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"__legacyStringValue": "label_values(server)"
}

View File

@@ -321,7 +321,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {
"__legacyStringValue": "label_values(server)"

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -103,7 +103,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -165,7 +165,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -229,7 +229,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -293,7 +293,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -101,7 +101,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -160,7 +160,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -221,7 +221,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -272,7 +272,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "up"
}
@@ -140,7 +140,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -169,7 +169,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -192,7 +192,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -215,7 +215,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -238,7 +238,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -261,7 +261,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -284,7 +284,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",

View File

@@ -144,7 +144,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -175,7 +175,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -200,7 +200,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -225,7 +225,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -250,7 +250,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -275,7 +275,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -300,7 +300,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -61,7 +61,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -105,7 +105,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -149,7 +149,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -193,7 +193,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -237,7 +237,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -281,7 +281,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -325,7 +325,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -369,7 +369,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -413,7 +413,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -457,7 +457,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -501,7 +501,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -545,7 +545,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -589,7 +589,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -633,7 +633,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -677,7 +677,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -736,7 +736,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -780,7 +780,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -31,7 +31,7 @@
"kind": "AnnotationQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {}
},
"enable": true,
@@ -59,7 +59,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -103,7 +103,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -204,7 +204,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",

View File

@@ -212,7 +212,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -90,7 +90,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -134,7 +134,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -75,7 +75,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"__legacyStringValue": "label_values(up, instance)"
}

View File

@@ -77,7 +77,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {
"__legacyStringValue": "label_values(up, instance)"

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -61,7 +61,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -105,7 +105,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -149,7 +149,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -164,7 +164,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -208,7 +208,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "rate(http_requests_total[5m])"
}
@@ -337,7 +337,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"__legacyStringValue": "label_values(up, instance)"
}

View File

@@ -349,7 +349,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {
"__legacyStringValue": "label_values(up, instance)"

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -61,7 +61,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -105,7 +105,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -120,7 +120,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -164,7 +164,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -208,7 +208,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -223,7 +223,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -267,7 +267,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -313,7 +313,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -400,7 +400,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -452,7 +452,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "rate(http_requests_total[5m])"
}

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "up"
}
@@ -136,7 +136,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -159,7 +159,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -182,7 +182,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -205,7 +205,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -228,7 +228,7 @@
"refresh": "onTimeRangeChanged",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -251,7 +251,7 @@
"refresh": "onTimeRangeChanged",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -274,7 +274,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -297,7 +297,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -320,7 +320,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -343,7 +343,7 @@
"refresh": "onDashboardLoad",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",

View File

@@ -140,7 +140,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -165,7 +165,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -190,7 +190,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -215,7 +215,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -240,7 +240,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -265,7 +265,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -290,7 +290,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -315,7 +315,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -340,7 +340,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},
@@ -365,7 +365,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -90,7 +90,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -134,7 +134,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -178,7 +178,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -162,7 +162,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -210,7 +210,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -259,7 +259,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -307,7 +307,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -428,7 +428,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -479,7 +479,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -105,7 +105,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -194,7 +194,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -238,7 +238,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -376,7 +376,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -449,7 +449,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -31,7 +31,7 @@
"kind": "AnnotationQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {}
},
"enable": true,
@@ -59,7 +59,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -124,7 +124,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -297,7 +297,7 @@
"refresh": "never",
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",

View File

@@ -306,7 +306,7 @@
"skipUrlSync": false,
"query": {
"kind": "DataQuery",
"group": "",
"group": "prometheus",
"version": "v0",
"spec": {}
},

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "loki",
"spec": {
"description": "Target with UID reference should migrate to full object"
}
@@ -92,7 +92,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"description": "Nested target should also migrate from string to object"
}
@@ -138,7 +138,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "elasticsearch",
"spec": {
"description": "Target with existing object should remain unchanged"
}
@@ -184,7 +184,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "loki",
"spec": {}
},
"datasource": {
@@ -228,7 +228,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -272,7 +272,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "loki",
"spec": {
"description": "Null target datasource should remain null"
}
@@ -289,7 +289,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"description": "Valid string should migrate to object"
}
@@ -306,7 +306,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"description": "Non-existing datasource should be preserved as-is (migration returns nil)"
}
@@ -323,7 +323,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "loki",
"spec": {
"description": "Target without datasource field should remain unchanged"
}
@@ -369,7 +369,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"description": "Existing object target should remain unchanged"
}
@@ -386,7 +386,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "loki",
"spec": {
"description": "String target should migrate to object"
}
@@ -403,7 +403,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"description": "Default datasource string should migrate to object"
}
@@ -449,7 +449,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "",
"spec": {
"description": "Empty string target should also migrate to empty object {}"
}
@@ -491,7 +491,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"description": "Unknown target datasource should remain unchanged (migration returns nil)"
}
@@ -508,7 +508,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"description": "Empty string target should migrate to {}"
}

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -35,7 +35,7 @@
"uid": "default-ds-uid"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"enable": true,
@@ -61,7 +61,7 @@
"uid": "default-ds-uid"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"enable": true,
@@ -87,7 +87,7 @@
"uid": "default-ds-uid"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"enable": true,
@@ -112,7 +112,7 @@
"uid": "default-ds-uid"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"enable": true,
@@ -138,7 +138,7 @@
"uid": "default-ds-uid"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"enable": true,
@@ -163,7 +163,7 @@
"uid": "default-ds-uid"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"enable": true,
@@ -189,7 +189,7 @@
"uid": "default-ds-uid"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"enable": true,
@@ -206,7 +206,7 @@
"uid": "default-ds-uid"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"enable": true,
@@ -232,7 +232,7 @@
"uid": "default-ds-uid"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"enable": true,
@@ -258,7 +258,7 @@
"uid": "default-ds-uid"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"enable": true,
@@ -284,7 +284,7 @@
"uid": "default-ds-uid"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"enable": true,
@@ -309,7 +309,7 @@
"uid": "default-ds-uid"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"enable": true,
@@ -335,7 +335,7 @@
"uid": "default-ds-uid"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"enable": true,
@@ -361,7 +361,7 @@
"uid": "default-ds-uid"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"enable": true,
@@ -387,7 +387,7 @@
"uid": "default-ds-uid"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"enable": true,
@@ -413,7 +413,7 @@
"uid": "default-ds-uid"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"enable": true,
@@ -450,7 +450,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"InstanceId": "i-123456"
@@ -476,7 +476,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"InstanceId": "i-123456"
@@ -502,7 +502,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"InstanceId": "i-123456"
@@ -557,7 +557,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"InstanceId": "i-missing-fields"
@@ -611,7 +611,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"InstanceId": "i-with-expression"
@@ -637,7 +637,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"InstanceId": "i-with-expression"
@@ -692,7 +692,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"InstanceId": "i-insights"
@@ -746,7 +746,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"InstanceId": "i-null-stats"
@@ -770,7 +770,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"InstanceId": "i-null-stats"
@@ -795,7 +795,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"InstanceId": "i-null-stats"
@@ -820,7 +820,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"InstanceId": "i-null-stats"
@@ -874,7 +874,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"InstanceId": "i-invalid-only"
@@ -899,7 +899,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"InstanceId": "i-invalid-only"
@@ -924,7 +924,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"InstanceId": "i-invalid-only"
@@ -949,7 +949,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"InstanceId": "i-invalid-only"
@@ -1003,7 +1003,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "cpu_usage"
}
@@ -1049,7 +1049,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"LoadBalancer": "my-load-balancer"
@@ -1103,7 +1103,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"DBInstanceIdentifier": "my-db"
@@ -1157,7 +1157,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"QueueName": "my-queue"
@@ -1182,7 +1182,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"expr": "up"
}
@@ -1199,7 +1199,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"TopicName": "my-topic"
@@ -1224,7 +1224,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"QueueName": "my-queue"
@@ -1278,7 +1278,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"BucketName": "my-bucket"
@@ -1331,7 +1331,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"FunctionName": "my-function"
@@ -1356,7 +1356,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"FunctionName": "my-function"
@@ -1381,7 +1381,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"FunctionName": "my-function"
@@ -1405,7 +1405,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"FunctionName": "my-function"
@@ -1430,7 +1430,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"FunctionName": "my-function"
@@ -1484,7 +1484,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"StreamName": "my-stream"
@@ -1509,7 +1509,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"StreamName": "my-stream"
@@ -1534,7 +1534,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"StreamName": "my-stream"
@@ -1588,7 +1588,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"ClusterName": "my-cluster"
@@ -1614,7 +1614,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {
"dimensions": {
"ClusterName": "my-cluster"

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -90,7 +90,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -136,7 +136,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -197,7 +197,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -241,7 +241,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -302,7 +302,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -375,7 +375,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -423,7 +423,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -35,7 +35,7 @@
"uid": "default-ds-uid"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"enable": false,
@@ -52,7 +52,7 @@
"uid": "existing-target-uid"
},
"query": {
"kind": "DataQuery",
"kind": "elasticsearch",
"spec": {}
},
"enable": false,
@@ -69,7 +69,7 @@
"uid": "existing-target-uid"
},
"query": {
"kind": "DataQuery",
"kind": "elasticsearch",
"spec": {}
},
"enable": false,
@@ -86,7 +86,7 @@
"uid": "default-ds-uid"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"enable": false,
@@ -103,7 +103,7 @@
"uid": "unknown-datasource-name"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"enable": false,
@@ -131,7 +131,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -175,7 +175,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "elasticsearch",
"spec": {}
},
"datasource": {
@@ -219,7 +219,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "elasticsearch",
"spec": {}
},
"datasource": {
@@ -263,7 +263,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "elasticsearch",
"spec": {}
},
"datasource": {
@@ -307,7 +307,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -351,7 +351,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -395,7 +395,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -410,7 +410,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "elasticsearch",
"spec": {}
},
"datasource": {
@@ -454,7 +454,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "elasticsearch",
"spec": {}
},
"datasource": {
@@ -498,7 +498,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -542,7 +542,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "elasticsearch",
"spec": {}
},
"datasource": {
@@ -557,7 +557,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "__expr__",
"spec": {}
},
"datasource": {
@@ -601,7 +601,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "elasticsearch",
"spec": {}
},
"datasource": {
@@ -645,7 +645,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "elasticsearch",
"spec": {}
},
"datasource": {
@@ -922,7 +922,7 @@
"uid": "default-ds-uid"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",
@@ -949,7 +949,7 @@
"uid": "existing-target-uid"
},
"query": {
"kind": "DataQuery",
"kind": "elasticsearch",
"spec": {}
},
"regex": "",
@@ -976,7 +976,7 @@
"uid": "existing-target-uid"
},
"query": {
"kind": "DataQuery",
"kind": "elasticsearch",
"spec": {}
},
"regex": "",
@@ -1003,7 +1003,7 @@
"uid": "unknown-datasource"
},
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"regex": "",

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -90,7 +90,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {
@@ -134,7 +134,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "DataQuery",
"kind": "prometheus",
"spec": {}
},
"datasource": {

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "DataQuery",
"kind": "grafana",
"spec": {}
},
"enable": true,

Some files were not shown because too many files have changed in this diff Show More