@intentius/chant-lexicon-grafana 0.98.0 → 0.100.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -8
- package/dist/actions/grafana.d.ts +24 -0
- package/dist/actions/grafana.d.ts.map +1 -0
- package/dist/actions/index.d.ts +2 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/alerting-build.d.ts +128 -0
- package/dist/alerting-build.d.ts.map +1 -0
- package/dist/alerting.d.ts +273 -0
- package/dist/alerting.d.ts.map +1 -0
- package/dist/annotations.d.ts +61 -0
- package/dist/annotations.d.ts.map +1 -0
- package/dist/api/apply.d.ts +160 -0
- package/dist/api/apply.d.ts.map +1 -0
- package/dist/api/bind.d.ts +32 -0
- package/dist/api/bind.d.ts.map +1 -0
- package/dist/api/client.d.ts +76 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/converge.d.ts +33 -0
- package/dist/api/converge.d.ts.map +1 -0
- package/dist/api/dashboards.d.ts +102 -0
- package/dist/api/dashboards.d.ts.map +1 -0
- package/dist/api/datasources.d.ts +26 -0
- package/dist/api/datasources.d.ts.map +1 -0
- package/dist/api/fake-grafana-writes.d.ts +41 -0
- package/dist/api/fake-grafana-writes.d.ts.map +1 -0
- package/dist/api/fake-grafana.d.ts +63 -0
- package/dist/api/fake-grafana.d.ts.map +1 -0
- package/dist/api/folders.d.ts +146 -0
- package/dist/api/folders.d.ts.map +1 -0
- package/dist/api/library-panels.d.ts +52 -0
- package/dist/api/library-panels.d.ts.map +1 -0
- package/dist/build.d.ts +55 -6
- package/dist/build.d.ts.map +1 -1
- package/dist/catalog.d.ts +1 -1
- package/dist/catalog.d.ts.map +1 -1
- package/dist/codegen/docs.d.ts.map +1 -1
- package/dist/codegen/generate.d.ts +7 -1
- package/dist/codegen/generate.d.ts.map +1 -1
- package/dist/codegen/schema-types.d.ts +3 -3
- package/dist/codegen/schema-types.d.ts.map +1 -1
- package/dist/composites/agent-dashboard.d.ts.map +1 -1
- package/dist/composites/catalog.d.ts.map +1 -1
- package/dist/composites/index.d.ts +4 -2
- package/dist/composites/index.d.ts.map +1 -1
- package/dist/composites/red-dashboard.d.ts +21 -2
- package/dist/composites/red-dashboard.d.ts.map +1 -1
- package/dist/composites/shared.d.ts +11 -3
- package/dist/composites/shared.d.ts.map +1 -1
- package/dist/composites/slo-alert-rules.d.ts +92 -0
- package/dist/composites/slo-alert-rules.d.ts.map +1 -0
- package/dist/config.d.ts +111 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/contact-point-secrets.d.ts +17 -0
- package/dist/contact-point-secrets.d.ts.map +1 -0
- package/dist/dashboard.d.ts +51 -9
- package/dist/dashboard.d.ts.map +1 -1
- package/dist/datasource-refs.d.ts +99 -0
- package/dist/datasource-refs.d.ts.map +1 -0
- package/dist/datasource-settings.d.ts +834 -0
- package/dist/datasource-settings.d.ts.map +1 -0
- package/dist/datasource.d.ts +82 -11
- package/dist/datasource.d.ts.map +1 -1
- package/dist/deep-observe-hooks.d.ts +64 -0
- package/dist/deep-observe-hooks.d.ts.map +1 -0
- package/dist/deep-observe.d.ts +47 -0
- package/dist/deep-observe.d.ts.map +1 -0
- package/dist/describe-resources.d.ts +50 -0
- package/dist/describe-resources.d.ts.map +1 -0
- package/dist/detect.d.ts +32 -3
- package/dist/detect.d.ts.map +1 -1
- package/dist/export-resources.d.ts +38 -0
- package/dist/export-resources.d.ts.map +1 -0
- package/dist/folder.d.ts +68 -0
- package/dist/folder.d.ts.map +1 -0
- package/dist/import/alerting.d.ts +40 -0
- package/dist/import/alerting.d.ts.map +1 -0
- package/dist/import/edits.d.ts +47 -0
- package/dist/import/edits.d.ts.map +1 -0
- package/dist/import/embedded.d.ts +14 -0
- package/dist/import/embedded.d.ts.map +1 -0
- package/dist/import/generator.d.ts +60 -0
- package/dist/import/generator.d.ts.map +1 -0
- package/dist/import/live-export.d.ts +108 -0
- package/dist/import/live-export.d.ts.map +1 -0
- package/dist/import/mappings.d.ts +89 -0
- package/dist/import/mappings.d.ts.map +1 -0
- package/dist/import/model.d.ts +105 -0
- package/dist/import/model.d.ts.map +1 -0
- package/dist/import/normalize-alerting.d.ts +26 -0
- package/dist/import/normalize-alerting.d.ts.map +1 -0
- package/dist/import/normalize.d.ts +74 -0
- package/dist/import/normalize.d.ts.map +1 -0
- package/dist/import/parser.d.ts +125 -0
- package/dist/import/parser.d.ts.map +1 -0
- package/dist/import/report.d.ts +26 -0
- package/dist/import/report.d.ts.map +1 -0
- package/dist/import/testdata/fixtures.d.ts +41 -0
- package/dist/import/testdata/fixtures.d.ts.map +1 -0
- package/dist/import/v2.d.ts +73 -0
- package/dist/import/v2.d.ts.map +1 -0
- package/dist/index.d.ts +31 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/init-templates.d.ts +27 -0
- package/dist/init-templates.d.ts.map +1 -0
- package/dist/integrity.json +22 -12
- package/dist/k8s.d.ts +107 -0
- package/dist/k8s.d.ts.map +1 -0
- package/dist/lint/audit-catalog.d.ts +2 -1
- package/dist/lint/audit-catalog.d.ts.map +1 -1
- package/dist/lint/post-synth/graf101.d.ts +2 -2
- package/dist/lint/post-synth/graf102.d.ts +1 -1
- package/dist/lint/post-synth/graf104.d.ts +2 -2
- package/dist/lint/post-synth/graf106.d.ts +2 -2
- package/dist/lint/post-synth/graf107.d.ts +1 -1
- package/dist/lint/post-synth/graf108.d.ts +8 -0
- package/dist/lint/post-synth/graf108.d.ts.map +1 -0
- package/dist/lint/post-synth/graf109.d.ts +8 -0
- package/dist/lint/post-synth/graf109.d.ts.map +1 -0
- package/dist/lint/post-synth/graf110.d.ts +8 -0
- package/dist/lint/post-synth/graf110.d.ts.map +1 -0
- package/dist/lint/post-synth/graf111.d.ts +8 -0
- package/dist/lint/post-synth/graf111.d.ts.map +1 -0
- package/dist/lint/post-synth/graf112.d.ts +8 -0
- package/dist/lint/post-synth/graf112.d.ts.map +1 -0
- package/dist/lint/post-synth/graf113.d.ts +8 -0
- package/dist/lint/post-synth/graf113.d.ts.map +1 -0
- package/dist/lint/post-synth/graf114.d.ts +8 -0
- package/dist/lint/post-synth/graf114.d.ts.map +1 -0
- package/dist/lint/post-synth/graf115.d.ts +8 -0
- package/dist/lint/post-synth/graf115.d.ts.map +1 -0
- package/dist/lint/post-synth/grafana-helpers.d.ts +7 -5
- package/dist/lint/post-synth/grafana-helpers.d.ts.map +1 -1
- package/dist/lint/post-synth/index.d.ts.map +1 -1
- package/dist/lint/rules/literal-secret.d.ts +7 -3
- package/dist/lint/rules/literal-secret.d.ts.map +1 -1
- package/dist/lsp/hover.d.ts.map +1 -1
- package/dist/manifest.json +1 -1
- package/dist/members.d.ts +27 -0
- package/dist/members.d.ts.map +1 -0
- package/dist/meta.json +205 -0
- package/dist/okf/index.md +53 -4
- package/dist/okf/rules/GRAF002.md +3 -2
- package/dist/okf/rules/GRAF101.md +3 -2
- package/dist/okf/rules/GRAF102.md +1 -0
- package/dist/okf/rules/GRAF104.md +2 -2
- package/dist/okf/rules/GRAF106.md +2 -2
- package/dist/okf/rules/GRAF108.md +11 -0
- package/dist/okf/rules/GRAF109.md +15 -0
- package/dist/okf/rules/GRAF110.md +11 -0
- package/dist/okf/rules/GRAF111.md +11 -0
- package/dist/okf/rules/GRAF112.md +16 -0
- package/dist/okf/rules/GRAF113.md +16 -0
- package/dist/okf/rules/GRAF114.md +11 -0
- package/dist/okf/rules/GRAF115.md +11 -0
- package/dist/okf/types/AdhocVariable.md +9 -0
- package/dist/okf/types/AlertListPanel.md +9 -0
- package/dist/okf/types/AlertQuery.md +9 -0
- package/dist/okf/types/AlertRule.md +9 -0
- package/dist/okf/types/AlertRuleGroup.md +9 -0
- package/dist/okf/types/AzureMonitorQuery.md +9 -0
- package/dist/okf/types/BarChartPanel.md +9 -0
- package/dist/okf/types/BarGaugePanel.md +9 -0
- package/dist/okf/types/BigQueryQuery.md +9 -0
- package/dist/okf/types/CanvasPanel.md +9 -0
- package/dist/okf/types/ClassicConditionsExpression.md +9 -0
- package/dist/okf/types/CloudMonitoringQuery.md +9 -0
- package/dist/okf/types/CloudWatchQuery.md +9 -0
- package/dist/okf/types/ContactPoint.md +14 -0
- package/dist/okf/types/Dashboard.md +2 -1
- package/dist/okf/types/Datasource.md +3 -2
- package/dist/okf/types/DatasourceProvisioning.md +9 -0
- package/dist/okf/types/ElasticsearchQuery.md +9 -0
- package/dist/okf/types/ExternalDatasource.md +15 -0
- package/dist/okf/types/FlameGraphPanel.md +9 -0
- package/dist/okf/types/Folder.md +9 -0
- package/dist/okf/types/GeomapPanel.md +9 -0
- package/dist/okf/types/GroupByVariable.md +9 -0
- package/dist/okf/types/HistogramPanel.md +9 -0
- package/dist/okf/types/MSSQLQuery.md +9 -0
- package/dist/okf/types/MathExpression.md +9 -0
- package/dist/okf/types/MuteTiming.md +13 -0
- package/dist/okf/types/MySQLQuery.md +9 -0
- package/dist/okf/types/NodeGraphPanel.md +9 -0
- package/dist/okf/types/NotificationPolicy.md +9 -0
- package/dist/okf/types/NotificationTemplate.md +9 -0
- package/dist/okf/types/PieChartPanel.md +9 -0
- package/dist/okf/types/PostgresQuery.md +9 -0
- package/dist/okf/types/PyroscopeQuery.md +9 -0
- package/dist/okf/types/ReduceExpression.md +9 -0
- package/dist/okf/types/ResampleExpression.md +9 -0
- package/dist/okf/types/SqlExpression.md +9 -0
- package/dist/okf/types/StateTimelinePanel.md +9 -0
- package/dist/okf/types/StatusHistoryPanel.md +9 -0
- package/dist/okf/types/SwitchVariable.md +9 -0
- package/dist/okf/types/ThresholdExpression.md +9 -0
- package/dist/okf/types/TrendPanel.md +9 -0
- package/dist/okf/types/XYChartPanel.md +9 -0
- package/dist/op/activities/grafana-apply.d.ts +86 -0
- package/dist/op/activities/grafana-apply.d.ts.map +1 -0
- package/dist/op/activities/index.d.ts +9 -0
- package/dist/op/activities/index.d.ts.map +1 -0
- package/dist/op/builders.d.ts +24 -0
- package/dist/op/builders.d.ts.map +1 -0
- package/dist/ownership.d.ts +78 -0
- package/dist/ownership.d.ts.map +1 -0
- package/dist/panel-options.d.ts +65 -0
- package/dist/panel-options.d.ts.map +1 -0
- package/dist/panels.d.ts +46 -9
- package/dist/panels.d.ts.map +1 -1
- package/dist/pin.d.ts +29 -7
- package/dist/pin.d.ts.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/promql-check.d.ts +51 -0
- package/dist/promql-check.d.ts.map +1 -0
- package/dist/query-models.d.ts +95 -0
- package/dist/query-models.d.ts.map +1 -0
- package/dist/query.d.ts +116 -18
- package/dist/query.d.ts.map +1 -1
- package/dist/rules/graf101.ts +3 -3
- package/dist/rules/graf102.ts +1 -1
- package/dist/rules/graf104.ts +3 -3
- package/dist/rules/graf106.ts +3 -3
- package/dist/rules/graf107.ts +1 -1
- package/dist/rules/graf108.ts +17 -0
- package/dist/rules/graf109.ts +17 -0
- package/dist/rules/graf110.ts +17 -0
- package/dist/rules/graf111.ts +17 -0
- package/dist/rules/graf112.ts +17 -0
- package/dist/rules/graf113.ts +17 -0
- package/dist/rules/graf114.ts +17 -0
- package/dist/rules/graf115.ts +17 -0
- package/dist/rules/grafana-helpers.ts +27 -10
- package/dist/rules/literal-secret.ts +60 -6
- package/dist/schema/azuremonitor.gen.d.ts +354 -0
- package/dist/schema/azuremonitor.gen.d.ts.map +1 -0
- package/dist/schema/barchart.gen.d.ts +198 -0
- package/dist/schema/barchart.gen.d.ts.map +1 -0
- package/dist/schema/bargauge.gen.d.ts +97 -0
- package/dist/schema/bargauge.gen.d.ts.map +1 -0
- package/dist/schema/bigquery.gen.d.ts +93 -0
- package/dist/schema/bigquery.gen.d.ts.map +1 -0
- package/dist/schema/canvas.gen.d.ts +152 -0
- package/dist/schema/canvas.gen.d.ts.map +1 -0
- package/dist/schema/cloudwatch.gen.d.ts +394 -0
- package/dist/schema/cloudwatch.gen.d.ts.map +1 -0
- package/dist/schema/dashboard.gen.d.ts +196 -21
- package/dist/schema/dashboard.gen.d.ts.map +1 -1
- package/dist/schema/elasticsearch.gen.d.ts +444 -0
- package/dist/schema/elasticsearch.gen.d.ts.map +1 -0
- package/dist/schema/expr.gen.d.ts +606 -0
- package/dist/schema/expr.gen.d.ts.map +1 -0
- package/dist/schema/gauge.gen.d.ts.map +1 -1
- package/dist/schema/geomap.gen.d.ts +100 -0
- package/dist/schema/geomap.gen.d.ts.map +1 -0
- package/dist/schema/googlecloudmonitoring.gen.d.ts +312 -0
- package/dist/schema/googlecloudmonitoring.gen.d.ts.map +1 -0
- package/dist/schema/grafanapyroscope.gen.d.ts +60 -0
- package/dist/schema/grafanapyroscope.gen.d.ts.map +1 -0
- package/dist/schema/heatmap.gen.d.ts.map +1 -1
- package/dist/schema/histogram.gen.d.ts +132 -0
- package/dist/schema/histogram.gen.d.ts.map +1 -0
- package/dist/schema/index.d.ts +18 -0
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/logs.gen.d.ts +1 -0
- package/dist/schema/logs.gen.d.ts.map +1 -1
- package/dist/schema/loki.gen.d.ts.map +1 -1
- package/dist/schema/nodegraph.gen.d.ts +49 -0
- package/dist/schema/nodegraph.gen.d.ts.map +1 -0
- package/dist/schema/piechart.gen.d.ts +127 -0
- package/dist/schema/piechart.gen.d.ts.map +1 -0
- package/dist/schema/prometheus.gen.d.ts.map +1 -1
- package/dist/schema/stat.gen.d.ts.map +1 -1
- package/dist/schema/statetimeline.gen.d.ts +124 -0
- package/dist/schema/statetimeline.gen.d.ts.map +1 -0
- package/dist/schema/statushistory.gen.d.ts +114 -0
- package/dist/schema/statushistory.gen.d.ts.map +1 -0
- package/dist/schema/table.gen.d.ts +35 -3
- package/dist/schema/table.gen.d.ts.map +1 -1
- package/dist/schema/tempo.gen.d.ts.map +1 -1
- package/dist/schema/text.gen.d.ts.map +1 -1
- package/dist/schema/timeseries.gen.d.ts +5 -1
- package/dist/schema/timeseries.gen.d.ts.map +1 -1
- package/dist/schema/trend.gen.d.ts +180 -0
- package/dist/schema/trend.gen.d.ts.map +1 -0
- package/dist/schema/xychart.gen.d.ts +145 -0
- package/dist/schema/xychart.gen.d.ts.map +1 -0
- package/dist/schema-validate.d.ts +39 -4
- package/dist/schema-validate.d.ts.map +1 -1
- package/dist/serializer.d.ts +11 -3
- package/dist/serializer.d.ts.map +1 -1
- package/dist/skill-defs.d.ts.map +1 -1
- package/dist/skills/chant-grafana-alerting.md +49 -0
- package/dist/skills/chant-grafana-operations.md +108 -0
- package/dist/skills/chant-grafana-provisioning.md +3 -3
- package/dist/skills/chant-grafana.md +15 -8
- package/dist/spec/fetch-units-cli.d.ts +3 -0
- package/dist/spec/fetch-units-cli.d.ts.map +1 -0
- package/dist/spec/overlay.d.ts +43 -0
- package/dist/spec/overlay.d.ts.map +1 -0
- package/dist/spec/schemas.d.ts +21 -13
- package/dist/spec/schemas.d.ts.map +1 -1
- package/dist/spec/schemas.gen.d.ts +3 -0
- package/dist/spec/schemas.gen.d.ts.map +1 -0
- package/dist/spec/units.d.ts +35 -0
- package/dist/spec/units.d.ts.map +1 -0
- package/dist/spec/units.gen.d.ts +2 -0
- package/dist/spec/units.gen.d.ts.map +1 -0
- package/dist/transformations.d.ts +459 -0
- package/dist/transformations.d.ts.map +1 -0
- package/dist/util.d.ts +6 -0
- package/dist/util.d.ts.map +1 -1
- package/dist/validate-alerting.d.ts +65 -0
- package/dist/validate-alerting.d.ts.map +1 -0
- package/dist/validate-output.d.ts +62 -9
- package/dist/validate-output.d.ts.map +1 -1
- package/dist/validate.d.ts.map +1 -1
- package/dist/validation.d.ts +14 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/variables.d.ts +109 -7
- package/dist/variables.d.ts.map +1 -1
- package/package.json +12 -4
- package/src/actions/actions.test.ts +24 -0
- package/src/actions/grafana.ts +40 -0
- package/src/actions/index.ts +1 -0
- package/src/alerting-build.ts +376 -0
- package/src/alerting.e2e.test.ts +212 -0
- package/src/alerting.test.ts +272 -0
- package/src/alerting.ts +435 -0
- package/src/annotations.ts +84 -0
- package/src/api/apply.test.ts +256 -0
- package/src/api/apply.ts +394 -0
- package/src/api/bind.ts +58 -0
- package/src/api/client.ts +148 -0
- package/src/api/converge.ts +63 -0
- package/src/api/dashboards.ts +247 -0
- package/src/api/datasources.ts +33 -0
- package/src/api/fake-grafana-writes.ts +201 -0
- package/src/api/fake-grafana.ts +190 -0
- package/src/api/folders.ts +339 -0
- package/src/api/library-panels.ts +101 -0
- package/src/build.test.ts +351 -10
- package/src/build.ts +294 -55
- package/src/catalog.ts +104 -2
- package/src/codegen/docs.ts +50 -10
- package/src/codegen/generate.ts +27 -1
- package/src/codegen/schema-types.ts +16 -6
- package/src/composites/agent-dashboard.ts +6 -3
- package/src/composites/catalog.test.ts +2 -2
- package/src/composites/catalog.ts +82 -0
- package/src/composites/composites.test.ts +73 -9
- package/src/composites/index.ts +4 -2
- package/src/composites/queries.e2e.test.ts +374 -0
- package/src/composites/red-dashboard.ts +83 -12
- package/src/composites/shared.ts +14 -2
- package/src/composites/slo-alert-rules.ts +149 -0
- package/src/config.test.ts +61 -0
- package/src/config.ts +138 -0
- package/src/contact-point-secrets.ts +63 -0
- package/src/dashboard.ts +68 -9
- package/src/datasource-refs.test.ts +56 -0
- package/src/datasource-refs.ts +213 -0
- package/src/datasource-settings.test.ts +106 -0
- package/src/datasource-settings.ts +941 -0
- package/src/datasource.ts +123 -11
- package/src/deep-observe-hooks.ts +267 -0
- package/src/deep-observe.test.ts +311 -0
- package/src/deep-observe.ts +187 -0
- package/src/describe-resources.test.ts +271 -0
- package/src/describe-resources.ts +244 -0
- package/src/detect.ts +82 -5
- package/src/export-resources.test.ts +129 -0
- package/src/export-resources.ts +84 -0
- package/src/folder.ts +118 -0
- package/src/generated/lexicon-grafana.json +205 -0
- package/src/import/alerting-roundtrip.test.ts +161 -0
- package/src/import/alerting.ts +500 -0
- package/src/import/edits.ts +95 -0
- package/src/import/embedded.test.ts +45 -0
- package/src/import/embedded.ts +47 -0
- package/src/import/generated-types.e2e.test.ts +130 -0
- package/src/import/generator.test.ts +210 -0
- package/src/import/generator.ts +463 -0
- package/src/import/live-export.ts +264 -0
- package/src/import/mappings.ts +336 -0
- package/src/import/model.ts +117 -0
- package/src/import/normalize-alerting.ts +101 -0
- package/src/import/normalize.test.ts +117 -0
- package/src/import/normalize.ts +393 -0
- package/src/import/parser.test.ts +516 -0
- package/src/import/parser.ts +1387 -0
- package/src/import/report.ts +62 -0
- package/src/import/roundtrip.test.ts +563 -0
- package/src/import/testdata/fixtures.ts +137 -0
- package/src/import/v2.test.ts +292 -0
- package/src/import/v2.ts +804 -0
- package/src/import.e2e.test.ts +31 -84
- package/src/import.test.ts +9 -3
- package/src/index.ts +308 -14
- package/src/init-templates.test.ts +74 -0
- package/src/init-templates.ts +349 -0
- package/src/k8s.test.ts +98 -0
- package/src/k8s.ts +197 -0
- package/src/lint/audit-catalog.ts +68 -3
- package/src/lint/core-lint.test.ts +43 -0
- package/src/lint/post-synth/graf101.ts +3 -3
- package/src/lint/post-synth/graf102.ts +1 -1
- package/src/lint/post-synth/graf104.ts +3 -3
- package/src/lint/post-synth/graf106.ts +3 -3
- package/src/lint/post-synth/graf107.ts +1 -1
- package/src/lint/post-synth/graf108.ts +17 -0
- package/src/lint/post-synth/graf109.ts +17 -0
- package/src/lint/post-synth/graf110.ts +17 -0
- package/src/lint/post-synth/graf111.ts +17 -0
- package/src/lint/post-synth/graf112.ts +17 -0
- package/src/lint/post-synth/graf113.ts +17 -0
- package/src/lint/post-synth/graf114.ts +17 -0
- package/src/lint/post-synth/graf115.ts +17 -0
- package/src/lint/post-synth/grafana-helpers.ts +27 -10
- package/src/lint/post-synth/index.ts +16 -0
- package/src/lint/post-synth/post-synth.test.ts +333 -12
- package/src/lint/rules/literal-secret.ts +60 -6
- package/src/lint/rules/rules.test.ts +27 -0
- package/src/load-cost.test.ts +35 -0
- package/src/lsp/completions.test.ts +5 -0
- package/src/lsp/hover.test.ts +7 -0
- package/src/lsp/hover.ts +8 -1
- package/src/members.ts +68 -0
- package/src/observe.e2e.test.ts +255 -0
- package/src/op/activities/grafana-apply.e2e.test.ts +184 -0
- package/src/op/activities/grafana-apply.test.ts +243 -0
- package/src/op/activities/grafana-apply.ts +197 -0
- package/src/op/activities/index.ts +8 -0
- package/src/op/builders.test.ts +40 -0
- package/src/op/builders.ts +34 -0
- package/src/ownership.ts +122 -0
- package/src/panel-options.ts +66 -0
- package/src/panels.test.ts +53 -0
- package/src/panels.ts +148 -10
- package/src/pin.ts +69 -6
- package/src/plugin.test.ts +12 -2
- package/src/plugin.ts +75 -0
- package/src/promql-check.test.ts +108 -0
- package/src/promql-check.ts +193 -0
- package/src/query-models.ts +94 -0
- package/src/query.test.ts +166 -0
- package/src/query.ts +190 -20
- package/src/schema/azuremonitor.gen.ts +381 -0
- package/src/schema/barchart.gen.ts +221 -0
- package/src/schema/bargauge.gen.ts +111 -0
- package/src/schema/bigquery.gen.ts +110 -0
- package/src/schema/canvas.gen.ts +176 -0
- package/src/schema/cloudwatch.gen.ts +423 -0
- package/src/schema/dashboard.gen.ts +206 -22
- package/src/schema/elasticsearch.gen.ts +508 -0
- package/src/schema/expr.gen.ts +618 -0
- package/src/schema/gauge.gen.ts +2 -1
- package/src/schema/geomap.gen.ts +112 -0
- package/src/schema/googlecloudmonitoring.gen.ts +330 -0
- package/src/schema/grafanapyroscope.gen.ts +66 -0
- package/src/schema/heatmap.gen.ts +2 -1
- package/src/schema/histogram.gen.ts +151 -0
- package/src/schema/index.ts +18 -0
- package/src/schema/logs.gen.ts +3 -1
- package/src/schema/loki.gen.ts +2 -1
- package/src/schema/nodegraph.gen.ts +58 -0
- package/src/schema/piechart.gen.ts +146 -0
- package/src/schema/prometheus.gen.ts +2 -1
- package/src/schema/stat.gen.ts +2 -1
- package/src/schema/statetimeline.gen.ts +143 -0
- package/src/schema/statushistory.gen.ts +132 -0
- package/src/schema/table.gen.ts +41 -4
- package/src/schema/tempo.gen.ts +2 -1
- package/src/schema/text.gen.ts +2 -1
- package/src/schema/timeseries.gen.ts +7 -2
- package/src/schema/trend.gen.ts +208 -0
- package/src/schema/xychart.gen.ts +167 -0
- package/src/schema-overlay.test.ts +282 -0
- package/src/schema-validate.ts +199 -57
- package/src/schema.test.ts +4 -2
- package/src/serializer.test.ts +13 -1
- package/src/serializer.ts +11 -3
- package/src/skill-defs.ts +34 -0
- package/src/skills/chant-grafana-alerting.md +49 -0
- package/src/skills/chant-grafana-operations.md +108 -0
- package/src/skills/chant-grafana-provisioning.md +3 -3
- package/src/skills/chant-grafana.md +15 -8
- package/src/spec/fetch-cli.ts +3 -3
- package/src/spec/fetch-units-cli.ts +37 -0
- package/src/spec/overlay/canvas.overlay.json +142 -0
- package/src/spec/overlay/dashboard.overlay.json +378 -0
- package/src/spec/overlay/expr.overlay.json +14 -0
- package/src/spec/overlay/geomap.overlay.json +35 -0
- package/src/spec/overlay/logs.overlay.json +14 -0
- package/src/spec/overlay/nodegraph.overlay.json +31 -0
- package/src/spec/overlay/piechart.overlay.json +17 -0
- package/src/spec/overlay/table.overlay.json +103 -0
- package/src/spec/overlay/timeseries.overlay.json +21 -0
- package/src/spec/overlay/trend.overlay.json +17 -0
- package/src/spec/overlay/xychart.overlay.json +16 -0
- package/src/spec/overlay.ts +105 -0
- package/src/spec/schemas/azuremonitor.jsonschema.json +679 -0
- package/src/spec/schemas/barchart.jsonschema.json +419 -0
- package/src/spec/schemas/bargauge.jsonschema.json +224 -0
- package/src/spec/schemas/bigquery.jsonschema.json +290 -0
- package/src/spec/schemas/canvas.jsonschema.json +356 -0
- package/src/spec/schemas/cloudwatch.jsonschema.json +721 -0
- package/src/spec/schemas/dashboardv2.jsonschema.json +3387 -0
- package/src/spec/schemas/elasticsearch.jsonschema.json +1695 -0
- package/src/spec/schemas/expr.jsonschema.json +987 -0
- package/src/spec/schemas/geomap.jsonschema.json +220 -0
- package/src/spec/schemas/googlecloudmonitoring.jsonschema.json +488 -0
- package/src/spec/schemas/grafanapyroscope.jsonschema.json +93 -0
- package/src/spec/schemas/histogram.jsonschema.json +308 -0
- package/src/spec/schemas/nodegraph.jsonschema.json +77 -0
- package/src/spec/schemas/piechart.jsonschema.json +275 -0
- package/src/spec/schemas/statetimeline.jsonschema.json +324 -0
- package/src/spec/schemas/statushistory.jsonschema.json +292 -0
- package/src/spec/schemas/trend.jsonschema.json +449 -0
- package/src/spec/schemas/xychart.jsonschema.json +428 -0
- package/src/spec/schemas.gen.ts +40 -0
- package/src/spec/schemas.ts +30 -16
- package/src/spec/units.gen.ts +281 -0
- package/src/spec/units.ts +77 -0
- package/src/transformations.test.ts +65 -0
- package/src/transformations.ts +574 -0
- package/src/util.ts +8 -0
- package/src/validate-alerting.test.ts +255 -0
- package/src/validate-alerting.ts +430 -0
- package/src/validate-output.ts +427 -104
- package/src/validate.ts +28 -0
- package/src/validation.ts +27 -0
- package/src/variables.ts +120 -8
package/src/query.ts
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Typed queries, one class per datasource plugin
|
|
3
|
-
* `TempoQuery` (TraceQL)
|
|
4
|
-
*
|
|
2
|
+
* Typed queries, one class per datasource plugin. `PromQuery` (PromQL),
|
|
3
|
+
* `TempoQuery` (TraceQL), `LokiQuery` (LogQL), `ElasticsearchQuery`,
|
|
4
|
+
* `CloudWatchQuery`, `AzureMonitorQuery`, `CloudMonitoringQuery`,
|
|
5
|
+
* `BigQueryQuery` and `PyroscopeQuery` are typed from that plugin's query
|
|
6
|
+
* schema at `GRAFANA_SCHEMA_PIN`. `PostgresQuery`, `MySQLQuery` and
|
|
7
|
+
* `MSSQLQuery` have no schema upstream and are typed by hand from Grafana's
|
|
8
|
+
* source (`./query-models.ts`).
|
|
5
9
|
*
|
|
6
|
-
* The expression is a string
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
+
* The expression is a string. What the lexicon checks is where the query
|
|
11
|
+
* goes: `datasource` only accepts a datasource of the query's own plugin
|
|
12
|
+
* type, and GRAF101, GRAF102 and GRAF103 check the emitted references after
|
|
13
|
+
* a build. GRAF108 parses the PromQL of every query that reaches a
|
|
14
|
+
* Prometheus; TraceQL and LogQL are not parsed.
|
|
10
15
|
*
|
|
11
16
|
* `defineQuery` is the extension point for any other datasource plugin, and
|
|
12
17
|
* the three built-ins are defined through it.
|
|
@@ -14,18 +19,47 @@
|
|
|
14
19
|
|
|
15
20
|
import { createProperty } from "@intentius/chant/runtime";
|
|
16
21
|
import type { Declarable } from "@intentius/chant/declarable";
|
|
17
|
-
import type { DatasourceEntity, DatasourceRef } from "./datasource";
|
|
22
|
+
import type { DatasourceEntity, DatasourceRef, ExternalDatasourceEntity } from "./datasource";
|
|
18
23
|
import type { DatasourceVariableEntity } from "./variables";
|
|
19
24
|
import type { SchemaName } from "./pin";
|
|
20
25
|
import type { Dataquery as PrometheusDataquery } from "./schema/prometheus.gen";
|
|
21
26
|
import type { Dataquery as TempoDataquery } from "./schema/tempo.gen";
|
|
22
27
|
import type { Dataquery as LokiDataquery } from "./schema/loki.gen";
|
|
28
|
+
import type { Dataquery as ElasticsearchDataquery } from "./schema/elasticsearch.gen";
|
|
29
|
+
import type { Request as CloudWatchRequest } from "./schema/cloudwatch.gen";
|
|
30
|
+
import type { MonitorQuery as AzureMonitorDataquery } from "./schema/azuremonitor.gen";
|
|
31
|
+
import type { CloudMonitoringQuery as CloudMonitoringDataquery } from "./schema/googlecloudmonitoring.gen";
|
|
32
|
+
import type { Dataquery as BigQueryDataquery } from "./schema/bigquery.gen";
|
|
33
|
+
import type { Dataquery as PyroscopeDataquery } from "./schema/grafanapyroscope.gen";
|
|
34
|
+
import type { SqlQueryModel } from "./query-models";
|
|
23
35
|
|
|
24
|
-
/** Where a query or panel sends its request: a declared datasource, a datasource variable, or the ref of one declared elsewhere. */
|
|
25
|
-
export type DatasourceInput<T extends string = string> =
|
|
36
|
+
/** Where a query or panel sends its request: a declared or external datasource, a datasource variable, or the ref of one declared elsewhere. */
|
|
37
|
+
export type DatasourceInput<T extends string = string> =
|
|
38
|
+
| DatasourceEntity<T>
|
|
39
|
+
| ExternalDatasourceEntity<T>
|
|
40
|
+
| DatasourceVariableEntity<T>
|
|
41
|
+
| DatasourceRef<T>;
|
|
26
42
|
|
|
27
|
-
/**
|
|
28
|
-
|
|
43
|
+
/**
|
|
44
|
+
* A query model's fields, less what chant fills in (`datasource`, `refId`
|
|
45
|
+
* stays optional). A model that is a union (CloudWatch's metrics, logs and
|
|
46
|
+
* annotation queries) stays one, member by member.
|
|
47
|
+
*/
|
|
48
|
+
export type QueryModel<M> = M extends unknown ? Omit<M, "datasource"> : never;
|
|
49
|
+
|
|
50
|
+
/** `M` with the fields `K` optional, member by member: for fields a schema requires that Grafana fills in when they are missing. */
|
|
51
|
+
export type Loosen<M, K extends PropertyKey> = M extends unknown ? Omit<M, K> & Partial<Pick<M, K & keyof M>> : never;
|
|
52
|
+
|
|
53
|
+
type KeysOfUnion<U> = U extends unknown ? keyof U : never;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* A union of models as one object type: every member's fields, each
|
|
57
|
+
* optional, typed as the union of what the members allow there. A class
|
|
58
|
+
* whose props are a union could not have a single prop named by
|
|
59
|
+
* `PropsOf<typeof Class>["key"]`, which is how imported source types its
|
|
60
|
+
* lifted consts.
|
|
61
|
+
*/
|
|
62
|
+
export type MergedModel<U> = { [K in KeysOfUnion<U>]?: U extends unknown ? (K extends keyof U ? U[K] : never) : never };
|
|
29
63
|
|
|
30
64
|
export type QueryProps<M, T extends string> = QueryModel<M> & {
|
|
31
65
|
/** Overrides the panel's datasource for this query. */
|
|
@@ -46,6 +80,12 @@ export interface QueryDefinition<T extends string = string, M = Record<string, u
|
|
|
46
80
|
defaults?: Partial<M>;
|
|
47
81
|
/** True only for the queries this package ships. */
|
|
48
82
|
builtin: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Other plugin ids Grafana accepts for the same plugin (`aliasIDs` in its
|
|
85
|
+
* plugin.json), e.g. `postgres` for `grafana-postgresql-datasource`. The
|
|
86
|
+
* class is registered under each, so imports and GRAF107 find it by either.
|
|
87
|
+
*/
|
|
88
|
+
aliases?: readonly string[];
|
|
49
89
|
}
|
|
50
90
|
|
|
51
91
|
export interface QueryEntity<T extends string = string, M = Record<string, unknown>> extends Declarable {
|
|
@@ -66,9 +106,9 @@ function registry(): Map<string, QueryDefinition> {
|
|
|
66
106
|
return (g[REGISTRY_KEY] ??= new Map());
|
|
67
107
|
}
|
|
68
108
|
|
|
69
|
-
/** Every registered query definition,
|
|
109
|
+
/** Every registered query definition, once each (a definition with aliases is registered under several types). */
|
|
70
110
|
export function registeredQueries(): QueryDefinition[] {
|
|
71
|
-
return [...registry().values()];
|
|
111
|
+
return [...new Set(registry().values())];
|
|
72
112
|
}
|
|
73
113
|
|
|
74
114
|
export function queryDefinitionFor(datasourceType: string): QueryDefinition | undefined {
|
|
@@ -80,7 +120,7 @@ function makeQueryClass<T extends string, M>(def: QueryDefinition<T, M>): QueryC
|
|
|
80
120
|
if (existing?.builtin && !def.builtin) {
|
|
81
121
|
throw new Error(`grafana: queries for "${def.datasourceType}" are built in (${existing.className}); use that class.`);
|
|
82
122
|
}
|
|
83
|
-
registry().set(
|
|
123
|
+
for (const type of [def.datasourceType, ...(def.aliases ?? [])]) registry().set(type, def as unknown as QueryDefinition);
|
|
84
124
|
const Base = createProperty(`${QUERY_TYPE_PREFIX}${def.datasourceType}`, "grafana") as unknown as (
|
|
85
125
|
this: object,
|
|
86
126
|
props: Record<string, unknown>,
|
|
@@ -99,16 +139,16 @@ function makeQueryClass<T extends string, M>(def: QueryDefinition<T, M>): QueryC
|
|
|
99
139
|
*
|
|
100
140
|
* @example
|
|
101
141
|
* ```ts
|
|
102
|
-
* interface
|
|
142
|
+
* interface OpenSearchQueryModel { query: string; queryType?: "lucene" | "PPL"; refId?: string }
|
|
103
143
|
*
|
|
104
|
-
* export const
|
|
105
|
-
* datasourceType: "
|
|
106
|
-
* className: "
|
|
144
|
+
* export const OpenSearchQuery = defineQuery<OpenSearchQueryModel>()({
|
|
145
|
+
* datasourceType: "grafana-opensearch-datasource",
|
|
146
|
+
* className: "OpenSearchQuery",
|
|
107
147
|
* expressionField: "query",
|
|
108
148
|
* });
|
|
109
149
|
* ```
|
|
110
150
|
*/
|
|
111
|
-
export function defineQuery<M
|
|
151
|
+
export function defineQuery<M = Record<string, unknown>>() {
|
|
112
152
|
return function <T extends string>(def: Omit<QueryDefinition<T, M>, "builtin">): QueryClass<T, M> {
|
|
113
153
|
return makeQueryClass<T, M>({ ...def, builtin: false });
|
|
114
154
|
};
|
|
@@ -155,6 +195,136 @@ export const LokiQuery = makeQueryClass<"loki", LokiDataquery>({
|
|
|
155
195
|
builtin: true,
|
|
156
196
|
});
|
|
157
197
|
|
|
198
|
+
/**
|
|
199
|
+
* An Elasticsearch query: `query` is Lucene (or the query string of a raw
|
|
200
|
+
* data, raw document or logs query), `metrics` and `bucketAggs` the
|
|
201
|
+
* aggregations.
|
|
202
|
+
*/
|
|
203
|
+
export const ElasticsearchQuery = makeQueryClass<"elasticsearch", ElasticsearchDataquery>({
|
|
204
|
+
datasourceType: "elasticsearch",
|
|
205
|
+
className: "ElasticsearchQuery",
|
|
206
|
+
description: "An Elasticsearch query; query is Lucene, metrics and bucketAggs the aggregations",
|
|
207
|
+
schema: "elasticsearch",
|
|
208
|
+
expressionField: "query",
|
|
209
|
+
builtin: true,
|
|
210
|
+
});
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* A CloudWatch query: a metrics query (`queryMode: "Metrics"`), a Logs
|
|
214
|
+
* Insights query (`queryMode: "Logs"`, `expression` in `queryLanguage`) or an
|
|
215
|
+
* annotation query. The three schema definitions are merged into one type
|
|
216
|
+
* with every field but `queryMode` optional, so each field is one prop;
|
|
217
|
+
* GRAF107 checks the fields against the three definitions. Grafana's editor
|
|
218
|
+
* starts `id` and `region` at `""` and `"default"`
|
|
219
|
+
* (public/app/plugins/datasource/cloudwatch/defaultQueries.ts:12-27 and
|
|
220
|
+
* 41-52 at v13.2.2), and the backend reads a missing region as the
|
|
221
|
+
* datasource's default (pkg/tsdb/cloudwatch/cloudwatch.go:65).
|
|
222
|
+
*/
|
|
223
|
+
export const CloudWatchQuery = makeQueryClass<"cloudwatch", MergedModel<CloudWatchRequest> & Pick<CloudWatchRequest, "queryMode">>({
|
|
224
|
+
datasourceType: "cloudwatch",
|
|
225
|
+
className: "CloudWatchQuery",
|
|
226
|
+
description: "A CloudWatch metrics, Logs Insights or annotation query, by queryMode",
|
|
227
|
+
schema: "cloudwatch",
|
|
228
|
+
expressionField: "expression",
|
|
229
|
+
builtin: true,
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* An Azure Monitor query: `queryType` picks which of `azureMonitor`,
|
|
234
|
+
* `azureLogAnalytics` (KQL), `azureResourceGraph` or `azureTraces` holds it.
|
|
235
|
+
*/
|
|
236
|
+
export const AzureMonitorQuery = makeQueryClass<"grafana-azure-monitor-datasource", AzureMonitorDataquery>({
|
|
237
|
+
datasourceType: "grafana-azure-monitor-datasource",
|
|
238
|
+
className: "AzureMonitorQuery",
|
|
239
|
+
description: "An Azure Monitor metrics, Log Analytics (KQL), Resource Graph or traces query, by queryType",
|
|
240
|
+
schema: "azuremonitor",
|
|
241
|
+
builtin: true,
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* A Google Cloud Monitoring query (plugin id `stackdriver`): `queryType`
|
|
246
|
+
* picks which of `timeSeriesList`, `timeSeriesQuery` (MQL), `sloQuery` or
|
|
247
|
+
* `promQLQuery` holds it.
|
|
248
|
+
*/
|
|
249
|
+
export const CloudMonitoringQuery = makeQueryClass<"stackdriver", CloudMonitoringDataquery>({
|
|
250
|
+
datasourceType: "stackdriver",
|
|
251
|
+
className: "CloudMonitoringQuery",
|
|
252
|
+
description: "A Google Cloud Monitoring time series, MQL, SLO or PromQL query, by queryType",
|
|
253
|
+
schema: "googlecloudmonitoring",
|
|
254
|
+
builtin: true,
|
|
255
|
+
});
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* A BigQuery query: `rawSql` is GoogleSQL. `format` and `rawSql` may be left
|
|
259
|
+
* out: the plugin fills in `table` and `""` (src/utils.ts:147-160 in
|
|
260
|
+
* grafana/google-bigquery-datasource v3.4.2).
|
|
261
|
+
*/
|
|
262
|
+
export const BigQueryQuery = makeQueryClass<"grafana-bigquery-datasource", Loosen<BigQueryDataquery, "format" | "rawSql">>({
|
|
263
|
+
datasourceType: "grafana-bigquery-datasource",
|
|
264
|
+
className: "BigQueryQuery",
|
|
265
|
+
description: "A BigQuery query; rawSql is GoogleSQL",
|
|
266
|
+
schema: "bigquery",
|
|
267
|
+
expressionField: "rawSql",
|
|
268
|
+
builtin: true,
|
|
269
|
+
});
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* A Grafana Pyroscope query: `labelSelector` selects the profiles of
|
|
273
|
+
* `profileTypeId`. `labelSelector` and `groupBy` may be left out: the plugin
|
|
274
|
+
* starts them at `{}` and none (dataquery.ts:67-75 and datasource.ts:156-164
|
|
275
|
+
* in grafana-pyroscope-datasource 13.0.4, the version bundled with
|
|
276
|
+
* grafana/grafana:13.2.2).
|
|
277
|
+
*/
|
|
278
|
+
export const PyroscopeQuery = makeQueryClass<"grafana-pyroscope-datasource", Loosen<PyroscopeDataquery, "labelSelector" | "groupBy">>({
|
|
279
|
+
datasourceType: "grafana-pyroscope-datasource",
|
|
280
|
+
className: "PyroscopeQuery",
|
|
281
|
+
description: "A Grafana Pyroscope profile or metrics query; labelSelector selects the profiles",
|
|
282
|
+
schema: "grafanapyroscope",
|
|
283
|
+
expressionField: "labelSelector",
|
|
284
|
+
builtin: true,
|
|
285
|
+
});
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* A PostgreSQL query: `rawSql` is SQL with Grafana's macros. Also used for
|
|
289
|
+
* the plugin's old id, `postgres` (an `aliasIDs` entry in the plugin.json of
|
|
290
|
+
* grafana-postgresql-datasource 13.0.3, bundled with grafana/grafana:13.2.2).
|
|
291
|
+
*/
|
|
292
|
+
export const PostgresQuery = makeQueryClass<"grafana-postgresql-datasource" | "postgres", SqlQueryModel>({
|
|
293
|
+
datasourceType: "grafana-postgresql-datasource",
|
|
294
|
+
aliases: ["postgres"],
|
|
295
|
+
className: "PostgresQuery",
|
|
296
|
+
description: "A PostgreSQL query; rawSql is SQL with Grafana's macros",
|
|
297
|
+
expressionField: "rawSql",
|
|
298
|
+
builtin: true,
|
|
299
|
+
});
|
|
300
|
+
|
|
301
|
+
/** A MySQL query: `rawSql` is SQL with Grafana's macros. */
|
|
302
|
+
export const MySQLQuery = makeQueryClass<"mysql", SqlQueryModel>({
|
|
303
|
+
datasourceType: "mysql",
|
|
304
|
+
className: "MySQLQuery",
|
|
305
|
+
description: "A MySQL query; rawSql is SQL with Grafana's macros",
|
|
306
|
+
expressionField: "rawSql",
|
|
307
|
+
builtin: true,
|
|
308
|
+
});
|
|
309
|
+
|
|
310
|
+
/** A Microsoft SQL Server query: `rawSql` is T-SQL with Grafana's macros. */
|
|
311
|
+
export const MSSQLQuery = makeQueryClass<"mssql", SqlQueryModel>({
|
|
312
|
+
datasourceType: "mssql",
|
|
313
|
+
className: "MSSQLQuery",
|
|
314
|
+
description: "A Microsoft SQL Server query; rawSql is T-SQL with Grafana's macros",
|
|
315
|
+
expressionField: "rawSql",
|
|
316
|
+
builtin: true,
|
|
317
|
+
});
|
|
318
|
+
|
|
158
319
|
export type PromQueryEntity = InstanceType<typeof PromQuery>;
|
|
159
320
|
export type TempoQueryEntity = InstanceType<typeof TempoQuery>;
|
|
160
321
|
export type LokiQueryEntity = InstanceType<typeof LokiQuery>;
|
|
322
|
+
export type ElasticsearchQueryEntity = InstanceType<typeof ElasticsearchQuery>;
|
|
323
|
+
export type CloudWatchQueryEntity = InstanceType<typeof CloudWatchQuery>;
|
|
324
|
+
export type AzureMonitorQueryEntity = InstanceType<typeof AzureMonitorQuery>;
|
|
325
|
+
export type CloudMonitoringQueryEntity = InstanceType<typeof CloudMonitoringQuery>;
|
|
326
|
+
export type BigQueryQueryEntity = InstanceType<typeof BigQueryQuery>;
|
|
327
|
+
export type PyroscopeQueryEntity = InstanceType<typeof PyroscopeQuery>;
|
|
328
|
+
export type PostgresQueryEntity = InstanceType<typeof PostgresQuery>;
|
|
329
|
+
export type MySQLQueryEntity = InstanceType<typeof MySQLQuery>;
|
|
330
|
+
export type MSSQLQueryEntity = InstanceType<typeof MSSQLQuery>;
|
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
// Code generated by chant generate from the vendored Grafana schema
|
|
2
|
+
// src/spec/schemas/azuremonitor.jsonschema.json (see src/pin.ts) and its correction
|
|
3
|
+
// overlay in src/spec/overlay/ (see src/spec/overlay.ts). DO NOT EDIT.
|
|
4
|
+
/* eslint-disable */
|
|
5
|
+
|
|
6
|
+
export interface MonitorQuery {
|
|
7
|
+
/**
|
|
8
|
+
* A unique identifier for the query within the list of targets.
|
|
9
|
+
* In server side expressions, the refId is used as a variable name to identify results.
|
|
10
|
+
* By default, the UI will assign A->Z; however setting meaningful names may be useful.
|
|
11
|
+
*/
|
|
12
|
+
refId?: string | null;
|
|
13
|
+
/**
|
|
14
|
+
* If hide is set to true, Grafana will filter out the response(s) associated with this query before returning it to the panel.
|
|
15
|
+
*/
|
|
16
|
+
hide?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Specify the query flavor
|
|
19
|
+
* TODO make this required and give it a default
|
|
20
|
+
*/
|
|
21
|
+
queryType?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Azure subscription containing the resource(s) to be queried.
|
|
24
|
+
* Also used for template variable queries
|
|
25
|
+
*/
|
|
26
|
+
subscription?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Subscriptions to be queried via Azure Resource Graph.
|
|
29
|
+
*/
|
|
30
|
+
subscriptions?: string[];
|
|
31
|
+
/**
|
|
32
|
+
* Azure Monitor Metrics sub-query properties.
|
|
33
|
+
*/
|
|
34
|
+
azureMonitor?: MetricQuery;
|
|
35
|
+
/**
|
|
36
|
+
* Azure Monitor Logs sub-query properties.
|
|
37
|
+
*/
|
|
38
|
+
azureLogAnalytics?: LogsQuery;
|
|
39
|
+
/**
|
|
40
|
+
* Azure Resource Graph sub-query properties.
|
|
41
|
+
*/
|
|
42
|
+
azureResourceGraph?: ResourceGraphQuery;
|
|
43
|
+
/**
|
|
44
|
+
* Application Insights Traces sub-query properties.
|
|
45
|
+
*/
|
|
46
|
+
azureTraces?: TracesQuery;
|
|
47
|
+
/**
|
|
48
|
+
* @deprecated Legacy template variable support.
|
|
49
|
+
*/
|
|
50
|
+
grafanaTemplateVariableFn?: GrafanaTemplateVariableQuery;
|
|
51
|
+
/**
|
|
52
|
+
* Resource group used in template variable queries
|
|
53
|
+
*/
|
|
54
|
+
resourceGroup?: string;
|
|
55
|
+
/**
|
|
56
|
+
* Namespace used in template variable queries
|
|
57
|
+
*/
|
|
58
|
+
namespace?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Resource used in template variable queries
|
|
61
|
+
*/
|
|
62
|
+
resource?: string;
|
|
63
|
+
/**
|
|
64
|
+
* Region used in template variable queries
|
|
65
|
+
*/
|
|
66
|
+
region?: string;
|
|
67
|
+
/**
|
|
68
|
+
* Custom namespace used in template variable queries
|
|
69
|
+
*/
|
|
70
|
+
customNamespace?: string;
|
|
71
|
+
/**
|
|
72
|
+
* For mixed data sources the selected datasource is on the query level.
|
|
73
|
+
* For non mixed scenarios this is undefined.
|
|
74
|
+
* TODO find a better way to do this ^ that's friendly to schema
|
|
75
|
+
* TODO this shouldn't be unknown but DataSourceRef | null
|
|
76
|
+
*/
|
|
77
|
+
datasource?: DataSourceRef;
|
|
78
|
+
/**
|
|
79
|
+
* Used only for exemplar queries from Prometheus
|
|
80
|
+
*/
|
|
81
|
+
query?: string;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export interface MetricQuery {
|
|
85
|
+
/**
|
|
86
|
+
* Array of resource URIs to be queried.
|
|
87
|
+
*/
|
|
88
|
+
resources?: MonitorResource[];
|
|
89
|
+
/**
|
|
90
|
+
* metricNamespace is used as the resource type (or resource namespace).
|
|
91
|
+
* It's usually equal to the target metric namespace. e.g. microsoft.storage/storageaccounts
|
|
92
|
+
* Kept the name of the variable as metricNamespace to avoid backward incompatibility issues.
|
|
93
|
+
*/
|
|
94
|
+
metricNamespace?: string;
|
|
95
|
+
/**
|
|
96
|
+
* Used as the value for the metricNamespace property when it's different from the resource namespace.
|
|
97
|
+
*/
|
|
98
|
+
customNamespace?: string;
|
|
99
|
+
/**
|
|
100
|
+
* The metric to query data for within the specified metricNamespace. e.g. UsedCapacity
|
|
101
|
+
*/
|
|
102
|
+
metricName?: string;
|
|
103
|
+
/**
|
|
104
|
+
* The Azure region containing the resource(s).
|
|
105
|
+
*/
|
|
106
|
+
region?: string;
|
|
107
|
+
/**
|
|
108
|
+
* The granularity of data points to be queried. Defaults to auto.
|
|
109
|
+
*/
|
|
110
|
+
timeGrain?: string;
|
|
111
|
+
/**
|
|
112
|
+
* The aggregation to be used within the query. Defaults to the primaryAggregationType defined by the metric.
|
|
113
|
+
*/
|
|
114
|
+
aggregation?: string;
|
|
115
|
+
/**
|
|
116
|
+
* Filters to reduce the set of data returned. Dimensions that can be filtered on are defined by the metric.
|
|
117
|
+
*/
|
|
118
|
+
dimensionFilters?: MetricDimension[];
|
|
119
|
+
/**
|
|
120
|
+
* Maximum number of records to return. Defaults to 10.
|
|
121
|
+
*/
|
|
122
|
+
top?: string;
|
|
123
|
+
/**
|
|
124
|
+
* Time grains that are supported by the metric.
|
|
125
|
+
*/
|
|
126
|
+
allowedTimeGrainsMs?: number[];
|
|
127
|
+
/**
|
|
128
|
+
* Aliases can be set to modify the legend labels. e.g. {{ resourceGroup }}. See docs for more detail.
|
|
129
|
+
*/
|
|
130
|
+
alias?: string;
|
|
131
|
+
/**
|
|
132
|
+
* @deprecated
|
|
133
|
+
*/
|
|
134
|
+
timeGrainUnit?: string;
|
|
135
|
+
/**
|
|
136
|
+
* @deprecated This property was migrated to dimensionFilters and should only be accessed in the migration
|
|
137
|
+
*/
|
|
138
|
+
dimension?: string;
|
|
139
|
+
/**
|
|
140
|
+
* @deprecated This property was migrated to dimensionFilters and should only be accessed in the migration
|
|
141
|
+
*/
|
|
142
|
+
dimensionFilter?: string;
|
|
143
|
+
/**
|
|
144
|
+
* @deprecated Use metricNamespace instead
|
|
145
|
+
*/
|
|
146
|
+
metricDefinition?: string;
|
|
147
|
+
/**
|
|
148
|
+
* @deprecated Use resourceGroup, resourceName and metricNamespace instead
|
|
149
|
+
*/
|
|
150
|
+
resourceUri?: string;
|
|
151
|
+
/**
|
|
152
|
+
* @deprecated Use resources instead
|
|
153
|
+
*/
|
|
154
|
+
resourceGroup?: string;
|
|
155
|
+
/**
|
|
156
|
+
* @deprecated Use resources instead
|
|
157
|
+
*/
|
|
158
|
+
resourceName?: string;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export interface MonitorResource {
|
|
162
|
+
subscription?: string;
|
|
163
|
+
resourceGroup?: string;
|
|
164
|
+
resourceName?: string;
|
|
165
|
+
metricNamespace?: string;
|
|
166
|
+
region?: string;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
export interface MetricDimension {
|
|
170
|
+
/**
|
|
171
|
+
* Name of Dimension to be filtered on.
|
|
172
|
+
*/
|
|
173
|
+
dimension?: string;
|
|
174
|
+
/**
|
|
175
|
+
* String denoting the filter operation. Supports 'eq' - equals,'ne' - not equals, 'sw' - starts with. Note that some dimensions may not support all operators.
|
|
176
|
+
*/
|
|
177
|
+
operator?: string;
|
|
178
|
+
/**
|
|
179
|
+
* Values to match with the filter.
|
|
180
|
+
*/
|
|
181
|
+
filters?: string[];
|
|
182
|
+
/**
|
|
183
|
+
* @deprecated filter is deprecated in favour of filters to support multiselect.
|
|
184
|
+
*/
|
|
185
|
+
filter?: string;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Azure Monitor Logs sub-query properties
|
|
190
|
+
*/
|
|
191
|
+
export interface LogsQuery {
|
|
192
|
+
/**
|
|
193
|
+
* KQL query to be executed.
|
|
194
|
+
*/
|
|
195
|
+
query?: string;
|
|
196
|
+
/**
|
|
197
|
+
* Specifies the format results should be returned as.
|
|
198
|
+
*/
|
|
199
|
+
resultFormat?: ResultFormat;
|
|
200
|
+
/**
|
|
201
|
+
* Array of resource URIs to be queried.
|
|
202
|
+
*/
|
|
203
|
+
resources?: string[];
|
|
204
|
+
/**
|
|
205
|
+
* If set to true the dashboard time range will be used as a filter for the query. Otherwise the query time ranges will be used. Defaults to false.
|
|
206
|
+
*/
|
|
207
|
+
dashboardTime?: boolean;
|
|
208
|
+
/**
|
|
209
|
+
* If dashboardTime is set to true this value dictates which column the time filter will be applied to. Defaults to the first tables timeSpan column, the first datetime column found, or TimeGenerated
|
|
210
|
+
*/
|
|
211
|
+
timeColumn?: string;
|
|
212
|
+
/**
|
|
213
|
+
* If set to true the query will be run as a basic logs query
|
|
214
|
+
*/
|
|
215
|
+
basicLogsQuery?: boolean;
|
|
216
|
+
/**
|
|
217
|
+
* Workspace ID. This was removed in Grafana 8, but remains for backwards compat.
|
|
218
|
+
*/
|
|
219
|
+
workspace?: string;
|
|
220
|
+
/**
|
|
221
|
+
* @deprecated Use resources instead
|
|
222
|
+
*/
|
|
223
|
+
resource?: string;
|
|
224
|
+
/**
|
|
225
|
+
* @deprecated Use dashboardTime instead
|
|
226
|
+
*/
|
|
227
|
+
intersectTime?: boolean;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
export type ResultFormat = "table" | "time_series" | "trace" | "logs";
|
|
231
|
+
|
|
232
|
+
export interface ResourceGraphQuery {
|
|
233
|
+
/**
|
|
234
|
+
* Azure Resource Graph KQL query to be executed.
|
|
235
|
+
*/
|
|
236
|
+
query?: string;
|
|
237
|
+
/**
|
|
238
|
+
* Specifies the format results should be returned as. Defaults to table.
|
|
239
|
+
*/
|
|
240
|
+
resultFormat?: string;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Application Insights Traces sub-query properties
|
|
245
|
+
*/
|
|
246
|
+
export interface TracesQuery {
|
|
247
|
+
/**
|
|
248
|
+
* Specifies the format results should be returned as.
|
|
249
|
+
*/
|
|
250
|
+
resultFormat?: ResultFormat;
|
|
251
|
+
/**
|
|
252
|
+
* Array of resource URIs to be queried.
|
|
253
|
+
*/
|
|
254
|
+
resources?: string[];
|
|
255
|
+
/**
|
|
256
|
+
* Operation ID. Used only for Traces queries.
|
|
257
|
+
*/
|
|
258
|
+
operationId?: string;
|
|
259
|
+
/**
|
|
260
|
+
* Types of events to filter by.
|
|
261
|
+
*/
|
|
262
|
+
traceTypes?: string[];
|
|
263
|
+
/**
|
|
264
|
+
* Filters for property values.
|
|
265
|
+
*/
|
|
266
|
+
filters?: TracesFilter[];
|
|
267
|
+
/**
|
|
268
|
+
* KQL query to be executed.
|
|
269
|
+
*/
|
|
270
|
+
query?: string;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
export interface TracesFilter {
|
|
274
|
+
/**
|
|
275
|
+
* Property name, auto-populated based on available traces.
|
|
276
|
+
*/
|
|
277
|
+
property: string;
|
|
278
|
+
/**
|
|
279
|
+
* Comparison operator to use. Either equals or not equals.
|
|
280
|
+
*/
|
|
281
|
+
operation: string;
|
|
282
|
+
/**
|
|
283
|
+
* Values to filter by.
|
|
284
|
+
*/
|
|
285
|
+
filters: string[];
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
export type GrafanaTemplateVariableQuery = AppInsightsMetricNameQuery | AppInsightsGroupByQuery | SubscriptionsQuery | ResourceGroupsQuery | ResourceNamesQuery | MetricNamespaceQuery | MetricDefinitionsQuery | MetricNamesQuery | WorkspacesQuery | UnknownQuery;
|
|
289
|
+
|
|
290
|
+
export interface AppInsightsMetricNameQuery {
|
|
291
|
+
rawQuery?: string;
|
|
292
|
+
kind: "AppInsightsMetricNameQuery";
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
export interface AppInsightsGroupByQuery {
|
|
296
|
+
rawQuery?: string;
|
|
297
|
+
kind: "AppInsightsGroupByQuery";
|
|
298
|
+
metricName: string;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
export interface SubscriptionsQuery {
|
|
302
|
+
rawQuery?: string;
|
|
303
|
+
kind: "SubscriptionsQuery";
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
export interface ResourceGroupsQuery {
|
|
307
|
+
rawQuery?: string;
|
|
308
|
+
kind: "ResourceGroupsQuery";
|
|
309
|
+
subscription: string;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
export interface ResourceNamesQuery {
|
|
313
|
+
rawQuery?: string;
|
|
314
|
+
kind: "ResourceNamesQuery";
|
|
315
|
+
subscription: string;
|
|
316
|
+
resourceGroup: string;
|
|
317
|
+
metricNamespace: string;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
export interface MetricNamespaceQuery {
|
|
321
|
+
rawQuery?: string;
|
|
322
|
+
kind: "MetricNamespaceQuery";
|
|
323
|
+
subscription: string;
|
|
324
|
+
resourceGroup: string;
|
|
325
|
+
metricNamespace?: string;
|
|
326
|
+
resourceName?: string;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* @deprecated Use MetricNamespaceQuery instead
|
|
331
|
+
*/
|
|
332
|
+
export interface MetricDefinitionsQuery {
|
|
333
|
+
rawQuery?: string;
|
|
334
|
+
kind: "MetricDefinitionsQuery";
|
|
335
|
+
subscription: string;
|
|
336
|
+
resourceGroup: string;
|
|
337
|
+
metricNamespace?: string;
|
|
338
|
+
resourceName?: string;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
export interface MetricNamesQuery {
|
|
342
|
+
rawQuery?: string;
|
|
343
|
+
kind: "MetricNamesQuery";
|
|
344
|
+
subscription: string;
|
|
345
|
+
resourceGroup: string;
|
|
346
|
+
resourceName: string;
|
|
347
|
+
metricNamespace: string;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
export interface WorkspacesQuery {
|
|
351
|
+
rawQuery?: string;
|
|
352
|
+
kind: "WorkspacesQuery";
|
|
353
|
+
subscription: string;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
export interface UnknownQuery {
|
|
357
|
+
rawQuery?: string;
|
|
358
|
+
kind: "UnknownQuery";
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
/**
|
|
362
|
+
* Defines the supported queryTypes. GrafanaTemplateVariableFn is deprecated
|
|
363
|
+
*/
|
|
364
|
+
export type QueryType = "Azure Monitor" | "Azure Log Analytics" | "Azure Resource Graph" | "Azure Traces" | "Azure Subscriptions" | "Azure Resource Groups" | "Azure Namespaces" | "Azure Resource Names" | "Azure Metric Names" | "Azure Workspaces" | "Azure Regions" | "Grafana Template Variable Function" | "traceql" | "Azure Custom Namespaces" | "Azure Custom Metric Names";
|
|
365
|
+
|
|
366
|
+
export type GrafanaTemplateVariableQueryType = "AppInsightsMetricNameQuery" | "AppInsightsGroupByQuery" | "SubscriptionsQuery" | "ResourceGroupsQuery" | "ResourceNamesQuery" | "MetricNamespaceQuery" | "MetricNamesQuery" | "WorkspacesQuery" | "UnknownQuery";
|
|
367
|
+
|
|
368
|
+
export interface BaseGrafanaTemplateVariableQuery {
|
|
369
|
+
rawQuery?: string;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
export interface DataSourceRef {
|
|
373
|
+
/**
|
|
374
|
+
* The plugin type-id
|
|
375
|
+
*/
|
|
376
|
+
type?: string;
|
|
377
|
+
/**
|
|
378
|
+
* Specific datasource instance
|
|
379
|
+
*/
|
|
380
|
+
uid?: string;
|
|
381
|
+
}
|