mirror of
https://github.com/grafana/grafana.git
synced 2026-01-14 13:21:26 +00:00
Compare commits
46 Commits
ash/fix-fl
...
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 | ||
|
|
ef0601b85e | ||
|
|
e25d09ff3e | ||
|
|
b7269073b2 | ||
|
|
29dfdafad5 | ||
|
|
b7da61c260 | ||
|
|
0e6ad2e7c8 | ||
|
|
aae69c1e75 | ||
|
|
89dd3870b3 | ||
|
|
3b577e2c42 | ||
|
|
7ff004f775 | ||
|
|
4d26d0cd5c |
3
.github/CODEOWNERS
vendored
3
.github/CODEOWNERS
vendored
@@ -440,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/TestV2Dashboard.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-suite/adhoc-filter-from-panel.spec.ts @grafana/datapro
|
||||
/e2e-playwright/dashboards-suite/dashboard-browse-nested.spec.ts @grafana/grafana-search-navigate-organise
|
||||
@@ -657,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/LocationSrv.ts @grafana/grafana-search-navigate-organise
|
||||
/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/DataSourceWithBackend* @grafana/grafana-datasources-core-services
|
||||
/packages/grafana-runtime/src/utils/licensing.ts @grafana/grafana-operator-experience-squad
|
||||
@@ -1275,6 +1277,7 @@ embed.go @grafana/grafana-as-code
|
||||
/.github/workflows/i18n-crowdin-download.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/deploy-storybook.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/publish-frontend-metrics.mts @grafana/grafana-frontend-platform
|
||||
|
||||
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
|
||||
7
Makefile
7
Makefile
@@ -135,7 +135,7 @@ i18n-extract-enterprise:
|
||||
@echo "Skipping i18n extract for Enterprise: not enabled"
|
||||
else
|
||||
i18n-extract-enterprise:
|
||||
@echo "Extracting i18n strings for Enterprise"
|
||||
@echo "Extracting i18n strings for Enterprise"
|
||||
cd public/locales/enterprise && yarn run i18next-cli extract --sync-primary
|
||||
endif
|
||||
|
||||
@@ -227,6 +227,10 @@ fix-cue:
|
||||
gen-jsonnet:
|
||||
go generate ./devenv/jsonnet
|
||||
|
||||
.PHONY: gen-themes
|
||||
gen-themes:
|
||||
go generate ./pkg/services/preference
|
||||
|
||||
.PHONY: update-workspace
|
||||
update-workspace: gen-go
|
||||
@echo "updating workspace"
|
||||
@@ -244,6 +248,7 @@ build-go-fast: ## Build all Go binaries without updating workspace.
|
||||
.PHONY: build-backend
|
||||
build-backend: ## Build Grafana backend.
|
||||
@echo "build backend"
|
||||
$(MAKE) gen-themes
|
||||
$(GO) run build.go $(GO_BUILD_FLAGS) build-backend
|
||||
|
||||
.PHONY: build-air
|
||||
|
||||
@@ -4,7 +4,7 @@ go 1.25.5
|
||||
|
||||
require (
|
||||
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/grafana-app-sdk 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/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/grafana/alerting v0.0.0-20251231150637-b7821017d69f h1:Br4SaUL3dnVopKKNhDavCLgehw60jdtl/sIxdfzmVts=
|
||||
github.com/grafana/alerting v0.0.0-20251231150637-b7821017d69f/go.mod h1:l7v67cgP7x72ajB9UPZlumdrHqNztpKoqQ52cU8T3LU=
|
||||
github.com/grafana/alerting v0.0.0-20260112172717-98a49ed9557f h1:3bXOyht68qkfvD6Y8z8XoenFbytSSOIkr/s+AqRzj0o=
|
||||
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/go.mod h1:VahT+GtfQIM+o8ht2StR6J9g+Ef+C2Vokh5uuSmOD/4=
|
||||
github.com/grafana/grafana-app-sdk v0.48.7 h1:9mF7nqkqP0QUYYDlznoOt+GIyjzj45wGfUHB32u2ZMo=
|
||||
|
||||
@@ -254,8 +254,18 @@ FieldConfig: {
|
||||
// custom is specified by the FieldConfig field
|
||||
// in panel plugin schemas.
|
||||
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: {
|
||||
id: string | *""
|
||||
value?: _
|
||||
|
||||
@@ -250,8 +250,18 @@ FieldConfig: {
|
||||
// custom is specified by the FieldConfig field
|
||||
// in panel plugin schemas.
|
||||
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: {
|
||||
id: string | *""
|
||||
value?: _
|
||||
|
||||
@@ -258,8 +258,18 @@ FieldConfig: {
|
||||
// custom is specified by the FieldConfig field
|
||||
// in panel plugin schemas.
|
||||
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: {
|
||||
id: string | *""
|
||||
value?: _
|
||||
|
||||
@@ -419,6 +419,11 @@ type DashboardFieldConfig struct {
|
||||
// custom is specified by the FieldConfig field
|
||||
// in panel plugin schemas.
|
||||
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.
|
||||
@@ -745,6 +750,16 @@ func NewDashboardActionVariable() *DashboardActionVariable {
|
||||
// +k8s:openapi-gen=true
|
||||
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
|
||||
type DashboardDynamicConfigValue struct {
|
||||
Id string `json:"id"`
|
||||
|
||||
@@ -2277,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
|
||||
// in panel plugin schemas.
|
||||
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: {
|
||||
id: string | *""
|
||||
value?: _
|
||||
|
||||
@@ -423,6 +423,11 @@ type DashboardFieldConfig struct {
|
||||
// custom is specified by the FieldConfig field
|
||||
// in panel plugin schemas.
|
||||
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.
|
||||
@@ -749,6 +754,16 @@ func NewDashboardActionVariable() *DashboardActionVariable {
|
||||
// +k8s:openapi-gen=true
|
||||
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
|
||||
type DashboardDynamicConfigValue struct {
|
||||
Id string `json:"id"`
|
||||
|
||||
@@ -2284,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
@@ -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
|
||||
}
|
||||
]
|
||||
},
|
||||
"unitScale": true
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
@@ -312,8 +311,7 @@
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
},
|
||||
"unitScale": true
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
@@ -492,8 +490,7 @@
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
},
|
||||
"unitScale": true
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
@@ -584,8 +581,7 @@
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
},
|
||||
"unitScale": true
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
@@ -676,8 +672,7 @@
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
},
|
||||
"unitScale": true
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
@@ -791,8 +786,7 @@
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
},
|
||||
"unitScale": true
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
@@ -906,8 +900,7 @@
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
},
|
||||
"unitScale": true
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
@@ -1022,8 +1015,7 @@
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
},
|
||||
"unitScale": true
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
@@ -65,17 +65,14 @@
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "#7EB26D",
|
||||
"index": 0
|
||||
"color": "#7EB26D"
|
||||
},
|
||||
{
|
||||
"color": "#ef843c",
|
||||
"index": 1,
|
||||
"value": 75
|
||||
},
|
||||
{
|
||||
"color": "#e24d42",
|
||||
"index": 2,
|
||||
"value": 90
|
||||
}
|
||||
]
|
||||
@@ -136,17 +133,14 @@
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "#7EB26D",
|
||||
"index": 0
|
||||
"color": "#7EB26D"
|
||||
},
|
||||
{
|
||||
"color": "#ef843c",
|
||||
"index": 1,
|
||||
"value": 75
|
||||
},
|
||||
{
|
||||
"color": "#e24d42",
|
||||
"index": 2,
|
||||
"value": 90
|
||||
}
|
||||
]
|
||||
@@ -207,17 +201,14 @@
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "#7EB26D",
|
||||
"index": 0
|
||||
"color": "#7EB26D"
|
||||
},
|
||||
{
|
||||
"color": "#ef843c",
|
||||
"index": 1,
|
||||
"value": 75
|
||||
},
|
||||
{
|
||||
"color": "#e24d42",
|
||||
"index": 2,
|
||||
"value": 90
|
||||
}
|
||||
]
|
||||
@@ -271,7 +262,6 @@
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"custom": {},
|
||||
"decimals": "",
|
||||
"mappings": [],
|
||||
"max": 100,
|
||||
"min": 0,
|
||||
@@ -279,17 +269,14 @@
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "#7EB26D",
|
||||
"index": 0
|
||||
"color": "#7EB26D"
|
||||
},
|
||||
{
|
||||
"color": "#ef843c",
|
||||
"index": 1,
|
||||
"value": 75
|
||||
},
|
||||
{
|
||||
"color": "#e24d42",
|
||||
"index": 2,
|
||||
"value": 90
|
||||
}
|
||||
]
|
||||
@@ -342,7 +329,6 @@
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"custom": {},
|
||||
"decimals": "",
|
||||
"mappings": [],
|
||||
"max": 100,
|
||||
"min": 0,
|
||||
@@ -350,17 +336,14 @@
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "#7EB26D",
|
||||
"index": 0
|
||||
"color": "#7EB26D"
|
||||
},
|
||||
{
|
||||
"color": "#ef843c",
|
||||
"index": 1,
|
||||
"value": 75
|
||||
},
|
||||
{
|
||||
"color": "#e24d42",
|
||||
"index": 2,
|
||||
"value": 90
|
||||
}
|
||||
]
|
||||
@@ -414,7 +397,6 @@
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"custom": {},
|
||||
"decimals": "",
|
||||
"mappings": [],
|
||||
"max": 100,
|
||||
"min": 0,
|
||||
@@ -422,17 +404,14 @@
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "#7EB26D",
|
||||
"index": 0
|
||||
"color": "#7EB26D"
|
||||
},
|
||||
{
|
||||
"color": "#ef843c",
|
||||
"index": 1,
|
||||
"value": 75
|
||||
},
|
||||
{
|
||||
"color": "#e24d42",
|
||||
"index": 2,
|
||||
"value": 90
|
||||
}
|
||||
]
|
||||
@@ -485,7 +464,6 @@
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"custom": {},
|
||||
"decimals": "",
|
||||
"mappings": [],
|
||||
"max": 100,
|
||||
"min": 0,
|
||||
@@ -493,17 +471,14 @@
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "#7EB26D",
|
||||
"index": 0
|
||||
"color": "#7EB26D"
|
||||
},
|
||||
{
|
||||
"color": "#ef843c",
|
||||
"index": 1,
|
||||
"value": 75
|
||||
},
|
||||
{
|
||||
"color": "#e24d42",
|
||||
"index": 2,
|
||||
"value": 90
|
||||
}
|
||||
]
|
||||
@@ -668,7 +643,6 @@
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"custom": {},
|
||||
"decimals": "",
|
||||
"mappings": [
|
||||
{
|
||||
"options": {
|
||||
@@ -685,17 +659,14 @@
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "#7EB26D",
|
||||
"index": 0
|
||||
"color": "#7EB26D"
|
||||
},
|
||||
{
|
||||
"color": "#ef843c",
|
||||
"index": 1,
|
||||
"value": 75
|
||||
},
|
||||
{
|
||||
"color": "#e24d42",
|
||||
"index": 2,
|
||||
"color": "#e24d42",
|
||||
"value": 90
|
||||
}
|
||||
]
|
||||
@@ -750,7 +721,6 @@
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"custom": {},
|
||||
"decimals": "",
|
||||
"mappings": [
|
||||
{
|
||||
"options": {
|
||||
@@ -768,17 +738,14 @@
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "#7EB26D",
|
||||
"index": 0
|
||||
"color": "#7EB26D"
|
||||
},
|
||||
{
|
||||
"color": "#ef843c",
|
||||
"index": 1,
|
||||
"value": 75
|
||||
},
|
||||
{
|
||||
"color": "#e24d42",
|
||||
"index": 2,
|
||||
"value": 90
|
||||
}
|
||||
]
|
||||
@@ -833,7 +800,6 @@
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"custom": {},
|
||||
"decimals": "",
|
||||
"mappings": [
|
||||
{
|
||||
"options": {
|
||||
@@ -852,17 +818,14 @@
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "#7EB26D",
|
||||
"index": 0
|
||||
"color": "#7EB26D"
|
||||
},
|
||||
{
|
||||
"color": "#ef843c",
|
||||
"index": 1,
|
||||
"value": 75
|
||||
},
|
||||
{
|
||||
"color": "#e24d42",
|
||||
"index": 2,
|
||||
"value": 90
|
||||
}
|
||||
]
|
||||
@@ -917,7 +880,6 @@
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"custom": {},
|
||||
"decimals": "",
|
||||
"mappings": [
|
||||
{
|
||||
"options": {
|
||||
@@ -946,17 +908,14 @@
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "#7EB26D",
|
||||
"index": 0
|
||||
"color": "#7EB26D"
|
||||
},
|
||||
{
|
||||
"color": "#ef843c",
|
||||
"index": 1,
|
||||
"value": 75
|
||||
},
|
||||
{
|
||||
"color": "#e24d42",
|
||||
"index": 2,
|
||||
"value": 90
|
||||
}
|
||||
]
|
||||
@@ -1038,7 +997,7 @@
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"custom": {},
|
||||
"decimals": "2",
|
||||
"decimals": 2,
|
||||
"mappings": [],
|
||||
"max": 100,
|
||||
"min": 0,
|
||||
@@ -1046,17 +1005,14 @@
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "#7EB26D",
|
||||
"index": 0
|
||||
"color": "#7EB26D"
|
||||
},
|
||||
{
|
||||
"color": "#ef843c",
|
||||
"index": 1,
|
||||
"value": 75
|
||||
},
|
||||
{
|
||||
"color": "#e24d42",
|
||||
"index": 2,
|
||||
"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