@perses-dev/prometheus-plugin 0.38.0 → 0.40.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 (82) hide show
  1. package/dist/cjs/components/PromQL.js +9 -7
  2. package/dist/cjs/components/index.js +10 -8
  3. package/dist/cjs/index.js +33 -19
  4. package/dist/cjs/model/index.js +15 -13
  5. package/dist/cjs/model/parse-sample-values.js +6 -2
  6. package/dist/cjs/model/prometheus-client.js +24 -5
  7. package/dist/cjs/model/prometheus-selectors.js +13 -5
  8. package/dist/cjs/model/templating.js +7 -5
  9. package/dist/cjs/model/time.js +14 -8
  10. package/dist/cjs/plugins/MatcherEditor.js +13 -11
  11. package/dist/cjs/plugins/PrometheusDatasourceEditor/PrometheusDatasourceEditor.js +456 -0
  12. package/dist/cjs/plugins/PrometheusDatasourceEditor/index.js +31 -0
  13. package/dist/cjs/plugins/PrometheusDatasourceEditor/types.js +23 -0
  14. package/dist/cjs/plugins/prometheus-datasource.js +53 -6
  15. package/dist/cjs/plugins/prometheus-time-series-query/PrometheusTimeSeriesQuery.js +10 -8
  16. package/dist/cjs/plugins/prometheus-time-series-query/PrometheusTimeSeriesQueryEditor.js +44 -20
  17. package/dist/cjs/plugins/prometheus-time-series-query/get-time-series-data.js +41 -22
  18. package/dist/cjs/plugins/prometheus-time-series-query/index.js +10 -8
  19. package/dist/cjs/plugins/prometheus-time-series-query/query-editor-model.js +42 -9
  20. package/dist/cjs/plugins/prometheus-variables.js +60 -54
  21. package/dist/cjs/plugins/variable.js +9 -7
  22. package/dist/cjs/utils/index.js +10 -8
  23. package/dist/cjs/utils/utils.js +12 -6
  24. package/dist/components/PromQL.js.map +1 -1
  25. package/dist/components/index.js.map +1 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/model/index.js.map +1 -1
  28. package/dist/model/parse-sample-values.js.map +1 -1
  29. package/dist/model/prometheus-client.d.ts.map +1 -1
  30. package/dist/model/prometheus-client.js +9 -0
  31. package/dist/model/prometheus-client.js.map +1 -1
  32. package/dist/model/prometheus-selectors.js +1 -1
  33. package/dist/model/prometheus-selectors.js.map +1 -1
  34. package/dist/model/templating.js.map +1 -1
  35. package/dist/model/time.js +1 -1
  36. package/dist/model/time.js.map +1 -1
  37. package/dist/plugins/MatcherEditor.js.map +1 -1
  38. package/dist/plugins/PrometheusDatasourceEditor/PrometheusDatasourceEditor.d.ts +9 -0
  39. package/dist/plugins/PrometheusDatasourceEditor/PrometheusDatasourceEditor.d.ts.map +1 -0
  40. package/dist/plugins/PrometheusDatasourceEditor/PrometheusDatasourceEditor.js +404 -0
  41. package/dist/plugins/PrometheusDatasourceEditor/PrometheusDatasourceEditor.js.map +1 -0
  42. package/dist/plugins/PrometheusDatasourceEditor/index.d.ts +3 -0
  43. package/dist/plugins/PrometheusDatasourceEditor/index.d.ts.map +1 -0
  44. package/dist/plugins/PrometheusDatasourceEditor/index.js +16 -0
  45. package/dist/plugins/PrometheusDatasourceEditor/index.js.map +1 -0
  46. package/dist/plugins/PrometheusDatasourceEditor/types.d.ts +22 -0
  47. package/dist/plugins/PrometheusDatasourceEditor/types.d.ts.map +1 -0
  48. package/dist/plugins/PrometheusDatasourceEditor/types.js +15 -0
  49. package/dist/plugins/PrometheusDatasourceEditor/types.js.map +1 -0
  50. package/dist/plugins/prometheus-datasource.d.ts +5 -3
  51. package/dist/plugins/prometheus-datasource.d.ts.map +1 -1
  52. package/dist/plugins/prometheus-datasource.js +50 -5
  53. package/dist/plugins/prometheus-datasource.js.map +1 -1
  54. package/dist/plugins/prometheus-time-series-query/PrometheusTimeSeriesQuery.js +1 -1
  55. package/dist/plugins/prometheus-time-series-query/PrometheusTimeSeriesQuery.js.map +1 -1
  56. package/dist/plugins/prometheus-time-series-query/PrometheusTimeSeriesQueryEditor.d.ts.map +1 -1
  57. package/dist/plugins/prometheus-time-series-query/PrometheusTimeSeriesQueryEditor.js +32 -10
  58. package/dist/plugins/prometheus-time-series-query/PrometheusTimeSeriesQueryEditor.js.map +1 -1
  59. package/dist/plugins/prometheus-time-series-query/get-time-series-data.d.ts.map +1 -1
  60. package/dist/plugins/prometheus-time-series-query/get-time-series-data.js +34 -17
  61. package/dist/plugins/prometheus-time-series-query/get-time-series-data.js.map +1 -1
  62. package/dist/plugins/prometheus-time-series-query/index.js.map +1 -1
  63. package/dist/plugins/prometheus-time-series-query/query-editor-model.d.ts +10 -1
  64. package/dist/plugins/prometheus-time-series-query/query-editor-model.d.ts.map +1 -1
  65. package/dist/plugins/prometheus-time-series-query/query-editor-model.js +36 -8
  66. package/dist/plugins/prometheus-time-series-query/query-editor-model.js.map +1 -1
  67. package/dist/plugins/prometheus-time-series-query/time-series-query-model.d.ts +2 -2
  68. package/dist/plugins/prometheus-time-series-query/time-series-query-model.d.ts.map +1 -1
  69. package/dist/plugins/prometheus-time-series-query/time-series-query-model.js.map +1 -1
  70. package/dist/plugins/prometheus-variables.js +27 -27
  71. package/dist/plugins/prometheus-variables.js.map +1 -1
  72. package/dist/plugins/types.d.ts +2 -2
  73. package/dist/plugins/types.d.ts.map +1 -1
  74. package/dist/plugins/types.js.map +1 -1
  75. package/dist/plugins/variable.js +2 -2
  76. package/dist/plugins/variable.js.map +1 -1
  77. package/dist/test/setup-tests.js.map +1 -1
  78. package/dist/utils/index.js.map +1 -1
  79. package/dist/utils/utils.d.ts +1 -1
  80. package/dist/utils/utils.js +3 -3
  81. package/dist/utils/utils.js.map +1 -1
  82. package/package.json +6 -6
@@ -16,15 +16,17 @@ Object.defineProperty(exports, "__esModule", {
16
16
  });
17
17
  Object.defineProperty(exports, "PromQLEditor", {
18
18
  enumerable: true,
19
- get: ()=>PromQLEditor
19
+ get: function() {
20
+ return PromQLEditor;
21
+ }
20
22
  });
21
- const _jsxRuntime = require("react/jsx-runtime");
22
- const _reactCodemirror = /*#__PURE__*/ _interopRequireDefault(require("@uiw/react-codemirror"));
23
- const _codemirrorPromql = require("@prometheus-io/codemirror-promql");
23
+ const _jsxruntime = require("react/jsx-runtime");
24
+ const _reactcodemirror = /*#__PURE__*/ _interop_require_default(require("@uiw/react-codemirror"));
25
+ const _codemirrorpromql = require("@prometheus-io/codemirror-promql");
24
26
  const _view = require("@codemirror/view");
25
27
  const _material = require("@mui/material");
26
28
  const _react = require("react");
27
- function _interopRequireDefault(obj) {
29
+ function _interop_require_default(obj) {
28
30
  return obj && obj.__esModule ? obj : {
29
31
  default: obj
30
32
  };
@@ -33,11 +35,11 @@ function PromQLEditor({ completeConfig , ...rest }) {
33
35
  const theme = (0, _material.useTheme)();
34
36
  const isDarkMode = theme.palette.mode === 'dark';
35
37
  const promQLExtension = (0, _react.useMemo)(()=>{
36
- return new _codemirrorPromql.PromQLExtension().activateLinter(false).setComplete(completeConfig).asExtension();
38
+ return new _codemirrorpromql.PromQLExtension().activateLinter(false).setComplete(completeConfig).asExtension();
37
39
  }, [
38
40
  completeConfig
39
41
  ]);
40
- return /*#__PURE__*/ (0, _jsxRuntime.jsx)(_reactCodemirror.default, {
42
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_reactcodemirror.default, {
41
43
  ...rest,
42
44
  style: {
43
45
  border: `1px solid ${theme.palette.divider}`
@@ -14,15 +14,17 @@
14
14
  Object.defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
- _exportStar(require("./PromQL"), exports);
18
- function _exportStar(from, to) {
17
+ _export_star(require("./PromQL"), exports);
18
+ function _export_star(from, to) {
19
19
  Object.keys(from).forEach(function(k) {
20
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) Object.defineProperty(to, k, {
21
- enumerable: true,
22
- get: function() {
23
- return from[k];
24
- }
25
- });
20
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
21
+ Object.defineProperty(to, k, {
22
+ enumerable: true,
23
+ get: function() {
24
+ return from[k];
25
+ }
26
+ });
27
+ }
26
28
  });
27
29
  return from;
28
30
  }
package/dist/cjs/index.js CHANGED
@@ -21,28 +21,42 @@ function _export(target, all) {
21
21
  });
22
22
  }
23
23
  _export(exports, {
24
- PrometheusTimeSeriesQuery: ()=>_prometheusTimeSeriesQuery.PrometheusTimeSeriesQuery,
25
- StaticListVariable: ()=>_variable.StaticListVariable,
26
- PrometheusLabelNamesVariable: ()=>_prometheusVariables.PrometheusLabelNamesVariable,
27
- PrometheusLabelValuesVariable: ()=>_prometheusVariables.PrometheusLabelValuesVariable,
28
- PrometheusPromQLVariable: ()=>_prometheusVariables.PrometheusPromQLVariable,
29
- PrometheusDatasource: ()=>_prometheusDatasource.PrometheusDatasource
24
+ PrometheusTimeSeriesQuery: function() {
25
+ return _prometheustimeseriesquery.PrometheusTimeSeriesQuery;
26
+ },
27
+ StaticListVariable: function() {
28
+ return _variable.StaticListVariable;
29
+ },
30
+ PrometheusLabelNamesVariable: function() {
31
+ return _prometheusvariables.PrometheusLabelNamesVariable;
32
+ },
33
+ PrometheusLabelValuesVariable: function() {
34
+ return _prometheusvariables.PrometheusLabelValuesVariable;
35
+ },
36
+ PrometheusPromQLVariable: function() {
37
+ return _prometheusvariables.PrometheusPromQLVariable;
38
+ },
39
+ PrometheusDatasource: function() {
40
+ return _prometheusdatasource.PrometheusDatasource;
41
+ }
30
42
  });
31
- const _prometheusTimeSeriesQuery = require("./plugins/prometheus-time-series-query");
43
+ const _prometheustimeseriesquery = require("./plugins/prometheus-time-series-query");
32
44
  const _variable = require("./plugins/variable");
33
- const _prometheusVariables = require("./plugins/prometheus-variables");
34
- const _prometheusDatasource = require("./plugins/prometheus-datasource");
35
- _exportStar(require("./model/prometheus-client"), exports);
36
- _exportStar(require("./model/api-types"), exports);
37
- _exportStar(require("./plugins/types"), exports);
38
- function _exportStar(from, to) {
45
+ const _prometheusvariables = require("./plugins/prometheus-variables");
46
+ const _prometheusdatasource = require("./plugins/prometheus-datasource");
47
+ _export_star(require("./model/prometheus-client"), exports);
48
+ _export_star(require("./model/api-types"), exports);
49
+ _export_star(require("./plugins/types"), exports);
50
+ function _export_star(from, to) {
39
51
  Object.keys(from).forEach(function(k) {
40
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) Object.defineProperty(to, k, {
41
- enumerable: true,
42
- get: function() {
43
- return from[k];
44
- }
45
- });
52
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
53
+ Object.defineProperty(to, k, {
54
+ enumerable: true,
55
+ get: function() {
56
+ return from[k];
57
+ }
58
+ });
59
+ }
46
60
  });
47
61
  return from;
48
62
  }
@@ -14,20 +14,22 @@
14
14
  Object.defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
- _exportStar(require("./api-types"), exports);
18
- _exportStar(require("./parse-sample-values"), exports);
19
- _exportStar(require("./prometheus-client"), exports);
20
- _exportStar(require("./prometheus-selectors"), exports);
21
- _exportStar(require("./templating"), exports);
22
- _exportStar(require("./time"), exports);
23
- function _exportStar(from, to) {
17
+ _export_star(require("./api-types"), exports);
18
+ _export_star(require("./parse-sample-values"), exports);
19
+ _export_star(require("./prometheus-client"), exports);
20
+ _export_star(require("./prometheus-selectors"), exports);
21
+ _export_star(require("./templating"), exports);
22
+ _export_star(require("./time"), exports);
23
+ function _export_star(from, to) {
24
24
  Object.keys(from).forEach(function(k) {
25
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) Object.defineProperty(to, k, {
26
- enumerable: true,
27
- get: function() {
28
- return from[k];
29
- }
30
- });
25
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
26
+ Object.defineProperty(to, k, {
27
+ enumerable: true,
28
+ get: function() {
29
+ return from[k];
30
+ }
31
+ });
32
+ }
31
33
  });
32
34
  return from;
33
35
  }
@@ -21,8 +21,12 @@ function _export(target, all) {
21
21
  });
22
22
  }
23
23
  _export(exports, {
24
- parseValueTuple: ()=>parseValueTuple,
25
- parseSampleValue: ()=>parseSampleValue
24
+ parseValueTuple: function() {
25
+ return parseValueTuple;
26
+ },
27
+ parseSampleValue: function() {
28
+ return parseSampleValue;
29
+ }
26
30
  });
27
31
  function parseValueTuple(data) {
28
32
  const [unixTimeSeconds, sampleValue] = data;
@@ -21,11 +21,21 @@ function _export(target, all) {
21
21
  });
22
22
  }
23
23
  _export(exports, {
24
- instantQuery: ()=>instantQuery,
25
- rangeQuery: ()=>rangeQuery,
26
- labelNames: ()=>labelNames,
27
- labelValues: ()=>labelValues,
28
- fetchResults: ()=>fetchResults
24
+ instantQuery: function() {
25
+ return instantQuery;
26
+ },
27
+ rangeQuery: function() {
28
+ return rangeQuery;
29
+ },
30
+ labelNames: function() {
31
+ return labelNames;
32
+ },
33
+ labelValues: function() {
34
+ return labelValues;
35
+ },
36
+ fetchResults: function() {
37
+ return fetchResults;
38
+ }
29
39
  });
30
40
  const _core = require("@perses-dev/core");
31
41
  function instantQuery(params, queryOptions) {
@@ -39,6 +49,15 @@ function labelNames(params, queryOptions) {
39
49
  }
40
50
  function labelValues(params, queryOptions) {
41
51
  const { labelName , ...searchParams } = params;
52
+ // In case label name is empty, we'll receive a 404, so we can replace it by an empty list, which is less confusing.
53
+ // Note that an empty list is the prometheus result if the label does not exist.
54
+ if (labelName.length === 0) {
55
+ return new Promise((resolve)=>{
56
+ resolve({
57
+ data: []
58
+ });
59
+ });
60
+ }
42
61
  const apiURI = `/api/v1/label/${encodeURIComponent(labelName)}/values`;
43
62
  return fetchWithGet(apiURI, searchParams, queryOptions);
44
63
  }
@@ -21,17 +21,25 @@ function _export(target, all) {
21
21
  });
22
22
  }
23
23
  _export(exports, {
24
- PROM_DATASOURCE_KIND: ()=>PROM_DATASOURCE_KIND,
25
- DEFAULT_PROM: ()=>DEFAULT_PROM,
26
- isDefaultPromSelector: ()=>isDefaultPromSelector,
27
- isPrometheusDatasourceSelector: ()=>isPrometheusDatasourceSelector
24
+ PROM_DATASOURCE_KIND: function() {
25
+ return PROM_DATASOURCE_KIND;
26
+ },
27
+ DEFAULT_PROM: function() {
28
+ return DEFAULT_PROM;
29
+ },
30
+ isDefaultPromSelector: function() {
31
+ return isDefaultPromSelector;
32
+ },
33
+ isPrometheusDatasourceSelector: function() {
34
+ return isPrometheusDatasourceSelector;
35
+ }
28
36
  });
29
37
  const PROM_DATASOURCE_KIND = 'PrometheusDatasource';
30
38
  const DEFAULT_PROM = {
31
39
  kind: PROM_DATASOURCE_KIND
32
40
  };
33
41
  function isDefaultPromSelector(selector) {
34
- return selector.name === undefined;
42
+ return selector.name === undefined && selector.group === undefined;
35
43
  }
36
44
  function isPrometheusDatasourceSelector(selector) {
37
45
  return selector.kind === PROM_DATASOURCE_KIND;
@@ -16,11 +16,13 @@ Object.defineProperty(exports, "__esModule", {
16
16
  });
17
17
  Object.defineProperty(exports, "useReplaceTemplateString", {
18
18
  enumerable: true,
19
- get: ()=>useReplaceTemplateString
19
+ get: function() {
20
+ return useReplaceTemplateString;
21
+ }
20
22
  });
21
- const _pluginSystem = require("@perses-dev/plugin-system");
23
+ const _pluginsystem = require("@perses-dev/plugin-system");
22
24
  function useReplaceTemplateString(templateString) {
23
- const templateVariablesInTemplate = (0, _pluginSystem.parseTemplateVariables)(templateString || '');
24
- const variables = (0, _pluginSystem.useTemplateVariableValues)(templateVariablesInTemplate);
25
- return (0, _pluginSystem.replaceTemplateVariables)(templateString || '', variables);
25
+ const templateVariablesInTemplate = (0, _pluginsystem.parseTemplateVariables)(templateString || '');
26
+ const variables = (0, _pluginsystem.useTemplateVariableValues)(templateVariablesInTemplate);
27
+ return (0, _pluginsystem.replaceTemplateVariables)(templateString || '', variables);
26
28
  }
@@ -21,17 +21,23 @@ function _export(target, all) {
21
21
  });
22
22
  }
23
23
  _export(exports, {
24
- getPrometheusTimeRange: ()=>getPrometheusTimeRange,
25
- getRangeStep: ()=>getRangeStep,
26
- getDurationStringSeconds: ()=>getDurationStringSeconds
24
+ getPrometheusTimeRange: function() {
25
+ return getPrometheusTimeRange;
26
+ },
27
+ getRangeStep: function() {
28
+ return getRangeStep;
29
+ },
30
+ getDurationStringSeconds: function() {
31
+ return getDurationStringSeconds;
32
+ }
27
33
  });
28
34
  const _core = require("@perses-dev/core");
29
- const _dateFns = require("date-fns");
35
+ const _datefns = require("date-fns");
30
36
  function getPrometheusTimeRange(timeRange) {
31
37
  const { start , end } = timeRange;
32
38
  return {
33
- start: Math.ceil((0, _dateFns.getUnixTime)(start)),
34
- end: Math.ceil((0, _dateFns.getUnixTime)(end))
39
+ start: Math.ceil((0, _datefns.getUnixTime)(start)),
40
+ end: Math.ceil((0, _datefns.getUnixTime)(end))
35
41
  };
36
42
  }
37
43
  // Max data points to allow returning from a Prom Query, used to calculate a
@@ -47,8 +53,8 @@ function getRangeStep(timeRange, minStepSeconds = 15, resolution = 1, suggestedS
47
53
  return Math.max(suggestedStepSeconds * resolution, minStepSeconds, safeStep);
48
54
  }
49
55
  function getDurationStringSeconds(durationString) {
50
- if (durationString === undefined) return undefined;
56
+ if (!durationString) return undefined;
51
57
  const duration = (0, _core.parseDurationString)(durationString);
52
- const ms = (0, _dateFns.milliseconds)(duration);
58
+ const ms = (0, _datefns.milliseconds)(duration);
53
59
  return Math.floor(ms / 1000);
54
60
  }
@@ -16,26 +16,28 @@ Object.defineProperty(exports, "__esModule", {
16
16
  });
17
17
  Object.defineProperty(exports, "MatcherEditor", {
18
18
  enumerable: true,
19
- get: ()=>MatcherEditor
19
+ get: function() {
20
+ return MatcherEditor;
21
+ }
20
22
  });
21
- const _jsxRuntime = require("react/jsx-runtime");
23
+ const _jsxruntime = require("react/jsx-runtime");
22
24
  const _material = require("@mui/material");
23
25
  const _immer = require("immer");
24
- const _trashCan = /*#__PURE__*/ _interopRequireDefault(require("mdi-material-ui/TrashCan"));
25
- function _interopRequireDefault(obj) {
26
+ const _TrashCan = /*#__PURE__*/ _interop_require_default(require("mdi-material-ui/TrashCan"));
27
+ function _interop_require_default(obj) {
26
28
  return obj && obj.__esModule ? obj : {
27
29
  default: obj
28
30
  };
29
31
  }
30
32
  function MatcherEditor({ matchers , onChange , isReadonly }) {
31
- return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
33
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Stack, {
32
34
  spacing: 1,
33
35
  mb: 2,
34
36
  children: [
35
- matchers.map((matcher, index)=>/*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Box, {
37
+ matchers.map((matcher, index)=>/*#__PURE__*/ (0, _jsxruntime.jsxs)(_material.Box, {
36
38
  display: "flex",
37
39
  children: [
38
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TextField, {
40
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.TextField, {
39
41
  fullWidth: true,
40
42
  label: "Series Selector",
41
43
  value: matcher,
@@ -49,7 +51,7 @@ function MatcherEditor({ matchers , onChange , isReadonly }) {
49
51
  onChange(newMatchers);
50
52
  }
51
53
  }),
52
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.IconButton, {
54
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.IconButton, {
53
55
  onClick: ()=>{
54
56
  const newMatchers = (0, _immer.produce)(matchers, (draft)=>{
55
57
  draft.splice(index, 1);
@@ -57,12 +59,12 @@ function MatcherEditor({ matchers , onChange , isReadonly }) {
57
59
  onChange(newMatchers);
58
60
  },
59
61
  disabled: isReadonly,
60
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_trashCan.default, {})
62
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_TrashCan.default, {})
61
63
  })
62
64
  ]
63
65
  }, index)),
64
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {
65
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Button, {
66
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Box, {
67
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_material.Button, {
66
68
  fullWidth: false,
67
69
  color: "secondary",
68
70
  variant: "outlined",