Compare commits
221 Commits
njvrzm/err
...
dual-write
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d5df03e531 | ||
|
|
2308b5458e | ||
|
|
bd0140b6f0 | ||
|
|
215d25ef69 | ||
|
|
d3beed7dd2 | ||
|
|
e2f2011d9e | ||
|
|
6db51cbdb9 | ||
|
|
82d8d44977 | ||
|
|
60abd9a159 | ||
|
|
6186aac5d4 | ||
|
|
a28076ef5e | ||
|
|
b687ca6b6d | ||
|
|
1d3f09d519 | ||
|
|
ec1ace398e | ||
|
|
fe5aa3e281 | ||
|
|
a01777eafa | ||
|
|
f5aa39cc27 | ||
|
|
aa9b587cc1 | ||
|
|
86652a6515 | ||
|
|
1a2c3bdbc9 | ||
|
|
c9a14f1774 | ||
|
|
d2b788eb53 | ||
|
|
8af89b1210 | ||
|
|
4b24e63e0b | ||
|
|
68e7d66e54 | ||
|
|
dffae66fdc | ||
|
|
5dbbe8164b | ||
|
|
d1064da4cd | ||
|
|
b57b8d4359 | ||
|
|
5219ccddb6 | ||
|
|
c95e3da2d5 | ||
|
|
43d9fbc056 | ||
|
|
7b80c44ac7 | ||
|
|
98f271f345 | ||
|
|
60c4fab063 | ||
|
|
ce8663ac24 | ||
|
|
5dd9a14903 | ||
|
|
68bf19d840 | ||
|
|
220c29de89 | ||
|
|
91ab753368 | ||
|
|
250ca7985f | ||
|
|
b57ed32484 | ||
|
|
d0217588a3 | ||
|
|
ce9ab6a89a | ||
|
|
8c8efd2494 | ||
|
|
69ccfd6bfc | ||
|
|
53aa5e8f7f | ||
|
|
69bf3068b3 | ||
|
|
1263a3d364 | ||
|
|
e4b79e2fc8 | ||
|
|
ef0601b85e | ||
|
|
0d1ec94548 | ||
|
|
e25d09ff3e | ||
|
|
23a51ec9c5 | ||
|
|
51dcdd3499 | ||
|
|
880bc23c85 | ||
|
|
6dc604c2ea | ||
|
|
77c500dc01 | ||
|
|
bec4d225b3 | ||
|
|
b91ca14f48 | ||
|
|
2aedbdb76f | ||
|
|
b7269073b2 | ||
|
|
0d7f46c08a | ||
|
|
1b52718c23 | ||
|
|
e61e406440 | ||
|
|
29dfdafad5 | ||
|
|
b7da61c260 | ||
|
|
0e6ad2e7c8 | ||
|
|
5cb4c311dc | ||
|
|
586410d8b5 | ||
|
|
a0e894c6d8 | ||
|
|
e4796b1de3 | ||
|
|
86a3aae204 | ||
|
|
e0ad4eb7ed | ||
|
|
f0c95a0a10 | ||
|
|
0b46123300 | ||
|
|
aae69c1e75 | ||
|
|
81b868ae91 | ||
|
|
89dd3870b3 | ||
|
|
3b577e2c42 | ||
|
|
7ff004f775 | ||
|
|
4d26d0cd5c | ||
|
|
2a6a48ac39 | ||
|
|
f581a5a69b | ||
|
|
5ff18c0802 | ||
|
|
0c8c886930 | ||
|
|
ba196958cd | ||
|
|
622c75af6d | ||
|
|
e983aac141 | ||
|
|
c42421e616 | ||
|
|
e4ba1c1a6d | ||
|
|
909ed02218 | ||
|
|
ad3763f04d | ||
|
|
ca6ab973b4 | ||
|
|
9cd811b9e6 | ||
|
|
52cd096d92 | ||
|
|
98453fbcff | ||
|
|
ccdafc3fb2 | ||
|
|
12abbd5a15 | ||
|
|
1c5caeb987 | ||
|
|
71a65e1f80 | ||
|
|
ec12176220 | ||
|
|
0cf4f7c4de | ||
|
|
b0785e506f | ||
|
|
5f8668b3aa | ||
|
|
368762c026 | ||
|
|
a56fa3c7b5 | ||
|
|
f5f9a66fa8 | ||
|
|
eb6c22af36 | ||
|
|
125cc5fddd | ||
|
|
45c25ab1d9 | ||
|
|
7f34fae439 | ||
|
|
f028b9dbdb | ||
|
|
e95f8bf843 | ||
|
|
f669bc4448 | ||
|
|
a79cda3328 | ||
|
|
65cdf6cd45 | ||
|
|
7be93d9af4 | ||
|
|
347075bffe | ||
|
|
0db188e95d | ||
|
|
f38df468b5 | ||
|
|
c78c2d7231 | ||
|
|
8f4fa9ed05 | ||
|
|
0aae7e01bc | ||
|
|
58e9e4a56d | ||
|
|
dff9bea3e8 | ||
|
|
19cfab89f3 | ||
|
|
088bab8b38 | ||
|
|
9e8bdee283 | ||
|
|
bb5bb00e4d | ||
|
|
5fcc67837a | ||
|
|
79f2016a66 | ||
|
|
7858dcb9c1 | ||
|
|
27eb488a96 | ||
|
|
97af86efb2 | ||
|
|
f58ab2a6a1 | ||
|
|
b96a1ae722 | ||
|
|
a53875e621 | ||
|
|
9598ae6434 | ||
|
|
ab0b05550f | ||
|
|
4518add556 | ||
|
|
00b89b0d29 | ||
|
|
a3eedfeb73 | ||
|
|
1e8f1f74ea | ||
|
|
66b05914e2 | ||
|
|
0c60d356d1 | ||
|
|
41d7213d7e | ||
|
|
efad6c7be0 | ||
|
|
e116254f32 | ||
|
|
2efcc88e62 | ||
|
|
6fea614106 | ||
|
|
c0c05a65fd | ||
|
|
41ed2aeb23 | ||
|
|
9e9233051e | ||
|
|
a5faedbe68 | ||
|
|
6fee200327 | ||
|
|
0b9046be15 | ||
|
|
20eeff3e7b | ||
|
|
ec55871b9b | ||
|
|
0bfcc55411 | ||
|
|
016301c304 | ||
|
|
5e05289bc8 | ||
|
|
be734e970e | ||
|
|
05681efee3 | ||
|
|
844a7332b9 | ||
|
|
29b04bd2ed | ||
|
|
c0fe27406b | ||
|
|
9409af6f1c | ||
|
|
e1c60e0a83 | ||
|
|
1f88aeb91f | ||
|
|
901360dca4 | ||
|
|
2cf485f6bf | ||
|
|
8ff88036e7 | ||
|
|
5eb0e6f432 | ||
|
|
1465b44d5a | ||
|
|
ee62baea2c | ||
|
|
1f20ca5a3d | ||
|
|
97b241d4ab | ||
|
|
466a27deff | ||
|
|
264131a390 | ||
|
|
7698970f22 | ||
|
|
bbaf91ed9c | ||
|
|
92464b2dc8 | ||
|
|
5fe192a893 | ||
|
|
380154707b | ||
|
|
217427e072 | ||
|
|
585d24dafa | ||
|
|
fccece3ca0 | ||
|
|
d44cab9eaf | ||
|
|
3d3b4dd213 | ||
|
|
2947d41ea8 | ||
|
|
0acb030f46 | ||
|
|
658a1c8228 | ||
|
|
618316a2f7 | ||
|
|
a9c2117aa7 | ||
|
|
bc31a768f7 | ||
|
|
52c035defc | ||
|
|
7ba2c559c4 | ||
|
|
c1f95a2713 | ||
|
|
158fc09015 | ||
|
|
e9e507a887 | ||
|
|
dc992b62b6 | ||
|
|
6adc45bf30 | ||
|
|
e310d5e8ee | ||
|
|
5698f2d039 | ||
|
|
d8cdee80f0 | ||
|
|
e8e2f95637 | ||
|
|
ab4ccef319 | ||
|
|
99cabcb8be | ||
|
|
b4a65ac5ac | ||
|
|
872ed5dc9d | ||
|
|
70b1053ad1 | ||
|
|
4e3039e4bd | ||
|
|
c05e1bd43a | ||
|
|
93566ce4ef | ||
|
|
76a6db818e | ||
|
|
1a0bc39ec3 | ||
|
|
3b3e87ff89 | ||
|
|
eb2a390425 | ||
|
|
967ba3acaf | ||
|
|
105b407629 |
4
.github/CODEOWNERS
vendored
4
.github/CODEOWNERS
vendored
@@ -94,7 +94,6 @@
|
|||||||
/apps/shorturl/ @grafana/sharing-squad
|
/apps/shorturl/ @grafana/sharing-squad
|
||||||
/apps/secret/ @grafana/grafana-operator-experience-squad
|
/apps/secret/ @grafana/grafana-operator-experience-squad
|
||||||
/apps/scope/ @grafana/grafana-operator-experience-squad
|
/apps/scope/ @grafana/grafana-operator-experience-squad
|
||||||
/apps/investigations/ @fcjack @matryer @svennergr
|
|
||||||
/apps/advisor/ @grafana/plugins-platform-backend
|
/apps/advisor/ @grafana/plugins-platform-backend
|
||||||
/apps/iam/ @grafana/access-squad
|
/apps/iam/ @grafana/access-squad
|
||||||
/apps/sdk.mk @grafana/grafana-app-platform-squad
|
/apps/sdk.mk @grafana/grafana-app-platform-squad
|
||||||
@@ -441,6 +440,7 @@ i18next.config.ts @grafana/grafana-frontend-platform
|
|||||||
/e2e-playwright/dashboards/TestDashboard.json @grafana/dashboards-squad @grafana/grafana-search-navigate-organise
|
/e2e-playwright/dashboards/TestDashboard.json @grafana/dashboards-squad @grafana/grafana-search-navigate-organise
|
||||||
/e2e-playwright/dashboards/TestV2Dashboard.json @grafana/dashboards-squad
|
/e2e-playwright/dashboards/TestV2Dashboard.json @grafana/dashboards-squad
|
||||||
/e2e-playwright/dashboards/V2DashWithRepeats.json @grafana/dashboards-squad
|
/e2e-playwright/dashboards/V2DashWithRepeats.json @grafana/dashboards-squad
|
||||||
|
/e2e-playwright/dashboards/V2DashWithRowRepeats.json @grafana/dashboards-squad
|
||||||
/e2e-playwright/dashboards/V2DashWithTabRepeats.json @grafana/dashboards-squad
|
/e2e-playwright/dashboards/V2DashWithTabRepeats.json @grafana/dashboards-squad
|
||||||
/e2e-playwright/dashboards-suite/adhoc-filter-from-panel.spec.ts @grafana/datapro
|
/e2e-playwright/dashboards-suite/adhoc-filter-from-panel.spec.ts @grafana/datapro
|
||||||
/e2e-playwright/dashboards-suite/dashboard-browse-nested.spec.ts @grafana/grafana-search-navigate-organise
|
/e2e-playwright/dashboards-suite/dashboard-browse-nested.spec.ts @grafana/grafana-search-navigate-organise
|
||||||
@@ -658,6 +658,7 @@ i18next.config.ts @grafana/grafana-frontend-platform
|
|||||||
/packages/grafana-runtime/src/services/LocationService.tsx @grafana/grafana-search-navigate-organise
|
/packages/grafana-runtime/src/services/LocationService.tsx @grafana/grafana-search-navigate-organise
|
||||||
/packages/grafana-runtime/src/services/LocationSrv.ts @grafana/grafana-search-navigate-organise
|
/packages/grafana-runtime/src/services/LocationSrv.ts @grafana/grafana-search-navigate-organise
|
||||||
/packages/grafana-runtime/src/services/live.ts @grafana/dashboards-squad
|
/packages/grafana-runtime/src/services/live.ts @grafana/dashboards-squad
|
||||||
|
/packages/grafana-runtime/src/services/pluginMeta @grafana/plugins-platform-frontend
|
||||||
/packages/grafana-runtime/src/utils/chromeHeaderHeight.ts @grafana/grafana-search-navigate-organise
|
/packages/grafana-runtime/src/utils/chromeHeaderHeight.ts @grafana/grafana-search-navigate-organise
|
||||||
/packages/grafana-runtime/src/utils/DataSourceWithBackend* @grafana/grafana-datasources-core-services
|
/packages/grafana-runtime/src/utils/DataSourceWithBackend* @grafana/grafana-datasources-core-services
|
||||||
/packages/grafana-runtime/src/utils/licensing.ts @grafana/grafana-operator-experience-squad
|
/packages/grafana-runtime/src/utils/licensing.ts @grafana/grafana-operator-experience-squad
|
||||||
@@ -1276,6 +1277,7 @@ embed.go @grafana/grafana-as-code
|
|||||||
/.github/workflows/i18n-crowdin-download.yml @grafana/grafana-frontend-platform
|
/.github/workflows/i18n-crowdin-download.yml @grafana/grafana-frontend-platform
|
||||||
/.github/workflows/i18n-crowdin-create-tasks.yml @grafana/grafana-frontend-platform
|
/.github/workflows/i18n-crowdin-create-tasks.yml @grafana/grafana-frontend-platform
|
||||||
/.github/workflows/i18n-verify.yml @grafana/grafana-frontend-platform
|
/.github/workflows/i18n-verify.yml @grafana/grafana-frontend-platform
|
||||||
|
/.github/workflows/deploy-storybook.yml @grafana/grafana-frontend-platform
|
||||||
/.github/workflows/deploy-storybook-preview.yml @grafana/grafana-frontend-platform
|
/.github/workflows/deploy-storybook-preview.yml @grafana/grafana-frontend-platform
|
||||||
/.github/workflows/scripts/crowdin/create-tasks.ts @grafana/grafana-frontend-platform
|
/.github/workflows/scripts/crowdin/create-tasks.ts @grafana/grafana-frontend-platform
|
||||||
/.github/workflows/scripts/publish-frontend-metrics.mts @grafana/grafana-frontend-platform
|
/.github/workflows/scripts/publish-frontend-metrics.mts @grafana/grafana-frontend-platform
|
||||||
|
|||||||
11
.github/actions/change-detection/action.yml
vendored
11
.github/actions/change-detection/action.yml
vendored
@@ -14,6 +14,9 @@ outputs:
|
|||||||
frontend:
|
frontend:
|
||||||
description: Whether the frontend or self has changed in any way
|
description: Whether the frontend or self has changed in any way
|
||||||
value: ${{ steps.changed-files.outputs.frontend_any_changed || 'true' }}
|
value: ${{ steps.changed-files.outputs.frontend_any_changed || 'true' }}
|
||||||
|
frontend-packages:
|
||||||
|
description: Whether any frontend packages have changed
|
||||||
|
value: ${{ steps.changed-files.outputs.frontend_packages_any_changed || 'true' }}
|
||||||
e2e:
|
e2e:
|
||||||
description: Whether the e2e tests or self have changed in any way
|
description: Whether the e2e tests or self have changed in any way
|
||||||
value: ${{ steps.changed-files.outputs.e2e_any_changed == 'true' ||
|
value: ${{ steps.changed-files.outputs.e2e_any_changed == 'true' ||
|
||||||
@@ -97,6 +100,12 @@ runs:
|
|||||||
- '.yarn/**'
|
- '.yarn/**'
|
||||||
- 'apps/dashboard/pkg/migration/**'
|
- 'apps/dashboard/pkg/migration/**'
|
||||||
- '${{ inputs.self }}'
|
- '${{ inputs.self }}'
|
||||||
|
frontend_packages:
|
||||||
|
- '.github/actions/checkout/**'
|
||||||
|
- '.github/actions/change-detection/**'
|
||||||
|
- 'packages/**'
|
||||||
|
- './scripts/validate-npm-packages.sh'
|
||||||
|
- '${{ inputs.self }}'
|
||||||
e2e:
|
e2e:
|
||||||
- 'e2e/**'
|
- 'e2e/**'
|
||||||
- 'e2e-playwright/**'
|
- 'e2e-playwright/**'
|
||||||
@@ -153,6 +162,8 @@ runs:
|
|||||||
echo " --> ${{ steps.changed-files.outputs.backend_all_changed_files }}"
|
echo " --> ${{ steps.changed-files.outputs.backend_all_changed_files }}"
|
||||||
echo "Frontend: ${{ steps.changed-files.outputs.frontend_any_changed || 'true' }}"
|
echo "Frontend: ${{ steps.changed-files.outputs.frontend_any_changed || 'true' }}"
|
||||||
echo " --> ${{ steps.changed-files.outputs.frontend_all_changed_files }}"
|
echo " --> ${{ steps.changed-files.outputs.frontend_all_changed_files }}"
|
||||||
|
echo "Frontend packages: ${{ steps.changed-files.outputs.frontend_packages_any_changed || 'true' }}"
|
||||||
|
echo " --> ${{ steps.changed-files.outputs.frontend_packages_all_changed_files }}"
|
||||||
echo "E2E: ${{ steps.changed-files.outputs.e2e_any_changed || 'true' }}"
|
echo "E2E: ${{ steps.changed-files.outputs.e2e_any_changed || 'true' }}"
|
||||||
echo " --> ${{ steps.changed-files.outputs.e2e_all_changed_files }}"
|
echo " --> ${{ steps.changed-files.outputs.e2e_all_changed_files }}"
|
||||||
echo " --> ${{ steps.changed-files.outputs.backend_all_changed_files }}"
|
echo " --> ${{ steps.changed-files.outputs.backend_all_changed_files }}"
|
||||||
|
|||||||
2
.github/actions/setup-node/action.yml
vendored
2
.github/actions/setup-node/action.yml
vendored
@@ -4,7 +4,7 @@ description: Sets up a node.js environment with presets for the Grafana reposito
|
|||||||
runs:
|
runs:
|
||||||
using: "composite"
|
using: "composite"
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v6
|
||||||
with:
|
with:
|
||||||
node-version-file: '.nvmrc'
|
node-version-file: '.nvmrc'
|
||||||
cache: 'yarn'
|
cache: 'yarn'
|
||||||
|
|||||||
1
.github/dependabot.yml
vendored
1
.github/dependabot.yml
vendored
@@ -19,7 +19,6 @@ updates:
|
|||||||
- "/apps/dashboard"
|
- "/apps/dashboard"
|
||||||
- "/apps/folder"
|
- "/apps/folder"
|
||||||
- "/apps/iam"
|
- "/apps/iam"
|
||||||
- "/apps/investigations"
|
|
||||||
- "/apps/playlist"
|
- "/apps/playlist"
|
||||||
- "/apps/plugins"
|
- "/apps/plugins"
|
||||||
- "/apps/preferences"
|
- "/apps/preferences"
|
||||||
|
|||||||
79
.github/workflows/deploy-storybook.yml
vendored
Normal file
79
.github/workflows/deploy-storybook.yml
vendored
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
name: Deploy Storybook
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
# push:
|
||||||
|
# branches:
|
||||||
|
# - main
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
detect-changes:
|
||||||
|
# Only run in grafana/grafana
|
||||||
|
if: github.repository == 'grafana/grafana'
|
||||||
|
name: Detect whether code changed
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
outputs:
|
||||||
|
changed-frontend-packages: ${{ steps.detect-changes.outputs.frontend-packages }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v5
|
||||||
|
with:
|
||||||
|
persist-credentials: true # required to get more history in the changed-files action
|
||||||
|
fetch-depth: 2
|
||||||
|
- name: Detect changes
|
||||||
|
id: detect-changes
|
||||||
|
uses: ./.github/actions/change-detection
|
||||||
|
with:
|
||||||
|
self: .github/workflows/deploy-storybook.yml
|
||||||
|
deploy-storybook:
|
||||||
|
name: Deploy Storybook
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: detect-changes
|
||||||
|
# Only run in grafana/grafana
|
||||||
|
if: github.repository == 'grafana/grafana' && needs.detect-changes.outputs.changed-frontend-packages == 'true'
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
id-token: write
|
||||||
|
|
||||||
|
env:
|
||||||
|
BUCKET_NAME: grafana-storybook
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v5
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: ./.github/actions/setup-node
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: yarn install --immutable
|
||||||
|
|
||||||
|
- name: Build storybook
|
||||||
|
run: yarn storybook:build
|
||||||
|
|
||||||
|
# Create the GCS folder name
|
||||||
|
# Right now, this just returns "canary"
|
||||||
|
# But we'll expand this to work for "latest" as well in the future
|
||||||
|
- name: Create deploy name
|
||||||
|
id: create-deploy-name
|
||||||
|
run: |
|
||||||
|
echo "deploy-name=canary" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
- name: Upload Storybook
|
||||||
|
uses: grafana/shared-workflows/actions/push-to-gcs@main
|
||||||
|
with:
|
||||||
|
environment: prod
|
||||||
|
bucket: ${{ env.BUCKET_NAME }}
|
||||||
|
bucket_path: ${{ steps.create-deploy-name.outputs.deploy-name }}
|
||||||
|
path: packages/grafana-ui/dist/storybook
|
||||||
|
service_account: github-gf-storybook-deploy@grafanalabs-workload-identity.iam.gserviceaccount.com
|
||||||
|
parent: false
|
||||||
66
.github/workflows/frontend-lint.yml
vendored
66
.github/workflows/frontend-lint.yml
vendored
@@ -17,6 +17,7 @@ jobs:
|
|||||||
outputs:
|
outputs:
|
||||||
changed: ${{ steps.detect-changes.outputs.frontend }}
|
changed: ${{ steps.detect-changes.outputs.frontend }}
|
||||||
prettier: ${{ steps.detect-changes.outputs.frontend == 'true' || steps.detect-changes.outputs.docs == 'true' }}
|
prettier: ${{ steps.detect-changes.outputs.frontend == 'true' || steps.detect-changes.outputs.docs == 'true' }}
|
||||||
|
changed-frontend-packages: ${{ steps.detect-changes.outputs.frontend-packages }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
@@ -42,11 +43,8 @@ jobs:
|
|||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-node@v6
|
- name: Setup Node
|
||||||
with:
|
uses: ./.github/actions/setup-node
|
||||||
node-version-file: '.nvmrc'
|
|
||||||
cache: 'yarn'
|
|
||||||
cache-dependency-path: 'yarn.lock'
|
|
||||||
- run: yarn install --immutable --check-cache
|
- run: yarn install --immutable --check-cache
|
||||||
- run: yarn run prettier:check
|
- run: yarn run prettier:check
|
||||||
- run: yarn run lint
|
- run: yarn run lint
|
||||||
@@ -63,11 +61,8 @@ jobs:
|
|||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-node@v6
|
- name: Setup Node
|
||||||
with:
|
uses: ./.github/actions/setup-node
|
||||||
node-version-file: '.nvmrc'
|
|
||||||
cache: 'yarn'
|
|
||||||
cache-dependency-path: 'yarn.lock'
|
|
||||||
- name: Setup Enterprise
|
- name: Setup Enterprise
|
||||||
uses: ./.github/actions/setup-enterprise
|
uses: ./.github/actions/setup-enterprise
|
||||||
with:
|
with:
|
||||||
@@ -89,11 +84,8 @@ jobs:
|
|||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-node@v6
|
- name: Setup Node
|
||||||
with:
|
uses: ./.github/actions/setup-node
|
||||||
node-version-file: '.nvmrc'
|
|
||||||
cache: 'yarn'
|
|
||||||
cache-dependency-path: 'yarn.lock'
|
|
||||||
- run: yarn install --immutable --check-cache
|
- run: yarn install --immutable --check-cache
|
||||||
- run: yarn run typecheck
|
- run: yarn run typecheck
|
||||||
lint-frontend-typecheck-enterprise:
|
lint-frontend-typecheck-enterprise:
|
||||||
@@ -109,11 +101,8 @@ jobs:
|
|||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-node@v6
|
- name: Setup Node
|
||||||
with:
|
uses: ./.github/actions/setup-node
|
||||||
node-version-file: '.nvmrc'
|
|
||||||
cache: 'yarn'
|
|
||||||
cache-dependency-path: 'yarn.lock'
|
|
||||||
- name: Setup Enterprise
|
- name: Setup Enterprise
|
||||||
uses: ./.github/actions/setup-enterprise
|
uses: ./.github/actions/setup-enterprise
|
||||||
with:
|
with:
|
||||||
@@ -133,11 +122,8 @@ jobs:
|
|||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-node@v6
|
- name: Setup Node
|
||||||
with:
|
uses: ./.github/actions/setup-node
|
||||||
node-version-file: '.nvmrc'
|
|
||||||
cache: 'yarn'
|
|
||||||
cache-dependency-path: 'yarn.lock'
|
|
||||||
- run: yarn install --immutable --check-cache
|
- run: yarn install --immutable --check-cache
|
||||||
- name: Generate API clients
|
- name: Generate API clients
|
||||||
run: |
|
run: |
|
||||||
@@ -164,11 +150,8 @@ jobs:
|
|||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-node@v6
|
- name: Setup Node
|
||||||
with:
|
uses: ./.github/actions/setup-node
|
||||||
node-version-file: '.nvmrc'
|
|
||||||
cache: 'yarn'
|
|
||||||
cache-dependency-path: 'yarn.lock'
|
|
||||||
- name: Setup Enterprise
|
- name: Setup Enterprise
|
||||||
uses: ./.github/actions/setup-enterprise
|
uses: ./.github/actions/setup-enterprise
|
||||||
with:
|
with:
|
||||||
@@ -187,3 +170,26 @@ jobs:
|
|||||||
echo "${uncommited_error_message}"
|
echo "${uncommited_error_message}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
lint-frontend-packed-packages:
|
||||||
|
needs: detect-changes
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
id-token: write
|
||||||
|
if: github.event_name == 'pull_request' && needs.detect-changes.outputs.changed-frontend-packages == 'true'
|
||||||
|
name: Verify packed frontend packages
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout build commit
|
||||||
|
uses: actions/checkout@v5
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
- name: Setup Node
|
||||||
|
uses: ./.github/actions/setup-node
|
||||||
|
- name: Install dependencies
|
||||||
|
run: yarn install --immutable
|
||||||
|
- name: Build and pack packages
|
||||||
|
run: |
|
||||||
|
yarn run packages:build
|
||||||
|
yarn run packages:pack
|
||||||
|
- name: Validate packages
|
||||||
|
run: ./scripts/validate-npm-packages.sh
|
||||||
|
|||||||
@@ -67,14 +67,6 @@ linters:
|
|||||||
deny:
|
deny:
|
||||||
- pkg: github.com/grafana/grafana/pkg
|
- pkg: github.com/grafana/grafana/pkg
|
||||||
desc: apiserver is not allowed to import grafana core
|
desc: apiserver is not allowed to import grafana core
|
||||||
apps-investigation:
|
|
||||||
list-mode: lax
|
|
||||||
files:
|
|
||||||
- ./apps/investigations/*
|
|
||||||
- ./apps/investigations/**/*
|
|
||||||
deny:
|
|
||||||
- pkg: github.com/grafana/grafana/pkg
|
|
||||||
desc: apps/investigations is not allowed to import grafana core
|
|
||||||
apps-playlist:
|
apps-playlist:
|
||||||
list-mode: lax
|
list-mode: lax
|
||||||
files:
|
files:
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/dist/builder-manager/index.js b/dist/builder-manager/index.js
|
diff --git a/dist/builder-manager/index.js b/dist/builder-manager/index.js
|
||||||
index 3d7f9b213dae1801bda62b31db31b9113e382ccd..212501c63d20146c29db63fb0f6300c6779eecb5 100644
|
index ac8ac6a5f6a3b7852c4064e93dc9acd3201289e6..34a0a5a5c38dd7fe525c9ebd382a10a451d4d4f3 100644
|
||||||
--- a/dist/builder-manager/index.js
|
--- a/dist/builder-manager/index.js
|
||||||
+++ b/dist/builder-manager/index.js
|
+++ b/dist/builder-manager/index.js
|
||||||
@@ -1970,7 +1970,7 @@ var pa = /^\/($|\?)/, G, C, xt = /* @__PURE__ */ o(async (e) => {
|
@@ -1974,7 +1974,7 @@ var pa = /^\/($|\?)/, G, C, xt = /* @__PURE__ */ o(async (e) => {
|
||||||
bundle: !0,
|
bundle: !0,
|
||||||
minify: !0,
|
minify: !0,
|
||||||
sourcemap: !1,
|
sourcemap: !1,
|
||||||
@@ -91,6 +91,7 @@ COPY pkg/storage/unified/resource pkg/storage/unified/resource
|
|||||||
COPY pkg/storage/unified/resourcepb pkg/storage/unified/resourcepb
|
COPY pkg/storage/unified/resourcepb pkg/storage/unified/resourcepb
|
||||||
COPY pkg/storage/unified/apistore pkg/storage/unified/apistore
|
COPY pkg/storage/unified/apistore pkg/storage/unified/apistore
|
||||||
COPY pkg/semconv pkg/semconv
|
COPY pkg/semconv pkg/semconv
|
||||||
|
COPY pkg/plugins pkg/plugins
|
||||||
COPY pkg/aggregator pkg/aggregator
|
COPY pkg/aggregator pkg/aggregator
|
||||||
COPY apps/playlist apps/playlist
|
COPY apps/playlist apps/playlist
|
||||||
COPY apps/quotas apps/quotas
|
COPY apps/quotas apps/quotas
|
||||||
@@ -103,7 +104,6 @@ COPY apps/collections apps/collections
|
|||||||
COPY apps/provisioning apps/provisioning
|
COPY apps/provisioning apps/provisioning
|
||||||
COPY apps/secret apps/secret
|
COPY apps/secret apps/secret
|
||||||
COPY apps/scope apps/scope
|
COPY apps/scope apps/scope
|
||||||
COPY apps/investigations apps/investigations
|
|
||||||
COPY apps/logsdrilldown apps/logsdrilldown
|
COPY apps/logsdrilldown apps/logsdrilldown
|
||||||
COPY apps/advisor apps/advisor
|
COPY apps/advisor apps/advisor
|
||||||
COPY apps/dashboard apps/dashboard
|
COPY apps/dashboard apps/dashboard
|
||||||
|
|||||||
5
Makefile
5
Makefile
@@ -227,6 +227,10 @@ fix-cue:
|
|||||||
gen-jsonnet:
|
gen-jsonnet:
|
||||||
go generate ./devenv/jsonnet
|
go generate ./devenv/jsonnet
|
||||||
|
|
||||||
|
.PHONY: gen-themes
|
||||||
|
gen-themes:
|
||||||
|
go generate ./pkg/services/preference
|
||||||
|
|
||||||
.PHONY: update-workspace
|
.PHONY: update-workspace
|
||||||
update-workspace: gen-go
|
update-workspace: gen-go
|
||||||
@echo "updating workspace"
|
@echo "updating workspace"
|
||||||
@@ -244,6 +248,7 @@ build-go-fast: ## Build all Go binaries without updating workspace.
|
|||||||
.PHONY: build-backend
|
.PHONY: build-backend
|
||||||
build-backend: ## Build Grafana backend.
|
build-backend: ## Build Grafana backend.
|
||||||
@echo "build backend"
|
@echo "build backend"
|
||||||
|
$(MAKE) gen-themes
|
||||||
$(GO) run build.go $(GO_BUILD_FLAGS) build-backend
|
$(GO) run build.go $(GO_BUILD_FLAGS) build-backend
|
||||||
|
|
||||||
.PHONY: build-air
|
.PHONY: build-air
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ require (
|
|||||||
github.com/Azure/go-ntlmssp v0.0.0-20220621081337-cb9428e4ac1e // indirect
|
github.com/Azure/go-ntlmssp v0.0.0-20220621081337-cb9428e4ac1e // indirect
|
||||||
github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 // indirect
|
github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 // indirect
|
||||||
github.com/BurntSushi/toml v1.5.0 // indirect
|
github.com/BurntSushi/toml v1.5.0 // indirect
|
||||||
|
github.com/Machiel/slugify v1.0.1 // indirect
|
||||||
github.com/Masterminds/goutils v1.1.1 // indirect
|
github.com/Masterminds/goutils v1.1.1 // indirect
|
||||||
github.com/Masterminds/semver v1.5.0 // indirect
|
github.com/Masterminds/semver v1.5.0 // indirect
|
||||||
github.com/Masterminds/sprig/v3 v3.3.0 // indirect
|
github.com/Masterminds/sprig/v3 v3.3.0 // indirect
|
||||||
@@ -67,14 +68,14 @@ require (
|
|||||||
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // 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.6 // indirect
|
||||||
github.com/aws/aws-sdk-go v1.55.7 // 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 v1.40.0 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.18.14 // indirect
|
github.com/aws/aws-sdk-go-v2/credentials v1.18.21 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.8 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.14 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.8 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.14 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.8 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.38.5 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sts v1.39.1 // indirect
|
||||||
github.com/aws/smithy-go v1.23.1 // indirect
|
github.com/aws/smithy-go v1.23.2 // indirect
|
||||||
github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df // indirect
|
github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df // indirect
|
||||||
github.com/benbjohnson/clock v1.3.5 // indirect
|
github.com/benbjohnson/clock v1.3.5 // indirect
|
||||||
github.com/beorn7/perks v1.0.1 // indirect
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
@@ -161,14 +162,14 @@ require (
|
|||||||
github.com/grafana/authlib v0.0.0-20250930082137-a40e2c2b094f // indirect
|
github.com/grafana/authlib v0.0.0-20250930082137-a40e2c2b094f // indirect
|
||||||
github.com/grafana/dataplane/sdata v0.0.9 // indirect
|
github.com/grafana/dataplane/sdata v0.0.9 // indirect
|
||||||
github.com/grafana/dskit v0.0.0-20250908063411-6b6da59b5cc4 // indirect
|
github.com/grafana/dskit v0.0.0-20250908063411-6b6da59b5cc4 // indirect
|
||||||
github.com/grafana/grafana-aws-sdk v1.3.0 // indirect
|
github.com/grafana/grafana-aws-sdk v1.4.2 // indirect
|
||||||
github.com/grafana/grafana-azure-sdk-go/v2 v2.3.1 // indirect
|
github.com/grafana/grafana-azure-sdk-go/v2 v2.3.1 // indirect
|
||||||
github.com/grafana/grafana/apps/provisioning v0.0.0 // indirect
|
github.com/grafana/grafana/apps/provisioning v0.0.0 // indirect
|
||||||
github.com/grafana/grafana/pkg/apiserver v0.0.0 // indirect
|
github.com/grafana/grafana/pkg/apiserver v0.0.0 // indirect
|
||||||
github.com/grafana/grafana/pkg/semconv v0.0.0-20250804150913-990f1c69ecc2 // indirect
|
github.com/grafana/grafana/pkg/semconv v0.0.0-20250804150913-990f1c69ecc2 // indirect
|
||||||
github.com/grafana/otel-profiling-go v0.5.1 // indirect
|
github.com/grafana/otel-profiling-go v0.5.1 // indirect
|
||||||
github.com/grafana/pyroscope-go/godeltaprof v0.1.9 // indirect
|
github.com/grafana/pyroscope-go/godeltaprof v0.1.9 // indirect
|
||||||
github.com/grafana/sqlds/v4 v4.2.7 // indirect
|
github.com/grafana/sqlds/v5 v5.0.3 // indirect
|
||||||
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0 // 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.3 // indirect
|
||||||
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20191002090509-6af20e3a5340 // indirect
|
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20191002090509-6af20e3a5340 // indirect
|
||||||
|
|||||||
@@ -115,6 +115,8 @@ github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapp
|
|||||||
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.53.0/go.mod h1:cSgYe11MCNYunTnRXrKiR/tHc0eoKjICUuWpNZoVCOo=
|
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.53.0/go.mod h1:cSgYe11MCNYunTnRXrKiR/tHc0eoKjICUuWpNZoVCOo=
|
||||||
github.com/IBM/pgxpoolprometheus v1.1.2 h1:sHJwxoL5Lw4R79Zt+H4Uj1zZ4iqXJLdk7XDE7TPs97U=
|
github.com/IBM/pgxpoolprometheus v1.1.2 h1:sHJwxoL5Lw4R79Zt+H4Uj1zZ4iqXJLdk7XDE7TPs97U=
|
||||||
github.com/IBM/pgxpoolprometheus v1.1.2/go.mod h1:+vWzISN6S9ssgurhUNmm6AlXL9XLah3TdWJktquKTR8=
|
github.com/IBM/pgxpoolprometheus v1.1.2/go.mod h1:+vWzISN6S9ssgurhUNmm6AlXL9XLah3TdWJktquKTR8=
|
||||||
|
github.com/Machiel/slugify v1.0.1 h1:EfWSlRWstMadsgzmiV7d0yVd2IFlagWH68Q+DcYCm4E=
|
||||||
|
github.com/Machiel/slugify v1.0.1/go.mod h1:fTFGn5uWEynW4CUMG7sWkYXOf1UgDxyTM3DbR6Qfg3k=
|
||||||
github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
|
github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
|
||||||
github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
|
github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
|
||||||
github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
|
github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
|
||||||
@@ -171,44 +173,44 @@ github.com/aws/aws-sdk-go v1.17.7/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN
|
|||||||
github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
|
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=
|
github.com/aws/aws-sdk-go v1.55.7 h1:UJrkFq7es5CShfBwlWAC8DA077vp8PyVbQd3lqLiztE=
|
||||||
github.com/aws/aws-sdk-go v1.55.7/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
|
github.com/aws/aws-sdk-go v1.55.7/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
|
||||||
github.com/aws/aws-sdk-go-v2 v1.39.1 h1:fWZhGAwVRK/fAN2tmt7ilH4PPAE11rDj7HytrmbZ2FE=
|
github.com/aws/aws-sdk-go-v2 v1.40.0 h1:/WMUA0kjhZExjOQN2z3oLALDREea1A7TobfuiBrKlwc=
|
||||||
github.com/aws/aws-sdk-go-v2 v1.39.1/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY=
|
github.com/aws/aws-sdk-go-v2 v1.40.0/go.mod h1:c9pm7VwuW0UPxAEYGyTmyurVcNrbF6Rt/wixFqDhcjE=
|
||||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11 h1:12SpdwU8Djs+YGklkinSSlcrPyj3H4VifVsKf78KbwA=
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11 h1:12SpdwU8Djs+YGklkinSSlcrPyj3H4VifVsKf78KbwA=
|
||||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11/go.mod h1:dd+Lkp6YmMryke+qxW/VnKyhMBDTYP41Q2Bb+6gNZgY=
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11/go.mod h1:dd+Lkp6YmMryke+qxW/VnKyhMBDTYP41Q2Bb+6gNZgY=
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.31.10 h1:7LllDZAegXU3yk41mwM6KcPu0wmjKGQB1bg99bNdQm4=
|
github.com/aws/aws-sdk-go-v2/config v1.31.17 h1:QFl8lL6RgakNK86vusim14P2k8BFSxjvUkcWLDjgz9Y=
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.31.10/go.mod h1:Ge6gzXPjqu4v0oHvgAwvGzYcK921GU0hQM25WF/Kl+8=
|
github.com/aws/aws-sdk-go-v2/config v1.31.17/go.mod h1:V8P7ILjp/Uef/aX8TjGk6OHZN6IKPM5YW6S78QnRD5c=
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.18.14 h1:TxkI7QI+sFkTItN/6cJuMZEIVMFXeu2dI1ZffkXngKI=
|
github.com/aws/aws-sdk-go-v2/credentials v1.18.21 h1:56HGpsgnmD+2/KpG0ikvvR8+3v3COCwaF4r+oWwOeNA=
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.18.14/go.mod h1:12x4Uw/vijC11XkctTjy92TNCQ+UnNJkT7fzX0Yd93E=
|
github.com/aws/aws-sdk-go-v2/credentials v1.18.21/go.mod h1:3YELwedmQbw7cXNaII2Wywd+YY58AmLPwX4LzARgmmA=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.8 h1:gLD09eaJUdiszm7vd1btiQUYE0Hj+0I2b8AS+75z9AY=
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.13 h1:T1brd5dR3/fzNFAQch/iBKeX07/ffu/cLu+q+RuzEWk=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.8/go.mod h1:4RW3oMPt1POR74qVOC4SbubxAwdP4pCT0nSw3jycOU4=
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.13/go.mod h1:Peg/GBAQ6JDt+RoBf4meB1wylmAipb7Kg2ZFakZTlwk=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.84 h1:cTXRdLkpBanlDwISl+5chq5ui1d1YWg4PWMR9c3kXyw=
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.84 h1:cTXRdLkpBanlDwISl+5chq5ui1d1YWg4PWMR9c3kXyw=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.84/go.mod h1:kwSy5X7tfIHN39uucmjQVs2LvDdXEjQucgQQEqCggEo=
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.84/go.mod h1:kwSy5X7tfIHN39uucmjQVs2LvDdXEjQucgQQEqCggEo=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.8 h1:6bgAZgRyT4RoFWhxS+aoGMFyE0cD1bSzFnEEi4bFPGI=
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.14 h1:PZHqQACxYb8mYgms4RZbhZG0a7dPW06xOjmaH0EJC/I=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.8/go.mod h1:KcGkXFVU8U28qS4KvLEcPxytPZPBcRawaH2Pf/0jptE=
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.14/go.mod h1:VymhrMJUWs69D8u0/lZ7jSB6WgaG/NqHi3gX0aYf6U0=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.8 h1:HhJYoES3zOz34yWEpGENqJvRVPqpmJyR3+AFg9ybhdY=
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.14 h1:bOS19y6zlJwagBfHxs0ESzr1XCOU2KXJCWcq3E2vfjY=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.8/go.mod h1:JnA+hPWeYAVbDssp83tv+ysAG8lTfLVXvSsyKg/7xNA=
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.14/go.mod h1:1ipeGBMAxZ0xcTm6y6paC2C/J6f6OO7LBODV9afuAyM=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo=
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 h1:WKuaxf++XKWlHWu9ECbMlha8WOEGm0OUEZqm4K/Gcfk=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo=
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4/go.mod h1:ZWy7j6v1vWGmPReu0iSGvRiise4YI5SkR3OHKTZ6Wuc=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.36 h1:GMYy2EOWfzdP3wfVAGXBNKY5vK4K8vMET4sYOYltmqs=
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.36 h1:GMYy2EOWfzdP3wfVAGXBNKY5vK4K8vMET4sYOYltmqs=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.36/go.mod h1:gDhdAV6wL3PmPqBhiPbnlS447GoWs8HTTOYef9/9Inw=
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.36/go.mod h1:gDhdAV6wL3PmPqBhiPbnlS447GoWs8HTTOYef9/9Inw=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 h1:oegbebPEMA/1Jny7kvwejowCaHz1FWZAQ94WXFNCyTM=
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 h1:x2Ibm/Af8Fi+BH+Hsn9TXGdT+hKbDd5XOTZxTMxDk7o=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1/go.mod h1:kemo5Myr9ac0U9JfSjMo9yHLtw+pECEHsFtJ9tqCEI8=
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3/go.mod h1:IW1jwyrQgMdhisceG8fQLmQIydcT/jWY21rFhzgaKwo=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.4 h1:nAP2GYbfh8dd2zGZqFRSMlq+/F6cMPBUuCsGAMkN074=
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.4 h1:nAP2GYbfh8dd2zGZqFRSMlq+/F6cMPBUuCsGAMkN074=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.4/go.mod h1:LT10DsiGjLWh4GbjInf9LQejkYEhBgBCjLG5+lvk4EE=
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.4/go.mod h1:LT10DsiGjLWh4GbjInf9LQejkYEhBgBCjLG5+lvk4EE=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.8 h1:M6JI2aGFEzYxsF6CXIuRBnkge9Wf9a2xU39rNeXgu10=
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13 h1:kDqdFvMY4AtKoACfzIGD8A0+hbT41KTKF//gq7jITfM=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.8/go.mod h1:Fw+MyTwlwjFsSTE31mH211Np+CUslml8mzc0AFEG09s=
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13/go.mod h1:lmKuogqSU3HzQCwZ9ZtcqOc5XGMqtDK7OIc2+DxiUEg=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.17 h1:qcLWgdhq45sDM9na4cvXax9dyLitn8EYBRl8Ak4XtG4=
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.17 h1:qcLWgdhq45sDM9na4cvXax9dyLitn8EYBRl8Ak4XtG4=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.17/go.mod h1:M+jkjBFZ2J6DJrjMv2+vkBbuht6kxJYtJiwoVgX4p4U=
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.17/go.mod h1:M+jkjBFZ2J6DJrjMv2+vkBbuht6kxJYtJiwoVgX4p4U=
|
||||||
github.com/aws/aws-sdk-go-v2/service/s3 v1.84.0 h1:0reDqfEN+tB+sozj2r92Bep8MEwBZgtAXTND1Kk9OXg=
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.84.0 h1:0reDqfEN+tB+sozj2r92Bep8MEwBZgtAXTND1Kk9OXg=
|
||||||
github.com/aws/aws-sdk-go-v2/service/s3 v1.84.0/go.mod h1:kUklwasNoCn5YpyAqC/97r6dzTA1SRKJfKq16SXeoDU=
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.84.0/go.mod h1:kUklwasNoCn5YpyAqC/97r6dzTA1SRKJfKq16SXeoDU=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.29.4 h1:FTdEN9dtWPB0EOURNtDPmwGp6GGvMqRJCAihkSl/1No=
|
github.com/aws/aws-sdk-go-v2/service/sso v1.30.1 h1:0JPwLz1J+5lEOfy/g0SURC9cxhbQ1lIMHMa+AHZSzz0=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.29.4/go.mod h1:mYubxV9Ff42fZH4kexj43gFPhgc/LyC7KqvUKt1watc=
|
github.com/aws/aws-sdk-go-v2/service/sso v1.30.1/go.mod h1:fKvyjJcz63iL/ftA6RaM8sRCtN4r4zl4tjL3qw5ec7k=
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.0 h1:I7ghctfGXrscr7r1Ga/mDqSJKm7Fkpl5Mwq79Z+rZqU=
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.5 h1:OWs0/j2UYR5LOGi88sD5/lhN6TDLG6SfA7CqsQO9zF0=
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.0/go.mod h1:Zo9id81XP6jbayIFWNuDpA6lMBWhsVy+3ou2jLa4JnA=
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.5/go.mod h1:klO+ejMvYsB4QATfEOIXk8WAEwN4N0aBfJpvC+5SZBo=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.38.5 h1:+LVB0xBqEgjQoqr9bGZbRzvg212B0f17JdflleJRNR4=
|
github.com/aws/aws-sdk-go-v2/service/sts v1.39.1 h1:mLlUgHn02ue8whiR4BmxxGJLR2gwU6s6ZzJ5wDamBUs=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.38.5/go.mod h1:xoaxeqnnUaZjPjaICgIy5B+MHCSb/ZSOn4MvkFNOUA0=
|
github.com/aws/aws-sdk-go-v2/service/sts v1.39.1/go.mod h1:E19xDjpzPZC7LS2knI9E6BaRFDK43Eul7vd6rSq2HWk=
|
||||||
github.com/aws/smithy-go v1.23.1 h1:sLvcH6dfAFwGkHLZ7dGiYF7aK6mg4CgKA/iDKjLDt9M=
|
github.com/aws/smithy-go v1.23.2 h1:Crv0eatJUQhaManss33hS5r40CG3ZFH+21XSkqMrIUM=
|
||||||
github.com/aws/smithy-go v1.23.1/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0=
|
github.com/aws/smithy-go v1.23.2/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0=
|
||||||
github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk=
|
github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk=
|
||||||
github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg=
|
github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg=
|
||||||
github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df h1:GSoSVRLoBaFpOOds6QyY1L8AX7uoY+Ln3BHc22W40X0=
|
github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df h1:GSoSVRLoBaFpOOds6QyY1L8AX7uoY+Ln3BHc22W40X0=
|
||||||
@@ -635,8 +637,8 @@ github.com/grafana/grafana-app-sdk v0.48.7 h1:9mF7nqkqP0QUYYDlznoOt+GIyjzj45wGfU
|
|||||||
github.com/grafana/grafana-app-sdk v0.48.7/go.mod h1:DWsaaH39ZMHwSOSoUBaeW8paMrRaYsjRYlLwCJYd78k=
|
github.com/grafana/grafana-app-sdk v0.48.7/go.mod h1:DWsaaH39ZMHwSOSoUBaeW8paMrRaYsjRYlLwCJYd78k=
|
||||||
github.com/grafana/grafana-app-sdk/logging v0.48.7 h1:Oa5qg473gka5+W/WQk61Xbw4YdAv+wV2Z4bJtzeCaQw=
|
github.com/grafana/grafana-app-sdk/logging v0.48.7 h1:Oa5qg473gka5+W/WQk61Xbw4YdAv+wV2Z4bJtzeCaQw=
|
||||||
github.com/grafana/grafana-app-sdk/logging v0.48.7/go.mod h1:5u3KalezoBAAo2Y3ytDYDAIIPvEqFLLDSxeiK99QxDU=
|
github.com/grafana/grafana-app-sdk/logging v0.48.7/go.mod h1:5u3KalezoBAAo2Y3ytDYDAIIPvEqFLLDSxeiK99QxDU=
|
||||||
github.com/grafana/grafana-aws-sdk v1.3.0 h1:/bfJzP93rCel1GbWoRSq0oUo424MZXt8jAp2BK9w8tM=
|
github.com/grafana/grafana-aws-sdk v1.4.2 h1:GrUEoLbs46r8rG/GZL4L2b63Bo+rkIYKdtCT7kT5KkM=
|
||||||
github.com/grafana/grafana-aws-sdk v1.3.0/go.mod h1:VGycF0JkCGKND2O5je1ucOqPJ0ZNhZYzV3c2bNBAaGk=
|
github.com/grafana/grafana-aws-sdk v1.4.2/go.mod h1:1qnZdYs6gQzxxF0dDodaE7Rn9fiMzuhwvtaAZ7ySnhY=
|
||||||
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 h1:FFcEA01tW+SmuJIuDbHOdgUBL+d7DPrZ2N4zwzPhfGk=
|
||||||
github.com/grafana/grafana-azure-sdk-go/v2 v2.3.1/go.mod h1:Oi4anANlCuTCc66jCyqIzfVbgLXFll8Wja+Y4vfANlc=
|
github.com/grafana/grafana-azure-sdk-go/v2 v2.3.1/go.mod h1:Oi4anANlCuTCc66jCyqIzfVbgLXFll8Wja+Y4vfANlc=
|
||||||
github.com/grafana/grafana-plugin-sdk-go v0.284.0 h1:1bK7eWsnPBLUWDcWJWe218Ik5ad0a5JpEL4mH9ry7Ws=
|
github.com/grafana/grafana-plugin-sdk-go v0.284.0 h1:1bK7eWsnPBLUWDcWJWe218Ik5ad0a5JpEL4mH9ry7Ws=
|
||||||
@@ -653,8 +655,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/grafana/pyroscope-go/godeltaprof v0.1.9/go.mod h1:2+l7K7twW49Ct4wFluZD3tZ6e0SjanjcUUBPVD/UuGU=
|
||||||
github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc h1:GN2Lv3MGO7AS6PrRoT6yV5+wkrOpcszoIsO4+4ds248=
|
github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc h1:GN2Lv3MGO7AS6PrRoT6yV5+wkrOpcszoIsO4+4ds248=
|
||||||
github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc/go.mod h1:+JKpmjMGhpgPL+rXZ5nsZieVzvarn86asRlBg4uNGnk=
|
github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc/go.mod h1:+JKpmjMGhpgPL+rXZ5nsZieVzvarn86asRlBg4uNGnk=
|
||||||
github.com/grafana/sqlds/v4 v4.2.7 h1:sFQhsS7DBakNMdxa++yOfJ9BVvkZwFJ0B95o57K0/XA=
|
github.com/grafana/sqlds/v5 v5.0.3 h1:+yUMUxfa0WANQsmS9xtTFSRX1Q55Iv1B9EjlrW4VlBU=
|
||||||
github.com/grafana/sqlds/v4 v4.2.7/go.mod h1:BQRjUG8rOqrBI4NAaeoWrIMuoNgfi8bdhCJ+5cgEfLU=
|
github.com/grafana/sqlds/v5 v5.0.3/go.mod h1:GKeTTiC+GeR1X0z3f0Iee+hZnNgN62uQpj5XVMx5Uew=
|
||||||
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI=
|
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI=
|
||||||
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8=
|
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 h1:QGLs/O40yoNK9vmy4rhUGBVyMf1lISBGtXRpsu/Qu/o=
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ go 1.25.5
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/go-kit/log v0.2.1
|
github.com/go-kit/log v0.2.1
|
||||||
github.com/grafana/alerting v0.0.0-20251231150637-b7821017d69f
|
github.com/grafana/alerting v0.0.0-20260112172717-98a49ed9557f
|
||||||
github.com/grafana/dskit v0.0.0-20250908063411-6b6da59b5cc4
|
github.com/grafana/dskit v0.0.0-20250908063411-6b6da59b5cc4
|
||||||
github.com/grafana/grafana-app-sdk v0.48.7
|
github.com/grafana/grafana-app-sdk v0.48.7
|
||||||
github.com/grafana/grafana-app-sdk/logging v0.48.7
|
github.com/grafana/grafana-app-sdk/logging v0.48.7
|
||||||
|
|||||||
@@ -243,8 +243,8 @@ 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/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
|
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
|
||||||
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
|
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
|
||||||
github.com/grafana/alerting v0.0.0-20251231150637-b7821017d69f h1:Br4SaUL3dnVopKKNhDavCLgehw60jdtl/sIxdfzmVts=
|
github.com/grafana/alerting v0.0.0-20260112172717-98a49ed9557f h1:3bXOyht68qkfvD6Y8z8XoenFbytSSOIkr/s+AqRzj0o=
|
||||||
github.com/grafana/alerting v0.0.0-20251231150637-b7821017d69f/go.mod h1:l7v67cgP7x72ajB9UPZlumdrHqNztpKoqQ52cU8T3LU=
|
github.com/grafana/alerting v0.0.0-20260112172717-98a49ed9557f/go.mod h1:Ji0SfJChcwjgq8ljy6Y5CcYfHfAYKXjKYeysOoDS/6s=
|
||||||
github.com/grafana/dskit v0.0.0-20250908063411-6b6da59b5cc4 h1:jSojuc7njleS3UOz223WDlXOinmuLAIPI0z2vtq8EgI=
|
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/dskit v0.0.0-20250908063411-6b6da59b5cc4/go.mod h1:VahT+GtfQIM+o8ht2StR6J9g+Ef+C2Vokh5uuSmOD/4=
|
||||||
github.com/grafana/grafana-app-sdk v0.48.7 h1:9mF7nqkqP0QUYYDlznoOt+GIyjzj45wGfUHB32u2ZMo=
|
github.com/grafana/grafana-app-sdk v0.48.7 h1:9mF7nqkqP0QUYYDlznoOt+GIyjzj45wGfUHB32u2ZMo=
|
||||||
|
|||||||
@@ -254,8 +254,18 @@ FieldConfig: {
|
|||||||
// custom is specified by the FieldConfig field
|
// custom is specified by the FieldConfig field
|
||||||
// in panel plugin schemas.
|
// in panel plugin schemas.
|
||||||
custom?: {...}
|
custom?: {...}
|
||||||
|
|
||||||
|
// Calculate min max per field
|
||||||
|
fieldMinMax?: bool
|
||||||
|
|
||||||
|
// How null values should be handled when calculating field stats
|
||||||
|
// "null" - Include null values, "connected" - Ignore nulls, "null as zero" - Treat nulls as zero
|
||||||
|
nullValueMode?: NullValueMode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// How null values should be handled
|
||||||
|
NullValueMode: "null" | "connected" | "null as zero"
|
||||||
|
|
||||||
DynamicConfigValue: {
|
DynamicConfigValue: {
|
||||||
id: string | *""
|
id: string | *""
|
||||||
value?: _
|
value?: _
|
||||||
@@ -932,6 +942,7 @@ CustomVariableSpec: {
|
|||||||
skipUrlSync: bool | *false
|
skipUrlSync: bool | *false
|
||||||
description?: string
|
description?: string
|
||||||
allowCustomValue: bool | *true
|
allowCustomValue: bool | *true
|
||||||
|
valuesFormat?: "csv" | "json"
|
||||||
}
|
}
|
||||||
|
|
||||||
// Custom variable kind
|
// Custom variable kind
|
||||||
|
|||||||
@@ -250,8 +250,18 @@ FieldConfig: {
|
|||||||
// custom is specified by the FieldConfig field
|
// custom is specified by the FieldConfig field
|
||||||
// in panel plugin schemas.
|
// in panel plugin schemas.
|
||||||
custom?: {...}
|
custom?: {...}
|
||||||
|
|
||||||
|
// Calculate min max per field
|
||||||
|
fieldMinMax?: bool
|
||||||
|
|
||||||
|
// How null values should be handled when calculating field stats
|
||||||
|
// "null" - Include null values, "connected" - Ignore nulls, "null as zero" - Treat nulls as zero
|
||||||
|
nullValueMode?: NullValueMode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// How null values should be handled
|
||||||
|
NullValueMode: "null" | "connected" | "null as zero"
|
||||||
|
|
||||||
DynamicConfigValue: {
|
DynamicConfigValue: {
|
||||||
id: string | *""
|
id: string | *""
|
||||||
value?: _
|
value?: _
|
||||||
@@ -935,6 +945,7 @@ CustomVariableSpec: {
|
|||||||
skipUrlSync: bool | *false
|
skipUrlSync: bool | *false
|
||||||
description?: string
|
description?: string
|
||||||
allowCustomValue: bool | *true
|
allowCustomValue: bool | *true
|
||||||
|
valuesFormat?: "csv" | "json"
|
||||||
}
|
}
|
||||||
|
|
||||||
// Custom variable kind
|
// Custom variable kind
|
||||||
|
|||||||
@@ -222,8 +222,10 @@ lineage: schemas: [{
|
|||||||
// Optional field, if you want to extract part of a series name or metric node segment.
|
// Optional field, if you want to extract part of a series name or metric node segment.
|
||||||
// Named capture groups can be used to separate the display text and value.
|
// Named capture groups can be used to separate the display text and value.
|
||||||
regex?: string
|
regex?: string
|
||||||
// Determine whether regex applies to variable value or display text
|
// Optional, indicates whether a custom type variable uses CSV or JSON to define its values
|
||||||
regexApplyTo?: #VariableRegexApplyTo
|
valuesFormat?: "csv" | "json" | *"csv"
|
||||||
|
// Determine whether regex applies to variable value or display text
|
||||||
|
regexApplyTo?: #VariableRegexApplyTo
|
||||||
// Additional static options for query variable
|
// Additional static options for query variable
|
||||||
staticOptions?: [...#VariableOption]
|
staticOptions?: [...#VariableOption]
|
||||||
// Ordering of static options in relation to options returned from data source for query variable
|
// Ordering of static options in relation to options returned from data source for query variable
|
||||||
|
|||||||
@@ -222,8 +222,10 @@ lineage: schemas: [{
|
|||||||
// Optional field, if you want to extract part of a series name or metric node segment.
|
// Optional field, if you want to extract part of a series name or metric node segment.
|
||||||
// Named capture groups can be used to separate the display text and value.
|
// Named capture groups can be used to separate the display text and value.
|
||||||
regex?: string
|
regex?: string
|
||||||
// Determine whether regex applies to variable value or display text
|
// Optional, indicates whether a custom type variable uses CSV or JSON to define its values
|
||||||
regexApplyTo?: #VariableRegexApplyTo
|
valuesFormat?: "csv" | "json" | *"csv"
|
||||||
|
// Determine whether regex applies to variable value or display text
|
||||||
|
regexApplyTo?: #VariableRegexApplyTo
|
||||||
// Additional static options for query variable
|
// Additional static options for query variable
|
||||||
staticOptions?: [...#VariableOption]
|
staticOptions?: [...#VariableOption]
|
||||||
// Ordering of static options in relation to options returned from data source for query variable
|
// Ordering of static options in relation to options returned from data source for query variable
|
||||||
|
|||||||
@@ -258,8 +258,18 @@ FieldConfig: {
|
|||||||
// custom is specified by the FieldConfig field
|
// custom is specified by the FieldConfig field
|
||||||
// in panel plugin schemas.
|
// in panel plugin schemas.
|
||||||
custom?: {...}
|
custom?: {...}
|
||||||
|
|
||||||
|
// Calculate min max per field
|
||||||
|
fieldMinMax?: bool
|
||||||
|
|
||||||
|
// How null values should be handled when calculating field stats
|
||||||
|
// "null" - Include null values, "connected" - Ignore nulls, "null as zero" - Treat nulls as zero
|
||||||
|
nullValueMode?: NullValueMode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// How null values should be handled
|
||||||
|
NullValueMode: "null" | "connected" | "null as zero"
|
||||||
|
|
||||||
DynamicConfigValue: {
|
DynamicConfigValue: {
|
||||||
id: string | *""
|
id: string | *""
|
||||||
value?: _
|
value?: _
|
||||||
@@ -936,6 +946,7 @@ CustomVariableSpec: {
|
|||||||
skipUrlSync: bool | *false
|
skipUrlSync: bool | *false
|
||||||
description?: string
|
description?: string
|
||||||
allowCustomValue: bool | *true
|
allowCustomValue: bool | *true
|
||||||
|
valuesFormat?: "csv" | "json"
|
||||||
}
|
}
|
||||||
|
|
||||||
// Custom variable kind
|
// Custom variable kind
|
||||||
|
|||||||
@@ -419,6 +419,11 @@ type DashboardFieldConfig struct {
|
|||||||
// custom is specified by the FieldConfig field
|
// custom is specified by the FieldConfig field
|
||||||
// in panel plugin schemas.
|
// in panel plugin schemas.
|
||||||
Custom map[string]interface{} `json:"custom,omitempty"`
|
Custom map[string]interface{} `json:"custom,omitempty"`
|
||||||
|
// Calculate min max per field
|
||||||
|
FieldMinMax *bool `json:"fieldMinMax,omitempty"`
|
||||||
|
// How null values should be handled when calculating field stats
|
||||||
|
// "null" - Include null values, "connected" - Ignore nulls, "null as zero" - Treat nulls as zero
|
||||||
|
NullValueMode *DashboardNullValueMode `json:"nullValueMode,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewDashboardFieldConfig creates a new DashboardFieldConfig object.
|
// NewDashboardFieldConfig creates a new DashboardFieldConfig object.
|
||||||
@@ -745,6 +750,16 @@ func NewDashboardActionVariable() *DashboardActionVariable {
|
|||||||
// +k8s:openapi-gen=true
|
// +k8s:openapi-gen=true
|
||||||
const DashboardActionVariableType = "string"
|
const DashboardActionVariableType = "string"
|
||||||
|
|
||||||
|
// How null values should be handled
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type DashboardNullValueMode string
|
||||||
|
|
||||||
|
const (
|
||||||
|
DashboardNullValueModeNull DashboardNullValueMode = "null"
|
||||||
|
DashboardNullValueModeConnected DashboardNullValueMode = "connected"
|
||||||
|
DashboardNullValueModeNullAsZero DashboardNullValueMode = "null as zero"
|
||||||
|
)
|
||||||
|
|
||||||
// +k8s:openapi-gen=true
|
// +k8s:openapi-gen=true
|
||||||
type DashboardDynamicConfigValue struct {
|
type DashboardDynamicConfigValue struct {
|
||||||
Id string `json:"id"`
|
Id string `json:"id"`
|
||||||
@@ -1703,18 +1718,19 @@ func NewDashboardCustomVariableKind() *DashboardCustomVariableKind {
|
|||||||
// Custom variable specification
|
// Custom variable specification
|
||||||
// +k8s:openapi-gen=true
|
// +k8s:openapi-gen=true
|
||||||
type DashboardCustomVariableSpec struct {
|
type DashboardCustomVariableSpec struct {
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Query string `json:"query"`
|
Query string `json:"query"`
|
||||||
Current DashboardVariableOption `json:"current"`
|
Current DashboardVariableOption `json:"current"`
|
||||||
Options []DashboardVariableOption `json:"options"`
|
Options []DashboardVariableOption `json:"options"`
|
||||||
Multi bool `json:"multi"`
|
Multi bool `json:"multi"`
|
||||||
IncludeAll bool `json:"includeAll"`
|
IncludeAll bool `json:"includeAll"`
|
||||||
AllValue *string `json:"allValue,omitempty"`
|
AllValue *string `json:"allValue,omitempty"`
|
||||||
Label *string `json:"label,omitempty"`
|
Label *string `json:"label,omitempty"`
|
||||||
Hide DashboardVariableHide `json:"hide"`
|
Hide DashboardVariableHide `json:"hide"`
|
||||||
SkipUrlSync bool `json:"skipUrlSync"`
|
SkipUrlSync bool `json:"skipUrlSync"`
|
||||||
Description *string `json:"description,omitempty"`
|
Description *string `json:"description,omitempty"`
|
||||||
AllowCustomValue bool `json:"allowCustomValue"`
|
AllowCustomValue bool `json:"allowCustomValue"`
|
||||||
|
ValuesFormat *DashboardCustomVariableSpecValuesFormat `json:"valuesFormat,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewDashboardCustomVariableSpec creates a new DashboardCustomVariableSpec object.
|
// NewDashboardCustomVariableSpec creates a new DashboardCustomVariableSpec object.
|
||||||
@@ -2098,6 +2114,14 @@ const (
|
|||||||
DashboardQueryVariableSpecStaticOptionsOrderSorted DashboardQueryVariableSpecStaticOptionsOrder = "sorted"
|
DashboardQueryVariableSpecStaticOptionsOrderSorted DashboardQueryVariableSpecStaticOptionsOrder = "sorted"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type DashboardCustomVariableSpecValuesFormat string
|
||||||
|
|
||||||
|
const (
|
||||||
|
DashboardCustomVariableSpecValuesFormatCsv DashboardCustomVariableSpecValuesFormat = "csv"
|
||||||
|
DashboardCustomVariableSpecValuesFormatJson DashboardCustomVariableSpecValuesFormat = "json"
|
||||||
|
)
|
||||||
|
|
||||||
// +k8s:openapi-gen=true
|
// +k8s:openapi-gen=true
|
||||||
type DashboardPanelKindOrLibraryPanelKind struct {
|
type DashboardPanelKindOrLibraryPanelKind struct {
|
||||||
PanelKind *DashboardPanelKind `json:"PanelKind,omitempty"`
|
PanelKind *DashboardPanelKind `json:"PanelKind,omitempty"`
|
||||||
|
|||||||
@@ -1548,6 +1548,12 @@ func schema_pkg_apis_dashboard_v2alpha1_DashboardCustomVariableSpec(ref common.R
|
|||||||
Format: "",
|
Format: "",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"valuesFormat": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Required: []string{"name", "query", "current", "options", "multi", "includeAll", "hide", "skipUrlSync", "allowCustomValue"},
|
Required: []string{"name", "query", "current", "options", "multi", "includeAll", "hide", "skipUrlSync", "allowCustomValue"},
|
||||||
},
|
},
|
||||||
@@ -2271,6 +2277,20 @@ func schema_pkg_apis_dashboard_v2alpha1_DashboardFieldConfig(ref common.Referenc
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"fieldMinMax": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Calculate min max per field",
|
||||||
|
Type: []string{"boolean"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"nullValueMode": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "How null values should be handled when calculating field stats \"null\" - Include null values, \"connected\" - Ignore nulls, \"null as zero\" - Treat nulls as zero",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -254,8 +254,18 @@ FieldConfig: {
|
|||||||
// custom is specified by the FieldConfig field
|
// custom is specified by the FieldConfig field
|
||||||
// in panel plugin schemas.
|
// in panel plugin schemas.
|
||||||
custom?: {...}
|
custom?: {...}
|
||||||
|
|
||||||
|
// Calculate min max per field
|
||||||
|
fieldMinMax?: bool
|
||||||
|
|
||||||
|
// How null values should be handled when calculating field stats
|
||||||
|
// "null" - Include null values, "connected" - Ignore nulls, "null as zero" - Treat nulls as zero
|
||||||
|
nullValueMode?: NullValueMode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// How null values should be handled
|
||||||
|
NullValueMode: "null" | "connected" | "null as zero"
|
||||||
|
|
||||||
DynamicConfigValue: {
|
DynamicConfigValue: {
|
||||||
id: string | *""
|
id: string | *""
|
||||||
value?: _
|
value?: _
|
||||||
@@ -939,6 +949,7 @@ CustomVariableSpec: {
|
|||||||
skipUrlSync: bool | *false
|
skipUrlSync: bool | *false
|
||||||
description?: string
|
description?: string
|
||||||
allowCustomValue: bool | *true
|
allowCustomValue: bool | *true
|
||||||
|
valuesFormat?: "csv" | "json"
|
||||||
}
|
}
|
||||||
|
|
||||||
// Custom variable kind
|
// Custom variable kind
|
||||||
|
|||||||
@@ -423,6 +423,11 @@ type DashboardFieldConfig struct {
|
|||||||
// custom is specified by the FieldConfig field
|
// custom is specified by the FieldConfig field
|
||||||
// in panel plugin schemas.
|
// in panel plugin schemas.
|
||||||
Custom map[string]interface{} `json:"custom,omitempty"`
|
Custom map[string]interface{} `json:"custom,omitempty"`
|
||||||
|
// Calculate min max per field
|
||||||
|
FieldMinMax *bool `json:"fieldMinMax,omitempty"`
|
||||||
|
// How null values should be handled when calculating field stats
|
||||||
|
// "null" - Include null values, "connected" - Ignore nulls, "null as zero" - Treat nulls as zero
|
||||||
|
NullValueMode *DashboardNullValueMode `json:"nullValueMode,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewDashboardFieldConfig creates a new DashboardFieldConfig object.
|
// NewDashboardFieldConfig creates a new DashboardFieldConfig object.
|
||||||
@@ -749,6 +754,16 @@ func NewDashboardActionVariable() *DashboardActionVariable {
|
|||||||
// +k8s:openapi-gen=true
|
// +k8s:openapi-gen=true
|
||||||
const DashboardActionVariableType = "string"
|
const DashboardActionVariableType = "string"
|
||||||
|
|
||||||
|
// How null values should be handled
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type DashboardNullValueMode string
|
||||||
|
|
||||||
|
const (
|
||||||
|
DashboardNullValueModeNull DashboardNullValueMode = "null"
|
||||||
|
DashboardNullValueModeConnected DashboardNullValueMode = "connected"
|
||||||
|
DashboardNullValueModeNullAsZero DashboardNullValueMode = "null as zero"
|
||||||
|
)
|
||||||
|
|
||||||
// +k8s:openapi-gen=true
|
// +k8s:openapi-gen=true
|
||||||
type DashboardDynamicConfigValue struct {
|
type DashboardDynamicConfigValue struct {
|
||||||
Id string `json:"id"`
|
Id string `json:"id"`
|
||||||
@@ -1707,18 +1722,19 @@ func NewDashboardCustomVariableKind() *DashboardCustomVariableKind {
|
|||||||
// Custom variable specification
|
// Custom variable specification
|
||||||
// +k8s:openapi-gen=true
|
// +k8s:openapi-gen=true
|
||||||
type DashboardCustomVariableSpec struct {
|
type DashboardCustomVariableSpec struct {
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Query string `json:"query"`
|
Query string `json:"query"`
|
||||||
Current DashboardVariableOption `json:"current"`
|
Current DashboardVariableOption `json:"current"`
|
||||||
Options []DashboardVariableOption `json:"options"`
|
Options []DashboardVariableOption `json:"options"`
|
||||||
Multi bool `json:"multi"`
|
Multi bool `json:"multi"`
|
||||||
IncludeAll bool `json:"includeAll"`
|
IncludeAll bool `json:"includeAll"`
|
||||||
AllValue *string `json:"allValue,omitempty"`
|
AllValue *string `json:"allValue,omitempty"`
|
||||||
Label *string `json:"label,omitempty"`
|
Label *string `json:"label,omitempty"`
|
||||||
Hide DashboardVariableHide `json:"hide"`
|
Hide DashboardVariableHide `json:"hide"`
|
||||||
SkipUrlSync bool `json:"skipUrlSync"`
|
SkipUrlSync bool `json:"skipUrlSync"`
|
||||||
Description *string `json:"description,omitempty"`
|
Description *string `json:"description,omitempty"`
|
||||||
AllowCustomValue bool `json:"allowCustomValue"`
|
AllowCustomValue bool `json:"allowCustomValue"`
|
||||||
|
ValuesFormat *DashboardCustomVariableSpecValuesFormat `json:"valuesFormat,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewDashboardCustomVariableSpec creates a new DashboardCustomVariableSpec object.
|
// NewDashboardCustomVariableSpec creates a new DashboardCustomVariableSpec object.
|
||||||
@@ -2133,6 +2149,14 @@ const (
|
|||||||
DashboardQueryVariableSpecStaticOptionsOrderSorted DashboardQueryVariableSpecStaticOptionsOrder = "sorted"
|
DashboardQueryVariableSpecStaticOptionsOrderSorted DashboardQueryVariableSpecStaticOptionsOrder = "sorted"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type DashboardCustomVariableSpecValuesFormat string
|
||||||
|
|
||||||
|
const (
|
||||||
|
DashboardCustomVariableSpecValuesFormatCsv DashboardCustomVariableSpecValuesFormat = "csv"
|
||||||
|
DashboardCustomVariableSpecValuesFormatJson DashboardCustomVariableSpecValuesFormat = "json"
|
||||||
|
)
|
||||||
|
|
||||||
// +k8s:openapi-gen=true
|
// +k8s:openapi-gen=true
|
||||||
type DashboardPanelKindOrLibraryPanelKind struct {
|
type DashboardPanelKindOrLibraryPanelKind struct {
|
||||||
PanelKind *DashboardPanelKind `json:"PanelKind,omitempty"`
|
PanelKind *DashboardPanelKind `json:"PanelKind,omitempty"`
|
||||||
|
|||||||
@@ -1560,6 +1560,12 @@ func schema_pkg_apis_dashboard_v2beta1_DashboardCustomVariableSpec(ref common.Re
|
|||||||
Format: "",
|
Format: "",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"valuesFormat": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Required: []string{"name", "query", "current", "options", "multi", "includeAll", "hide", "skipUrlSync", "allowCustomValue"},
|
Required: []string{"name", "query", "current", "options", "multi", "includeAll", "hide", "skipUrlSync", "allowCustomValue"},
|
||||||
},
|
},
|
||||||
@@ -2278,6 +2284,20 @@ func schema_pkg_apis_dashboard_v2beta1_DashboardFieldConfig(ref common.Reference
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"fieldMinMax": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Calculate min max per field",
|
||||||
|
Type: []string{"boolean"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"nullValueMode": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "How null values should be handled when calculating field stats \"null\" - Include null values, \"connected\" - Ignore nulls, \"null as zero\" - Treat nulls as zero",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
4
apps/dashboard/pkg/apis/dashboard_manifest.go
generated
4
apps/dashboard/pkg/apis/dashboard_manifest.go
generated
File diff suppressed because one or more lines are too long
@@ -85,20 +85,20 @@ func withConversionMetrics(sourceVersionAPI, targetVersionAPI string, conversion
|
|||||||
// Only track schema versions for v0/v1 dashboards (v2+ info is redundant with API version)
|
// Only track schema versions for v0/v1 dashboards (v2+ info is redundant with API version)
|
||||||
switch source := a.(type) {
|
switch source := a.(type) {
|
||||||
case *dashv0.Dashboard:
|
case *dashv0.Dashboard:
|
||||||
dashboardUID = string(source.UID)
|
dashboardUID = source.Name
|
||||||
if source.Spec.Object != nil {
|
if source.Spec.Object != nil {
|
||||||
sourceSchemaVersion = schemaversion.GetSchemaVersion(source.Spec.Object)
|
sourceSchemaVersion = schemaversion.GetSchemaVersion(source.Spec.Object)
|
||||||
}
|
}
|
||||||
case *dashv1.Dashboard:
|
case *dashv1.Dashboard:
|
||||||
dashboardUID = string(source.UID)
|
dashboardUID = source.Name
|
||||||
if source.Spec.Object != nil {
|
if source.Spec.Object != nil {
|
||||||
sourceSchemaVersion = schemaversion.GetSchemaVersion(source.Spec.Object)
|
sourceSchemaVersion = schemaversion.GetSchemaVersion(source.Spec.Object)
|
||||||
}
|
}
|
||||||
case *dashv2alpha1.Dashboard:
|
case *dashv2alpha1.Dashboard:
|
||||||
dashboardUID = string(source.UID)
|
dashboardUID = source.Name
|
||||||
// Don't track schema version for v2+ (redundant with API version)
|
// Don't track schema version for v2+ (redundant with API version)
|
||||||
case *dashv2beta1.Dashboard:
|
case *dashv2beta1.Dashboard:
|
||||||
dashboardUID = string(source.UID)
|
dashboardUID = source.Name
|
||||||
// Don't track schema version for v2+ (redundant with API version)
|
// Don't track schema version for v2+ (redundant with API version)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,427 @@
|
|||||||
|
{
|
||||||
|
"annotations": {
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"builtIn": 1,
|
||||||
|
"datasource": {
|
||||||
|
"type": "grafana",
|
||||||
|
"uid": "-- Grafana --"
|
||||||
|
},
|
||||||
|
"enable": true,
|
||||||
|
"hide": true,
|
||||||
|
"iconColor": "rgba(0, 211, 255, 1)",
|
||||||
|
"name": "Annotations \u0026 Alerts",
|
||||||
|
"type": "dashboard"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "grafana",
|
||||||
|
"uid": "-- Grafana --"
|
||||||
|
},
|
||||||
|
"enable": true,
|
||||||
|
"hide": true,
|
||||||
|
"iconColor": "rgba(0, 211, 255, 1)",
|
||||||
|
"name": "Annotations \u0026 Alerts",
|
||||||
|
"target": {
|
||||||
|
"limit": 100,
|
||||||
|
"matchAny": false,
|
||||||
|
"tags": [],
|
||||||
|
"type": "dashboard"
|
||||||
|
},
|
||||||
|
"type": "dashboard"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "grafana-testdata-datasource"
|
||||||
|
},
|
||||||
|
"enable": true,
|
||||||
|
"filter": {
|
||||||
|
"exclude": false,
|
||||||
|
"ids": [
|
||||||
|
1
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"iconColor": "red",
|
||||||
|
"name": "Red, only panel 1",
|
||||||
|
"target": {
|
||||||
|
"lines": 4,
|
||||||
|
"refId": "Anno",
|
||||||
|
"scenarioId": "annotations"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "grafana-testdata-datasource"
|
||||||
|
},
|
||||||
|
"enable": true,
|
||||||
|
"filter": {
|
||||||
|
"exclude": true,
|
||||||
|
"ids": [
|
||||||
|
1
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"iconColor": "yellow",
|
||||||
|
"name": "Yellow - all except 1",
|
||||||
|
"target": {
|
||||||
|
"lines": 5,
|
||||||
|
"refId": "Anno",
|
||||||
|
"scenarioId": "annotations"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "grafana-testdata-datasource"
|
||||||
|
},
|
||||||
|
"enable": true,
|
||||||
|
"filter": {
|
||||||
|
"exclude": false,
|
||||||
|
"ids": [
|
||||||
|
3,
|
||||||
|
4
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"iconColor": "dark-purple",
|
||||||
|
"name": "Purple only panel 3+4",
|
||||||
|
"target": {
|
||||||
|
"lines": 6,
|
||||||
|
"refId": "Anno",
|
||||||
|
"scenarioId": "annotations"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"editable": true,
|
||||||
|
"fiscalYearStartMonth": 0,
|
||||||
|
"graphTooltip": 0,
|
||||||
|
"id": 119,
|
||||||
|
"links": [],
|
||||||
|
"liveNow": false,
|
||||||
|
"panels": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "grafana-testdata-datasource"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"axisCenteredZero": false,
|
||||||
|
"axisColorMode": "text",
|
||||||
|
"axisLabel": "",
|
||||||
|
"axisPlacement": "auto",
|
||||||
|
"barAlignment": 0,
|
||||||
|
"drawStyle": "line",
|
||||||
|
"fillOpacity": 0,
|
||||||
|
"gradientMode": "none",
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
},
|
||||||
|
"lineInterpolation": "linear",
|
||||||
|
"lineWidth": 1,
|
||||||
|
"pointSize": 5,
|
||||||
|
"scaleDistribution": {
|
||||||
|
"type": "linear"
|
||||||
|
},
|
||||||
|
"showPoints": "auto",
|
||||||
|
"spanNulls": false,
|
||||||
|
"stacking": {
|
||||||
|
"group": "A",
|
||||||
|
"mode": "none"
|
||||||
|
},
|
||||||
|
"thresholdsStyle": {
|
||||||
|
"mode": "off"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 12,
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"id": 1,
|
||||||
|
"options": {
|
||||||
|
"legend": {
|
||||||
|
"calcs": [],
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "bottom",
|
||||||
|
"showLegend": true
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single",
|
||||||
|
"sort": "none"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"title": "Panel one",
|
||||||
|
"type": "timeseries"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "grafana-testdata-datasource"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"axisCenteredZero": false,
|
||||||
|
"axisColorMode": "text",
|
||||||
|
"axisLabel": "",
|
||||||
|
"axisPlacement": "auto",
|
||||||
|
"barAlignment": 0,
|
||||||
|
"drawStyle": "line",
|
||||||
|
"fillOpacity": 0,
|
||||||
|
"gradientMode": "none",
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
},
|
||||||
|
"lineInterpolation": "linear",
|
||||||
|
"lineWidth": 1,
|
||||||
|
"pointSize": 5,
|
||||||
|
"scaleDistribution": {
|
||||||
|
"type": "linear"
|
||||||
|
},
|
||||||
|
"showPoints": "auto",
|
||||||
|
"spanNulls": false,
|
||||||
|
"stacking": {
|
||||||
|
"group": "A",
|
||||||
|
"mode": "none"
|
||||||
|
},
|
||||||
|
"thresholdsStyle": {
|
||||||
|
"mode": "off"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 12,
|
||||||
|
"x": 12,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"id": 2,
|
||||||
|
"options": {
|
||||||
|
"legend": {
|
||||||
|
"calcs": [],
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "bottom",
|
||||||
|
"showLegend": true
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single",
|
||||||
|
"sort": "none"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"title": "Panel two",
|
||||||
|
"type": "timeseries"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "grafana-testdata-datasource"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"axisCenteredZero": false,
|
||||||
|
"axisColorMode": "text",
|
||||||
|
"axisLabel": "",
|
||||||
|
"axisPlacement": "auto",
|
||||||
|
"barAlignment": 0,
|
||||||
|
"drawStyle": "line",
|
||||||
|
"fillOpacity": 0,
|
||||||
|
"gradientMode": "none",
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
},
|
||||||
|
"lineInterpolation": "linear",
|
||||||
|
"lineWidth": 1,
|
||||||
|
"pointSize": 5,
|
||||||
|
"scaleDistribution": {
|
||||||
|
"type": "linear"
|
||||||
|
},
|
||||||
|
"showPoints": "auto",
|
||||||
|
"spanNulls": false,
|
||||||
|
"stacking": {
|
||||||
|
"group": "A",
|
||||||
|
"mode": "none"
|
||||||
|
},
|
||||||
|
"thresholdsStyle": {
|
||||||
|
"mode": "off"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 12,
|
||||||
|
"x": 0,
|
||||||
|
"y": 8
|
||||||
|
},
|
||||||
|
"id": 3,
|
||||||
|
"options": {
|
||||||
|
"legend": {
|
||||||
|
"calcs": [],
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "bottom",
|
||||||
|
"showLegend": true
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single",
|
||||||
|
"sort": "none"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"title": "Panel three",
|
||||||
|
"type": "timeseries"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "grafana-testdata-datasource"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"axisCenteredZero": false,
|
||||||
|
"axisColorMode": "text",
|
||||||
|
"axisLabel": "",
|
||||||
|
"axisPlacement": "auto",
|
||||||
|
"barAlignment": 0,
|
||||||
|
"drawStyle": "line",
|
||||||
|
"fillOpacity": 0,
|
||||||
|
"gradientMode": "none",
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
},
|
||||||
|
"lineInterpolation": "linear",
|
||||||
|
"lineWidth": 1,
|
||||||
|
"pointSize": 5,
|
||||||
|
"scaleDistribution": {
|
||||||
|
"type": "linear"
|
||||||
|
},
|
||||||
|
"showPoints": "auto",
|
||||||
|
"spanNulls": false,
|
||||||
|
"stacking": {
|
||||||
|
"group": "A",
|
||||||
|
"mode": "none"
|
||||||
|
},
|
||||||
|
"thresholdsStyle": {
|
||||||
|
"mode": "off"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 12,
|
||||||
|
"x": 12,
|
||||||
|
"y": 8
|
||||||
|
},
|
||||||
|
"id": 4,
|
||||||
|
"options": {
|
||||||
|
"legend": {
|
||||||
|
"calcs": [],
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "bottom",
|
||||||
|
"showLegend": true
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single",
|
||||||
|
"sort": "none"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"title": "Panel four",
|
||||||
|
"type": "timeseries"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"refresh": "",
|
||||||
|
"schemaVersion": 42,
|
||||||
|
"tags": [
|
||||||
|
"gdev",
|
||||||
|
"annotations"
|
||||||
|
],
|
||||||
|
"templating": {
|
||||||
|
"list": []
|
||||||
|
},
|
||||||
|
"time": {
|
||||||
|
"from": "now-30m",
|
||||||
|
"to": "now"
|
||||||
|
},
|
||||||
|
"timepicker": {},
|
||||||
|
"timezone": "",
|
||||||
|
"title": "Annotation filtering",
|
||||||
|
"uid": "ed155665",
|
||||||
|
"weekStart": ""
|
||||||
|
}
|
||||||
@@ -219,8 +219,7 @@
|
|||||||
"value": 80
|
"value": 80
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
}
|
||||||
"unitScale": true
|
|
||||||
},
|
},
|
||||||
"overrides": []
|
"overrides": []
|
||||||
},
|
},
|
||||||
@@ -312,8 +311,7 @@
|
|||||||
"value": 80
|
"value": 80
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
}
|
||||||
"unitScale": true
|
|
||||||
},
|
},
|
||||||
"overrides": []
|
"overrides": []
|
||||||
},
|
},
|
||||||
@@ -492,8 +490,7 @@
|
|||||||
"value": 80
|
"value": 80
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
}
|
||||||
"unitScale": true
|
|
||||||
},
|
},
|
||||||
"overrides": []
|
"overrides": []
|
||||||
},
|
},
|
||||||
@@ -584,8 +581,7 @@
|
|||||||
"value": 80
|
"value": 80
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
}
|
||||||
"unitScale": true
|
|
||||||
},
|
},
|
||||||
"overrides": []
|
"overrides": []
|
||||||
},
|
},
|
||||||
@@ -676,8 +672,7 @@
|
|||||||
"value": 80
|
"value": 80
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
}
|
||||||
"unitScale": true
|
|
||||||
},
|
},
|
||||||
"overrides": []
|
"overrides": []
|
||||||
},
|
},
|
||||||
@@ -791,8 +786,7 @@
|
|||||||
"value": 80
|
"value": 80
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
}
|
||||||
"unitScale": true
|
|
||||||
},
|
},
|
||||||
"overrides": []
|
"overrides": []
|
||||||
},
|
},
|
||||||
@@ -906,8 +900,7 @@
|
|||||||
"value": 80
|
"value": 80
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
}
|
||||||
"unitScale": true
|
|
||||||
},
|
},
|
||||||
"overrides": []
|
"overrides": []
|
||||||
},
|
},
|
||||||
@@ -1022,8 +1015,7 @@
|
|||||||
"value": 80
|
"value": 80
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
}
|
||||||
"unitScale": true
|
|
||||||
},
|
},
|
||||||
"overrides": []
|
"overrides": []
|
||||||
},
|
},
|
||||||
@@ -65,17 +65,14 @@
|
|||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
{
|
||||||
"color": "#7EB26D",
|
"color": "#7EB26D"
|
||||||
"index": 0
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#ef843c",
|
"color": "#ef843c",
|
||||||
"index": 1,
|
|
||||||
"value": 75
|
"value": 75
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#e24d42",
|
"color": "#e24d42",
|
||||||
"index": 2,
|
|
||||||
"value": 90
|
"value": 90
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -136,17 +133,14 @@
|
|||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
{
|
||||||
"color": "#7EB26D",
|
"color": "#7EB26D"
|
||||||
"index": 0
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#ef843c",
|
"color": "#ef843c",
|
||||||
"index": 1,
|
|
||||||
"value": 75
|
"value": 75
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#e24d42",
|
"color": "#e24d42",
|
||||||
"index": 2,
|
|
||||||
"value": 90
|
"value": 90
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -207,17 +201,14 @@
|
|||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
{
|
||||||
"color": "#7EB26D",
|
"color": "#7EB26D"
|
||||||
"index": 0
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#ef843c",
|
"color": "#ef843c",
|
||||||
"index": 1,
|
|
||||||
"value": 75
|
"value": 75
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#e24d42",
|
"color": "#e24d42",
|
||||||
"index": 2,
|
|
||||||
"value": 90
|
"value": 90
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -271,7 +262,6 @@
|
|||||||
"mode": "thresholds"
|
"mode": "thresholds"
|
||||||
},
|
},
|
||||||
"custom": {},
|
"custom": {},
|
||||||
"decimals": "",
|
|
||||||
"mappings": [],
|
"mappings": [],
|
||||||
"max": 100,
|
"max": 100,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
@@ -279,17 +269,14 @@
|
|||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
{
|
||||||
"color": "#7EB26D",
|
"color": "#7EB26D"
|
||||||
"index": 0
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#ef843c",
|
"color": "#ef843c",
|
||||||
"index": 1,
|
|
||||||
"value": 75
|
"value": 75
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#e24d42",
|
"color": "#e24d42",
|
||||||
"index": 2,
|
|
||||||
"value": 90
|
"value": 90
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -342,7 +329,6 @@
|
|||||||
"mode": "thresholds"
|
"mode": "thresholds"
|
||||||
},
|
},
|
||||||
"custom": {},
|
"custom": {},
|
||||||
"decimals": "",
|
|
||||||
"mappings": [],
|
"mappings": [],
|
||||||
"max": 100,
|
"max": 100,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
@@ -350,17 +336,14 @@
|
|||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
{
|
||||||
"color": "#7EB26D",
|
"color": "#7EB26D"
|
||||||
"index": 0
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#ef843c",
|
"color": "#ef843c",
|
||||||
"index": 1,
|
|
||||||
"value": 75
|
"value": 75
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#e24d42",
|
"color": "#e24d42",
|
||||||
"index": 2,
|
|
||||||
"value": 90
|
"value": 90
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -414,7 +397,6 @@
|
|||||||
"mode": "thresholds"
|
"mode": "thresholds"
|
||||||
},
|
},
|
||||||
"custom": {},
|
"custom": {},
|
||||||
"decimals": "",
|
|
||||||
"mappings": [],
|
"mappings": [],
|
||||||
"max": 100,
|
"max": 100,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
@@ -422,17 +404,14 @@
|
|||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
{
|
||||||
"color": "#7EB26D",
|
"color": "#7EB26D"
|
||||||
"index": 0
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#ef843c",
|
"color": "#ef843c",
|
||||||
"index": 1,
|
|
||||||
"value": 75
|
"value": 75
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#e24d42",
|
"color": "#e24d42",
|
||||||
"index": 2,
|
|
||||||
"value": 90
|
"value": 90
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -485,7 +464,6 @@
|
|||||||
"mode": "thresholds"
|
"mode": "thresholds"
|
||||||
},
|
},
|
||||||
"custom": {},
|
"custom": {},
|
||||||
"decimals": "",
|
|
||||||
"mappings": [],
|
"mappings": [],
|
||||||
"max": 100,
|
"max": 100,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
@@ -493,17 +471,14 @@
|
|||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
{
|
||||||
"color": "#7EB26D",
|
"color": "#7EB26D"
|
||||||
"index": 0
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#ef843c",
|
"color": "#ef843c",
|
||||||
"index": 1,
|
|
||||||
"value": 75
|
"value": 75
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#e24d42",
|
"color": "#e24d42",
|
||||||
"index": 2,
|
|
||||||
"value": 90
|
"value": 90
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -668,7 +643,6 @@
|
|||||||
"mode": "thresholds"
|
"mode": "thresholds"
|
||||||
},
|
},
|
||||||
"custom": {},
|
"custom": {},
|
||||||
"decimals": "",
|
|
||||||
"mappings": [
|
"mappings": [
|
||||||
{
|
{
|
||||||
"options": {
|
"options": {
|
||||||
@@ -685,17 +659,14 @@
|
|||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
{
|
||||||
"color": "#7EB26D",
|
"color": "#7EB26D"
|
||||||
"index": 0
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#ef843c",
|
"color": "#ef843c",
|
||||||
"index": 1,
|
|
||||||
"value": 75
|
"value": 75
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#e24d42",
|
"color": "#e24d42",
|
||||||
"index": 2,
|
|
||||||
"value": 90
|
"value": 90
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -750,7 +721,6 @@
|
|||||||
"mode": "thresholds"
|
"mode": "thresholds"
|
||||||
},
|
},
|
||||||
"custom": {},
|
"custom": {},
|
||||||
"decimals": "",
|
|
||||||
"mappings": [
|
"mappings": [
|
||||||
{
|
{
|
||||||
"options": {
|
"options": {
|
||||||
@@ -768,17 +738,14 @@
|
|||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
{
|
||||||
"color": "#7EB26D",
|
"color": "#7EB26D"
|
||||||
"index": 0
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#ef843c",
|
"color": "#ef843c",
|
||||||
"index": 1,
|
|
||||||
"value": 75
|
"value": 75
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#e24d42",
|
"color": "#e24d42",
|
||||||
"index": 2,
|
|
||||||
"value": 90
|
"value": 90
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -833,7 +800,6 @@
|
|||||||
"mode": "thresholds"
|
"mode": "thresholds"
|
||||||
},
|
},
|
||||||
"custom": {},
|
"custom": {},
|
||||||
"decimals": "",
|
|
||||||
"mappings": [
|
"mappings": [
|
||||||
{
|
{
|
||||||
"options": {
|
"options": {
|
||||||
@@ -852,17 +818,14 @@
|
|||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
{
|
||||||
"color": "#7EB26D",
|
"color": "#7EB26D"
|
||||||
"index": 0
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#ef843c",
|
"color": "#ef843c",
|
||||||
"index": 1,
|
|
||||||
"value": 75
|
"value": 75
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#e24d42",
|
"color": "#e24d42",
|
||||||
"index": 2,
|
|
||||||
"value": 90
|
"value": 90
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -917,7 +880,6 @@
|
|||||||
"mode": "thresholds"
|
"mode": "thresholds"
|
||||||
},
|
},
|
||||||
"custom": {},
|
"custom": {},
|
||||||
"decimals": "",
|
|
||||||
"mappings": [
|
"mappings": [
|
||||||
{
|
{
|
||||||
"options": {
|
"options": {
|
||||||
@@ -946,17 +908,14 @@
|
|||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
{
|
||||||
"color": "#7EB26D",
|
"color": "#7EB26D"
|
||||||
"index": 0
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#ef843c",
|
"color": "#ef843c",
|
||||||
"index": 1,
|
|
||||||
"value": 75
|
"value": 75
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#e24d42",
|
"color": "#e24d42",
|
||||||
"index": 2,
|
|
||||||
"value": 90
|
"value": 90
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1038,7 +997,7 @@
|
|||||||
"mode": "thresholds"
|
"mode": "thresholds"
|
||||||
},
|
},
|
||||||
"custom": {},
|
"custom": {},
|
||||||
"decimals": "2",
|
"decimals": 2,
|
||||||
"mappings": [],
|
"mappings": [],
|
||||||
"max": 100,
|
"max": 100,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
@@ -1046,17 +1005,14 @@
|
|||||||
"mode": "absolute",
|
"mode": "absolute",
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
{
|
||||||
"color": "#7EB26D",
|
"color": "#7EB26D"
|
||||||
"index": 0
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#ef843c",
|
"color": "#ef843c",
|
||||||
"index": 1,
|
|
||||||
"value": 75
|
"value": 75
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"color": "#e24d42",
|
"color": "#e24d42",
|
||||||
"index": 2,
|
|
||||||
"value": 90
|
"value": 90
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user