Compare commits

..

7 Commits

Author SHA1 Message Date
Georges Chaudy
f634f37b5f Enhance SQL KV store with snowflake ID support and resource version handling
- Updated the parsedKey struct to include ResourceVersionSnowflake for storing the original snowflake ID.
- Implemented snowflakeToMicroseconds function to convert snowflake IDs to microsecond timestamps for database storage.
- Modified parseDataKey function to utilize the new microsecond timestamp for ResourceVersion.
- Enhanced SQL queries in upsertResourceVersion to conditionally update resource versions based on the new timestamp logic.

These changes improve the accuracy and precision of resource versioning in the SQL KV store, enhancing data integrity and management.
2025-11-18 12:42:56 +01:00
Georges Chaudy
f5ef25233d Enhance SQL KV store and backend diagnostics
- Updated sqlKV struct to maintain a reference to the dbProvider, preventing garbage collection of the database connection.
- Implemented Ping and checkDB methods in sqlKV for verifying database connection health.
- Enhanced kvStorageBackend to implement the DiagnosticsServer interface, adding IsHealthy method for health checks.
- Updated resource server to utilize the new diagnostics capabilities of kvStorageBackend.

These changes improve the reliability and maintainability of the SQL-based KV store and its integration with the resource server.
2025-11-18 12:12:05 +01:00
Georges Chaudy
e156dfd92a Implement lifecycle management for kvStorageBackend
- Added context and cancel function to kvStorageBackend for lifecycle management.
- Implemented Init and Stop methods to manage background tasks and context cancellation.
- Updated resource server to utilize the kvStorageBackend's lifecycle hooks.

This change enhances the management of background processes within the kvStorageBackend, improving resource handling and cleanup.
2025-11-18 11:40:48 +01:00
Georges Chaudy
fa3d906d41 Add unifiedStorageKVBackend feature toggle
- Introduced the `unifiedStorageKVBackend` feature toggle to enable the use of a KV-backed SQL storage backend instead of direct SQL queries.
- Updated relevant files to include the new feature toggle in the registry, CSV, JSON, and Go definitions.
- Enhanced the resource server logic to conditionally use the KV backend based on the feature flag.

This change expands the storage options available for the application, improving flexibility in data management.
2025-11-18 11:35:17 +01:00
Georges Chaudy
a8c86de2d6 Add SQL-based KV store implementation
- Introduced a new `sqlkv.go` file implementing the KV interface using SQL storage.
- Added methods for creating, retrieving, updating, and deleting key-value pairs in a SQL database.
- Implemented support for multiple SQL dialects (MySQL, PostgreSQL, SQLite).
- Included functionality for batch operations and key parsing.

This change lays the foundation for a robust SQL-based key-value storage solution, enhancing data management capabilities.
2025-11-18 11:27:10 +01:00
Georges Chaudy
761a8f6c31 Enhance resource_history SQL update to include key_path column
- Updated SQL to set key_path based on resource attributes and action type.
- Removed the migration to make key_path NOT NULL, keeping it nullable to accommodate specific write patterns.
- Adjusted comments to clarify the rationale behind key_path's nullable status.

This change improves the handling of resource history updates and maintains flexibility in data management.
2025-11-17 17:39:50 +01:00
Georges Chaudy
3c0fc606ae Add key_path column and backfill for resource_history table
- Introduced key_path column to resource_history for KV interface.
- Implemented backfill logic for key_path using a new migrator.
- Made key_path column NOT NULL after backfill completion.
- Added index on key_path column for improved query performance.
- Created resource_events table to support KV interface.

This change enhances the resource history management and optimizes data retrieval.
2025-11-17 14:57:18 +01:00
970 changed files with 20112 additions and 45602 deletions

12
.github/CODEOWNERS vendored
View File

@@ -48,7 +48,7 @@
/docs/sources/whatsnew/ @jtvdez
/docs/sources/developers/plugins/ @grafana/plugins-platform-frontend @grafana/plugins-platform-backend
/docs/sources/developer-resources/plugins/ @grafana/plugins-platform-frontend @grafana/plugins-platform-backend
/docs/sources/visualizations/dashboards/ @imatwawana
/docs/sources/visualizations/panels-visualizations/ @imatwawana
@@ -89,7 +89,6 @@
/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
@@ -744,14 +743,6 @@ 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
@@ -1110,7 +1101,6 @@ eslint-suppressions.json @grafanabot
# Grafana Sharing Squad
/public/app/features/dashboard-scene/sharing/ @grafana/sharing-squad
/public/app/features/dashboard/components/ShareModal/ @grafana/sharing-squad
/public/app/features/dashboard/dashgrid/DashboardLibrary/ @grafana/sharing-squad
/public/app/features/manage-dashboards/components/SnapshotListTable.tsx @grafana/sharing-squad
/pkg/services/dashboardsnapshots/ @grafana/sharing-squad
/public/app/features/explore/QueryLibrary/ @grafana/sharing-squad

View File

@@ -8,9 +8,7 @@ name: "CodeQL checks"
on:
workflow_dispatch:
push:
branches:
- main
- release-*.*.*
branches: ['**'] # run on all branches
paths-ignore:
- '**/*.cue'
- '**/*.json'
@@ -76,7 +74,6 @@ jobs:
name: Set go version
uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00
with:
cache: false
go-version-file: go.mod
# Initializes the CodeQL tools for scanning.

View File

@@ -212,7 +212,6 @@ jobs:
run-id: ${{ github.run_id }}
bucket-path: ${{ needs.setup.outputs.version }}_${{ github.run_id }}
environment: prod
runs-on: ubuntu-x64-small
publish-dockerhub:
if: github.ref_name == 'main'

View File

@@ -181,9 +181,7 @@ 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: use go.yaml.in/yaml/v3 instead
- pkg: gopkg.in/yaml.v3
desc: use go.yaml.in/yaml/v3 instead
desc: Grafana packages are not allowed to depend on gopkg.in/yaml.v2 as gopkg.in/yaml.v3 is now available
- 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,251 +1,3 @@
<!-- 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,7 +98,6 @@ 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
@@ -107,6 +106,7 @@ 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-20251119142549-be091cf2f4d4
github.com/grafana/authlib/types v0.0.0-20250926065801-df98203cff37
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.283.0
github.com/grafana/grafana-plugin-sdk-go v0.281.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.6 // indirect
github.com/at-wat/mqtt-go v0.19.4 // 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-20251119204204-77fa75125181 // indirect
github.com/grafana/alerting v0.0.0-20251009192429-9427c24835ae // 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
@@ -160,7 +160,7 @@ require (
github.com/grafana/pyroscope-go/godeltaprof v0.1.9 // indirect
github.com/grafana/sqlds/v4 v4.2.7 // indirect
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0 // indirect
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3 // indirect
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-hclog v1.6.3 // 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.3 // indirect
github.com/prometheus/common v0.67.1 // 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
@@ -279,7 +279,7 @@ require (
golang.org/x/exp v0.0.0-20251002181428-27f1f14c8bb9 // indirect
golang.org/x/mod v0.30.0 // indirect
golang.org/x/net v0.47.0 // indirect
golang.org/x/oauth2 v0.33.0 // indirect
golang.org/x/oauth2 v0.32.0 // indirect
golang.org/x/sync v0.18.0 // indirect
golang.org/x/sys v0.38.0 // indirect
golang.org/x/telemetry v0.0.0-20251111182119-bc8e575c7b54 // 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.6 h1:+jo59yGHB3oqBU8nSFYbq6KDgN4ngMpqts5Qtyq61pc=
github.com/at-wat/mqtt-go v0.19.6/go.mod h1:Y/YrYwUlLE4N53//699Zir3WJnxSdJojvLEAbZxJjgQ=
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/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-20251119204204-77fa75125181 h1:nbxKRtrbuhvOYmI2RhOYauHRJCtpR+vTNIgg1lFUCws=
github.com/grafana/alerting v0.0.0-20251119204204-77fa75125181/go.mod h1:VtPNIFlEOJPPEc13Ax6ZTbNV3M/sAzLID72YjgzOPVA=
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/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-20251119142549-be091cf2f4d4 h1:Muoy+FMGrHj3GdFbvsMzUT7eusgii9PKf9L1ZaXDDbY=
github.com/grafana/authlib/types v0.0.0-20251119142549-be091cf2f4d4/go.mod h1:qeWYbnWzaYGl88JlL9+DsP1GT2Cudm58rLtx13fKZdw=
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/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.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-plugin-sdk-go v0.281.0 h1:V8dGyatzcOLQeivFhBV2JWMwTSZH/clDnpfKG9p3dTA=
github.com/grafana/grafana-plugin-sdk-go v0.281.0/go.mod h1:3I0g+v6jAwVmrt6BEjDUP4V6pkhGP5QKY5NkXY4Ayr4=
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=
@@ -687,8 +687,8 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDa
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8=
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0 h1:QGLs/O40yoNK9vmy4rhUGBVyMf1lISBGtXRpsu/Qu/o=
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0/go.mod h1:hM2alZsMUni80N33RBe6J0e423LB+odMj7d3EMP9l20=
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3 h1:B+8ClL/kCQkRiU82d9xajRPKYMrB7E0MbtzWVi1K4ns=
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3/go.mod h1:NbCUVmiS4foBGBHOYlCT25+YmGpJ32dZPi75pGEUpj4=
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2 h1:sGm2vDRFUrQJO/Veii4h4zG2vvqG6uWNkBHSTqXOZk0=
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2/go.mod h1:wd1YpapPLivG6nQgbf7ZkG1hhSOXDhhn4MLTknx2aAc=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20191002090509-6af20e3a5340 h1:uGoIog/wiQHI9GAxXO5TJbT0wWKH3O9HhOJW1F9c3fY=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20191002090509-6af20e3a5340/go.mod h1:3bDW6wMZJB7tiONtC/1Xpicra6Wp5GgbTbQWCbI5fkc=
@@ -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.3 h1:shd26MlnwTw5jksTDhC7rTQIteBxy+ZZDr3t7F2xN2Q=
github.com/prometheus/common v0.67.3/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI=
github.com/prometheus/common v0.67.1 h1:OTSON1P4DNxzTg4hmKCc37o4ZAZDv0cfXLkOt0oEowI=
github.com/prometheus/common v0.67.1/go.mod h1:RpmT9v35q2Y+lsieQsdOh5sXZ6ajUGC8NjZAmr8vb0Q=
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=
@@ -1420,8 +1420,8 @@ golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ
golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
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/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY=
golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=

View File

@@ -32,12 +32,12 @@ 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
github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3 // indirect
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20191002090509-6af20e3a5340 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
@@ -59,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.3 // indirect
github.com/prometheus/common v0.67.1 // 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
@@ -85,7 +85,7 @@ require (
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/oauth2 v0.32.0 // indirect
golang.org/x/sync v0.18.0 // indirect
golang.org/x/sys v0.38.0 // indirect
golang.org/x/term v0.37.0 // indirect

View File

@@ -77,8 +77,8 @@ github.com/grafana/grafana-app-sdk/logging v0.48.1 h1:veM0X5LAPyN3KsDLglWjIofndb
github.com/grafana/grafana-app-sdk/logging v0.48.1/go.mod h1:Gh/nBWnspK3oDNWtiM5qUF/fardHzOIEez+SPI3JeHA=
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0 h1:QGLs/O40yoNK9vmy4rhUGBVyMf1lISBGtXRpsu/Qu/o=
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0/go.mod h1:hM2alZsMUni80N33RBe6J0e423LB+odMj7d3EMP9l20=
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3 h1:B+8ClL/kCQkRiU82d9xajRPKYMrB7E0MbtzWVi1K4ns=
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3/go.mod h1:NbCUVmiS4foBGBHOYlCT25+YmGpJ32dZPi75pGEUpj4=
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2 h1:sGm2vDRFUrQJO/Veii4h4zG2vvqG6uWNkBHSTqXOZk0=
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2/go.mod h1:wd1YpapPLivG6nQgbf7ZkG1hhSOXDhhn4MLTknx2aAc=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20191002090509-6af20e3a5340 h1:uGoIog/wiQHI9GAxXO5TJbT0wWKH3O9HhOJW1F9c3fY=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20191002090509-6af20e3a5340/go.mod h1:3bDW6wMZJB7tiONtC/1Xpicra6Wp5GgbTbQWCbI5fkc=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 h1:8Tjv8EJ+pM1xP8mK6egEbD1OgnVTyacbefKhmbLhIhU=
@@ -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.3 h1:shd26MlnwTw5jksTDhC7rTQIteBxy+ZZDr3t7F2xN2Q=
github.com/prometheus/common v0.67.3/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI=
github.com/prometheus/common v0.67.1 h1:OTSON1P4DNxzTg4hmKCc37o4ZAZDv0cfXLkOt0oEowI=
github.com/prometheus/common v0.67.1/go.mod h1:RpmT9v35q2Y+lsieQsdOh5sXZ6ajUGC8NjZAmr8vb0Q=
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=
@@ -239,8 +239,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY
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.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
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/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY=
golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=

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.3
github.com/prometheus/common v0.67.1
k8s.io/apimachinery v0.34.2
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912
)
@@ -68,7 +68,7 @@ require (
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/oauth2 v0.32.0 // indirect
golang.org/x/sync v0.18.0 // indirect
golang.org/x/sys v0.38.0 // indirect
golang.org/x/term v0.37.0 // 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.3 h1:shd26MlnwTw5jksTDhC7rTQIteBxy+ZZDr3t7F2xN2Q=
github.com/prometheus/common v0.67.3/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI=
github.com/prometheus/common v0.67.1 h1:OTSON1P4DNxzTg4hmKCc37o4ZAZDv0cfXLkOt0oEowI=
github.com/prometheus/common v0.67.1/go.mod h1:RpmT9v35q2Y+lsieQsdOh5sXZ6ajUGC8NjZAmr8vb0Q=
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=
@@ -165,8 +165,8 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL
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/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY=
golang.org/x/oauth2 v0.32.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=

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.3 // indirect
github.com/prometheus/common v0.67.1 // 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
@@ -68,7 +68,7 @@ require (
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/oauth2 v0.32.0 // indirect
golang.org/x/sync v0.18.0 // indirect
golang.org/x/sys v0.38.0 // indirect
golang.org/x/term v0.37.0 // 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.3 h1:shd26MlnwTw5jksTDhC7rTQIteBxy+ZZDr3t7F2xN2Q=
github.com/prometheus/common v0.67.3/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI=
github.com/prometheus/common v0.67.1 h1:OTSON1P4DNxzTg4hmKCc37o4ZAZDv0cfXLkOt0oEowI=
github.com/prometheus/common v0.67.1/go.mod h1:RpmT9v35q2Y+lsieQsdOh5sXZ6ajUGC8NjZAmr8vb0Q=
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=
@@ -165,8 +165,8 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL
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/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY=
golang.org/x/oauth2 v0.32.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=

View File

@@ -1,10 +0,0 @@
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

View File

@@ -1,69 +0,0 @@
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
)

View File

@@ -1,187 +0,0 @@
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

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

View File

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

View File

@@ -1,18 +0,0 @@
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

@@ -1,58 +0,0 @@
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

@@ -1,187 +0,0 @@
//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

@@ -1,2 +0,0 @@
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

@@ -1,132 +0,0 @@
//
// 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.3 // indirect
github.com/prometheus/common v0.67.1 // 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
@@ -68,7 +68,7 @@ require (
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/oauth2 v0.32.0 // indirect
golang.org/x/sync v0.18.0 // indirect
golang.org/x/sys v0.38.0 // indirect
golang.org/x/term v0.37.0 // 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.3 h1:shd26MlnwTw5jksTDhC7rTQIteBxy+ZZDr3t7F2xN2Q=
github.com/prometheus/common v0.67.3/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI=
github.com/prometheus/common v0.67.1 h1:OTSON1P4DNxzTg4hmKCc37o4ZAZDv0cfXLkOt0oEowI=
github.com/prometheus/common v0.67.1/go.mod h1:RpmT9v35q2Y+lsieQsdOh5sXZ6ajUGC8NjZAmr8vb0Q=
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=
@@ -165,8 +165,8 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL
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/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY=
golang.org/x/oauth2 v0.32.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=

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-20251119142549-be091cf2f4d4
github.com/grafana/authlib/types v0.0.0-20250926065801-df98203cff37
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.283.0
github.com/grafana/grafana-plugin-sdk-go v0.281.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
@@ -51,7 +51,7 @@ require (
github.com/grafana/otel-profiling-go v0.5.1 // indirect
github.com/grafana/pyroscope-go/godeltaprof v0.1.9 // indirect
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0 // indirect
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3 // indirect
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-hclog v1.6.3 // indirect
@@ -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.3 // indirect
github.com/prometheus/common v0.67.1 // 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
@@ -110,7 +110,7 @@ require (
golang.org/x/exp v0.0.0-20251002181428-27f1f14c8bb9 // indirect
golang.org/x/mod v0.30.0 // indirect
golang.org/x/net v0.47.0 // indirect
golang.org/x/oauth2 v0.33.0 // indirect
golang.org/x/oauth2 v0.32.0 // indirect
golang.org/x/sync v0.18.0 // indirect
golang.org/x/sys v0.38.0 // indirect
golang.org/x/telemetry v0.0.0-20251111182119-bc8e575c7b54 // 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-20251119142549-be091cf2f4d4 h1:Muoy+FMGrHj3GdFbvsMzUT7eusgii9PKf9L1ZaXDDbY=
github.com/grafana/authlib/types v0.0.0-20251119142549-be091cf2f4d4/go.mod h1:qeWYbnWzaYGl88JlL9+DsP1GT2Cudm58rLtx13fKZdw=
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/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.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-plugin-sdk-go v0.281.0 h1:V8dGyatzcOLQeivFhBV2JWMwTSZH/clDnpfKG9p3dTA=
github.com/grafana/grafana-plugin-sdk-go v0.281.0/go.mod h1:3I0g+v6jAwVmrt6BEjDUP4V6pkhGP5QKY5NkXY4Ayr4=
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=
@@ -99,8 +99,8 @@ github.com/grafana/pyroscope-go/godeltaprof v0.1.9 h1:c1Us8i6eSmkW+Ez05d3co8kasn
github.com/grafana/pyroscope-go/godeltaprof v0.1.9/go.mod h1:2+l7K7twW49Ct4wFluZD3tZ6e0SjanjcUUBPVD/UuGU=
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0 h1:QGLs/O40yoNK9vmy4rhUGBVyMf1lISBGtXRpsu/Qu/o=
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0/go.mod h1:hM2alZsMUni80N33RBe6J0e423LB+odMj7d3EMP9l20=
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3 h1:B+8ClL/kCQkRiU82d9xajRPKYMrB7E0MbtzWVi1K4ns=
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3/go.mod h1:NbCUVmiS4foBGBHOYlCT25+YmGpJ32dZPi75pGEUpj4=
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2 h1:sGm2vDRFUrQJO/Veii4h4zG2vvqG6uWNkBHSTqXOZk0=
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2/go.mod h1:wd1YpapPLivG6nQgbf7ZkG1hhSOXDhhn4MLTknx2aAc=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 h1:8Tjv8EJ+pM1xP8mK6egEbD1OgnVTyacbefKhmbLhIhU=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2/go.mod h1:pkJQ2tZHJ0aFOVEEot6oZmaVEZcRme73eIFmhiVuRWs=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
@@ -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.3 h1:shd26MlnwTw5jksTDhC7rTQIteBxy+ZZDr3t7F2xN2Q=
github.com/prometheus/common v0.67.3/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI=
github.com/prometheus/common v0.67.1 h1:OTSON1P4DNxzTg4hmKCc37o4ZAZDv0cfXLkOt0oEowI=
github.com/prometheus/common v0.67.1/go.mod h1:RpmT9v35q2Y+lsieQsdOh5sXZ6ajUGC8NjZAmr8vb0Q=
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=
@@ -294,8 +294,8 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL
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/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY=
golang.org/x/oauth2 v0.32.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=

View File

@@ -66,9 +66,6 @@ func ValidateDashboardSpec(obj *Dashboard, forceValidation bool) (field.ErrorLis
}
func formatErrorPath(path []string) string {
if len(path) <= 4 {
return strings.Join(path, ".")
}
// omitting the "lineage.schemas[0].schema.spec" prefix here.
return strings.Join(path[4:], ".")
}

View File

@@ -67,9 +67,6 @@ func ValidateDashboardSpec(obj *Dashboard, forceValidation bool) (field.ErrorLis
}
func formatErrorPath(path []string) string {
if len(path) <= 4 {
return strings.Join(path, ".")
}
// omitting the "lineage.schemas[0].schema.spec" prefix here.
return strings.Join(path[4:], ".")
}

View File

@@ -11,13 +11,11 @@ import (
"github.com/grafana/grafana/apps/dashboard/pkg/migration/schemaversion"
)
func RegisterConversions(s *runtime.Scheme, dsIndexProvider schemaversion.DataSourceIndexProvider, leIndexProvider schemaversion.LibraryElementIndexProvider) error {
func RegisterConversions(s *runtime.Scheme, dsIndexProvider schemaversion.DataSourceIndexProvider) 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),
@@ -28,13 +26,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, leIndexProvider)
return Convert_V0_to_V2alpha1(a.(*dashv0.Dashboard), b.(*dashv2alpha1.Dashboard), scope, dsIndexProvider)
})); 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, leIndexProvider)
return Convert_V0_to_V2beta1(a.(*dashv0.Dashboard), b.(*dashv2beta1.Dashboard), scope, dsIndexProvider)
})); err != nil {
return err
}
@@ -48,13 +46,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, leIndexProvider)
return Convert_V1beta1_to_V2alpha1(a.(*dashv1.Dashboard), b.(*dashv2alpha1.Dashboard), scope, dsIndexProvider)
})); 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, leIndexProvider)
return Convert_V1beta1_to_V2beta1(a.(*dashv1.Dashboard), b.(*dashv2beta1.Dashboard), scope, dsIndexProvider)
})); err != nil {
return err
}

View File

@@ -828,12 +828,11 @@ func TestWithConversionValidation_DataLoss(t *testing.T) {
func TestDataLossDetectionOnAllInputFiles(t *testing.T) {
// Initialize the migrator with a test data source provider
dsProvider := testutil.NewDataSourceProvider(testutil.StandardTestConfig)
leProvider := testutil.NewLibraryElementProvider()
migration.Initialize(dsProvider, leProvider)
migration.Initialize(dsProvider)
// Set up conversion scheme
scheme := runtime.NewScheme()
err := RegisterConversions(scheme, dsProvider, leProvider)
err := RegisterConversions(scheme, dsProvider)
require.NoError(t, err)
// Read all files from input directory

View File

@@ -33,9 +33,7 @@ import (
func TestConversionMatrixExist(t *testing.T) {
// Initialize the migrator with a test data source provider
dsProvider := migrationtestutil.NewDataSourceProvider(migrationtestutil.StandardTestConfig)
// Use TestLibraryElementProvider for tests that need library panel models with repeat options
leProvider := migrationtestutil.NewTestLibraryElementProvider()
migration.Initialize(dsProvider, leProvider)
migration.Initialize(dsProvider)
versions := []metav1.Object{
&dashv0.Dashboard{Spec: common.Unstructured{Object: map[string]any{"title": "dashboardV0"}}},
@@ -45,7 +43,7 @@ func TestConversionMatrixExist(t *testing.T) {
}
scheme := runtime.NewScheme()
err := RegisterConversions(scheme, dsProvider, leProvider)
err := RegisterConversions(scheme, dsProvider)
require.NoError(t, err)
for idx, in := range versions {
@@ -87,13 +85,11 @@ func TestDeepCopyValid(t *testing.T) {
func TestDashboardConversionToAllVersions(t *testing.T) {
// Initialize the migrator with a test data source provider
dsProvider := migrationtestutil.NewDataSourceProvider(migrationtestutil.StandardTestConfig)
// Use TestLibraryElementProvider for tests that need library panel models with repeat options
leProvider := migrationtestutil.NewTestLibraryElementProvider()
migration.Initialize(dsProvider, leProvider)
migration.Initialize(dsProvider)
// Set up conversion scheme
scheme := runtime.NewScheme()
err := RegisterConversions(scheme, dsProvider, leProvider)
err := RegisterConversions(scheme, dsProvider)
require.NoError(t, err)
// Read all files from input directory
@@ -248,13 +244,11 @@ func TestDashboardConversionToAllVersions(t *testing.T) {
func TestMigratedDashboardsConversion(t *testing.T) {
// Initialize the migrator with a test data source provider
dsProvider := migrationtestutil.NewDataSourceProvider(migrationtestutil.StandardTestConfig)
// Use TestLibraryElementProvider for tests that need library panel models with repeat options
leProvider := migrationtestutil.NewTestLibraryElementProvider()
migration.Initialize(dsProvider, leProvider)
migration.Initialize(dsProvider)
// Set up conversion scheme
scheme := runtime.NewScheme()
err := RegisterConversions(scheme, dsProvider, leProvider)
err := RegisterConversions(scheme, dsProvider)
require.NoError(t, err)
// Read all files from migration package's latest_version directory
@@ -384,9 +378,7 @@ 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)
// Use TestLibraryElementProvider for tests that need library panel models with repeat options
leProvider := migrationtestutil.NewTestLibraryElementProvider()
migration.Initialize(dsProvider, leProvider)
migration.Initialize(dsProvider)
// Create a test registry for metrics
registry := prometheus.NewRegistry()
@@ -394,7 +386,7 @@ func TestConversionMetrics(t *testing.T) {
// Set up conversion scheme
scheme := runtime.NewScheme()
err := RegisterConversions(scheme, dsProvider, leProvider)
err := RegisterConversions(scheme, dsProvider)
require.NoError(t, err)
tests := []struct {
@@ -513,9 +505,7 @@ func TestConversionMetrics(t *testing.T) {
// TestConversionMetricsWrapper tests the withConversionMetrics wrapper function
func TestConversionMetricsWrapper(t *testing.T) {
dsProvider := migrationtestutil.NewDataSourceProvider(migrationtestutil.StandardTestConfig)
// Use TestLibraryElementProvider for tests that need library panel models with repeat options
leProvider := migrationtestutil.NewTestLibraryElementProvider()
migration.Initialize(dsProvider, leProvider)
migration.Initialize(dsProvider)
// Create a test registry for metrics
registry := prometheus.NewRegistry()
@@ -683,9 +673,7 @@ 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)
// Use TestLibraryElementProvider for tests that need library panel models with repeat options
leProvider := migrationtestutil.NewTestLibraryElementProvider()
migration.Initialize(dsProvider, leProvider)
migration.Initialize(dsProvider)
// Create a test registry for metrics
registry := prometheus.NewRegistry()
@@ -729,9 +717,7 @@ func TestSchemaVersionExtraction(t *testing.T) {
// TestConversionLogging tests that conversion-level logging works correctly
func TestConversionLogging(t *testing.T) {
dsProvider := migrationtestutil.NewDataSourceProvider(migrationtestutil.StandardTestConfig)
// Use TestLibraryElementProvider for tests that need library panel models with repeat options
leProvider := migrationtestutil.NewTestLibraryElementProvider()
migration.Initialize(dsProvider, leProvider)
migration.Initialize(dsProvider)
// Create a test registry for metrics
registry := prometheus.NewRegistry()
@@ -739,7 +725,7 @@ func TestConversionLogging(t *testing.T) {
// Set up conversion scheme
scheme := runtime.NewScheme()
err := RegisterConversions(scheme, dsProvider, leProvider)
err := RegisterConversions(scheme, dsProvider)
require.NoError(t, err)
tests := []struct {
@@ -822,9 +808,7 @@ func TestConversionLogging(t *testing.T) {
// TestConversionLogLevels tests that appropriate log levels are used
func TestConversionLogLevels(t *testing.T) {
dsProvider := migrationtestutil.NewDataSourceProvider(migrationtestutil.StandardTestConfig)
// Use TestLibraryElementProvider for tests that need library panel models with repeat options
leProvider := migrationtestutil.NewTestLibraryElementProvider()
migration.Initialize(dsProvider, leProvider)
migration.Initialize(dsProvider)
t.Run("log levels and structured fields verification", func(t *testing.T) {
// Create test wrapper to verify logging behavior
@@ -895,9 +879,7 @@ 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)
// Use TestLibraryElementProvider for tests that need library panel models with repeat options
leProvider := migrationtestutil.NewTestLibraryElementProvider()
migration.Initialize(dsProvider, leProvider)
migration.Initialize(dsProvider)
t.Run("verify all log fields are present", func(t *testing.T) {
// Test that the conversion wrapper includes all expected structured fields

View File

@@ -1,93 +0,0 @@
{
"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 @@
{
"kind": "Dashboard",
"apiVersion": "dashboard.grafana.app/v2alpha1",
"kind": "Dashboard",
"metadata": {
"name": "test-v2alpha1-complete",
"labels": {
@@ -11,14 +11,26 @@
}
},
"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": {
@@ -27,17 +39,36 @@
"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"
@@ -45,21 +76,220 @@
"query": {
"kind": "prometheus",
"spec": {
"expr": "changes(process_start_time_seconds[1m])",
"refId": "Anno"
"expr": "up"
}
},
"enable": true,
"hide": false,
"iconColor": "yellow",
"name": "Prometheus Annotations",
"builtIn": false
"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
}
]
}
}
],
"cursorSync": "Tooltip",
"description": "This dashboard demonstrates all features that need to be converted from v2alpha1 to v2beta1",
"editable": true,
"elements": {
"panel-1": {
"kind": "Panel",
@@ -67,7 +297,6 @@
"id": 1,
"title": "Panel with Conditional Rendering",
"description": "This panel demonstrates conditional rendering features",
"links": [],
"data": {
"kind": "QueryGroup",
"spec": {
@@ -75,18 +304,16 @@
{
"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
}
}
}
],
@@ -96,16 +323,13 @@
"spec": {
"id": "reduce",
"options": {
"includeTimeField": false,
"mode": "reduceFields",
"reducers": [
"mean"
]
"includeTimeField": false,
"reducers": ["mean"]
}
}
}
],
"queryOptions": {}
]
}
},
"vizConfig": {
@@ -120,6 +344,22 @@
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": 0
},
{
"color": "green",
"value": 1
}
]
},
"mappings": [
{
"type": "value",
@@ -134,23 +374,7 @@
}
}
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"value": 0,
"color": "red"
},
{
"value": 1,
"color": "green"
}
]
},
"color": {
"mode": "thresholds"
}
]
},
"overrides": []
}
@@ -224,281 +448,15 @@
]
}
},
"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",
"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"
"hideTimepicker": false
}
}
}
}

View File

@@ -1,98 +1,73 @@
{
"kind": "Dashboard",
"apiVersion": "dashboard.grafana.app/v2alpha1",
"kind": "Dashboard",
"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": {
"name": "",
"datasource": {
"type": "prometheus",
"uid": "gdev-prometheus"
},
"current": {
"text": "text7",
"value": "value7"
},
"options": null,
"multi": false,
"label": "Group By Variable",
"datasource": {
"type": "prometheus",
"uid": "gdev-prometheus"
},
"description": "A group by variable",
"hide": "dontHide",
"skipUrlSync": false,
"description": "A group by variable"
"label": "Group By Variable"
}
},
{
"kind": "AdhocVariable",
"spec": {
"name": "adhocVar",
"baseFilters": [
{
"condition": "AND",
"key": "key1",
"operator": "=",
"value": "value1"
},
{
"condition": "OR",
"key": "key2",
"operator": "=",
"value": "value2"
}
],
"datasource": {
"type": "prometheus",
"uid": "datasource-3"
},
"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",
"expandable": true,
"group": "defaultGroup1",
"expandable": true
"text": "defaultKey1",
"value": "defaultKey1"
}
],
"label": "Adhoc Variable",
"hide": "dontHide",
"skipUrlSync": false,
"description": "An adhoc variable",
"filters": [
{
"condition": "AND",
"key": "key3",
"operator": "=",
"value": "value3"
}
],
"hide": "dontHide",
"label": "Adhoc Variable",
"name": "adhocVar",
"skipUrlSync": false,
"allowCustomValue": true
}
}
]
},
"status": {
"conversion": {
"failed": false,
"storedVersion": "v2beta1"
}
}
}

View File

@@ -1,218 +1,202 @@
{
"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
}
},
"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
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"fieldConfig": {
"defaults": {
"thresholds": {
"mode": "absolute",
"steps": [
{
"value": 0,
"color": "green"
"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"
},
{
"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"
"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"
}
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"overrides": []
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.1.0-pre"
}
}
}
}
}
},
"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"
}
}
}
],
"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"
},
"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": "v2beta1"
}
"status": {}
}
}

View File

@@ -1,509 +0,0 @@
{
"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"
}
}
}

View File

@@ -1,98 +0,0 @@
{
"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

@@ -1,220 +0,0 @@
{
"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": "grafana",
"kind": "DataQuery",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "prometheus",
"kind": "DataQuery",
"spec": {}
},
"datasource": {
@@ -90,7 +90,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "prometheus",
"kind": "DataQuery",
"spec": {}
},
"datasource": {
@@ -134,7 +134,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "prometheus",
"kind": "DataQuery",
"spec": {}
},
"datasource": {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "grafana",
"kind": "DataQuery",
"spec": {}
},
"enable": true,
@@ -47,7 +47,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "",
"kind": "DataQuery",
"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": "",
"kind": "DataQuery",
"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": "",
"kind": "DataQuery",
"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": "",
"kind": "DataQuery",
"spec": {
"expr": "random_metric_alpha{env=~\"$env\", region=~\"$region\", node=~\"$node\"}",
"format": "time_series",
@@ -475,7 +475,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "",
"kind": "DataQuery",
"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": "",
"kind": "DataQuery",
"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": "",
"kind": "DataQuery",
"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": "",
"kind": "DataQuery",
"spec": {
"expr": "example_usage_epsilon{env=~\"$env\", region=~\"$region\", node=~\"$node\"}",
"format": "time_series",
@@ -910,7 +910,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "",
"kind": "DataQuery",
"spec": {
"expr": "random_total_zeta{env=~\"$env\", region=~\"$region\", node=~\"$node\"}",
"format": "time_series",
@@ -930,7 +930,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "",
"kind": "DataQuery",
"spec": {
"expr": "sample_target_eta{env=~\"$env\", region=~\"$region\", node=~\"$node\"}",
"format": "time_series",
@@ -1038,7 +1038,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "",
"kind": "DataQuery",
"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": "",
"kind": "DataQuery",
"spec": {
"__legacyStringValue": "label_values(system_info_lambda{}, env)"
}
@@ -1377,7 +1377,7 @@
"uid": "${example_datasource}"
},
"query": {
"kind": "",
"kind": "DataQuery",
"spec": {
"__legacyStringValue": "label_values(system_info_lambda{env=~\"$env\"}, region)"
}
@@ -1408,7 +1408,7 @@
"uid": "${example_datasource}"
},
"query": {
"kind": "",
"kind": "DataQuery",
"spec": {
"__legacyStringValue": "label_values(system_info_lambda{env=~\"$env\", region=~\"$region\"}, node)"
}
@@ -1439,7 +1439,7 @@
"uid": "${example_datasource}"
},
"query": {
"kind": "",
"kind": "DataQuery",
"spec": {
"__legacyStringValue": "label_values(example_events_kappa{env=~\"$env\", region=~\"$region\", node=~\"$node\"}, service)"
}

View File

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

View File

@@ -14,7 +14,7 @@
"uid": "-- Grafana --"
},
"query": {
"kind": "grafana",
"kind": "DataQuery",
"spec": {}
},
"enable": true,
@@ -46,7 +46,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "prometheus",
"kind": "DataQuery",
"spec": {}
},
"datasource": {
@@ -93,7 +93,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "loki",
"kind": "DataQuery",
"spec": {
"expr": "{namespace=\"default\", cluster=\"$cluster\", job=\"app-service\"} | logfmt"
}
@@ -144,7 +144,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "prometheus",
"kind": "DataQuery",
"spec": {}
},
"datasource": {
@@ -191,7 +191,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "prometheus",
"kind": "DataQuery",
"spec": {
"expr": "max(app_worker_threads_active{cluster=\"$cluster\", namespace=\"default\"})",
"instant": true
@@ -238,7 +238,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "tempo",
"kind": "DataQuery",
"spec": {
"filters": [
{
@@ -305,7 +305,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"spec": {}
},
"datasource": {
@@ -808,7 +808,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"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": "prometheus",
"kind": "DataQuery",
"spec": {}
},
"datasource": {
@@ -1086,7 +1086,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "prometheus",
"kind": "DataQuery",
"spec": {}
},
"datasource": {
@@ -1133,7 +1133,7 @@
"kind": "PanelQuery",
"spec": {
"query": {
"kind": "prometheus",
"kind": "DataQuery",
"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": "loki",
"kind": "DataQuery",
"spec": {
"expr": "{namespace=\"default\", cluster=\"$cluster\", job=\"app-service\"} | logfmt | level=\"error\""
}
@@ -1640,7 +1640,7 @@
"uid": "${prom}"
},
"query": {
"kind": "prometheus",
"kind": "DataQuery",
"spec": {
"__legacyStringValue": "label_values(app_worker_threads_active,cluster)"
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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