@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.
Files changed (532) hide show
  1. package/README.md +24 -8
  2. package/dist/actions/grafana.d.ts +24 -0
  3. package/dist/actions/grafana.d.ts.map +1 -0
  4. package/dist/actions/index.d.ts +2 -0
  5. package/dist/actions/index.d.ts.map +1 -0
  6. package/dist/alerting-build.d.ts +128 -0
  7. package/dist/alerting-build.d.ts.map +1 -0
  8. package/dist/alerting.d.ts +273 -0
  9. package/dist/alerting.d.ts.map +1 -0
  10. package/dist/annotations.d.ts +61 -0
  11. package/dist/annotations.d.ts.map +1 -0
  12. package/dist/api/apply.d.ts +160 -0
  13. package/dist/api/apply.d.ts.map +1 -0
  14. package/dist/api/bind.d.ts +32 -0
  15. package/dist/api/bind.d.ts.map +1 -0
  16. package/dist/api/client.d.ts +76 -0
  17. package/dist/api/client.d.ts.map +1 -0
  18. package/dist/api/converge.d.ts +33 -0
  19. package/dist/api/converge.d.ts.map +1 -0
  20. package/dist/api/dashboards.d.ts +102 -0
  21. package/dist/api/dashboards.d.ts.map +1 -0
  22. package/dist/api/datasources.d.ts +26 -0
  23. package/dist/api/datasources.d.ts.map +1 -0
  24. package/dist/api/fake-grafana-writes.d.ts +41 -0
  25. package/dist/api/fake-grafana-writes.d.ts.map +1 -0
  26. package/dist/api/fake-grafana.d.ts +63 -0
  27. package/dist/api/fake-grafana.d.ts.map +1 -0
  28. package/dist/api/folders.d.ts +146 -0
  29. package/dist/api/folders.d.ts.map +1 -0
  30. package/dist/api/library-panels.d.ts +52 -0
  31. package/dist/api/library-panels.d.ts.map +1 -0
  32. package/dist/build.d.ts +55 -6
  33. package/dist/build.d.ts.map +1 -1
  34. package/dist/catalog.d.ts +1 -1
  35. package/dist/catalog.d.ts.map +1 -1
  36. package/dist/codegen/docs.d.ts.map +1 -1
  37. package/dist/codegen/generate.d.ts +7 -1
  38. package/dist/codegen/generate.d.ts.map +1 -1
  39. package/dist/codegen/schema-types.d.ts +3 -3
  40. package/dist/codegen/schema-types.d.ts.map +1 -1
  41. package/dist/composites/agent-dashboard.d.ts.map +1 -1
  42. package/dist/composites/catalog.d.ts.map +1 -1
  43. package/dist/composites/index.d.ts +4 -2
  44. package/dist/composites/index.d.ts.map +1 -1
  45. package/dist/composites/red-dashboard.d.ts +21 -2
  46. package/dist/composites/red-dashboard.d.ts.map +1 -1
  47. package/dist/composites/shared.d.ts +11 -3
  48. package/dist/composites/shared.d.ts.map +1 -1
  49. package/dist/composites/slo-alert-rules.d.ts +92 -0
  50. package/dist/composites/slo-alert-rules.d.ts.map +1 -0
  51. package/dist/config.d.ts +111 -0
  52. package/dist/config.d.ts.map +1 -0
  53. package/dist/contact-point-secrets.d.ts +17 -0
  54. package/dist/contact-point-secrets.d.ts.map +1 -0
  55. package/dist/dashboard.d.ts +51 -9
  56. package/dist/dashboard.d.ts.map +1 -1
  57. package/dist/datasource-refs.d.ts +99 -0
  58. package/dist/datasource-refs.d.ts.map +1 -0
  59. package/dist/datasource-settings.d.ts +834 -0
  60. package/dist/datasource-settings.d.ts.map +1 -0
  61. package/dist/datasource.d.ts +82 -11
  62. package/dist/datasource.d.ts.map +1 -1
  63. package/dist/deep-observe-hooks.d.ts +64 -0
  64. package/dist/deep-observe-hooks.d.ts.map +1 -0
  65. package/dist/deep-observe.d.ts +47 -0
  66. package/dist/deep-observe.d.ts.map +1 -0
  67. package/dist/describe-resources.d.ts +50 -0
  68. package/dist/describe-resources.d.ts.map +1 -0
  69. package/dist/detect.d.ts +32 -3
  70. package/dist/detect.d.ts.map +1 -1
  71. package/dist/export-resources.d.ts +38 -0
  72. package/dist/export-resources.d.ts.map +1 -0
  73. package/dist/folder.d.ts +68 -0
  74. package/dist/folder.d.ts.map +1 -0
  75. package/dist/import/alerting.d.ts +40 -0
  76. package/dist/import/alerting.d.ts.map +1 -0
  77. package/dist/import/edits.d.ts +47 -0
  78. package/dist/import/edits.d.ts.map +1 -0
  79. package/dist/import/embedded.d.ts +14 -0
  80. package/dist/import/embedded.d.ts.map +1 -0
  81. package/dist/import/generator.d.ts +60 -0
  82. package/dist/import/generator.d.ts.map +1 -0
  83. package/dist/import/live-export.d.ts +108 -0
  84. package/dist/import/live-export.d.ts.map +1 -0
  85. package/dist/import/mappings.d.ts +89 -0
  86. package/dist/import/mappings.d.ts.map +1 -0
  87. package/dist/import/model.d.ts +105 -0
  88. package/dist/import/model.d.ts.map +1 -0
  89. package/dist/import/normalize-alerting.d.ts +26 -0
  90. package/dist/import/normalize-alerting.d.ts.map +1 -0
  91. package/dist/import/normalize.d.ts +74 -0
  92. package/dist/import/normalize.d.ts.map +1 -0
  93. package/dist/import/parser.d.ts +125 -0
  94. package/dist/import/parser.d.ts.map +1 -0
  95. package/dist/import/report.d.ts +26 -0
  96. package/dist/import/report.d.ts.map +1 -0
  97. package/dist/import/testdata/fixtures.d.ts +41 -0
  98. package/dist/import/testdata/fixtures.d.ts.map +1 -0
  99. package/dist/import/v2.d.ts +73 -0
  100. package/dist/import/v2.d.ts.map +1 -0
  101. package/dist/index.d.ts +31 -12
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/init-templates.d.ts +27 -0
  104. package/dist/init-templates.d.ts.map +1 -0
  105. package/dist/integrity.json +22 -12
  106. package/dist/k8s.d.ts +107 -0
  107. package/dist/k8s.d.ts.map +1 -0
  108. package/dist/lint/audit-catalog.d.ts +2 -1
  109. package/dist/lint/audit-catalog.d.ts.map +1 -1
  110. package/dist/lint/post-synth/graf101.d.ts +2 -2
  111. package/dist/lint/post-synth/graf102.d.ts +1 -1
  112. package/dist/lint/post-synth/graf104.d.ts +2 -2
  113. package/dist/lint/post-synth/graf106.d.ts +2 -2
  114. package/dist/lint/post-synth/graf107.d.ts +1 -1
  115. package/dist/lint/post-synth/graf108.d.ts +8 -0
  116. package/dist/lint/post-synth/graf108.d.ts.map +1 -0
  117. package/dist/lint/post-synth/graf109.d.ts +8 -0
  118. package/dist/lint/post-synth/graf109.d.ts.map +1 -0
  119. package/dist/lint/post-synth/graf110.d.ts +8 -0
  120. package/dist/lint/post-synth/graf110.d.ts.map +1 -0
  121. package/dist/lint/post-synth/graf111.d.ts +8 -0
  122. package/dist/lint/post-synth/graf111.d.ts.map +1 -0
  123. package/dist/lint/post-synth/graf112.d.ts +8 -0
  124. package/dist/lint/post-synth/graf112.d.ts.map +1 -0
  125. package/dist/lint/post-synth/graf113.d.ts +8 -0
  126. package/dist/lint/post-synth/graf113.d.ts.map +1 -0
  127. package/dist/lint/post-synth/graf114.d.ts +8 -0
  128. package/dist/lint/post-synth/graf114.d.ts.map +1 -0
  129. package/dist/lint/post-synth/graf115.d.ts +8 -0
  130. package/dist/lint/post-synth/graf115.d.ts.map +1 -0
  131. package/dist/lint/post-synth/grafana-helpers.d.ts +7 -5
  132. package/dist/lint/post-synth/grafana-helpers.d.ts.map +1 -1
  133. package/dist/lint/post-synth/index.d.ts.map +1 -1
  134. package/dist/lint/rules/literal-secret.d.ts +7 -3
  135. package/dist/lint/rules/literal-secret.d.ts.map +1 -1
  136. package/dist/lsp/hover.d.ts.map +1 -1
  137. package/dist/manifest.json +1 -1
  138. package/dist/members.d.ts +27 -0
  139. package/dist/members.d.ts.map +1 -0
  140. package/dist/meta.json +205 -0
  141. package/dist/okf/index.md +53 -4
  142. package/dist/okf/rules/GRAF002.md +3 -2
  143. package/dist/okf/rules/GRAF101.md +3 -2
  144. package/dist/okf/rules/GRAF102.md +1 -0
  145. package/dist/okf/rules/GRAF104.md +2 -2
  146. package/dist/okf/rules/GRAF106.md +2 -2
  147. package/dist/okf/rules/GRAF108.md +11 -0
  148. package/dist/okf/rules/GRAF109.md +15 -0
  149. package/dist/okf/rules/GRAF110.md +11 -0
  150. package/dist/okf/rules/GRAF111.md +11 -0
  151. package/dist/okf/rules/GRAF112.md +16 -0
  152. package/dist/okf/rules/GRAF113.md +16 -0
  153. package/dist/okf/rules/GRAF114.md +11 -0
  154. package/dist/okf/rules/GRAF115.md +11 -0
  155. package/dist/okf/types/AdhocVariable.md +9 -0
  156. package/dist/okf/types/AlertListPanel.md +9 -0
  157. package/dist/okf/types/AlertQuery.md +9 -0
  158. package/dist/okf/types/AlertRule.md +9 -0
  159. package/dist/okf/types/AlertRuleGroup.md +9 -0
  160. package/dist/okf/types/AzureMonitorQuery.md +9 -0
  161. package/dist/okf/types/BarChartPanel.md +9 -0
  162. package/dist/okf/types/BarGaugePanel.md +9 -0
  163. package/dist/okf/types/BigQueryQuery.md +9 -0
  164. package/dist/okf/types/CanvasPanel.md +9 -0
  165. package/dist/okf/types/ClassicConditionsExpression.md +9 -0
  166. package/dist/okf/types/CloudMonitoringQuery.md +9 -0
  167. package/dist/okf/types/CloudWatchQuery.md +9 -0
  168. package/dist/okf/types/ContactPoint.md +14 -0
  169. package/dist/okf/types/Dashboard.md +2 -1
  170. package/dist/okf/types/Datasource.md +3 -2
  171. package/dist/okf/types/DatasourceProvisioning.md +9 -0
  172. package/dist/okf/types/ElasticsearchQuery.md +9 -0
  173. package/dist/okf/types/ExternalDatasource.md +15 -0
  174. package/dist/okf/types/FlameGraphPanel.md +9 -0
  175. package/dist/okf/types/Folder.md +9 -0
  176. package/dist/okf/types/GeomapPanel.md +9 -0
  177. package/dist/okf/types/GroupByVariable.md +9 -0
  178. package/dist/okf/types/HistogramPanel.md +9 -0
  179. package/dist/okf/types/MSSQLQuery.md +9 -0
  180. package/dist/okf/types/MathExpression.md +9 -0
  181. package/dist/okf/types/MuteTiming.md +13 -0
  182. package/dist/okf/types/MySQLQuery.md +9 -0
  183. package/dist/okf/types/NodeGraphPanel.md +9 -0
  184. package/dist/okf/types/NotificationPolicy.md +9 -0
  185. package/dist/okf/types/NotificationTemplate.md +9 -0
  186. package/dist/okf/types/PieChartPanel.md +9 -0
  187. package/dist/okf/types/PostgresQuery.md +9 -0
  188. package/dist/okf/types/PyroscopeQuery.md +9 -0
  189. package/dist/okf/types/ReduceExpression.md +9 -0
  190. package/dist/okf/types/ResampleExpression.md +9 -0
  191. package/dist/okf/types/SqlExpression.md +9 -0
  192. package/dist/okf/types/StateTimelinePanel.md +9 -0
  193. package/dist/okf/types/StatusHistoryPanel.md +9 -0
  194. package/dist/okf/types/SwitchVariable.md +9 -0
  195. package/dist/okf/types/ThresholdExpression.md +9 -0
  196. package/dist/okf/types/TrendPanel.md +9 -0
  197. package/dist/okf/types/XYChartPanel.md +9 -0
  198. package/dist/op/activities/grafana-apply.d.ts +86 -0
  199. package/dist/op/activities/grafana-apply.d.ts.map +1 -0
  200. package/dist/op/activities/index.d.ts +9 -0
  201. package/dist/op/activities/index.d.ts.map +1 -0
  202. package/dist/op/builders.d.ts +24 -0
  203. package/dist/op/builders.d.ts.map +1 -0
  204. package/dist/ownership.d.ts +78 -0
  205. package/dist/ownership.d.ts.map +1 -0
  206. package/dist/panel-options.d.ts +65 -0
  207. package/dist/panel-options.d.ts.map +1 -0
  208. package/dist/panels.d.ts +46 -9
  209. package/dist/panels.d.ts.map +1 -1
  210. package/dist/pin.d.ts +29 -7
  211. package/dist/pin.d.ts.map +1 -1
  212. package/dist/plugin.d.ts.map +1 -1
  213. package/dist/promql-check.d.ts +51 -0
  214. package/dist/promql-check.d.ts.map +1 -0
  215. package/dist/query-models.d.ts +95 -0
  216. package/dist/query-models.d.ts.map +1 -0
  217. package/dist/query.d.ts +116 -18
  218. package/dist/query.d.ts.map +1 -1
  219. package/dist/rules/graf101.ts +3 -3
  220. package/dist/rules/graf102.ts +1 -1
  221. package/dist/rules/graf104.ts +3 -3
  222. package/dist/rules/graf106.ts +3 -3
  223. package/dist/rules/graf107.ts +1 -1
  224. package/dist/rules/graf108.ts +17 -0
  225. package/dist/rules/graf109.ts +17 -0
  226. package/dist/rules/graf110.ts +17 -0
  227. package/dist/rules/graf111.ts +17 -0
  228. package/dist/rules/graf112.ts +17 -0
  229. package/dist/rules/graf113.ts +17 -0
  230. package/dist/rules/graf114.ts +17 -0
  231. package/dist/rules/graf115.ts +17 -0
  232. package/dist/rules/grafana-helpers.ts +27 -10
  233. package/dist/rules/literal-secret.ts +60 -6
  234. package/dist/schema/azuremonitor.gen.d.ts +354 -0
  235. package/dist/schema/azuremonitor.gen.d.ts.map +1 -0
  236. package/dist/schema/barchart.gen.d.ts +198 -0
  237. package/dist/schema/barchart.gen.d.ts.map +1 -0
  238. package/dist/schema/bargauge.gen.d.ts +97 -0
  239. package/dist/schema/bargauge.gen.d.ts.map +1 -0
  240. package/dist/schema/bigquery.gen.d.ts +93 -0
  241. package/dist/schema/bigquery.gen.d.ts.map +1 -0
  242. package/dist/schema/canvas.gen.d.ts +152 -0
  243. package/dist/schema/canvas.gen.d.ts.map +1 -0
  244. package/dist/schema/cloudwatch.gen.d.ts +394 -0
  245. package/dist/schema/cloudwatch.gen.d.ts.map +1 -0
  246. package/dist/schema/dashboard.gen.d.ts +196 -21
  247. package/dist/schema/dashboard.gen.d.ts.map +1 -1
  248. package/dist/schema/elasticsearch.gen.d.ts +444 -0
  249. package/dist/schema/elasticsearch.gen.d.ts.map +1 -0
  250. package/dist/schema/expr.gen.d.ts +606 -0
  251. package/dist/schema/expr.gen.d.ts.map +1 -0
  252. package/dist/schema/gauge.gen.d.ts.map +1 -1
  253. package/dist/schema/geomap.gen.d.ts +100 -0
  254. package/dist/schema/geomap.gen.d.ts.map +1 -0
  255. package/dist/schema/googlecloudmonitoring.gen.d.ts +312 -0
  256. package/dist/schema/googlecloudmonitoring.gen.d.ts.map +1 -0
  257. package/dist/schema/grafanapyroscope.gen.d.ts +60 -0
  258. package/dist/schema/grafanapyroscope.gen.d.ts.map +1 -0
  259. package/dist/schema/heatmap.gen.d.ts.map +1 -1
  260. package/dist/schema/histogram.gen.d.ts +132 -0
  261. package/dist/schema/histogram.gen.d.ts.map +1 -0
  262. package/dist/schema/index.d.ts +18 -0
  263. package/dist/schema/index.d.ts.map +1 -1
  264. package/dist/schema/logs.gen.d.ts +1 -0
  265. package/dist/schema/logs.gen.d.ts.map +1 -1
  266. package/dist/schema/loki.gen.d.ts.map +1 -1
  267. package/dist/schema/nodegraph.gen.d.ts +49 -0
  268. package/dist/schema/nodegraph.gen.d.ts.map +1 -0
  269. package/dist/schema/piechart.gen.d.ts +127 -0
  270. package/dist/schema/piechart.gen.d.ts.map +1 -0
  271. package/dist/schema/prometheus.gen.d.ts.map +1 -1
  272. package/dist/schema/stat.gen.d.ts.map +1 -1
  273. package/dist/schema/statetimeline.gen.d.ts +124 -0
  274. package/dist/schema/statetimeline.gen.d.ts.map +1 -0
  275. package/dist/schema/statushistory.gen.d.ts +114 -0
  276. package/dist/schema/statushistory.gen.d.ts.map +1 -0
  277. package/dist/schema/table.gen.d.ts +35 -3
  278. package/dist/schema/table.gen.d.ts.map +1 -1
  279. package/dist/schema/tempo.gen.d.ts.map +1 -1
  280. package/dist/schema/text.gen.d.ts.map +1 -1
  281. package/dist/schema/timeseries.gen.d.ts +5 -1
  282. package/dist/schema/timeseries.gen.d.ts.map +1 -1
  283. package/dist/schema/trend.gen.d.ts +180 -0
  284. package/dist/schema/trend.gen.d.ts.map +1 -0
  285. package/dist/schema/xychart.gen.d.ts +145 -0
  286. package/dist/schema/xychart.gen.d.ts.map +1 -0
  287. package/dist/schema-validate.d.ts +39 -4
  288. package/dist/schema-validate.d.ts.map +1 -1
  289. package/dist/serializer.d.ts +11 -3
  290. package/dist/serializer.d.ts.map +1 -1
  291. package/dist/skill-defs.d.ts.map +1 -1
  292. package/dist/skills/chant-grafana-alerting.md +49 -0
  293. package/dist/skills/chant-grafana-operations.md +108 -0
  294. package/dist/skills/chant-grafana-provisioning.md +3 -3
  295. package/dist/skills/chant-grafana.md +15 -8
  296. package/dist/spec/fetch-units-cli.d.ts +3 -0
  297. package/dist/spec/fetch-units-cli.d.ts.map +1 -0
  298. package/dist/spec/overlay.d.ts +43 -0
  299. package/dist/spec/overlay.d.ts.map +1 -0
  300. package/dist/spec/schemas.d.ts +21 -13
  301. package/dist/spec/schemas.d.ts.map +1 -1
  302. package/dist/spec/schemas.gen.d.ts +3 -0
  303. package/dist/spec/schemas.gen.d.ts.map +1 -0
  304. package/dist/spec/units.d.ts +35 -0
  305. package/dist/spec/units.d.ts.map +1 -0
  306. package/dist/spec/units.gen.d.ts +2 -0
  307. package/dist/spec/units.gen.d.ts.map +1 -0
  308. package/dist/transformations.d.ts +459 -0
  309. package/dist/transformations.d.ts.map +1 -0
  310. package/dist/util.d.ts +6 -0
  311. package/dist/util.d.ts.map +1 -1
  312. package/dist/validate-alerting.d.ts +65 -0
  313. package/dist/validate-alerting.d.ts.map +1 -0
  314. package/dist/validate-output.d.ts +62 -9
  315. package/dist/validate-output.d.ts.map +1 -1
  316. package/dist/validate.d.ts.map +1 -1
  317. package/dist/validation.d.ts +14 -0
  318. package/dist/validation.d.ts.map +1 -0
  319. package/dist/variables.d.ts +109 -7
  320. package/dist/variables.d.ts.map +1 -1
  321. package/package.json +12 -4
  322. package/src/actions/actions.test.ts +24 -0
  323. package/src/actions/grafana.ts +40 -0
  324. package/src/actions/index.ts +1 -0
  325. package/src/alerting-build.ts +376 -0
  326. package/src/alerting.e2e.test.ts +212 -0
  327. package/src/alerting.test.ts +272 -0
  328. package/src/alerting.ts +435 -0
  329. package/src/annotations.ts +84 -0
  330. package/src/api/apply.test.ts +256 -0
  331. package/src/api/apply.ts +394 -0
  332. package/src/api/bind.ts +58 -0
  333. package/src/api/client.ts +148 -0
  334. package/src/api/converge.ts +63 -0
  335. package/src/api/dashboards.ts +247 -0
  336. package/src/api/datasources.ts +33 -0
  337. package/src/api/fake-grafana-writes.ts +201 -0
  338. package/src/api/fake-grafana.ts +190 -0
  339. package/src/api/folders.ts +339 -0
  340. package/src/api/library-panels.ts +101 -0
  341. package/src/build.test.ts +351 -10
  342. package/src/build.ts +294 -55
  343. package/src/catalog.ts +104 -2
  344. package/src/codegen/docs.ts +50 -10
  345. package/src/codegen/generate.ts +27 -1
  346. package/src/codegen/schema-types.ts +16 -6
  347. package/src/composites/agent-dashboard.ts +6 -3
  348. package/src/composites/catalog.test.ts +2 -2
  349. package/src/composites/catalog.ts +82 -0
  350. package/src/composites/composites.test.ts +73 -9
  351. package/src/composites/index.ts +4 -2
  352. package/src/composites/queries.e2e.test.ts +374 -0
  353. package/src/composites/red-dashboard.ts +83 -12
  354. package/src/composites/shared.ts +14 -2
  355. package/src/composites/slo-alert-rules.ts +149 -0
  356. package/src/config.test.ts +61 -0
  357. package/src/config.ts +138 -0
  358. package/src/contact-point-secrets.ts +63 -0
  359. package/src/dashboard.ts +68 -9
  360. package/src/datasource-refs.test.ts +56 -0
  361. package/src/datasource-refs.ts +213 -0
  362. package/src/datasource-settings.test.ts +106 -0
  363. package/src/datasource-settings.ts +941 -0
  364. package/src/datasource.ts +123 -11
  365. package/src/deep-observe-hooks.ts +267 -0
  366. package/src/deep-observe.test.ts +311 -0
  367. package/src/deep-observe.ts +187 -0
  368. package/src/describe-resources.test.ts +271 -0
  369. package/src/describe-resources.ts +244 -0
  370. package/src/detect.ts +82 -5
  371. package/src/export-resources.test.ts +129 -0
  372. package/src/export-resources.ts +84 -0
  373. package/src/folder.ts +118 -0
  374. package/src/generated/lexicon-grafana.json +205 -0
  375. package/src/import/alerting-roundtrip.test.ts +161 -0
  376. package/src/import/alerting.ts +500 -0
  377. package/src/import/edits.ts +95 -0
  378. package/src/import/embedded.test.ts +45 -0
  379. package/src/import/embedded.ts +47 -0
  380. package/src/import/generated-types.e2e.test.ts +130 -0
  381. package/src/import/generator.test.ts +210 -0
  382. package/src/import/generator.ts +463 -0
  383. package/src/import/live-export.ts +264 -0
  384. package/src/import/mappings.ts +336 -0
  385. package/src/import/model.ts +117 -0
  386. package/src/import/normalize-alerting.ts +101 -0
  387. package/src/import/normalize.test.ts +117 -0
  388. package/src/import/normalize.ts +393 -0
  389. package/src/import/parser.test.ts +516 -0
  390. package/src/import/parser.ts +1387 -0
  391. package/src/import/report.ts +62 -0
  392. package/src/import/roundtrip.test.ts +563 -0
  393. package/src/import/testdata/fixtures.ts +137 -0
  394. package/src/import/v2.test.ts +292 -0
  395. package/src/import/v2.ts +804 -0
  396. package/src/import.e2e.test.ts +31 -84
  397. package/src/import.test.ts +9 -3
  398. package/src/index.ts +308 -14
  399. package/src/init-templates.test.ts +74 -0
  400. package/src/init-templates.ts +349 -0
  401. package/src/k8s.test.ts +98 -0
  402. package/src/k8s.ts +197 -0
  403. package/src/lint/audit-catalog.ts +68 -3
  404. package/src/lint/core-lint.test.ts +43 -0
  405. package/src/lint/post-synth/graf101.ts +3 -3
  406. package/src/lint/post-synth/graf102.ts +1 -1
  407. package/src/lint/post-synth/graf104.ts +3 -3
  408. package/src/lint/post-synth/graf106.ts +3 -3
  409. package/src/lint/post-synth/graf107.ts +1 -1
  410. package/src/lint/post-synth/graf108.ts +17 -0
  411. package/src/lint/post-synth/graf109.ts +17 -0
  412. package/src/lint/post-synth/graf110.ts +17 -0
  413. package/src/lint/post-synth/graf111.ts +17 -0
  414. package/src/lint/post-synth/graf112.ts +17 -0
  415. package/src/lint/post-synth/graf113.ts +17 -0
  416. package/src/lint/post-synth/graf114.ts +17 -0
  417. package/src/lint/post-synth/graf115.ts +17 -0
  418. package/src/lint/post-synth/grafana-helpers.ts +27 -10
  419. package/src/lint/post-synth/index.ts +16 -0
  420. package/src/lint/post-synth/post-synth.test.ts +333 -12
  421. package/src/lint/rules/literal-secret.ts +60 -6
  422. package/src/lint/rules/rules.test.ts +27 -0
  423. package/src/load-cost.test.ts +35 -0
  424. package/src/lsp/completions.test.ts +5 -0
  425. package/src/lsp/hover.test.ts +7 -0
  426. package/src/lsp/hover.ts +8 -1
  427. package/src/members.ts +68 -0
  428. package/src/observe.e2e.test.ts +255 -0
  429. package/src/op/activities/grafana-apply.e2e.test.ts +184 -0
  430. package/src/op/activities/grafana-apply.test.ts +243 -0
  431. package/src/op/activities/grafana-apply.ts +197 -0
  432. package/src/op/activities/index.ts +8 -0
  433. package/src/op/builders.test.ts +40 -0
  434. package/src/op/builders.ts +34 -0
  435. package/src/ownership.ts +122 -0
  436. package/src/panel-options.ts +66 -0
  437. package/src/panels.test.ts +53 -0
  438. package/src/panels.ts +148 -10
  439. package/src/pin.ts +69 -6
  440. package/src/plugin.test.ts +12 -2
  441. package/src/plugin.ts +75 -0
  442. package/src/promql-check.test.ts +108 -0
  443. package/src/promql-check.ts +193 -0
  444. package/src/query-models.ts +94 -0
  445. package/src/query.test.ts +166 -0
  446. package/src/query.ts +190 -20
  447. package/src/schema/azuremonitor.gen.ts +381 -0
  448. package/src/schema/barchart.gen.ts +221 -0
  449. package/src/schema/bargauge.gen.ts +111 -0
  450. package/src/schema/bigquery.gen.ts +110 -0
  451. package/src/schema/canvas.gen.ts +176 -0
  452. package/src/schema/cloudwatch.gen.ts +423 -0
  453. package/src/schema/dashboard.gen.ts +206 -22
  454. package/src/schema/elasticsearch.gen.ts +508 -0
  455. package/src/schema/expr.gen.ts +618 -0
  456. package/src/schema/gauge.gen.ts +2 -1
  457. package/src/schema/geomap.gen.ts +112 -0
  458. package/src/schema/googlecloudmonitoring.gen.ts +330 -0
  459. package/src/schema/grafanapyroscope.gen.ts +66 -0
  460. package/src/schema/heatmap.gen.ts +2 -1
  461. package/src/schema/histogram.gen.ts +151 -0
  462. package/src/schema/index.ts +18 -0
  463. package/src/schema/logs.gen.ts +3 -1
  464. package/src/schema/loki.gen.ts +2 -1
  465. package/src/schema/nodegraph.gen.ts +58 -0
  466. package/src/schema/piechart.gen.ts +146 -0
  467. package/src/schema/prometheus.gen.ts +2 -1
  468. package/src/schema/stat.gen.ts +2 -1
  469. package/src/schema/statetimeline.gen.ts +143 -0
  470. package/src/schema/statushistory.gen.ts +132 -0
  471. package/src/schema/table.gen.ts +41 -4
  472. package/src/schema/tempo.gen.ts +2 -1
  473. package/src/schema/text.gen.ts +2 -1
  474. package/src/schema/timeseries.gen.ts +7 -2
  475. package/src/schema/trend.gen.ts +208 -0
  476. package/src/schema/xychart.gen.ts +167 -0
  477. package/src/schema-overlay.test.ts +282 -0
  478. package/src/schema-validate.ts +199 -57
  479. package/src/schema.test.ts +4 -2
  480. package/src/serializer.test.ts +13 -1
  481. package/src/serializer.ts +11 -3
  482. package/src/skill-defs.ts +34 -0
  483. package/src/skills/chant-grafana-alerting.md +49 -0
  484. package/src/skills/chant-grafana-operations.md +108 -0
  485. package/src/skills/chant-grafana-provisioning.md +3 -3
  486. package/src/skills/chant-grafana.md +15 -8
  487. package/src/spec/fetch-cli.ts +3 -3
  488. package/src/spec/fetch-units-cli.ts +37 -0
  489. package/src/spec/overlay/canvas.overlay.json +142 -0
  490. package/src/spec/overlay/dashboard.overlay.json +378 -0
  491. package/src/spec/overlay/expr.overlay.json +14 -0
  492. package/src/spec/overlay/geomap.overlay.json +35 -0
  493. package/src/spec/overlay/logs.overlay.json +14 -0
  494. package/src/spec/overlay/nodegraph.overlay.json +31 -0
  495. package/src/spec/overlay/piechart.overlay.json +17 -0
  496. package/src/spec/overlay/table.overlay.json +103 -0
  497. package/src/spec/overlay/timeseries.overlay.json +21 -0
  498. package/src/spec/overlay/trend.overlay.json +17 -0
  499. package/src/spec/overlay/xychart.overlay.json +16 -0
  500. package/src/spec/overlay.ts +105 -0
  501. package/src/spec/schemas/azuremonitor.jsonschema.json +679 -0
  502. package/src/spec/schemas/barchart.jsonschema.json +419 -0
  503. package/src/spec/schemas/bargauge.jsonschema.json +224 -0
  504. package/src/spec/schemas/bigquery.jsonschema.json +290 -0
  505. package/src/spec/schemas/canvas.jsonschema.json +356 -0
  506. package/src/spec/schemas/cloudwatch.jsonschema.json +721 -0
  507. package/src/spec/schemas/dashboardv2.jsonschema.json +3387 -0
  508. package/src/spec/schemas/elasticsearch.jsonschema.json +1695 -0
  509. package/src/spec/schemas/expr.jsonschema.json +987 -0
  510. package/src/spec/schemas/geomap.jsonschema.json +220 -0
  511. package/src/spec/schemas/googlecloudmonitoring.jsonschema.json +488 -0
  512. package/src/spec/schemas/grafanapyroscope.jsonschema.json +93 -0
  513. package/src/spec/schemas/histogram.jsonschema.json +308 -0
  514. package/src/spec/schemas/nodegraph.jsonschema.json +77 -0
  515. package/src/spec/schemas/piechart.jsonschema.json +275 -0
  516. package/src/spec/schemas/statetimeline.jsonschema.json +324 -0
  517. package/src/spec/schemas/statushistory.jsonschema.json +292 -0
  518. package/src/spec/schemas/trend.jsonschema.json +449 -0
  519. package/src/spec/schemas/xychart.jsonschema.json +428 -0
  520. package/src/spec/schemas.gen.ts +40 -0
  521. package/src/spec/schemas.ts +30 -16
  522. package/src/spec/units.gen.ts +281 -0
  523. package/src/spec/units.ts +77 -0
  524. package/src/transformations.test.ts +65 -0
  525. package/src/transformations.ts +574 -0
  526. package/src/util.ts +8 -0
  527. package/src/validate-alerting.test.ts +255 -0
  528. package/src/validate-alerting.ts +430 -0
  529. package/src/validate-output.ts +427 -104
  530. package/src/validate.ts +28 -0
  531. package/src/validation.ts +27 -0
  532. 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: `PromQuery` (PromQL),
3
- * `TempoQuery` (TraceQL) and `LokiQuery` (LogQL), each typed from that
4
- * plugin's query schema at `GRAFANA_SCHEMA_PIN`.
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; this lexicon does not parse PromQL, TraceQL or
7
- * LogQL. What it does check is where the query goes: `datasource` only
8
- * accepts a datasource of the query's own plugin type, and GRAF101, GRAF102
9
- * and GRAF103 check the emitted references after a build.
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> = DatasourceEntity<T> | DatasourceVariableEntity<T> | DatasourceRef<T>;
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
- /** A query model's fields, less what chant fills in (`datasource`, `refId` stays optional). */
28
- export type QueryModel<M> = Omit<M, "datasource">;
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, keyed by datasource type. */
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(def.datasourceType, def as unknown as QueryDefinition);
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 ElasticQueryModel { query: string; metrics?: Array<{ type: string; id: string }>; refId?: string }
142
+ * interface OpenSearchQueryModel { query: string; queryType?: "lucene" | "PPL"; refId?: string }
103
143
  *
104
- * export const ElasticQuery = defineQuery<ElasticQueryModel>()({
105
- * datasourceType: "elasticsearch",
106
- * className: "ElasticQuery",
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
+ }