@perses-dev/alert-manager-plugin 0.1.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/LICENSE +201 -0
- package/README.md +41 -0
- package/__mf/css/async/7790.85c2cbf6.css +1 -0
- package/__mf/font/inter-cyrillic-300-normal.432f2b21.woff +0 -0
- package/__mf/font/inter-cyrillic-300-normal.9da91009.woff2 +0 -0
- package/__mf/font/inter-cyrillic-400-normal.372704ff.woff2 +0 -0
- package/__mf/font/inter-cyrillic-400-normal.a6b6ef6f.woff +0 -0
- package/__mf/font/inter-cyrillic-500-normal.7c15bba8.woff2 +0 -0
- package/__mf/font/inter-cyrillic-500-normal.b9f8c929.woff +0 -0
- package/__mf/font/inter-cyrillic-600-normal.2f42892a.woff2 +0 -0
- package/__mf/font/inter-cyrillic-600-normal.c3987adc.woff +0 -0
- package/__mf/font/inter-cyrillic-700-normal.93eba3c3.woff +0 -0
- package/__mf/font/inter-cyrillic-700-normal.e9e5b2dc.woff2 +0 -0
- package/__mf/font/inter-cyrillic-900-normal.f285bd7a.woff2 +0 -0
- package/__mf/font/inter-cyrillic-900-normal.ffbd8a3a.woff +0 -0
- package/__mf/font/inter-cyrillic-ext-300-normal.95bb9038.woff2 +0 -0
- package/__mf/font/inter-cyrillic-ext-300-normal.cfc143a9.woff +0 -0
- package/__mf/font/inter-cyrillic-ext-400-normal.2a31c04b.woff +0 -0
- package/__mf/font/inter-cyrillic-ext-400-normal.f572b170.woff2 +0 -0
- package/__mf/font/inter-cyrillic-ext-500-normal.5a6bb1da.woff +0 -0
- package/__mf/font/inter-cyrillic-ext-500-normal.fe0d9b14.woff2 +0 -0
- package/__mf/font/inter-cyrillic-ext-600-normal.ecbdecad.woff +0 -0
- package/__mf/font/inter-cyrillic-ext-600-normal.f7b3c15b.woff2 +0 -0
- package/__mf/font/inter-cyrillic-ext-700-normal.4b4022a6.woff +0 -0
- package/__mf/font/inter-cyrillic-ext-700-normal.74b516d2.woff2 +0 -0
- package/__mf/font/inter-cyrillic-ext-900-normal.9970ddb5.woff +0 -0
- package/__mf/font/inter-cyrillic-ext-900-normal.a0d59adc.woff2 +0 -0
- package/__mf/font/inter-greek-300-normal.0d7be683.woff2 +0 -0
- package/__mf/font/inter-greek-300-normal.8f0b988e.woff +0 -0
- package/__mf/font/inter-greek-400-normal.cc58c11b.woff +0 -0
- package/__mf/font/inter-greek-400-normal.d7020e3c.woff2 +0 -0
- package/__mf/font/inter-greek-500-normal.d9a33207.woff +0 -0
- package/__mf/font/inter-greek-500-normal.f41f43db.woff2 +0 -0
- package/__mf/font/inter-greek-600-normal.4ec0c1c1.woff +0 -0
- package/__mf/font/inter-greek-600-normal.cc532937.woff2 +0 -0
- package/__mf/font/inter-greek-700-normal.5ec6c758.woff +0 -0
- package/__mf/font/inter-greek-700-normal.97f0eeeb.woff2 +0 -0
- package/__mf/font/inter-greek-900-normal.46b66369.woff2 +0 -0
- package/__mf/font/inter-greek-900-normal.9ae3a3c5.woff +0 -0
- package/__mf/font/inter-greek-ext-300-normal.10247a66.woff2 +0 -0
- package/__mf/font/inter-greek-ext-300-normal.4668e5cb.woff +0 -0
- package/__mf/font/inter-greek-ext-400-normal.4ce1df5d.woff2 +0 -0
- package/__mf/font/inter-greek-ext-400-normal.88ede1ea.woff +0 -0
- package/__mf/font/inter-greek-ext-500-normal.7a4aa726.woff +0 -0
- package/__mf/font/inter-greek-ext-500-normal.cbd51e2d.woff2 +0 -0
- package/__mf/font/inter-greek-ext-600-normal.089a95ee.woff +0 -0
- package/__mf/font/inter-greek-ext-600-normal.1f33d317.woff2 +0 -0
- package/__mf/font/inter-greek-ext-700-normal.31f1075d.woff +0 -0
- package/__mf/font/inter-greek-ext-700-normal.827cd618.woff2 +0 -0
- package/__mf/font/inter-greek-ext-900-normal.531bcee7.woff +0 -0
- package/__mf/font/inter-greek-ext-900-normal.8a9b36b9.woff2 +0 -0
- package/__mf/font/inter-latin-300-normal.15fb600d.woff2 +0 -0
- package/__mf/font/inter-latin-300-normal.6f95f590.woff +0 -0
- package/__mf/font/inter-latin-400-normal.2c7a775c.woff +0 -0
- package/__mf/font/inter-latin-400-normal.ef6d3f52.woff2 +0 -0
- package/__mf/font/inter-latin-500-normal.b7b43ace.woff2 +0 -0
- package/__mf/font/inter-latin-500-normal.cb4c8ceb.woff +0 -0
- package/__mf/font/inter-latin-600-normal.8fb1a964.woff2 +0 -0
- package/__mf/font/inter-latin-600-normal.ce0f5f43.woff +0 -0
- package/__mf/font/inter-latin-700-normal.953b7aa5.woff2 +0 -0
- package/__mf/font/inter-latin-700-normal.9c21d4dc.woff +0 -0
- package/__mf/font/inter-latin-900-normal.2a8028ec.woff2 +0 -0
- package/__mf/font/inter-latin-900-normal.fa252135.woff +0 -0
- package/__mf/font/inter-latin-ext-300-normal.167cc8c9.woff2 +0 -0
- package/__mf/font/inter-latin-ext-300-normal.f695be66.woff +0 -0
- package/__mf/font/inter-latin-ext-400-normal.32a25442.woff2 +0 -0
- package/__mf/font/inter-latin-ext-400-normal.4edcaace.woff +0 -0
- package/__mf/font/inter-latin-ext-500-normal.a19a84a6.woff +0 -0
- package/__mf/font/inter-latin-ext-500-normal.d9b491de.woff2 +0 -0
- package/__mf/font/inter-latin-ext-600-normal.38b075d8.woff2 +0 -0
- package/__mf/font/inter-latin-ext-600-normal.49faa47a.woff +0 -0
- package/__mf/font/inter-latin-ext-700-normal.93534b50.woff +0 -0
- package/__mf/font/inter-latin-ext-700-normal.b63daa1a.woff2 +0 -0
- package/__mf/font/inter-latin-ext-900-normal.0efdb307.woff +0 -0
- package/__mf/font/inter-latin-ext-900-normal.9c0fc2c7.woff2 +0 -0
- package/__mf/font/inter-vietnamese-300-normal.aad496d8.woff +0 -0
- package/__mf/font/inter-vietnamese-300-normal.ad9ef503.woff2 +0 -0
- package/__mf/font/inter-vietnamese-400-normal.a9dd2faf.woff +0 -0
- package/__mf/font/inter-vietnamese-400-normal.de4fc44f.woff2 +0 -0
- package/__mf/font/inter-vietnamese-500-normal.7c0a695f.woff2 +0 -0
- package/__mf/font/inter-vietnamese-500-normal.a3a73b95.woff +0 -0
- package/__mf/font/inter-vietnamese-600-normal.9d518599.woff2 +0 -0
- package/__mf/font/inter-vietnamese-600-normal.c5ce3fcb.woff +0 -0
- package/__mf/font/inter-vietnamese-700-normal.bc68b199.woff +0 -0
- package/__mf/font/inter-vietnamese-700-normal.faf12809.woff2 +0 -0
- package/__mf/font/inter-vietnamese-900-normal.2b782045.woff +0 -0
- package/__mf/font/inter-vietnamese-900-normal.e639b65a.woff2 +0 -0
- package/__mf/js/AlertManager.f762e62c.js +7 -0
- package/__mf/js/async/1616.24f00c9d.js +1 -0
- package/__mf/js/async/1728.83bb9a7c.js +1 -0
- package/__mf/js/async/1871.23ff54b3.js +1 -0
- package/__mf/js/async/1969.a83b1b48.js +1 -0
- package/__mf/js/async/2218.7829c9d9.js +2 -0
- package/__mf/js/async/2218.7829c9d9.js.LICENSE.txt +9 -0
- package/__mf/js/async/2377.f8875a4e.js +1 -0
- package/__mf/js/async/2657.fe8dd44f.js +1 -0
- package/__mf/js/async/2954.3ac1f636.js +2 -0
- package/__mf/js/async/392.7e11dd69.js +2 -0
- package/__mf/js/async/392.7e11dd69.js.LICENSE.txt +8 -0
- package/__mf/js/async/3963.fb6246d2.js +1 -0
- package/__mf/js/async/4121.ec666be2.js +2 -0
- package/__mf/js/async/4121.ec666be2.js.LICENSE.txt +9 -0
- package/__mf/js/async/4133.e94df4f8.js +28 -0
- package/__mf/js/async/4213.a0c4f2eb.js +1 -0
- package/__mf/js/async/4397.d399eecb.js +2 -0
- package/__mf/js/async/4397.d399eecb.js.LICENSE.txt +37 -0
- package/__mf/js/async/4466.a8145edd.js +74 -0
- package/__mf/js/async/4732.e866a740.js +1 -0
- package/__mf/js/async/4788.49ffeac3.js +1 -0
- package/__mf/js/async/5038.269393e3.js +2 -0
- package/__mf/js/async/5038.269393e3.js.LICENSE.txt +9 -0
- package/__mf/js/async/573.214f2003.js +2 -0
- package/__mf/js/async/573.214f2003.js.LICENSE.txt +9 -0
- package/__mf/js/async/6274.8c77cb1a.js +2 -0
- package/__mf/js/async/6274.8c77cb1a.js.LICENSE.txt +8 -0
- package/__mf/js/async/6390.3f6f279d.js +2 -0
- package/__mf/js/async/6390.3f6f279d.js.LICENSE.txt +9 -0
- package/__mf/js/async/6401.1a59dbad.js +1 -0
- package/__mf/js/async/6593.acc8b704.js +4 -0
- package/__mf/js/async/6593.acc8b704.js.LICENSE.txt +24 -0
- package/__mf/js/async/6594.b02adfd9.js +2 -0
- package/__mf/js/async/6594.b02adfd9.js.LICENSE.txt +9 -0
- package/__mf/js/async/663.5445c7e0.js +1 -0
- package/__mf/js/async/6854.1d628838.js +1 -0
- package/__mf/js/async/7177.27c86137.js +1 -0
- package/__mf/js/async/7192.ede9860b.js +1 -0
- package/__mf/js/async/733.22ab2a8a.js +1 -0
- package/__mf/js/async/7422.33d76364.js +2 -0
- package/__mf/js/async/7422.33d76364.js.LICENSE.txt +9 -0
- package/__mf/js/async/7790.a75199e6.js +7 -0
- package/__mf/js/async/7790.a75199e6.js.LICENSE.txt +64 -0
- package/__mf/js/async/7862.556c038f.js +2 -0
- package/__mf/js/async/7862.556c038f.js.LICENSE.txt +9 -0
- package/__mf/js/async/7984.49fa1156.js +22 -0
- package/__mf/js/async/7984.49fa1156.js.LICENSE.txt +19 -0
- package/__mf/js/async/804.23da0d30.js +37 -0
- package/__mf/js/async/8470.2df0db71.js +2 -0
- package/__mf/js/async/8470.2df0db71.js.LICENSE.txt +19 -0
- package/__mf/js/async/8697.c13c6603.js +1 -0
- package/__mf/js/async/8907.9e3edf43.js +1 -0
- package/__mf/js/async/9040.94717f28.js +10 -0
- package/__mf/js/async/9040.94717f28.js.LICENSE.txt +17 -0
- package/__mf/js/async/9184.27a439a4.js +1 -0
- package/__mf/js/async/9235.00f9412f.js +1 -0
- package/__mf/js/async/941.d3bc6208.js +2 -0
- package/__mf/js/async/941.d3bc6208.js.LICENSE.txt +9 -0
- package/__mf/js/async/9634.3a366799.js +1 -0
- package/__mf/js/async/9836.cc839227.js +1 -0
- package/__mf/js/async/__federation_expose_AlertManagerAlertsExplorer.d4fb76c0.js +2 -0
- package/__mf/js/async/__federation_expose_AlertManagerAlertsExplorer.d4fb76c0.js.LICENSE.txt +9 -0
- package/__mf/js/async/__federation_expose_AlertManagerAlertsQuery.9ea3093c.js +1 -0
- package/__mf/js/async/__federation_expose_AlertManagerDatasource.2fbf067c.js +2 -0
- package/__mf/js/async/__federation_expose_AlertManagerDatasource.2fbf067c.js.LICENSE.txt +9 -0
- package/__mf/js/async/__federation_expose_AlertManagerSilencesExplorer.d2527c12.js +2 -0
- package/__mf/js/async/__federation_expose_AlertManagerSilencesExplorer.d2527c12.js.LICENSE.txt +9 -0
- package/__mf/js/async/__federation_expose_AlertManagerSilencesQuery.7aca31d3.js +2 -0
- package/__mf/js/async/__federation_expose_AlertManagerSilencesQuery.7aca31d3.js.LICENSE.txt +9 -0
- package/__mf/js/async/__federation_expose_AlertTable.4a636b80.js +1 -0
- package/__mf/js/async/__federation_expose_SilenceTable.11259028.js +1 -0
- package/__mf/js/async/lib-router.19f64904.js +2 -0
- package/__mf/js/async/lib-router.19f64904.js.LICENSE.txt +32 -0
- package/__mf/js/main.a1362788.js +7 -0
- package/lib/bootstrap.d.ts +2 -0
- package/lib/bootstrap.d.ts.map +1 -0
- package/lib/bootstrap.js +19 -0
- package/lib/bootstrap.js.map +1 -0
- package/lib/cjs/bootstrap.js +26 -0
- package/lib/cjs/components/ColumnsEditor.js +271 -0
- package/lib/cjs/components/LazyTextField.js +50 -0
- package/lib/cjs/components/MatcherEditor.js +153 -0
- package/lib/cjs/components/MatchersList.js +46 -0
- package/lib/cjs/components/SilenceForm.js +205 -0
- package/lib/cjs/components/StatusBadge.js +71 -0
- package/lib/cjs/components/index.js +44 -0
- package/lib/cjs/explore/AlertManagerAlertsExplorer.js +79 -0
- package/lib/cjs/explore/AlertManagerSilencesExplorer.js +153 -0
- package/lib/cjs/getPluginModule.js +39 -0
- package/lib/cjs/index-federation.js +55 -0
- package/lib/cjs/index.js +39 -0
- package/lib/cjs/model/alertmanager-client.js +128 -0
- package/lib/cjs/model/alertmanager-selectors.js +66 -0
- package/lib/cjs/model/api-types.js +22 -0
- package/lib/cjs/model/index.js +32 -0
- package/lib/cjs/plugins/AlertManagerDatasourceEditor.js +71 -0
- package/lib/cjs/plugins/alert-table/AlertTable.js +56 -0
- package/lib/cjs/plugins/alert-table/AlertTableColumnsEditor.js +110 -0
- package/lib/cjs/plugins/alert-table/AlertTableDeduplicationEditor.js +138 -0
- package/lib/cjs/plugins/alert-table/AlertTableLabelsEditor.js +277 -0
- package/lib/cjs/plugins/alert-table/AlertTableOptionsEditor.js +128 -0
- package/lib/cjs/plugins/alert-table/AlertTablePanel.js +773 -0
- package/lib/cjs/plugins/alert-table/alert-table-model.js +142 -0
- package/lib/cjs/plugins/alert-table/alert-table-sorting.js +205 -0
- package/lib/cjs/plugins/alert-table/label-colors.js +170 -0
- package/lib/cjs/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.js +51 -0
- package/lib/cjs/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.js +138 -0
- package/lib/cjs/plugins/alertmanager-alerts-query/get-alerts-data.js +124 -0
- package/lib/cjs/plugins/alertmanager-datasource.js +69 -0
- package/lib/cjs/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.js +45 -0
- package/lib/cjs/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.js +78 -0
- package/lib/cjs/plugins/alertmanager-silences-query/get-silences-data.js +64 -0
- package/lib/cjs/plugins/index.js +74 -0
- package/lib/cjs/plugins/silence-table/SilenceTable.js +42 -0
- package/lib/cjs/plugins/silence-table/SilenceTableColumnsEditor.js +137 -0
- package/lib/cjs/plugins/silence-table/SilenceTableOptionsEditor.js +63 -0
- package/lib/cjs/plugins/silence-table/SilenceTablePanel.js +345 -0
- package/lib/cjs/plugins/silence-table/silence-table-model.js +116 -0
- package/lib/cjs/plugins/silence-table/silence-table-sorting.js +68 -0
- package/lib/cjs/plugins/types.js +16 -0
- package/lib/cjs/setup-tests.js +18 -0
- package/lib/components/ColumnsEditor.d.ts +25 -0
- package/lib/components/ColumnsEditor.d.ts.map +1 -0
- package/lib/components/ColumnsEditor.js +258 -0
- package/lib/components/ColumnsEditor.js.map +1 -0
- package/lib/components/LazyTextField.d.ts +12 -0
- package/lib/components/LazyTextField.d.ts.map +1 -0
- package/lib/components/LazyTextField.js +42 -0
- package/lib/components/LazyTextField.js.map +1 -0
- package/lib/components/MatcherEditor.d.ts +17 -0
- package/lib/components/MatcherEditor.d.ts.map +1 -0
- package/lib/components/MatcherEditor.js +142 -0
- package/lib/components/MatcherEditor.js.map +1 -0
- package/lib/components/MatchersList.d.ts +10 -0
- package/lib/components/MatchersList.d.ts.map +1 -0
- package/lib/components/MatchersList.js +40 -0
- package/lib/components/MatchersList.js.map +1 -0
- package/lib/components/SilenceForm.d.ts +13 -0
- package/lib/components/SilenceForm.d.ts.map +1 -0
- package/lib/components/SilenceForm.js +194 -0
- package/lib/components/SilenceForm.js.map +1 -0
- package/lib/components/StatusBadge.d.ts +10 -0
- package/lib/components/StatusBadge.d.ts.map +1 -0
- package/lib/components/StatusBadge.js +65 -0
- package/lib/components/StatusBadge.js.map +1 -0
- package/lib/components/index.d.ts +11 -0
- package/lib/components/index.d.ts.map +1 -0
- package/lib/components/index.js +19 -0
- package/lib/components/index.js.map +1 -0
- package/lib/explore/AlertManagerAlertsExplorer.d.ts +3 -0
- package/lib/explore/AlertManagerAlertsExplorer.d.ts.map +1 -0
- package/lib/explore/AlertManagerAlertsExplorer.js +71 -0
- package/lib/explore/AlertManagerAlertsExplorer.js.map +1 -0
- package/lib/explore/AlertManagerSilencesExplorer.d.ts +3 -0
- package/lib/explore/AlertManagerSilencesExplorer.d.ts.map +1 -0
- package/lib/explore/AlertManagerSilencesExplorer.js +140 -0
- package/lib/explore/AlertManagerSilencesExplorer.js.map +1 -0
- package/lib/getPluginModule.d.ts +3 -0
- package/lib/getPluginModule.d.ts.map +1 -0
- package/lib/getPluginModule.js +26 -0
- package/lib/getPluginModule.js.map +1 -0
- package/lib/index-federation.d.ts +1 -0
- package/lib/index-federation.d.ts.map +1 -0
- package/lib/index-federation.js +15 -0
- package/lib/index-federation.js.map +1 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +18 -0
- package/lib/index.js.map +1 -0
- package/lib/model/alertmanager-client.d.ts +27 -0
- package/lib/model/alertmanager-client.d.ts.map +1 -0
- package/lib/model/alertmanager-client.js +100 -0
- package/lib/model/alertmanager-client.js.map +1 -0
- package/lib/model/alertmanager-selectors.d.ts +13 -0
- package/lib/model/alertmanager-selectors.d.ts.map +1 -0
- package/lib/model/alertmanager-selectors.js +41 -0
- package/lib/model/alertmanager-selectors.js.map +1 -0
- package/lib/model/api-types.d.ts +120 -0
- package/lib/model/api-types.d.ts.map +1 -0
- package/lib/model/api-types.js +23 -0
- package/lib/model/api-types.js.map +1 -0
- package/lib/model/index.d.ts +4 -0
- package/lib/model/index.d.ts.map +1 -0
- package/lib/model/index.js +17 -0
- package/lib/model/index.js.map +1 -0
- package/lib/plugins/AlertManagerDatasourceEditor.d.ts +9 -0
- package/lib/plugins/AlertManagerDatasourceEditor.d.ts.map +1 -0
- package/lib/plugins/AlertManagerDatasourceEditor.js +63 -0
- package/lib/plugins/AlertManagerDatasourceEditor.js.map +1 -0
- package/lib/plugins/alert-table/AlertTable.d.ts +8 -0
- package/lib/plugins/alert-table/AlertTable.d.ts.map +1 -0
- package/lib/plugins/alert-table/AlertTable.js +50 -0
- package/lib/plugins/alert-table/AlertTable.js.map +1 -0
- package/lib/plugins/alert-table/AlertTableColumnsEditor.d.ts +5 -0
- package/lib/plugins/alert-table/AlertTableColumnsEditor.d.ts.map +1 -0
- package/lib/plugins/alert-table/AlertTableColumnsEditor.js +102 -0
- package/lib/plugins/alert-table/AlertTableColumnsEditor.js.map +1 -0
- package/lib/plugins/alert-table/AlertTableDeduplicationEditor.d.ts +5 -0
- package/lib/plugins/alert-table/AlertTableDeduplicationEditor.d.ts.map +1 -0
- package/lib/plugins/alert-table/AlertTableDeduplicationEditor.js +130 -0
- package/lib/plugins/alert-table/AlertTableDeduplicationEditor.js.map +1 -0
- package/lib/plugins/alert-table/AlertTableLabelsEditor.d.ts +5 -0
- package/lib/plugins/alert-table/AlertTableLabelsEditor.d.ts.map +1 -0
- package/lib/plugins/alert-table/AlertTableLabelsEditor.js +264 -0
- package/lib/plugins/alert-table/AlertTableLabelsEditor.js.map +1 -0
- package/lib/plugins/alert-table/AlertTableOptionsEditor.d.ts +5 -0
- package/lib/plugins/alert-table/AlertTableOptionsEditor.d.ts.map +1 -0
- package/lib/plugins/alert-table/AlertTableOptionsEditor.js +120 -0
- package/lib/plugins/alert-table/AlertTableOptionsEditor.js.map +1 -0
- package/lib/plugins/alert-table/AlertTablePanel.d.ts +11 -0
- package/lib/plugins/alert-table/AlertTablePanel.d.ts.map +1 -0
- package/lib/plugins/alert-table/AlertTablePanel.js +763 -0
- package/lib/plugins/alert-table/AlertTablePanel.js.map +1 -0
- package/lib/plugins/alert-table/alert-table-model.d.ts +73 -0
- package/lib/plugins/alert-table/alert-table-model.d.ts.map +1 -0
- package/lib/plugins/alert-table/alert-table-model.js +127 -0
- package/lib/plugins/alert-table/alert-table-model.js.map +1 -0
- package/lib/plugins/alert-table/alert-table-sorting.d.ts +13 -0
- package/lib/plugins/alert-table/alert-table-sorting.d.ts.map +1 -0
- package/lib/plugins/alert-table/alert-table-sorting.js +180 -0
- package/lib/plugins/alert-table/alert-table-sorting.js.map +1 -0
- package/lib/plugins/alert-table/label-colors.d.ts +6 -0
- package/lib/plugins/alert-table/label-colors.d.ts.map +1 -0
- package/lib/plugins/alert-table/label-colors.js +148 -0
- package/lib/plugins/alert-table/label-colors.js.map +1 -0
- package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.d.ts +4 -0
- package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.d.ts.map +1 -0
- package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.js +43 -0
- package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.js.map +1 -0
- package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.d.ts +9 -0
- package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.d.ts.map +1 -0
- package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.js +130 -0
- package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.js.map +1 -0
- package/lib/plugins/alertmanager-alerts-query/get-alerts-data.d.ts +8 -0
- package/lib/plugins/alertmanager-alerts-query/get-alerts-data.d.ts.map +1 -0
- package/lib/plugins/alertmanager-alerts-query/get-alerts-data.js +118 -0
- package/lib/plugins/alertmanager-alerts-query/get-alerts-data.js.map +1 -0
- package/lib/plugins/alertmanager-datasource.d.ts +5 -0
- package/lib/plugins/alertmanager-datasource.d.ts.map +1 -0
- package/lib/plugins/alertmanager-datasource.js +61 -0
- package/lib/plugins/alertmanager-datasource.js.map +1 -0
- package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.d.ts +4 -0
- package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.d.ts.map +1 -0
- package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.js +37 -0
- package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.js.map +1 -0
- package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.d.ts +9 -0
- package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.d.ts.map +1 -0
- package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.js +70 -0
- package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.js.map +1 -0
- package/lib/plugins/alertmanager-silences-query/get-silences-data.d.ts +8 -0
- package/lib/plugins/alertmanager-silences-query/get-silences-data.d.ts.map +1 -0
- package/lib/plugins/alertmanager-silences-query/get-silences-data.js +58 -0
- package/lib/plugins/alertmanager-silences-query/get-silences-data.js.map +1 -0
- package/lib/plugins/index.d.ts +19 -0
- package/lib/plugins/index.d.ts.map +1 -0
- package/lib/plugins/index.js +30 -0
- package/lib/plugins/index.js.map +1 -0
- package/lib/plugins/silence-table/SilenceTable.d.ts +7 -0
- package/lib/plugins/silence-table/SilenceTable.d.ts.map +1 -0
- package/lib/plugins/silence-table/SilenceTable.js +36 -0
- package/lib/plugins/silence-table/SilenceTable.js.map +1 -0
- package/lib/plugins/silence-table/SilenceTableColumnsEditor.d.ts +5 -0
- package/lib/plugins/silence-table/SilenceTableColumnsEditor.d.ts.map +1 -0
- package/lib/plugins/silence-table/SilenceTableColumnsEditor.js +129 -0
- package/lib/plugins/silence-table/SilenceTableColumnsEditor.js.map +1 -0
- package/lib/plugins/silence-table/SilenceTableOptionsEditor.d.ts +5 -0
- package/lib/plugins/silence-table/SilenceTableOptionsEditor.d.ts.map +1 -0
- package/lib/plugins/silence-table/SilenceTableOptionsEditor.js +55 -0
- package/lib/plugins/silence-table/SilenceTableOptionsEditor.js.map +1 -0
- package/lib/plugins/silence-table/SilenceTablePanel.d.ts +11 -0
- package/lib/plugins/silence-table/SilenceTablePanel.d.ts.map +1 -0
- package/lib/plugins/silence-table/SilenceTablePanel.js +335 -0
- package/lib/plugins/silence-table/SilenceTablePanel.js.map +1 -0
- package/lib/plugins/silence-table/silence-table-model.d.ts +29 -0
- package/lib/plugins/silence-table/silence-table-model.d.ts.map +1 -0
- package/lib/plugins/silence-table/silence-table-model.js +90 -0
- package/lib/plugins/silence-table/silence-table-model.js.map +1 -0
- package/lib/plugins/silence-table/silence-table-sorting.d.ts +9 -0
- package/lib/plugins/silence-table/silence-table-sorting.d.ts.map +1 -0
- package/lib/plugins/silence-table/silence-table-sorting.js +60 -0
- package/lib/plugins/silence-table/silence-table-sorting.js.map +1 -0
- package/lib/plugins/types.d.ts +30 -0
- package/lib/plugins/types.d.ts.map +1 -0
- package/lib/plugins/types.js +17 -0
- package/lib/plugins/types.js.map +1 -0
- package/lib/setup-tests.d.ts +2 -0
- package/lib/setup-tests.d.ts.map +1 -0
- package/lib/setup-tests.js +16 -0
- package/lib/setup-tests.js.map +1 -0
- package/mf-manifest.json +631 -0
- package/mf-stats.json +752 -0
- package/package.json +115 -0
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
// Copyright The Perses Authors
|
|
2
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
// you may not use this file except in compliance with the License.
|
|
4
|
+
// You may obtain a copy of the License at
|
|
5
|
+
//
|
|
6
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
//
|
|
8
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
// See the License for the specific language governing permissions and
|
|
12
|
+
// limitations under the License.
|
|
13
|
+
"use strict";
|
|
14
|
+
Object.defineProperty(exports, "__esModule", {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(exports, "AlertManagerAlertsQueryEditor", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function() {
|
|
20
|
+
return AlertManagerAlertsQueryEditor;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
const _jsxruntime = require("react/jsx-runtime");
|
|
24
|
+
const _material = require("@mui/material");
|
|
25
|
+
const _components = require("@perses-dev/components");
|
|
26
|
+
const _pluginsystem = require("@perses-dev/plugin-system");
|
|
27
|
+
const _immer = require("immer");
|
|
28
|
+
const _react = require("react");
|
|
29
|
+
const _LazyTextField = require("../../components/LazyTextField");
|
|
30
|
+
const _model = require("../../model");
|
|
31
|
+
function AlertManagerAlertsQueryEditor(props) {
|
|
32
|
+
const { onChange, value } = props;
|
|
33
|
+
const datasourceSelectValue = value.datasource ?? _model.DEFAULT_ALERTMANAGER;
|
|
34
|
+
const datasourceSelectLabelID = (0, _components.useId)('alertmanager-datasource-label');
|
|
35
|
+
const handleDatasourceChange = (next)=>{
|
|
36
|
+
if ((0, _model.isAlertManagerDatasourceSelector)(next)) {
|
|
37
|
+
onChange((0, _immer.produce)(value, (draft)=>{
|
|
38
|
+
draft.datasource = (0, _model.isDefaultAlertManagerSelector)(next) ? undefined : next;
|
|
39
|
+
}));
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
throw new Error('Got unexpected non-AlertManager datasource selector');
|
|
43
|
+
};
|
|
44
|
+
const handleFiltersChange = (0, _react.useCallback)((filtersText)=>{
|
|
45
|
+
onChange((0, _immer.produce)(value, (draft)=>{
|
|
46
|
+
draft.filters = filtersText.split('\n').map((f)=>f.trim()).filter((f)=>f !== '');
|
|
47
|
+
}));
|
|
48
|
+
}, [
|
|
49
|
+
onChange,
|
|
50
|
+
value
|
|
51
|
+
]);
|
|
52
|
+
const handleBooleanChange = (0, _react.useCallback)((field, checked)=>{
|
|
53
|
+
onChange((0, _immer.produce)(value, (draft)=>{
|
|
54
|
+
draft[field] = checked;
|
|
55
|
+
}));
|
|
56
|
+
}, [
|
|
57
|
+
onChange,
|
|
58
|
+
value
|
|
59
|
+
]);
|
|
60
|
+
const handleReceiverChange = (0, _react.useCallback)((receiver)=>{
|
|
61
|
+
onChange((0, _immer.produce)(value, (draft)=>{
|
|
62
|
+
draft.receiver = receiver.trim() === '' ? undefined : receiver.trim();
|
|
63
|
+
}));
|
|
64
|
+
}, [
|
|
65
|
+
onChange,
|
|
66
|
+
value
|
|
67
|
+
]);
|
|
68
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
|
|
69
|
+
spacing: 2,
|
|
70
|
+
children: [
|
|
71
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControl, {
|
|
72
|
+
margin: "dense",
|
|
73
|
+
fullWidth: false,
|
|
74
|
+
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_pluginsystem.DatasourceSelect, {
|
|
75
|
+
datasourcePluginKind: _model.ALERTMANAGER_DATASOURCE_KIND,
|
|
76
|
+
value: datasourceSelectValue,
|
|
77
|
+
onChange: handleDatasourceChange,
|
|
78
|
+
labelId: datasourceSelectLabelID,
|
|
79
|
+
label: "Alert Manager Datasource",
|
|
80
|
+
notched: true
|
|
81
|
+
})
|
|
82
|
+
}),
|
|
83
|
+
/*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
|
|
84
|
+
direction: "row",
|
|
85
|
+
spacing: 2,
|
|
86
|
+
sx: {
|
|
87
|
+
flexWrap: 'wrap',
|
|
88
|
+
rowGap: 1
|
|
89
|
+
},
|
|
90
|
+
children: [
|
|
91
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControlLabel, {
|
|
92
|
+
control: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Checkbox, {
|
|
93
|
+
checked: value.active ?? true,
|
|
94
|
+
onChange: (e)=>handleBooleanChange('active', e.target.checked)
|
|
95
|
+
}),
|
|
96
|
+
label: "Active"
|
|
97
|
+
}),
|
|
98
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControlLabel, {
|
|
99
|
+
control: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Checkbox, {
|
|
100
|
+
checked: value.silenced ?? false,
|
|
101
|
+
onChange: (e)=>handleBooleanChange('silenced', e.target.checked)
|
|
102
|
+
}),
|
|
103
|
+
label: "Silenced"
|
|
104
|
+
}),
|
|
105
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControlLabel, {
|
|
106
|
+
control: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Checkbox, {
|
|
107
|
+
checked: value.inhibited ?? false,
|
|
108
|
+
onChange: (e)=>handleBooleanChange('inhibited', e.target.checked)
|
|
109
|
+
}),
|
|
110
|
+
label: "Inhibited"
|
|
111
|
+
}),
|
|
112
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControlLabel, {
|
|
113
|
+
control: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Checkbox, {
|
|
114
|
+
checked: value.unprocessed ?? false,
|
|
115
|
+
onChange: (e)=>handleBooleanChange('unprocessed', e.target.checked)
|
|
116
|
+
}),
|
|
117
|
+
label: "Unprocessed"
|
|
118
|
+
})
|
|
119
|
+
]
|
|
120
|
+
}),
|
|
121
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(_LazyTextField.LazyTextField, {
|
|
122
|
+
label: "Receiver",
|
|
123
|
+
value: value.receiver,
|
|
124
|
+
onCommit: handleReceiverChange,
|
|
125
|
+
placeholder: "e.g. team-a"
|
|
126
|
+
}),
|
|
127
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(_LazyTextField.LazyTextField, {
|
|
128
|
+
label: "Filters (one per line)",
|
|
129
|
+
value: (value.filters ?? []).join('\n'),
|
|
130
|
+
onCommit: handleFiltersChange,
|
|
131
|
+
placeholder: 'alertname="HighMemory"\nseverity="critical"\nenvironment=~"${env:pipe}"',
|
|
132
|
+
helperText: "PromQL-style matchers, one per line.",
|
|
133
|
+
multiline: true,
|
|
134
|
+
minRows: 3
|
|
135
|
+
})
|
|
136
|
+
]
|
|
137
|
+
});
|
|
138
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
// Copyright The Perses Authors
|
|
2
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
// you may not use this file except in compliance with the License.
|
|
4
|
+
// You may obtain a copy of the License at
|
|
5
|
+
//
|
|
6
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
//
|
|
8
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
// See the License for the specific language governing permissions and
|
|
12
|
+
// limitations under the License.
|
|
13
|
+
"use strict";
|
|
14
|
+
Object.defineProperty(exports, "__esModule", {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(exports, "getAlertsData", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function() {
|
|
20
|
+
return getAlertsData;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
const _pluginsystem = require("@perses-dev/plugin-system");
|
|
24
|
+
const _model = require("../../model");
|
|
25
|
+
/**
|
|
26
|
+
* Map Alertmanager API alert state to the generic AlertState.
|
|
27
|
+
*
|
|
28
|
+
* AM `active` → generic `firing`
|
|
29
|
+
* AM `suppressed` → generic `firing` (with `suppressed: true`)
|
|
30
|
+
* AM `unprocessed` → generic `pending`
|
|
31
|
+
*/ function mapAlertState(amState) {
|
|
32
|
+
switch(amState){
|
|
33
|
+
case 'active':
|
|
34
|
+
case 'suppressed':
|
|
35
|
+
return 'firing';
|
|
36
|
+
case 'unprocessed':
|
|
37
|
+
return 'pending';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Build SuppressionRule entries from the Alertmanager status fields.
|
|
42
|
+
*/ function buildSuppressionRules(status) {
|
|
43
|
+
const rules = [];
|
|
44
|
+
for (const id of status.silencedBy){
|
|
45
|
+
rules.push({
|
|
46
|
+
type: 'silence',
|
|
47
|
+
id
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
for (const id of status.inhibitedBy){
|
|
51
|
+
rules.push({
|
|
52
|
+
type: 'inhibition',
|
|
53
|
+
id
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
for (const id of status.mutedBy){
|
|
57
|
+
rules.push({
|
|
58
|
+
type: 'mute',
|
|
59
|
+
id
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return rules;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Transform a GettableAlert from the Alertmanager API into our normalized Alert format.
|
|
66
|
+
*/ function transformAlert(apiAlert) {
|
|
67
|
+
const isSuppressed = apiAlert.status.state === 'suppressed';
|
|
68
|
+
const suppressionRules = buildSuppressionRules(apiAlert.status);
|
|
69
|
+
const alert = {
|
|
70
|
+
id: apiAlert.fingerprint,
|
|
71
|
+
name: apiAlert.labels['alertname'] ?? '',
|
|
72
|
+
state: mapAlertState(apiAlert.status.state),
|
|
73
|
+
labels: apiAlert.labels,
|
|
74
|
+
annotations: apiAlert.annotations,
|
|
75
|
+
startsAt: apiAlert.startsAt,
|
|
76
|
+
endsAt: apiAlert.endsAt,
|
|
77
|
+
updatedAt: apiAlert.updatedAt,
|
|
78
|
+
receivers: apiAlert.receivers.map((r)=>r.name)
|
|
79
|
+
};
|
|
80
|
+
if (apiAlert.labels['severity']) {
|
|
81
|
+
alert.severity = apiAlert.labels['severity'];
|
|
82
|
+
}
|
|
83
|
+
if (apiAlert.generatorURL) {
|
|
84
|
+
alert.sourceURL = apiAlert.generatorURL;
|
|
85
|
+
}
|
|
86
|
+
if (isSuppressed) {
|
|
87
|
+
alert.suppressed = true;
|
|
88
|
+
}
|
|
89
|
+
if (suppressionRules.length > 0) {
|
|
90
|
+
alert.suppressedBy = suppressionRules;
|
|
91
|
+
}
|
|
92
|
+
return alert;
|
|
93
|
+
}
|
|
94
|
+
async function getAlertsData(spec, context) {
|
|
95
|
+
const listDatasourceSelectItems = await context.datasourceStore.listDatasourceSelectItems(_model.ALERTMANAGER_DATASOURCE_KIND);
|
|
96
|
+
const datasourceSelector = (0, _pluginsystem.datasourceSelectValueToSelector)(spec.datasource, context.variableState, listDatasourceSelectItems) ?? _model.DEFAULT_ALERTMANAGER;
|
|
97
|
+
const client = await context.datasourceStore.getDatasourceClient(datasourceSelector);
|
|
98
|
+
const interpolatedFilters = spec.filters?.map((f)=>(0, _pluginsystem.replaceVariables)(f, context.variableState));
|
|
99
|
+
const interpolatedReceiver = spec.receiver ? (0, _pluginsystem.replaceVariables)(spec.receiver, context.variableState) : undefined;
|
|
100
|
+
const apiAlerts = await client.getAlerts({
|
|
101
|
+
filter: interpolatedFilters,
|
|
102
|
+
active: spec.active,
|
|
103
|
+
silenced: spec.silenced,
|
|
104
|
+
inhibited: spec.inhibited,
|
|
105
|
+
unprocessed: spec.unprocessed,
|
|
106
|
+
receiver: interpolatedReceiver
|
|
107
|
+
});
|
|
108
|
+
const alerts = apiAlerts.map(transformAlert);
|
|
109
|
+
return {
|
|
110
|
+
alerts,
|
|
111
|
+
metadata: {
|
|
112
|
+
executedQueryString: buildQueryString(spec)
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
function buildQueryString(spec) {
|
|
117
|
+
return JSON.stringify(Object.fromEntries(Object.entries({
|
|
118
|
+
filters: spec.filters,
|
|
119
|
+
active: spec.active,
|
|
120
|
+
silenced: spec.silenced,
|
|
121
|
+
inhibited: spec.inhibited,
|
|
122
|
+
receiver: spec.receiver
|
|
123
|
+
}).filter(([, value])=>value !== undefined)));
|
|
124
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// Copyright The Perses Authors
|
|
2
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
// you may not use this file except in compliance with the License.
|
|
4
|
+
// You may obtain a copy of the License at
|
|
5
|
+
//
|
|
6
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
//
|
|
8
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
// See the License for the specific language governing permissions and
|
|
12
|
+
// limitations under the License.
|
|
13
|
+
"use strict";
|
|
14
|
+
Object.defineProperty(exports, "__esModule", {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(exports, "AlertManagerDatasource", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function() {
|
|
20
|
+
return AlertManagerDatasource;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
const _model = require("../model");
|
|
24
|
+
const _AlertManagerDatasourceEditor = require("./AlertManagerDatasourceEditor");
|
|
25
|
+
const createClient = (spec, options)=>{
|
|
26
|
+
const { directUrl, proxy } = spec;
|
|
27
|
+
const { proxyUrl } = options;
|
|
28
|
+
const datasourceUrl = directUrl ?? proxyUrl;
|
|
29
|
+
if (datasourceUrl === undefined) {
|
|
30
|
+
throw new Error('No URL specified for Alert Manager client. You can use directUrl in the spec to configure it.');
|
|
31
|
+
}
|
|
32
|
+
const specHeaders = proxy?.spec.headers;
|
|
33
|
+
return {
|
|
34
|
+
options: {
|
|
35
|
+
datasourceUrl
|
|
36
|
+
},
|
|
37
|
+
getAlerts: (params, headers)=>(0, _model.getAlerts)(params, {
|
|
38
|
+
datasourceUrl,
|
|
39
|
+
headers: headers ?? specHeaders
|
|
40
|
+
}),
|
|
41
|
+
getSilences: (params, headers)=>(0, _model.getSilences)(params, {
|
|
42
|
+
datasourceUrl,
|
|
43
|
+
headers: headers ?? specHeaders
|
|
44
|
+
}),
|
|
45
|
+
getSilence: (id, headers)=>(0, _model.getSilence)(id, {
|
|
46
|
+
datasourceUrl,
|
|
47
|
+
headers: headers ?? specHeaders
|
|
48
|
+
}),
|
|
49
|
+
createSilence: (silence, headers)=>(0, _model.createSilence)(silence, {
|
|
50
|
+
datasourceUrl,
|
|
51
|
+
headers: headers ?? specHeaders
|
|
52
|
+
}),
|
|
53
|
+
deleteSilence: (id, headers)=>(0, _model.deleteSilence)(id, {
|
|
54
|
+
datasourceUrl,
|
|
55
|
+
headers: headers ?? specHeaders
|
|
56
|
+
}),
|
|
57
|
+
getStatus: (headers)=>(0, _model.getStatus)({
|
|
58
|
+
datasourceUrl,
|
|
59
|
+
headers: headers ?? specHeaders
|
|
60
|
+
})
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
const AlertManagerDatasource = {
|
|
64
|
+
createClient,
|
|
65
|
+
OptionsEditorComponent: _AlertManagerDatasourceEditor.AlertManagerDatasourceEditor,
|
|
66
|
+
createInitialOptions: ()=>({
|
|
67
|
+
directUrl: ''
|
|
68
|
+
})
|
|
69
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// Copyright The Perses Authors
|
|
2
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
// you may not use this file except in compliance with the License.
|
|
4
|
+
// You may obtain a copy of the License at
|
|
5
|
+
//
|
|
6
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
//
|
|
8
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
// See the License for the specific language governing permissions and
|
|
12
|
+
// limitations under the License.
|
|
13
|
+
"use strict";
|
|
14
|
+
Object.defineProperty(exports, "__esModule", {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(exports, "AlertManagerSilencesQuery", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function() {
|
|
20
|
+
return AlertManagerSilencesQuery;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
const _pluginsystem = require("@perses-dev/plugin-system");
|
|
24
|
+
const _getsilencesdata = require("./get-silences-data");
|
|
25
|
+
const _AlertManagerSilencesQueryEditor = require("./AlertManagerSilencesQueryEditor");
|
|
26
|
+
const AlertManagerSilencesQuery = {
|
|
27
|
+
getSilencesData: _getsilencesdata.getSilencesData,
|
|
28
|
+
OptionsEditorComponent: _AlertManagerSilencesQueryEditor.AlertManagerSilencesQueryEditor,
|
|
29
|
+
createInitialOptions: ()=>({
|
|
30
|
+
datasource: undefined,
|
|
31
|
+
filters: []
|
|
32
|
+
}),
|
|
33
|
+
dependsOn: (spec)=>{
|
|
34
|
+
const datasourceVariables = (0, _pluginsystem.isVariableDatasource)(spec.datasource) ? (0, _pluginsystem.parseVariables)(spec.datasource ?? '') : [];
|
|
35
|
+
const filterVariables = spec.filters?.flatMap((f)=>(0, _pluginsystem.parseVariables)(f)) ?? [];
|
|
36
|
+
return {
|
|
37
|
+
variables: [
|
|
38
|
+
...new Set([
|
|
39
|
+
...datasourceVariables,
|
|
40
|
+
...filterVariables
|
|
41
|
+
])
|
|
42
|
+
]
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// Copyright The Perses Authors
|
|
2
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
// you may not use this file except in compliance with the License.
|
|
4
|
+
// You may obtain a copy of the License at
|
|
5
|
+
//
|
|
6
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
//
|
|
8
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
// See the License for the specific language governing permissions and
|
|
12
|
+
// limitations under the License.
|
|
13
|
+
"use strict";
|
|
14
|
+
Object.defineProperty(exports, "__esModule", {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(exports, "AlertManagerSilencesQueryEditor", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function() {
|
|
20
|
+
return AlertManagerSilencesQueryEditor;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
const _jsxruntime = require("react/jsx-runtime");
|
|
24
|
+
const _material = require("@mui/material");
|
|
25
|
+
const _components = require("@perses-dev/components");
|
|
26
|
+
const _pluginsystem = require("@perses-dev/plugin-system");
|
|
27
|
+
const _immer = require("immer");
|
|
28
|
+
const _react = require("react");
|
|
29
|
+
const _LazyTextField = require("../../components/LazyTextField");
|
|
30
|
+
const _model = require("../../model");
|
|
31
|
+
function AlertManagerSilencesQueryEditor(props) {
|
|
32
|
+
const { onChange, value } = props;
|
|
33
|
+
const datasourceSelectValue = value.datasource ?? _model.DEFAULT_ALERTMANAGER;
|
|
34
|
+
const datasourceSelectLabelID = (0, _components.useId)('alertmanager-silences-datasource-label');
|
|
35
|
+
const handleDatasourceChange = (next)=>{
|
|
36
|
+
if ((0, _model.isAlertManagerDatasourceSelector)(next)) {
|
|
37
|
+
onChange((0, _immer.produce)(value, (draft)=>{
|
|
38
|
+
draft.datasource = (0, _model.isDefaultAlertManagerSelector)(next) ? undefined : next;
|
|
39
|
+
}));
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
throw new Error('Got unexpected non-AlertManager datasource selector');
|
|
43
|
+
};
|
|
44
|
+
const handleFiltersChange = (0, _react.useCallback)((filtersText)=>{
|
|
45
|
+
onChange((0, _immer.produce)(value, (draft)=>{
|
|
46
|
+
draft.filters = filtersText.split('\n').map((f)=>f.trim()).filter((f)=>f !== '');
|
|
47
|
+
}));
|
|
48
|
+
}, [
|
|
49
|
+
onChange,
|
|
50
|
+
value
|
|
51
|
+
]);
|
|
52
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
|
|
53
|
+
spacing: 2,
|
|
54
|
+
children: [
|
|
55
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(_material.FormControl, {
|
|
56
|
+
margin: "dense",
|
|
57
|
+
fullWidth: false,
|
|
58
|
+
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_pluginsystem.DatasourceSelect, {
|
|
59
|
+
datasourcePluginKind: _model.ALERTMANAGER_DATASOURCE_KIND,
|
|
60
|
+
value: datasourceSelectValue,
|
|
61
|
+
onChange: handleDatasourceChange,
|
|
62
|
+
labelId: datasourceSelectLabelID,
|
|
63
|
+
label: "Alert Manager Datasource",
|
|
64
|
+
notched: true
|
|
65
|
+
})
|
|
66
|
+
}),
|
|
67
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(_LazyTextField.LazyTextField, {
|
|
68
|
+
label: "Filters (one per line)",
|
|
69
|
+
value: (value.filters ?? []).join('\n'),
|
|
70
|
+
onCommit: handleFiltersChange,
|
|
71
|
+
placeholder: 'alertname="HighMemory"\nseverity="critical"\nenvironment=~"${env:pipe}"',
|
|
72
|
+
helperText: "PromQL-style matchers, one per line.",
|
|
73
|
+
multiline: true,
|
|
74
|
+
minRows: 3
|
|
75
|
+
})
|
|
76
|
+
]
|
|
77
|
+
});
|
|
78
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Copyright The Perses Authors
|
|
2
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
// you may not use this file except in compliance with the License.
|
|
4
|
+
// You may obtain a copy of the License at
|
|
5
|
+
//
|
|
6
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
//
|
|
8
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
// See the License for the specific language governing permissions and
|
|
12
|
+
// limitations under the License.
|
|
13
|
+
"use strict";
|
|
14
|
+
Object.defineProperty(exports, "__esModule", {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(exports, "getSilencesData", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function() {
|
|
20
|
+
return getSilencesData;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
const _pluginsystem = require("@perses-dev/plugin-system");
|
|
24
|
+
const _model = require("../../model");
|
|
25
|
+
/**
|
|
26
|
+
* Transform a GettableSilence from the Alertmanager API into our normalized Silence format.
|
|
27
|
+
*/ function transformSilence(apiSilence) {
|
|
28
|
+
return {
|
|
29
|
+
id: apiSilence.id,
|
|
30
|
+
state: apiSilence.status.state,
|
|
31
|
+
matchers: apiSilence.matchers.map((m)=>({
|
|
32
|
+
name: m.name,
|
|
33
|
+
value: m.value,
|
|
34
|
+
isRegex: m.isRegex,
|
|
35
|
+
isEqual: m.isEqual
|
|
36
|
+
})),
|
|
37
|
+
startsAt: apiSilence.startsAt,
|
|
38
|
+
endsAt: apiSilence.endsAt,
|
|
39
|
+
createdBy: apiSilence.createdBy,
|
|
40
|
+
comment: apiSilence.comment,
|
|
41
|
+
updatedAt: apiSilence.updatedAt
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
async function getSilencesData(spec, context) {
|
|
45
|
+
const listDatasourceSelectItems = await context.datasourceStore.listDatasourceSelectItems(_model.ALERTMANAGER_DATASOURCE_KIND);
|
|
46
|
+
const datasourceSelector = (0, _pluginsystem.datasourceSelectValueToSelector)(spec.datasource, context.variableState, listDatasourceSelectItems) ?? _model.DEFAULT_ALERTMANAGER;
|
|
47
|
+
const client = await context.datasourceStore.getDatasourceClient(datasourceSelector);
|
|
48
|
+
const interpolatedFilters = spec.filters?.map((f)=>(0, _pluginsystem.replaceVariables)(f, context.variableState));
|
|
49
|
+
const apiSilences = await client.getSilences({
|
|
50
|
+
filter: interpolatedFilters
|
|
51
|
+
});
|
|
52
|
+
const silences = apiSilences.map(transformSilence);
|
|
53
|
+
return {
|
|
54
|
+
silences,
|
|
55
|
+
metadata: {
|
|
56
|
+
executedQueryString: buildQueryString(spec)
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function buildQueryString(spec) {
|
|
61
|
+
return JSON.stringify(Object.fromEntries(Object.entries({
|
|
62
|
+
filters: spec.filters
|
|
63
|
+
}).filter(([, value])=>value !== undefined)));
|
|
64
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// Copyright The Perses Authors
|
|
2
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
// you may not use this file except in compliance with the License.
|
|
4
|
+
// You may obtain a copy of the License at
|
|
5
|
+
//
|
|
6
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
//
|
|
8
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
// See the License for the specific language governing permissions and
|
|
12
|
+
// limitations under the License.
|
|
13
|
+
"use strict";
|
|
14
|
+
Object.defineProperty(exports, "__esModule", {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
function _export(target, all) {
|
|
18
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
_export(exports, {
|
|
24
|
+
get ALL_SILENCE_ACTIONS () {
|
|
25
|
+
return _silencetablemodel.ALL_SILENCE_ACTIONS;
|
|
26
|
+
},
|
|
27
|
+
get DEFAULT_COLUMN_HEADERS () {
|
|
28
|
+
return _silencetablemodel.DEFAULT_COLUMN_HEADERS;
|
|
29
|
+
},
|
|
30
|
+
get DEFAULT_SILENCE_COLUMNS () {
|
|
31
|
+
return _silencetablemodel.DEFAULT_SILENCE_COLUMNS;
|
|
32
|
+
},
|
|
33
|
+
get compareSilencesByColumn () {
|
|
34
|
+
return _silencetablesorting.compareSilencesByColumn;
|
|
35
|
+
},
|
|
36
|
+
get getSilenceDuration () {
|
|
37
|
+
return _silencetablemodel.getSilenceDuration;
|
|
38
|
+
},
|
|
39
|
+
get getSilenceFieldValue () {
|
|
40
|
+
return _silencetablemodel.getSilenceFieldValue;
|
|
41
|
+
},
|
|
42
|
+
get inferSortMode () {
|
|
43
|
+
return _silencetablemodel.inferSortMode;
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
_export_star(require("./alertmanager-datasource"), exports);
|
|
47
|
+
_export_star(require("./types"), exports);
|
|
48
|
+
_export_star(require("./AlertManagerDatasourceEditor"), exports);
|
|
49
|
+
_export_star(require("./alertmanager-alerts-query/AlertManagerAlertsQuery"), exports);
|
|
50
|
+
_export_star(require("./alertmanager-alerts-query/get-alerts-data"), exports);
|
|
51
|
+
_export_star(require("./alertmanager-alerts-query/AlertManagerAlertsQueryEditor"), exports);
|
|
52
|
+
_export_star(require("./alertmanager-silences-query/AlertManagerSilencesQuery"), exports);
|
|
53
|
+
_export_star(require("./alertmanager-silences-query/get-silences-data"), exports);
|
|
54
|
+
_export_star(require("./alertmanager-silences-query/AlertManagerSilencesQueryEditor"), exports);
|
|
55
|
+
_export_star(require("./alert-table/AlertTable"), exports);
|
|
56
|
+
_export_star(require("./alert-table/alert-table-model"), exports);
|
|
57
|
+
_export_star(require("./alert-table/AlertTablePanel"), exports);
|
|
58
|
+
_export_star(require("./silence-table/SilenceTable"), exports);
|
|
59
|
+
const _silencetablemodel = require("./silence-table/silence-table-model");
|
|
60
|
+
const _silencetablesorting = require("./silence-table/silence-table-sorting");
|
|
61
|
+
_export_star(require("./silence-table/SilenceTablePanel"), exports);
|
|
62
|
+
function _export_star(from, to) {
|
|
63
|
+
Object.keys(from).forEach(function(k) {
|
|
64
|
+
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
65
|
+
Object.defineProperty(to, k, {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
get: function() {
|
|
68
|
+
return from[k];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
return from;
|
|
74
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// Copyright The Perses Authors
|
|
2
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
// you may not use this file except in compliance with the License.
|
|
4
|
+
// You may obtain a copy of the License at
|
|
5
|
+
//
|
|
6
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
//
|
|
8
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
// See the License for the specific language governing permissions and
|
|
12
|
+
// limitations under the License.
|
|
13
|
+
"use strict";
|
|
14
|
+
Object.defineProperty(exports, "__esModule", {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(exports, "SilenceTable", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function() {
|
|
20
|
+
return SilenceTable;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
const _SilenceTableColumnsEditor = require("./SilenceTableColumnsEditor");
|
|
24
|
+
const _SilenceTableOptionsEditor = require("./SilenceTableOptionsEditor");
|
|
25
|
+
const _SilenceTablePanel = require("./SilenceTablePanel");
|
|
26
|
+
const SilenceTable = {
|
|
27
|
+
PanelComponent: _SilenceTablePanel.SilenceTablePanel,
|
|
28
|
+
supportedQueryTypes: [
|
|
29
|
+
'SilencesQuery'
|
|
30
|
+
],
|
|
31
|
+
panelOptionsEditorComponents: [
|
|
32
|
+
{
|
|
33
|
+
label: 'General',
|
|
34
|
+
content: _SilenceTableOptionsEditor.SilenceTableOptionsEditor
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
label: 'Columns',
|
|
38
|
+
content: _SilenceTableColumnsEditor.SilenceTableColumnsEditor
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
createInitialOptions: ()=>({})
|
|
42
|
+
};
|