@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.
Files changed (380) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +41 -0
  3. package/__mf/css/async/7790.85c2cbf6.css +1 -0
  4. package/__mf/font/inter-cyrillic-300-normal.432f2b21.woff +0 -0
  5. package/__mf/font/inter-cyrillic-300-normal.9da91009.woff2 +0 -0
  6. package/__mf/font/inter-cyrillic-400-normal.372704ff.woff2 +0 -0
  7. package/__mf/font/inter-cyrillic-400-normal.a6b6ef6f.woff +0 -0
  8. package/__mf/font/inter-cyrillic-500-normal.7c15bba8.woff2 +0 -0
  9. package/__mf/font/inter-cyrillic-500-normal.b9f8c929.woff +0 -0
  10. package/__mf/font/inter-cyrillic-600-normal.2f42892a.woff2 +0 -0
  11. package/__mf/font/inter-cyrillic-600-normal.c3987adc.woff +0 -0
  12. package/__mf/font/inter-cyrillic-700-normal.93eba3c3.woff +0 -0
  13. package/__mf/font/inter-cyrillic-700-normal.e9e5b2dc.woff2 +0 -0
  14. package/__mf/font/inter-cyrillic-900-normal.f285bd7a.woff2 +0 -0
  15. package/__mf/font/inter-cyrillic-900-normal.ffbd8a3a.woff +0 -0
  16. package/__mf/font/inter-cyrillic-ext-300-normal.95bb9038.woff2 +0 -0
  17. package/__mf/font/inter-cyrillic-ext-300-normal.cfc143a9.woff +0 -0
  18. package/__mf/font/inter-cyrillic-ext-400-normal.2a31c04b.woff +0 -0
  19. package/__mf/font/inter-cyrillic-ext-400-normal.f572b170.woff2 +0 -0
  20. package/__mf/font/inter-cyrillic-ext-500-normal.5a6bb1da.woff +0 -0
  21. package/__mf/font/inter-cyrillic-ext-500-normal.fe0d9b14.woff2 +0 -0
  22. package/__mf/font/inter-cyrillic-ext-600-normal.ecbdecad.woff +0 -0
  23. package/__mf/font/inter-cyrillic-ext-600-normal.f7b3c15b.woff2 +0 -0
  24. package/__mf/font/inter-cyrillic-ext-700-normal.4b4022a6.woff +0 -0
  25. package/__mf/font/inter-cyrillic-ext-700-normal.74b516d2.woff2 +0 -0
  26. package/__mf/font/inter-cyrillic-ext-900-normal.9970ddb5.woff +0 -0
  27. package/__mf/font/inter-cyrillic-ext-900-normal.a0d59adc.woff2 +0 -0
  28. package/__mf/font/inter-greek-300-normal.0d7be683.woff2 +0 -0
  29. package/__mf/font/inter-greek-300-normal.8f0b988e.woff +0 -0
  30. package/__mf/font/inter-greek-400-normal.cc58c11b.woff +0 -0
  31. package/__mf/font/inter-greek-400-normal.d7020e3c.woff2 +0 -0
  32. package/__mf/font/inter-greek-500-normal.d9a33207.woff +0 -0
  33. package/__mf/font/inter-greek-500-normal.f41f43db.woff2 +0 -0
  34. package/__mf/font/inter-greek-600-normal.4ec0c1c1.woff +0 -0
  35. package/__mf/font/inter-greek-600-normal.cc532937.woff2 +0 -0
  36. package/__mf/font/inter-greek-700-normal.5ec6c758.woff +0 -0
  37. package/__mf/font/inter-greek-700-normal.97f0eeeb.woff2 +0 -0
  38. package/__mf/font/inter-greek-900-normal.46b66369.woff2 +0 -0
  39. package/__mf/font/inter-greek-900-normal.9ae3a3c5.woff +0 -0
  40. package/__mf/font/inter-greek-ext-300-normal.10247a66.woff2 +0 -0
  41. package/__mf/font/inter-greek-ext-300-normal.4668e5cb.woff +0 -0
  42. package/__mf/font/inter-greek-ext-400-normal.4ce1df5d.woff2 +0 -0
  43. package/__mf/font/inter-greek-ext-400-normal.88ede1ea.woff +0 -0
  44. package/__mf/font/inter-greek-ext-500-normal.7a4aa726.woff +0 -0
  45. package/__mf/font/inter-greek-ext-500-normal.cbd51e2d.woff2 +0 -0
  46. package/__mf/font/inter-greek-ext-600-normal.089a95ee.woff +0 -0
  47. package/__mf/font/inter-greek-ext-600-normal.1f33d317.woff2 +0 -0
  48. package/__mf/font/inter-greek-ext-700-normal.31f1075d.woff +0 -0
  49. package/__mf/font/inter-greek-ext-700-normal.827cd618.woff2 +0 -0
  50. package/__mf/font/inter-greek-ext-900-normal.531bcee7.woff +0 -0
  51. package/__mf/font/inter-greek-ext-900-normal.8a9b36b9.woff2 +0 -0
  52. package/__mf/font/inter-latin-300-normal.15fb600d.woff2 +0 -0
  53. package/__mf/font/inter-latin-300-normal.6f95f590.woff +0 -0
  54. package/__mf/font/inter-latin-400-normal.2c7a775c.woff +0 -0
  55. package/__mf/font/inter-latin-400-normal.ef6d3f52.woff2 +0 -0
  56. package/__mf/font/inter-latin-500-normal.b7b43ace.woff2 +0 -0
  57. package/__mf/font/inter-latin-500-normal.cb4c8ceb.woff +0 -0
  58. package/__mf/font/inter-latin-600-normal.8fb1a964.woff2 +0 -0
  59. package/__mf/font/inter-latin-600-normal.ce0f5f43.woff +0 -0
  60. package/__mf/font/inter-latin-700-normal.953b7aa5.woff2 +0 -0
  61. package/__mf/font/inter-latin-700-normal.9c21d4dc.woff +0 -0
  62. package/__mf/font/inter-latin-900-normal.2a8028ec.woff2 +0 -0
  63. package/__mf/font/inter-latin-900-normal.fa252135.woff +0 -0
  64. package/__mf/font/inter-latin-ext-300-normal.167cc8c9.woff2 +0 -0
  65. package/__mf/font/inter-latin-ext-300-normal.f695be66.woff +0 -0
  66. package/__mf/font/inter-latin-ext-400-normal.32a25442.woff2 +0 -0
  67. package/__mf/font/inter-latin-ext-400-normal.4edcaace.woff +0 -0
  68. package/__mf/font/inter-latin-ext-500-normal.a19a84a6.woff +0 -0
  69. package/__mf/font/inter-latin-ext-500-normal.d9b491de.woff2 +0 -0
  70. package/__mf/font/inter-latin-ext-600-normal.38b075d8.woff2 +0 -0
  71. package/__mf/font/inter-latin-ext-600-normal.49faa47a.woff +0 -0
  72. package/__mf/font/inter-latin-ext-700-normal.93534b50.woff +0 -0
  73. package/__mf/font/inter-latin-ext-700-normal.b63daa1a.woff2 +0 -0
  74. package/__mf/font/inter-latin-ext-900-normal.0efdb307.woff +0 -0
  75. package/__mf/font/inter-latin-ext-900-normal.9c0fc2c7.woff2 +0 -0
  76. package/__mf/font/inter-vietnamese-300-normal.aad496d8.woff +0 -0
  77. package/__mf/font/inter-vietnamese-300-normal.ad9ef503.woff2 +0 -0
  78. package/__mf/font/inter-vietnamese-400-normal.a9dd2faf.woff +0 -0
  79. package/__mf/font/inter-vietnamese-400-normal.de4fc44f.woff2 +0 -0
  80. package/__mf/font/inter-vietnamese-500-normal.7c0a695f.woff2 +0 -0
  81. package/__mf/font/inter-vietnamese-500-normal.a3a73b95.woff +0 -0
  82. package/__mf/font/inter-vietnamese-600-normal.9d518599.woff2 +0 -0
  83. package/__mf/font/inter-vietnamese-600-normal.c5ce3fcb.woff +0 -0
  84. package/__mf/font/inter-vietnamese-700-normal.bc68b199.woff +0 -0
  85. package/__mf/font/inter-vietnamese-700-normal.faf12809.woff2 +0 -0
  86. package/__mf/font/inter-vietnamese-900-normal.2b782045.woff +0 -0
  87. package/__mf/font/inter-vietnamese-900-normal.e639b65a.woff2 +0 -0
  88. package/__mf/js/AlertManager.f762e62c.js +7 -0
  89. package/__mf/js/async/1616.24f00c9d.js +1 -0
  90. package/__mf/js/async/1728.83bb9a7c.js +1 -0
  91. package/__mf/js/async/1871.23ff54b3.js +1 -0
  92. package/__mf/js/async/1969.a83b1b48.js +1 -0
  93. package/__mf/js/async/2218.7829c9d9.js +2 -0
  94. package/__mf/js/async/2218.7829c9d9.js.LICENSE.txt +9 -0
  95. package/__mf/js/async/2377.f8875a4e.js +1 -0
  96. package/__mf/js/async/2657.fe8dd44f.js +1 -0
  97. package/__mf/js/async/2954.3ac1f636.js +2 -0
  98. package/__mf/js/async/392.7e11dd69.js +2 -0
  99. package/__mf/js/async/392.7e11dd69.js.LICENSE.txt +8 -0
  100. package/__mf/js/async/3963.fb6246d2.js +1 -0
  101. package/__mf/js/async/4121.ec666be2.js +2 -0
  102. package/__mf/js/async/4121.ec666be2.js.LICENSE.txt +9 -0
  103. package/__mf/js/async/4133.e94df4f8.js +28 -0
  104. package/__mf/js/async/4213.a0c4f2eb.js +1 -0
  105. package/__mf/js/async/4397.d399eecb.js +2 -0
  106. package/__mf/js/async/4397.d399eecb.js.LICENSE.txt +37 -0
  107. package/__mf/js/async/4466.a8145edd.js +74 -0
  108. package/__mf/js/async/4732.e866a740.js +1 -0
  109. package/__mf/js/async/4788.49ffeac3.js +1 -0
  110. package/__mf/js/async/5038.269393e3.js +2 -0
  111. package/__mf/js/async/5038.269393e3.js.LICENSE.txt +9 -0
  112. package/__mf/js/async/573.214f2003.js +2 -0
  113. package/__mf/js/async/573.214f2003.js.LICENSE.txt +9 -0
  114. package/__mf/js/async/6274.8c77cb1a.js +2 -0
  115. package/__mf/js/async/6274.8c77cb1a.js.LICENSE.txt +8 -0
  116. package/__mf/js/async/6390.3f6f279d.js +2 -0
  117. package/__mf/js/async/6390.3f6f279d.js.LICENSE.txt +9 -0
  118. package/__mf/js/async/6401.1a59dbad.js +1 -0
  119. package/__mf/js/async/6593.acc8b704.js +4 -0
  120. package/__mf/js/async/6593.acc8b704.js.LICENSE.txt +24 -0
  121. package/__mf/js/async/6594.b02adfd9.js +2 -0
  122. package/__mf/js/async/6594.b02adfd9.js.LICENSE.txt +9 -0
  123. package/__mf/js/async/663.5445c7e0.js +1 -0
  124. package/__mf/js/async/6854.1d628838.js +1 -0
  125. package/__mf/js/async/7177.27c86137.js +1 -0
  126. package/__mf/js/async/7192.ede9860b.js +1 -0
  127. package/__mf/js/async/733.22ab2a8a.js +1 -0
  128. package/__mf/js/async/7422.33d76364.js +2 -0
  129. package/__mf/js/async/7422.33d76364.js.LICENSE.txt +9 -0
  130. package/__mf/js/async/7790.a75199e6.js +7 -0
  131. package/__mf/js/async/7790.a75199e6.js.LICENSE.txt +64 -0
  132. package/__mf/js/async/7862.556c038f.js +2 -0
  133. package/__mf/js/async/7862.556c038f.js.LICENSE.txt +9 -0
  134. package/__mf/js/async/7984.49fa1156.js +22 -0
  135. package/__mf/js/async/7984.49fa1156.js.LICENSE.txt +19 -0
  136. package/__mf/js/async/804.23da0d30.js +37 -0
  137. package/__mf/js/async/8470.2df0db71.js +2 -0
  138. package/__mf/js/async/8470.2df0db71.js.LICENSE.txt +19 -0
  139. package/__mf/js/async/8697.c13c6603.js +1 -0
  140. package/__mf/js/async/8907.9e3edf43.js +1 -0
  141. package/__mf/js/async/9040.94717f28.js +10 -0
  142. package/__mf/js/async/9040.94717f28.js.LICENSE.txt +17 -0
  143. package/__mf/js/async/9184.27a439a4.js +1 -0
  144. package/__mf/js/async/9235.00f9412f.js +1 -0
  145. package/__mf/js/async/941.d3bc6208.js +2 -0
  146. package/__mf/js/async/941.d3bc6208.js.LICENSE.txt +9 -0
  147. package/__mf/js/async/9634.3a366799.js +1 -0
  148. package/__mf/js/async/9836.cc839227.js +1 -0
  149. package/__mf/js/async/__federation_expose_AlertManagerAlertsExplorer.d4fb76c0.js +2 -0
  150. package/__mf/js/async/__federation_expose_AlertManagerAlertsExplorer.d4fb76c0.js.LICENSE.txt +9 -0
  151. package/__mf/js/async/__federation_expose_AlertManagerAlertsQuery.9ea3093c.js +1 -0
  152. package/__mf/js/async/__federation_expose_AlertManagerDatasource.2fbf067c.js +2 -0
  153. package/__mf/js/async/__federation_expose_AlertManagerDatasource.2fbf067c.js.LICENSE.txt +9 -0
  154. package/__mf/js/async/__federation_expose_AlertManagerSilencesExplorer.d2527c12.js +2 -0
  155. package/__mf/js/async/__federation_expose_AlertManagerSilencesExplorer.d2527c12.js.LICENSE.txt +9 -0
  156. package/__mf/js/async/__federation_expose_AlertManagerSilencesQuery.7aca31d3.js +2 -0
  157. package/__mf/js/async/__federation_expose_AlertManagerSilencesQuery.7aca31d3.js.LICENSE.txt +9 -0
  158. package/__mf/js/async/__federation_expose_AlertTable.4a636b80.js +1 -0
  159. package/__mf/js/async/__federation_expose_SilenceTable.11259028.js +1 -0
  160. package/__mf/js/async/lib-router.19f64904.js +2 -0
  161. package/__mf/js/async/lib-router.19f64904.js.LICENSE.txt +32 -0
  162. package/__mf/js/main.a1362788.js +7 -0
  163. package/lib/bootstrap.d.ts +2 -0
  164. package/lib/bootstrap.d.ts.map +1 -0
  165. package/lib/bootstrap.js +19 -0
  166. package/lib/bootstrap.js.map +1 -0
  167. package/lib/cjs/bootstrap.js +26 -0
  168. package/lib/cjs/components/ColumnsEditor.js +271 -0
  169. package/lib/cjs/components/LazyTextField.js +50 -0
  170. package/lib/cjs/components/MatcherEditor.js +153 -0
  171. package/lib/cjs/components/MatchersList.js +46 -0
  172. package/lib/cjs/components/SilenceForm.js +205 -0
  173. package/lib/cjs/components/StatusBadge.js +71 -0
  174. package/lib/cjs/components/index.js +44 -0
  175. package/lib/cjs/explore/AlertManagerAlertsExplorer.js +79 -0
  176. package/lib/cjs/explore/AlertManagerSilencesExplorer.js +153 -0
  177. package/lib/cjs/getPluginModule.js +39 -0
  178. package/lib/cjs/index-federation.js +55 -0
  179. package/lib/cjs/index.js +39 -0
  180. package/lib/cjs/model/alertmanager-client.js +128 -0
  181. package/lib/cjs/model/alertmanager-selectors.js +66 -0
  182. package/lib/cjs/model/api-types.js +22 -0
  183. package/lib/cjs/model/index.js +32 -0
  184. package/lib/cjs/plugins/AlertManagerDatasourceEditor.js +71 -0
  185. package/lib/cjs/plugins/alert-table/AlertTable.js +56 -0
  186. package/lib/cjs/plugins/alert-table/AlertTableColumnsEditor.js +110 -0
  187. package/lib/cjs/plugins/alert-table/AlertTableDeduplicationEditor.js +138 -0
  188. package/lib/cjs/plugins/alert-table/AlertTableLabelsEditor.js +277 -0
  189. package/lib/cjs/plugins/alert-table/AlertTableOptionsEditor.js +128 -0
  190. package/lib/cjs/plugins/alert-table/AlertTablePanel.js +773 -0
  191. package/lib/cjs/plugins/alert-table/alert-table-model.js +142 -0
  192. package/lib/cjs/plugins/alert-table/alert-table-sorting.js +205 -0
  193. package/lib/cjs/plugins/alert-table/label-colors.js +170 -0
  194. package/lib/cjs/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.js +51 -0
  195. package/lib/cjs/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.js +138 -0
  196. package/lib/cjs/plugins/alertmanager-alerts-query/get-alerts-data.js +124 -0
  197. package/lib/cjs/plugins/alertmanager-datasource.js +69 -0
  198. package/lib/cjs/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.js +45 -0
  199. package/lib/cjs/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.js +78 -0
  200. package/lib/cjs/plugins/alertmanager-silences-query/get-silences-data.js +64 -0
  201. package/lib/cjs/plugins/index.js +74 -0
  202. package/lib/cjs/plugins/silence-table/SilenceTable.js +42 -0
  203. package/lib/cjs/plugins/silence-table/SilenceTableColumnsEditor.js +137 -0
  204. package/lib/cjs/plugins/silence-table/SilenceTableOptionsEditor.js +63 -0
  205. package/lib/cjs/plugins/silence-table/SilenceTablePanel.js +345 -0
  206. package/lib/cjs/plugins/silence-table/silence-table-model.js +116 -0
  207. package/lib/cjs/plugins/silence-table/silence-table-sorting.js +68 -0
  208. package/lib/cjs/plugins/types.js +16 -0
  209. package/lib/cjs/setup-tests.js +18 -0
  210. package/lib/components/ColumnsEditor.d.ts +25 -0
  211. package/lib/components/ColumnsEditor.d.ts.map +1 -0
  212. package/lib/components/ColumnsEditor.js +258 -0
  213. package/lib/components/ColumnsEditor.js.map +1 -0
  214. package/lib/components/LazyTextField.d.ts +12 -0
  215. package/lib/components/LazyTextField.d.ts.map +1 -0
  216. package/lib/components/LazyTextField.js +42 -0
  217. package/lib/components/LazyTextField.js.map +1 -0
  218. package/lib/components/MatcherEditor.d.ts +17 -0
  219. package/lib/components/MatcherEditor.d.ts.map +1 -0
  220. package/lib/components/MatcherEditor.js +142 -0
  221. package/lib/components/MatcherEditor.js.map +1 -0
  222. package/lib/components/MatchersList.d.ts +10 -0
  223. package/lib/components/MatchersList.d.ts.map +1 -0
  224. package/lib/components/MatchersList.js +40 -0
  225. package/lib/components/MatchersList.js.map +1 -0
  226. package/lib/components/SilenceForm.d.ts +13 -0
  227. package/lib/components/SilenceForm.d.ts.map +1 -0
  228. package/lib/components/SilenceForm.js +194 -0
  229. package/lib/components/SilenceForm.js.map +1 -0
  230. package/lib/components/StatusBadge.d.ts +10 -0
  231. package/lib/components/StatusBadge.d.ts.map +1 -0
  232. package/lib/components/StatusBadge.js +65 -0
  233. package/lib/components/StatusBadge.js.map +1 -0
  234. package/lib/components/index.d.ts +11 -0
  235. package/lib/components/index.d.ts.map +1 -0
  236. package/lib/components/index.js +19 -0
  237. package/lib/components/index.js.map +1 -0
  238. package/lib/explore/AlertManagerAlertsExplorer.d.ts +3 -0
  239. package/lib/explore/AlertManagerAlertsExplorer.d.ts.map +1 -0
  240. package/lib/explore/AlertManagerAlertsExplorer.js +71 -0
  241. package/lib/explore/AlertManagerAlertsExplorer.js.map +1 -0
  242. package/lib/explore/AlertManagerSilencesExplorer.d.ts +3 -0
  243. package/lib/explore/AlertManagerSilencesExplorer.d.ts.map +1 -0
  244. package/lib/explore/AlertManagerSilencesExplorer.js +140 -0
  245. package/lib/explore/AlertManagerSilencesExplorer.js.map +1 -0
  246. package/lib/getPluginModule.d.ts +3 -0
  247. package/lib/getPluginModule.d.ts.map +1 -0
  248. package/lib/getPluginModule.js +26 -0
  249. package/lib/getPluginModule.js.map +1 -0
  250. package/lib/index-federation.d.ts +1 -0
  251. package/lib/index-federation.d.ts.map +1 -0
  252. package/lib/index-federation.js +15 -0
  253. package/lib/index-federation.js.map +1 -0
  254. package/lib/index.d.ts +5 -0
  255. package/lib/index.d.ts.map +1 -0
  256. package/lib/index.js +18 -0
  257. package/lib/index.js.map +1 -0
  258. package/lib/model/alertmanager-client.d.ts +27 -0
  259. package/lib/model/alertmanager-client.d.ts.map +1 -0
  260. package/lib/model/alertmanager-client.js +100 -0
  261. package/lib/model/alertmanager-client.js.map +1 -0
  262. package/lib/model/alertmanager-selectors.d.ts +13 -0
  263. package/lib/model/alertmanager-selectors.d.ts.map +1 -0
  264. package/lib/model/alertmanager-selectors.js +41 -0
  265. package/lib/model/alertmanager-selectors.js.map +1 -0
  266. package/lib/model/api-types.d.ts +120 -0
  267. package/lib/model/api-types.d.ts.map +1 -0
  268. package/lib/model/api-types.js +23 -0
  269. package/lib/model/api-types.js.map +1 -0
  270. package/lib/model/index.d.ts +4 -0
  271. package/lib/model/index.d.ts.map +1 -0
  272. package/lib/model/index.js +17 -0
  273. package/lib/model/index.js.map +1 -0
  274. package/lib/plugins/AlertManagerDatasourceEditor.d.ts +9 -0
  275. package/lib/plugins/AlertManagerDatasourceEditor.d.ts.map +1 -0
  276. package/lib/plugins/AlertManagerDatasourceEditor.js +63 -0
  277. package/lib/plugins/AlertManagerDatasourceEditor.js.map +1 -0
  278. package/lib/plugins/alert-table/AlertTable.d.ts +8 -0
  279. package/lib/plugins/alert-table/AlertTable.d.ts.map +1 -0
  280. package/lib/plugins/alert-table/AlertTable.js +50 -0
  281. package/lib/plugins/alert-table/AlertTable.js.map +1 -0
  282. package/lib/plugins/alert-table/AlertTableColumnsEditor.d.ts +5 -0
  283. package/lib/plugins/alert-table/AlertTableColumnsEditor.d.ts.map +1 -0
  284. package/lib/plugins/alert-table/AlertTableColumnsEditor.js +102 -0
  285. package/lib/plugins/alert-table/AlertTableColumnsEditor.js.map +1 -0
  286. package/lib/plugins/alert-table/AlertTableDeduplicationEditor.d.ts +5 -0
  287. package/lib/plugins/alert-table/AlertTableDeduplicationEditor.d.ts.map +1 -0
  288. package/lib/plugins/alert-table/AlertTableDeduplicationEditor.js +130 -0
  289. package/lib/plugins/alert-table/AlertTableDeduplicationEditor.js.map +1 -0
  290. package/lib/plugins/alert-table/AlertTableLabelsEditor.d.ts +5 -0
  291. package/lib/plugins/alert-table/AlertTableLabelsEditor.d.ts.map +1 -0
  292. package/lib/plugins/alert-table/AlertTableLabelsEditor.js +264 -0
  293. package/lib/plugins/alert-table/AlertTableLabelsEditor.js.map +1 -0
  294. package/lib/plugins/alert-table/AlertTableOptionsEditor.d.ts +5 -0
  295. package/lib/plugins/alert-table/AlertTableOptionsEditor.d.ts.map +1 -0
  296. package/lib/plugins/alert-table/AlertTableOptionsEditor.js +120 -0
  297. package/lib/plugins/alert-table/AlertTableOptionsEditor.js.map +1 -0
  298. package/lib/plugins/alert-table/AlertTablePanel.d.ts +11 -0
  299. package/lib/plugins/alert-table/AlertTablePanel.d.ts.map +1 -0
  300. package/lib/plugins/alert-table/AlertTablePanel.js +763 -0
  301. package/lib/plugins/alert-table/AlertTablePanel.js.map +1 -0
  302. package/lib/plugins/alert-table/alert-table-model.d.ts +73 -0
  303. package/lib/plugins/alert-table/alert-table-model.d.ts.map +1 -0
  304. package/lib/plugins/alert-table/alert-table-model.js +127 -0
  305. package/lib/plugins/alert-table/alert-table-model.js.map +1 -0
  306. package/lib/plugins/alert-table/alert-table-sorting.d.ts +13 -0
  307. package/lib/plugins/alert-table/alert-table-sorting.d.ts.map +1 -0
  308. package/lib/plugins/alert-table/alert-table-sorting.js +180 -0
  309. package/lib/plugins/alert-table/alert-table-sorting.js.map +1 -0
  310. package/lib/plugins/alert-table/label-colors.d.ts +6 -0
  311. package/lib/plugins/alert-table/label-colors.d.ts.map +1 -0
  312. package/lib/plugins/alert-table/label-colors.js +148 -0
  313. package/lib/plugins/alert-table/label-colors.js.map +1 -0
  314. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.d.ts +4 -0
  315. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.d.ts.map +1 -0
  316. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.js +43 -0
  317. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQuery.js.map +1 -0
  318. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.d.ts +9 -0
  319. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.d.ts.map +1 -0
  320. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.js +130 -0
  321. package/lib/plugins/alertmanager-alerts-query/AlertManagerAlertsQueryEditor.js.map +1 -0
  322. package/lib/plugins/alertmanager-alerts-query/get-alerts-data.d.ts +8 -0
  323. package/lib/plugins/alertmanager-alerts-query/get-alerts-data.d.ts.map +1 -0
  324. package/lib/plugins/alertmanager-alerts-query/get-alerts-data.js +118 -0
  325. package/lib/plugins/alertmanager-alerts-query/get-alerts-data.js.map +1 -0
  326. package/lib/plugins/alertmanager-datasource.d.ts +5 -0
  327. package/lib/plugins/alertmanager-datasource.d.ts.map +1 -0
  328. package/lib/plugins/alertmanager-datasource.js +61 -0
  329. package/lib/plugins/alertmanager-datasource.js.map +1 -0
  330. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.d.ts +4 -0
  331. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.d.ts.map +1 -0
  332. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.js +37 -0
  333. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQuery.js.map +1 -0
  334. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.d.ts +9 -0
  335. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.d.ts.map +1 -0
  336. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.js +70 -0
  337. package/lib/plugins/alertmanager-silences-query/AlertManagerSilencesQueryEditor.js.map +1 -0
  338. package/lib/plugins/alertmanager-silences-query/get-silences-data.d.ts +8 -0
  339. package/lib/plugins/alertmanager-silences-query/get-silences-data.d.ts.map +1 -0
  340. package/lib/plugins/alertmanager-silences-query/get-silences-data.js +58 -0
  341. package/lib/plugins/alertmanager-silences-query/get-silences-data.js.map +1 -0
  342. package/lib/plugins/index.d.ts +19 -0
  343. package/lib/plugins/index.d.ts.map +1 -0
  344. package/lib/plugins/index.js +30 -0
  345. package/lib/plugins/index.js.map +1 -0
  346. package/lib/plugins/silence-table/SilenceTable.d.ts +7 -0
  347. package/lib/plugins/silence-table/SilenceTable.d.ts.map +1 -0
  348. package/lib/plugins/silence-table/SilenceTable.js +36 -0
  349. package/lib/plugins/silence-table/SilenceTable.js.map +1 -0
  350. package/lib/plugins/silence-table/SilenceTableColumnsEditor.d.ts +5 -0
  351. package/lib/plugins/silence-table/SilenceTableColumnsEditor.d.ts.map +1 -0
  352. package/lib/plugins/silence-table/SilenceTableColumnsEditor.js +129 -0
  353. package/lib/plugins/silence-table/SilenceTableColumnsEditor.js.map +1 -0
  354. package/lib/plugins/silence-table/SilenceTableOptionsEditor.d.ts +5 -0
  355. package/lib/plugins/silence-table/SilenceTableOptionsEditor.d.ts.map +1 -0
  356. package/lib/plugins/silence-table/SilenceTableOptionsEditor.js +55 -0
  357. package/lib/plugins/silence-table/SilenceTableOptionsEditor.js.map +1 -0
  358. package/lib/plugins/silence-table/SilenceTablePanel.d.ts +11 -0
  359. package/lib/plugins/silence-table/SilenceTablePanel.d.ts.map +1 -0
  360. package/lib/plugins/silence-table/SilenceTablePanel.js +335 -0
  361. package/lib/plugins/silence-table/SilenceTablePanel.js.map +1 -0
  362. package/lib/plugins/silence-table/silence-table-model.d.ts +29 -0
  363. package/lib/plugins/silence-table/silence-table-model.d.ts.map +1 -0
  364. package/lib/plugins/silence-table/silence-table-model.js +90 -0
  365. package/lib/plugins/silence-table/silence-table-model.js.map +1 -0
  366. package/lib/plugins/silence-table/silence-table-sorting.d.ts +9 -0
  367. package/lib/plugins/silence-table/silence-table-sorting.d.ts.map +1 -0
  368. package/lib/plugins/silence-table/silence-table-sorting.js +60 -0
  369. package/lib/plugins/silence-table/silence-table-sorting.js.map +1 -0
  370. package/lib/plugins/types.d.ts +30 -0
  371. package/lib/plugins/types.d.ts.map +1 -0
  372. package/lib/plugins/types.js +17 -0
  373. package/lib/plugins/types.js.map +1 -0
  374. package/lib/setup-tests.d.ts +2 -0
  375. package/lib/setup-tests.d.ts.map +1 -0
  376. package/lib/setup-tests.js +16 -0
  377. package/lib/setup-tests.js.map +1 -0
  378. package/mf-manifest.json +631 -0
  379. package/mf-stats.json +752 -0
  380. 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
+ };