@perses-dev/prometheus-plugin 0.16.0 → 0.18.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/dist/cjs/model/utils.js +5 -7
- package/dist/cjs/plugins/MatcherEditor.js +14 -21
- package/dist/cjs/plugins/prometheus-variables.js +4 -2
- package/dist/model/utils.d.ts.map +1 -1
- package/dist/model/utils.js +5 -7
- package/dist/model/utils.js.map +1 -1
- package/dist/plugins/MatcherEditor.d.ts +5 -3
- package/dist/plugins/MatcherEditor.d.ts.map +1 -1
- package/dist/plugins/MatcherEditor.js +14 -21
- package/dist/plugins/MatcherEditor.js.map +1 -1
- package/dist/plugins/prometheus-variables.js +4 -2
- package/dist/plugins/prometheus-variables.js.map +1 -1
- package/package.json +3 -3
package/dist/cjs/model/utils.js
CHANGED
|
@@ -48,22 +48,20 @@ function replaceTemplateVariable(text, varName, templateVariableValue) {
|
|
|
48
48
|
}
|
|
49
49
|
return text.replaceAll(variableTemplate, replaceString);
|
|
50
50
|
}
|
|
51
|
-
// TODO: Fix this lint
|
|
51
|
+
// TODO: Fix this lint error
|
|
52
52
|
// eslint-disable-next-line no-useless-escape
|
|
53
53
|
const TEMPLATE_VARIABLE_REGEX = /\$(\w+)|\${(\w+)(?:\.([^:^\}]+))?(?::([^\}]+))?}/gm;
|
|
54
54
|
const parseTemplateVariables = (text)=>{
|
|
55
55
|
const regex = TEMPLATE_VARIABLE_REGEX;
|
|
56
|
-
const matches =
|
|
56
|
+
const matches = new Set();
|
|
57
57
|
let match;
|
|
58
58
|
while((match = regex.exec(text)) !== null){
|
|
59
|
-
if (match) {
|
|
60
|
-
|
|
61
|
-
matches.push(match[1]);
|
|
62
|
-
}
|
|
59
|
+
if (match && match.length > 1 && match[1]) {
|
|
60
|
+
matches.add(match[1]);
|
|
63
61
|
}
|
|
64
62
|
}
|
|
65
63
|
// return unique matches
|
|
66
|
-
return Array.from(
|
|
64
|
+
return Array.from(matches.values());
|
|
67
65
|
};
|
|
68
66
|
function formatSeriesName(inputFormat, seriesLabels) {
|
|
69
67
|
const resolveLabelsRegex = /\{\{\s*(.+?)\s*\}\}/g;
|
|
@@ -19,17 +19,15 @@ Object.defineProperty(exports, "MatcherEditor", {
|
|
|
19
19
|
get: ()=>MatcherEditor
|
|
20
20
|
});
|
|
21
21
|
const _jsxRuntime = require("react/jsx-runtime");
|
|
22
|
-
const _react = require("react");
|
|
23
22
|
const _material = require("@mui/material");
|
|
23
|
+
const _immer = require("immer");
|
|
24
24
|
const _trashCan = /*#__PURE__*/ _interopRequireDefault(require("mdi-material-ui/TrashCan"));
|
|
25
25
|
function _interopRequireDefault(obj) {
|
|
26
26
|
return obj && obj.__esModule ? obj : {
|
|
27
27
|
default: obj
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
|
-
function MatcherEditor(
|
|
31
|
-
var _initialMatchers;
|
|
32
|
-
const [matchers, setMatchers] = (0, _react.useState)((_initialMatchers = props.initialMatchers) !== null && _initialMatchers !== void 0 ? _initialMatchers : []);
|
|
30
|
+
function MatcherEditor({ matchers , onChange }) {
|
|
33
31
|
return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
|
|
34
32
|
spacing: 1,
|
|
35
33
|
children: [
|
|
@@ -38,26 +36,21 @@ function MatcherEditor(props) {
|
|
|
38
36
|
children: [
|
|
39
37
|
/*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TextField, {
|
|
40
38
|
fullWidth: true,
|
|
41
|
-
onBlur: ()=>{
|
|
42
|
-
props.onChange(matchers);
|
|
43
|
-
},
|
|
44
39
|
label: "Series Selector",
|
|
45
40
|
value: matcher,
|
|
46
41
|
onChange: (e)=>{
|
|
47
|
-
const newMatchers =
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
newMatchers
|
|
51
|
-
setMatchers(newMatchers);
|
|
42
|
+
const newMatchers = (0, _immer.produce)(matchers, (draft)=>{
|
|
43
|
+
draft[index] = e.target.value;
|
|
44
|
+
});
|
|
45
|
+
onChange(newMatchers);
|
|
52
46
|
}
|
|
53
47
|
}),
|
|
54
48
|
/*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.IconButton, {
|
|
55
49
|
onClick: ()=>{
|
|
56
|
-
const newMatchers =
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
newMatchers
|
|
60
|
-
setMatchers(newMatchers);
|
|
50
|
+
const newMatchers = (0, _immer.produce)(matchers, (draft)=>{
|
|
51
|
+
draft.splice(index, 1);
|
|
52
|
+
});
|
|
53
|
+
onChange(newMatchers);
|
|
61
54
|
},
|
|
62
55
|
children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_trashCan.default, {})
|
|
63
56
|
})
|
|
@@ -68,10 +61,10 @@ function MatcherEditor(props) {
|
|
|
68
61
|
fullWidth: false,
|
|
69
62
|
variant: "outlined",
|
|
70
63
|
onClick: ()=>{
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
64
|
+
const newMatchers = (0, _immer.produce)(matchers, (draft)=>{
|
|
65
|
+
draft.push('');
|
|
66
|
+
});
|
|
67
|
+
onChange(newMatchers);
|
|
75
68
|
},
|
|
76
69
|
children: "Add Series Selector"
|
|
77
70
|
})
|
|
@@ -30,6 +30,7 @@ const _material = require("@mui/material");
|
|
|
30
30
|
const _model = require("../model");
|
|
31
31
|
const _matcherEditor = require("./MatcherEditor");
|
|
32
32
|
function PrometheusLabelValuesVariableEditor(props) {
|
|
33
|
+
var _matchers;
|
|
33
34
|
return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
|
|
34
35
|
spacing: 1,
|
|
35
36
|
children: [
|
|
@@ -47,7 +48,7 @@ function PrometheusLabelValuesVariableEditor(props) {
|
|
|
47
48
|
}
|
|
48
49
|
}),
|
|
49
50
|
/*#__PURE__*/ (0, _jsxRuntime.jsx)(_matcherEditor.MatcherEditor, {
|
|
50
|
-
|
|
51
|
+
matchers: (_matchers = props.value.matchers) !== null && _matchers !== void 0 ? _matchers : [],
|
|
51
52
|
onChange: (e)=>{
|
|
52
53
|
props.onChange({
|
|
53
54
|
...props.value,
|
|
@@ -59,10 +60,11 @@ function PrometheusLabelValuesVariableEditor(props) {
|
|
|
59
60
|
});
|
|
60
61
|
}
|
|
61
62
|
function PrometheusLabelNamesVariableEditor(props) {
|
|
63
|
+
var _matchers;
|
|
62
64
|
return /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Stack, {
|
|
63
65
|
spacing: 1,
|
|
64
66
|
children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_matcherEditor.MatcherEditor, {
|
|
65
|
-
|
|
67
|
+
matchers: (_matchers = props.value.matchers) !== null && _matchers !== void 0 ? _matchers : [],
|
|
66
68
|
onChange: (e)=>{
|
|
67
69
|
props.onChange({
|
|
68
70
|
...props.value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/model/utils.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,GAAG,MAAM,CAW9F;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,aAAa,UAW1G;AAMD;;GAEG;AACH,eAAO,MAAM,sBAAsB,SAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/model/utils.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,GAAG,MAAM,CAW9F;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,aAAa,UAW1G;AAMD;;GAEG;AACH,eAAO,MAAM,sBAAsB,SAAU,MAAM,aAYlD,CAAC;AAEF;;GAEG;AACH,oBAAY,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAMlD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,MAAM,CAGxF"}
|
package/dist/model/utils.js
CHANGED
|
@@ -32,24 +32,22 @@ export function replaceTemplateVariable(text, varName, templateVariableValue) {
|
|
|
32
32
|
}
|
|
33
33
|
return text.replaceAll(variableTemplate, replaceString);
|
|
34
34
|
}
|
|
35
|
-
// TODO: Fix this lint
|
|
35
|
+
// TODO: Fix this lint error
|
|
36
36
|
// eslint-disable-next-line no-useless-escape
|
|
37
37
|
const TEMPLATE_VARIABLE_REGEX = /\$(\w+)|\${(\w+)(?:\.([^:^\}]+))?(?::([^\}]+))?}/gm;
|
|
38
38
|
/**
|
|
39
39
|
* Returns a list of template variables
|
|
40
40
|
*/ export const parseTemplateVariables = (text)=>{
|
|
41
41
|
const regex = TEMPLATE_VARIABLE_REGEX;
|
|
42
|
-
const matches =
|
|
42
|
+
const matches = new Set();
|
|
43
43
|
let match;
|
|
44
44
|
while((match = regex.exec(text)) !== null){
|
|
45
|
-
if (match) {
|
|
46
|
-
|
|
47
|
-
matches.push(match[1]);
|
|
48
|
-
}
|
|
45
|
+
if (match && match.length > 1 && match[1]) {
|
|
46
|
+
matches.add(match[1]);
|
|
49
47
|
}
|
|
50
48
|
}
|
|
51
49
|
// return unique matches
|
|
52
|
-
return Array.from(
|
|
50
|
+
return Array.from(matches.values());
|
|
53
51
|
};
|
|
54
52
|
/*
|
|
55
53
|
* Formatter used for series name display in legends and tooltips
|
package/dist/model/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/model/utils.ts"],"sourcesContent":["// Copyright 2022 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { VariableValue } from '@perses-dev/core';\nimport { VariableStateMap } from '@perses-dev/plugin-system';\n\nexport function replaceTemplateVariables(text: string, variableState: VariableStateMap): string {\n const variables = parseTemplateVariables(text);\n let finalText = text;\n variables.forEach((v) => {\n const variable = variableState[v];\n if (variable && variable?.value) {\n finalText = replaceTemplateVariable(finalText, v, variable?.value);\n }\n });\n\n return finalText;\n}\n\nexport function replaceTemplateVariable(text: string, varName: string, templateVariableValue: VariableValue) {\n const variableTemplate = '$' + varName;\n let replaceString = '';\n if (Array.isArray(templateVariableValue)) {\n replaceString = `(${templateVariableValue.join('|')})`; // regex style\n }\n if (typeof templateVariableValue === 'string') {\n replaceString = templateVariableValue;\n }\n\n return text.replaceAll(variableTemplate, replaceString);\n}\n\n// TODO: Fix this lint
|
|
1
|
+
{"version":3,"sources":["../../src/model/utils.ts"],"sourcesContent":["// Copyright 2022 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { VariableValue } from '@perses-dev/core';\nimport { VariableStateMap } from '@perses-dev/plugin-system';\n\nexport function replaceTemplateVariables(text: string, variableState: VariableStateMap): string {\n const variables = parseTemplateVariables(text);\n let finalText = text;\n variables.forEach((v) => {\n const variable = variableState[v];\n if (variable && variable?.value) {\n finalText = replaceTemplateVariable(finalText, v, variable?.value);\n }\n });\n\n return finalText;\n}\n\nexport function replaceTemplateVariable(text: string, varName: string, templateVariableValue: VariableValue) {\n const variableTemplate = '$' + varName;\n let replaceString = '';\n if (Array.isArray(templateVariableValue)) {\n replaceString = `(${templateVariableValue.join('|')})`; // regex style\n }\n if (typeof templateVariableValue === 'string') {\n replaceString = templateVariableValue;\n }\n\n return text.replaceAll(variableTemplate, replaceString);\n}\n\n// TODO: Fix this lint error\n// eslint-disable-next-line no-useless-escape\nconst TEMPLATE_VARIABLE_REGEX = /\\$(\\w+)|\\${(\\w+)(?:\\.([^:^\\}]+))?(?::([^\\}]+))?}/gm;\n\n/**\n * Returns a list of template variables\n */\nexport const parseTemplateVariables = (text: string) => {\n const regex = TEMPLATE_VARIABLE_REGEX;\n const matches = new Set<string>();\n let match;\n\n while ((match = regex.exec(text)) !== null) {\n if (match && match.length > 1 && match[1]) {\n matches.add(match[1]);\n }\n }\n // return unique matches\n return Array.from(matches.values());\n};\n\n/**\n * Types for metric labels, used in series_name_format implementation\n */\nexport type SeriesLabels = Record<string, string>;\n\n/*\n * Formatter used for series name display in legends and tooltips\n * Regex replaces label {{ name }} with resolved label value\n */\nexport function formatSeriesName(inputFormat: string, seriesLabels: SeriesLabels): string {\n const resolveLabelsRegex = /\\{\\{\\s*(.+?)\\s*\\}\\}/g;\n return inputFormat.replace(resolveLabelsRegex, (_, g) => (seriesLabels[g] ? seriesLabels[g] : g));\n}\n"],"names":["replaceTemplateVariables","text","variableState","variables","parseTemplateVariables","finalText","forEach","v","variable","value","replaceTemplateVariable","varName","templateVariableValue","variableTemplate","replaceString","Array","isArray","join","replaceAll","TEMPLATE_VARIABLE_REGEX","regex","matches","Set","match","exec","length","add","from","values","formatSeriesName","inputFormat","seriesLabels","resolveLabelsRegex","replace","_","g"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAKjC,OAAO,SAASA,wBAAwB,CAACC,IAAY,EAAEC,aAA+B,EAAU;IAC9F,MAAMC,SAAS,GAAGC,sBAAsB,CAACH,IAAI,CAAC,AAAC;IAC/C,IAAII,SAAS,GAAGJ,IAAI,AAAC;IACrBE,SAAS,CAACG,OAAO,CAAC,CAACC,CAAC,GAAK;QACvB,MAAMC,QAAQ,GAAGN,aAAa,CAACK,CAAC,CAAC,AAAC;QAClC,IAAIC,QAAQ,IAAIA,CAAAA,QAAQ,aAARA,QAAQ,WAAO,GAAfA,KAAAA,CAAe,GAAfA,QAAQ,CAAEC,KAAK,CAAA,EAAE;YAC/BJ,SAAS,GAAGK,uBAAuB,CAACL,SAAS,EAAEE,CAAC,EAAEC,QAAQ,aAARA,QAAQ,WAAO,GAAfA,KAAAA,CAAe,GAAfA,QAAQ,CAAEC,KAAK,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAOJ,SAAS,CAAC;AACnB,CAAC;AAED,OAAO,SAASK,uBAAuB,CAACT,IAAY,EAAEU,OAAe,EAAEC,qBAAoC,EAAE;IAC3G,MAAMC,gBAAgB,GAAG,GAAG,GAAGF,OAAO,AAAC;IACvC,IAAIG,aAAa,GAAG,EAAE,AAAC;IACvB,IAAIC,KAAK,CAACC,OAAO,CAACJ,qBAAqB,CAAC,EAAE;QACxCE,aAAa,GAAG,CAAC,CAAC,EAAEF,qBAAqB,CAACK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc;IACxE,CAAC;IACD,IAAI,OAAOL,qBAAqB,KAAK,QAAQ,EAAE;QAC7CE,aAAa,GAAGF,qBAAqB,CAAC;IACxC,CAAC;IAED,OAAOX,IAAI,CAACiB,UAAU,CAACL,gBAAgB,EAAEC,aAAa,CAAC,CAAC;AAC1D,CAAC;AAED,4BAA4B;AAC5B,6CAA6C;AAC7C,MAAMK,uBAAuB,uDAAuD,AAAC;AAErF;;CAEC,GACD,OAAO,MAAMf,sBAAsB,GAAG,CAACH,IAAY,GAAK;IACtD,MAAMmB,KAAK,GAAGD,uBAAuB,AAAC;IACtC,MAAME,OAAO,GAAG,IAAIC,GAAG,EAAU,AAAC;IAClC,IAAIC,KAAK,AAAC;IAEV,MAAO,AAACA,CAAAA,KAAK,GAAGH,KAAK,CAACI,IAAI,CAACvB,IAAI,CAAC,CAAA,KAAM,IAAI,CAAE;QAC1C,IAAIsB,KAAK,IAAIA,KAAK,CAACE,MAAM,GAAG,CAAC,IAAIF,KAAK,CAAC,CAAC,CAAC,EAAE;YACzCF,OAAO,CAACK,GAAG,CAACH,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,wBAAwB;IACxB,OAAOR,KAAK,CAACY,IAAI,CAACN,OAAO,CAACO,MAAM,EAAE,CAAC,CAAC;AACtC,CAAC,CAAC;AAOF;;;CAGC,GACD,OAAO,SAASC,gBAAgB,CAACC,WAAmB,EAAEC,YAA0B,EAAU;IACxF,MAAMC,kBAAkB,yBAAyB,AAAC;IAClD,OAAOF,WAAW,CAACG,OAAO,CAACD,kBAAkB,EAAE,CAACE,CAAC,EAAEC,CAAC,GAAMJ,YAAY,CAACI,CAAC,CAAC,GAAGJ,YAAY,CAACI,CAAC,CAAC,GAAGA,CAAC,AAAC,CAAC,CAAC;AACpG,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
declare type MatcherEditorProps = {
|
|
3
|
+
matchers: string[];
|
|
4
4
|
onChange: (matchers: string[]) => void;
|
|
5
|
-
}
|
|
5
|
+
};
|
|
6
|
+
export declare function MatcherEditor({ matchers, onChange }: MatcherEditorProps): JSX.Element;
|
|
7
|
+
export {};
|
|
6
8
|
//# sourceMappingURL=MatcherEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MatcherEditor.d.ts","sourceRoot":"","sources":["../../src/plugins/MatcherEditor.tsx"],"names":[],"mappings":";AAiBA,
|
|
1
|
+
{"version":3,"file":"MatcherEditor.d.ts","sourceRoot":"","sources":["../../src/plugins/MatcherEditor.tsx"],"names":[],"mappings":";AAiBA,aAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,kBAAkB,eA4CvE"}
|
|
@@ -11,12 +11,10 @@
|
|
|
11
11
|
// See the License for the specific language governing permissions and
|
|
12
12
|
// limitations under the License.
|
|
13
13
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
-
import { useState } from 'react';
|
|
15
14
|
import { Stack, TextField, Button, Box, IconButton } from '@mui/material';
|
|
15
|
+
import { produce } from 'immer';
|
|
16
16
|
import TrashIcon from 'mdi-material-ui/TrashCan';
|
|
17
|
-
export function MatcherEditor(
|
|
18
|
-
var _initialMatchers;
|
|
19
|
-
const [matchers, setMatchers] = useState((_initialMatchers = props.initialMatchers) !== null && _initialMatchers !== void 0 ? _initialMatchers : []);
|
|
17
|
+
export function MatcherEditor({ matchers , onChange }) {
|
|
20
18
|
return /*#__PURE__*/ _jsxs(Stack, {
|
|
21
19
|
spacing: 1,
|
|
22
20
|
children: [
|
|
@@ -25,26 +23,21 @@ export function MatcherEditor(props) {
|
|
|
25
23
|
children: [
|
|
26
24
|
/*#__PURE__*/ _jsx(TextField, {
|
|
27
25
|
fullWidth: true,
|
|
28
|
-
onBlur: ()=>{
|
|
29
|
-
props.onChange(matchers);
|
|
30
|
-
},
|
|
31
26
|
label: "Series Selector",
|
|
32
27
|
value: matcher,
|
|
33
28
|
onChange: (e)=>{
|
|
34
|
-
const newMatchers =
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
newMatchers
|
|
38
|
-
setMatchers(newMatchers);
|
|
29
|
+
const newMatchers = produce(matchers, (draft)=>{
|
|
30
|
+
draft[index] = e.target.value;
|
|
31
|
+
});
|
|
32
|
+
onChange(newMatchers);
|
|
39
33
|
}
|
|
40
34
|
}),
|
|
41
35
|
/*#__PURE__*/ _jsx(IconButton, {
|
|
42
36
|
onClick: ()=>{
|
|
43
|
-
const newMatchers =
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
newMatchers
|
|
47
|
-
setMatchers(newMatchers);
|
|
37
|
+
const newMatchers = produce(matchers, (draft)=>{
|
|
38
|
+
draft.splice(index, 1);
|
|
39
|
+
});
|
|
40
|
+
onChange(newMatchers);
|
|
48
41
|
},
|
|
49
42
|
children: /*#__PURE__*/ _jsx(TrashIcon, {})
|
|
50
43
|
})
|
|
@@ -55,10 +48,10 @@ export function MatcherEditor(props) {
|
|
|
55
48
|
fullWidth: false,
|
|
56
49
|
variant: "outlined",
|
|
57
50
|
onClick: ()=>{
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
51
|
+
const newMatchers = produce(matchers, (draft)=>{
|
|
52
|
+
draft.push('');
|
|
53
|
+
});
|
|
54
|
+
onChange(newMatchers);
|
|
62
55
|
},
|
|
63
56
|
children: "Add Series Selector"
|
|
64
57
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/MatcherEditor.tsx"],"sourcesContent":["// Copyright 2022 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/plugins/MatcherEditor.tsx"],"sourcesContent":["// Copyright 2022 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Stack, TextField, Button, Box, IconButton } from '@mui/material';\nimport { produce } from 'immer';\nimport TrashIcon from 'mdi-material-ui/TrashCan';\n\ntype MatcherEditorProps = {\n matchers: string[];\n onChange: (matchers: string[]) => void;\n};\n\nexport function MatcherEditor({ matchers, onChange }: MatcherEditorProps) {\n return (\n <Stack spacing={1}>\n {matchers.map((matcher, index) => (\n <Box key={index} display=\"flex\">\n <TextField\n fullWidth\n label=\"Series Selector\"\n value={matcher}\n onChange={(e) => {\n const newMatchers = produce(matchers, (draft) => {\n draft[index] = e.target.value;\n });\n onChange(newMatchers);\n }}\n />\n <IconButton\n onClick={() => {\n const newMatchers = produce(matchers, (draft) => {\n draft.splice(index, 1);\n });\n onChange(newMatchers);\n }}\n >\n <TrashIcon />\n </IconButton>\n </Box>\n ))}\n <Box>\n <Button\n fullWidth={false}\n variant=\"outlined\"\n onClick={() => {\n const newMatchers = produce(matchers, (draft) => {\n draft.push('');\n });\n onChange(newMatchers);\n }}\n >\n Add Series Selector\n </Button>\n </Box>\n </Stack>\n );\n}\n"],"names":["Stack","TextField","Button","Box","IconButton","produce","TrashIcon","MatcherEditor","matchers","onChange","spacing","map","matcher","index","display","fullWidth","label","value","e","newMatchers","draft","target","onClick","splice","variant","push"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC;AAAA,SAASA,KAAK,EAAEC,SAAS,EAAEC,MAAM,EAAEC,GAAG,EAAEC,UAAU,QAAQ,eAAe,CAAC;AAC1E,SAASC,OAAO,QAAQ,OAAO,CAAC;AAChC,OAAOC,SAAS,MAAM,0BAA0B,CAAC;AAOjD,OAAO,SAASC,aAAa,CAAC,EAAEC,QAAQ,CAAA,EAAEC,QAAQ,CAAA,EAAsB,EAAE;IACxE,qBACE,MAACT,KAAK;QAACU,OAAO,EAAE,CAAC;;YACdF,QAAQ,CAACG,GAAG,CAAC,CAACC,OAAO,EAAEC,KAAK,iBAC3B,MAACV,GAAG;oBAAaW,OAAO,EAAC,MAAM;;sCAC7B,KAACb,SAAS;4BACRc,SAAS;4BACTC,KAAK,EAAC,iBAAiB;4BACvBC,KAAK,EAAEL,OAAO;4BACdH,QAAQ,EAAE,CAACS,CAAC,GAAK;gCACf,MAAMC,WAAW,GAAGd,OAAO,CAACG,QAAQ,EAAE,CAACY,KAAK,GAAK;oCAC/CA,KAAK,CAACP,KAAK,CAAC,GAAGK,CAAC,CAACG,MAAM,CAACJ,KAAK,CAAC;gCAChC,CAAC,CAAC,AAAC;gCACHR,QAAQ,CAACU,WAAW,CAAC,CAAC;4BACxB,CAAC;0BACD;sCACF,KAACf,UAAU;4BACTkB,OAAO,EAAE,IAAM;gCACb,MAAMH,WAAW,GAAGd,OAAO,CAACG,QAAQ,EAAE,CAACY,KAAK,GAAK;oCAC/CA,KAAK,CAACG,MAAM,CAACV,KAAK,EAAE,CAAC,CAAC,CAAC;gCACzB,CAAC,CAAC,AAAC;gCACHJ,QAAQ,CAACU,WAAW,CAAC,CAAC;4BACxB,CAAC;sCAED,cAAA,KAACb,SAAS,KAAG;0BACF;;mBArBLO,KAAK,CAsBT,AACP,CAAC;0BACF,KAACV,GAAG;0BACF,cAAA,KAACD,MAAM;oBACLa,SAAS,EAAE,KAAK;oBAChBS,OAAO,EAAC,UAAU;oBAClBF,OAAO,EAAE,IAAM;wBACb,MAAMH,WAAW,GAAGd,OAAO,CAACG,QAAQ,EAAE,CAACY,KAAK,GAAK;4BAC/CA,KAAK,CAACK,IAAI,CAAC,EAAE,CAAC,CAAC;wBACjB,CAAC,CAAC,AAAC;wBACHhB,QAAQ,CAACU,WAAW,CAAC,CAAC;oBACxB,CAAC;8BACF,qBAED;kBAAS;cACL;;MACA,CACR;AACJ,CAAC"}
|
|
@@ -15,6 +15,7 @@ import { Stack, TextField } from '@mui/material';
|
|
|
15
15
|
import { replaceTemplateVariables, parseTemplateVariables, DEFAULT_PROM, getPrometheusTimeRange } from '../model';
|
|
16
16
|
import { MatcherEditor } from './MatcherEditor';
|
|
17
17
|
function PrometheusLabelValuesVariableEditor(props) {
|
|
18
|
+
var _matchers;
|
|
18
19
|
return /*#__PURE__*/ _jsxs(Stack, {
|
|
19
20
|
spacing: 1,
|
|
20
21
|
children: [
|
|
@@ -32,7 +33,7 @@ function PrometheusLabelValuesVariableEditor(props) {
|
|
|
32
33
|
}
|
|
33
34
|
}),
|
|
34
35
|
/*#__PURE__*/ _jsx(MatcherEditor, {
|
|
35
|
-
|
|
36
|
+
matchers: (_matchers = props.value.matchers) !== null && _matchers !== void 0 ? _matchers : [],
|
|
36
37
|
onChange: (e)=>{
|
|
37
38
|
props.onChange({
|
|
38
39
|
...props.value,
|
|
@@ -44,10 +45,11 @@ function PrometheusLabelValuesVariableEditor(props) {
|
|
|
44
45
|
});
|
|
45
46
|
}
|
|
46
47
|
function PrometheusLabelNamesVariableEditor(props) {
|
|
48
|
+
var _matchers;
|
|
47
49
|
return /*#__PURE__*/ _jsx(Stack, {
|
|
48
50
|
spacing: 1,
|
|
49
51
|
children: /*#__PURE__*/ _jsx(MatcherEditor, {
|
|
50
|
-
|
|
52
|
+
matchers: (_matchers = props.value.matchers) !== null && _matchers !== void 0 ? _matchers : [],
|
|
51
53
|
onChange: (e)=>{
|
|
52
54
|
props.onChange({
|
|
53
55
|
...props.value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/prometheus-variables.tsx"],"sourcesContent":["// Copyright 2022 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { VariablePlugin, VariableOption, OptionsEditorProps } from '@perses-dev/plugin-system';\nimport { Stack, TextField } from '@mui/material';\nimport {\n replaceTemplateVariables,\n parseTemplateVariables,\n PrometheusClient,\n DEFAULT_PROM,\n getPrometheusTimeRange,\n MatrixData,\n VectorData,\n} from '../model';\nimport {\n PrometheusLabelNamesVariableOptions,\n PrometheusLabelValuesVariableOptions,\n PrometheusPromQLVariableOptions,\n} from './types';\nimport { MatcherEditor } from './MatcherEditor';\n\nfunction PrometheusLabelValuesVariableEditor(props: OptionsEditorProps<PrometheusLabelValuesVariableOptions>) {\n return (\n <Stack spacing={1}>\n <TextField\n sx={{ mb: 1 }}\n label=\"Label Name\"\n value={props.value.label_name}\n onChange={(e) => {\n props.onChange({ ...props.value, label_name: e.target.value });\n }}\n />\n <MatcherEditor\n initialMatchers={props.value.matchers}\n onChange={(e) => {\n props.onChange({ ...props.value, matchers: e });\n }}\n />\n </Stack>\n );\n}\n\nfunction PrometheusLabelNamesVariableEditor(props: OptionsEditorProps<PrometheusLabelNamesVariableOptions>) {\n return (\n <Stack spacing={1}>\n <MatcherEditor\n initialMatchers={props.value.matchers}\n onChange={(e) => {\n props.onChange({ ...props.value, matchers: e });\n }}\n />\n </Stack>\n );\n}\n\nfunction PrometheusPromQLVariableEditor(props: OptionsEditorProps<PrometheusPromQLVariableOptions>) {\n return (\n <Stack spacing={1}>\n <TextField\n sx={{ mb: 1 }}\n label=\"PromQL Expression\"\n value={props.value.expr}\n onChange={(e) => {\n props.onChange({ ...props.value, expr: e.target.value });\n }}\n />\n <TextField\n sx={{ mb: 1 }}\n label=\"Label Name\"\n value={props.value.label_name}\n onChange={(e) => {\n props.onChange({ ...props.value, label_name: e.target.value });\n }}\n />\n </Stack>\n );\n}\n\nfunction capturingMatrix(matrix: MatrixData, label_name: string): string[] {\n const captured = new Set<string>();\n for (const sample of matrix.result) {\n const value = sample.metric[label_name];\n if (value !== undefined) {\n captured.add(value);\n }\n }\n return Array.from(captured.values());\n}\n\nfunction capturingVector(vector: VectorData, label_name: string): string[] {\n const captured = new Set<string>();\n for (const sample of vector.result) {\n const value = sample.metric[label_name];\n if (value !== undefined) {\n captured.add(value);\n }\n }\n return Array.from(captured.values());\n}\n\n/**\n * Takes a list of strings and returns a list of VariableOptions\n */\nconst stringArrayToVariableOptions = (values?: string[]): VariableOption[] => {\n if (!values) return [];\n return values.map((value) => ({\n value,\n label: value,\n }));\n};\n\nexport const PrometheusLabelNamesVariable: VariablePlugin<PrometheusLabelNamesVariableOptions> = {\n getVariableOptions: async (spec, ctx) => {\n const client: PrometheusClient = await ctx.datasourceStore.getDatasourceClient(spec.datasource ?? DEFAULT_PROM);\n const match = spec.matchers ? spec.matchers.map((m) => replaceTemplateVariables(m, ctx.variables)) : undefined;\n const timeRange = getPrometheusTimeRange(ctx.timeRange);\n\n const { data: options } = await client.labelNames({ 'match[]': match, ...timeRange });\n return {\n data: stringArrayToVariableOptions(options),\n };\n },\n dependsOn: (spec) => {\n return { variables: spec.matchers?.map((m) => parseTemplateVariables(m)).flat() || [] };\n },\n OptionsEditorComponent: PrometheusLabelNamesVariableEditor,\n createInitialOptions: () => ({}),\n};\n\nexport const PrometheusLabelValuesVariable: VariablePlugin<PrometheusLabelValuesVariableOptions> = {\n getVariableOptions: async (spec, ctx) => {\n const pluginDef = spec;\n const client: PrometheusClient = await ctx.datasourceStore.getDatasourceClient(spec.datasource ?? DEFAULT_PROM);\n const match = pluginDef.matchers\n ? pluginDef.matchers.map((m) => replaceTemplateVariables(m, ctx.variables))\n : undefined;\n\n const timeRange = getPrometheusTimeRange(ctx.timeRange);\n\n const { data: options } = await client.labelValues({\n labelName: replaceTemplateVariables(pluginDef.label_name, ctx.variables),\n 'match[]': match,\n ...timeRange,\n });\n return {\n data: stringArrayToVariableOptions(options),\n };\n },\n dependsOn: (spec) => {\n return {\n variables:\n spec.matchers\n ?.map((m) => parseTemplateVariables(m))\n .flat()\n .concat(parseTemplateVariables(spec.label_name)) || [],\n };\n },\n OptionsEditorComponent: PrometheusLabelValuesVariableEditor,\n createInitialOptions: () => ({ label_name: '' }),\n};\n\nexport const PrometheusPromQLVariable: VariablePlugin<PrometheusPromQLVariableOptions> = {\n getVariableOptions: async (spec, ctx) => {\n const client: PrometheusClient = await ctx.datasourceStore.getDatasourceClient(spec.datasource ?? DEFAULT_PROM);\n // TODO we may want to manage a range query as well.\n const { data: options } = await client.instantQuery({\n query: replaceTemplateVariables(spec.expr, ctx.variables),\n });\n const labelName = replaceTemplateVariables(spec.label_name, ctx.variables);\n let values: string[] = [];\n if (options?.resultType === 'matrix') {\n values = capturingMatrix(options, labelName);\n } else if (options?.resultType === 'vector') {\n values = capturingVector(options, labelName);\n }\n\n return {\n data: stringArrayToVariableOptions(values),\n };\n },\n dependsOn: (spec) => {\n return { variables: parseTemplateVariables(spec.expr).concat(parseTemplateVariables(spec.label_name)) };\n },\n OptionsEditorComponent: PrometheusPromQLVariableEditor,\n createInitialOptions: () => ({ expr: '', label_name: '' }),\n};\n"],"names":["Stack","TextField","replaceTemplateVariables","parseTemplateVariables","DEFAULT_PROM","getPrometheusTimeRange","MatcherEditor","PrometheusLabelValuesVariableEditor","props","spacing","sx","mb","label","value","label_name","onChange","e","target","initialMatchers","matchers","PrometheusLabelNamesVariableEditor","PrometheusPromQLVariableEditor","expr","capturingMatrix","matrix","captured","Set","sample","result","metric","undefined","add","Array","from","values","capturingVector","vector","stringArrayToVariableOptions","map","PrometheusLabelNamesVariable","getVariableOptions","spec","ctx","client","datasourceStore","getDatasourceClient","datasource","match","m","variables","timeRange","data","options","labelNames","dependsOn","flat","OptionsEditorComponent","createInitialOptions","PrometheusLabelValuesVariable","pluginDef","labelValues","labelName","concat","PrometheusPromQLVariable","instantQuery","query","resultType"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/plugins/prometheus-variables.tsx"],"sourcesContent":["// Copyright 2022 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { VariablePlugin, VariableOption, OptionsEditorProps } from '@perses-dev/plugin-system';\nimport { Stack, TextField } from '@mui/material';\nimport {\n replaceTemplateVariables,\n parseTemplateVariables,\n PrometheusClient,\n DEFAULT_PROM,\n getPrometheusTimeRange,\n MatrixData,\n VectorData,\n} from '../model';\nimport {\n PrometheusLabelNamesVariableOptions,\n PrometheusLabelValuesVariableOptions,\n PrometheusPromQLVariableOptions,\n} from './types';\nimport { MatcherEditor } from './MatcherEditor';\n\nfunction PrometheusLabelValuesVariableEditor(props: OptionsEditorProps<PrometheusLabelValuesVariableOptions>) {\n return (\n <Stack spacing={1}>\n <TextField\n sx={{ mb: 1 }}\n label=\"Label Name\"\n value={props.value.label_name}\n onChange={(e) => {\n props.onChange({ ...props.value, label_name: e.target.value });\n }}\n />\n <MatcherEditor\n matchers={props.value.matchers ?? []}\n onChange={(e) => {\n props.onChange({ ...props.value, matchers: e });\n }}\n />\n </Stack>\n );\n}\n\nfunction PrometheusLabelNamesVariableEditor(props: OptionsEditorProps<PrometheusLabelNamesVariableOptions>) {\n return (\n <Stack spacing={1}>\n <MatcherEditor\n matchers={props.value.matchers ?? []}\n onChange={(e) => {\n props.onChange({ ...props.value, matchers: e });\n }}\n />\n </Stack>\n );\n}\n\nfunction PrometheusPromQLVariableEditor(props: OptionsEditorProps<PrometheusPromQLVariableOptions>) {\n return (\n <Stack spacing={1}>\n <TextField\n sx={{ mb: 1 }}\n label=\"PromQL Expression\"\n value={props.value.expr}\n onChange={(e) => {\n props.onChange({ ...props.value, expr: e.target.value });\n }}\n />\n <TextField\n sx={{ mb: 1 }}\n label=\"Label Name\"\n value={props.value.label_name}\n onChange={(e) => {\n props.onChange({ ...props.value, label_name: e.target.value });\n }}\n />\n </Stack>\n );\n}\n\nfunction capturingMatrix(matrix: MatrixData, label_name: string): string[] {\n const captured = new Set<string>();\n for (const sample of matrix.result) {\n const value = sample.metric[label_name];\n if (value !== undefined) {\n captured.add(value);\n }\n }\n return Array.from(captured.values());\n}\n\nfunction capturingVector(vector: VectorData, label_name: string): string[] {\n const captured = new Set<string>();\n for (const sample of vector.result) {\n const value = sample.metric[label_name];\n if (value !== undefined) {\n captured.add(value);\n }\n }\n return Array.from(captured.values());\n}\n\n/**\n * Takes a list of strings and returns a list of VariableOptions\n */\nconst stringArrayToVariableOptions = (values?: string[]): VariableOption[] => {\n if (!values) return [];\n return values.map((value) => ({\n value,\n label: value,\n }));\n};\n\nexport const PrometheusLabelNamesVariable: VariablePlugin<PrometheusLabelNamesVariableOptions> = {\n getVariableOptions: async (spec, ctx) => {\n const client: PrometheusClient = await ctx.datasourceStore.getDatasourceClient(spec.datasource ?? DEFAULT_PROM);\n const match = spec.matchers ? spec.matchers.map((m) => replaceTemplateVariables(m, ctx.variables)) : undefined;\n const timeRange = getPrometheusTimeRange(ctx.timeRange);\n\n const { data: options } = await client.labelNames({ 'match[]': match, ...timeRange });\n return {\n data: stringArrayToVariableOptions(options),\n };\n },\n dependsOn: (spec) => {\n return { variables: spec.matchers?.map((m) => parseTemplateVariables(m)).flat() || [] };\n },\n OptionsEditorComponent: PrometheusLabelNamesVariableEditor,\n createInitialOptions: () => ({}),\n};\n\nexport const PrometheusLabelValuesVariable: VariablePlugin<PrometheusLabelValuesVariableOptions> = {\n getVariableOptions: async (spec, ctx) => {\n const pluginDef = spec;\n const client: PrometheusClient = await ctx.datasourceStore.getDatasourceClient(spec.datasource ?? DEFAULT_PROM);\n const match = pluginDef.matchers\n ? pluginDef.matchers.map((m) => replaceTemplateVariables(m, ctx.variables))\n : undefined;\n\n const timeRange = getPrometheusTimeRange(ctx.timeRange);\n\n const { data: options } = await client.labelValues({\n labelName: replaceTemplateVariables(pluginDef.label_name, ctx.variables),\n 'match[]': match,\n ...timeRange,\n });\n return {\n data: stringArrayToVariableOptions(options),\n };\n },\n dependsOn: (spec) => {\n return {\n variables:\n spec.matchers\n ?.map((m) => parseTemplateVariables(m))\n .flat()\n .concat(parseTemplateVariables(spec.label_name)) || [],\n };\n },\n OptionsEditorComponent: PrometheusLabelValuesVariableEditor,\n createInitialOptions: () => ({ label_name: '' }),\n};\n\nexport const PrometheusPromQLVariable: VariablePlugin<PrometheusPromQLVariableOptions> = {\n getVariableOptions: async (spec, ctx) => {\n const client: PrometheusClient = await ctx.datasourceStore.getDatasourceClient(spec.datasource ?? DEFAULT_PROM);\n // TODO we may want to manage a range query as well.\n const { data: options } = await client.instantQuery({\n query: replaceTemplateVariables(spec.expr, ctx.variables),\n });\n const labelName = replaceTemplateVariables(spec.label_name, ctx.variables);\n let values: string[] = [];\n if (options?.resultType === 'matrix') {\n values = capturingMatrix(options, labelName);\n } else if (options?.resultType === 'vector') {\n values = capturingVector(options, labelName);\n }\n\n return {\n data: stringArrayToVariableOptions(values),\n };\n },\n dependsOn: (spec) => {\n return { variables: parseTemplateVariables(spec.expr).concat(parseTemplateVariables(spec.label_name)) };\n },\n OptionsEditorComponent: PrometheusPromQLVariableEditor,\n createInitialOptions: () => ({ expr: '', label_name: '' }),\n};\n"],"names":["Stack","TextField","replaceTemplateVariables","parseTemplateVariables","DEFAULT_PROM","getPrometheusTimeRange","MatcherEditor","PrometheusLabelValuesVariableEditor","props","spacing","sx","mb","label","value","label_name","onChange","e","target","matchers","PrometheusLabelNamesVariableEditor","PrometheusPromQLVariableEditor","expr","capturingMatrix","matrix","captured","Set","sample","result","metric","undefined","add","Array","from","values","capturingVector","vector","stringArrayToVariableOptions","map","PrometheusLabelNamesVariable","getVariableOptions","spec","ctx","client","datasourceStore","getDatasourceClient","datasource","match","m","variables","timeRange","data","options","labelNames","dependsOn","flat","OptionsEditorComponent","createInitialOptions","PrometheusLabelValuesVariable","pluginDef","labelValues","labelName","concat","PrometheusPromQLVariable","instantQuery","query","resultType"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@perses-dev/prometheus-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.0",
|
|
4
4
|
"description": "Prometheus plugin for Perses",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://github.com/perses/perses/blob/main/README.md",
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@lezer/highlight": "^1.0.0",
|
|
32
32
|
"@lezer/lr": "^1.2.0",
|
|
33
|
-
"@perses-dev/core": "^0.
|
|
34
|
-
"@perses-dev/plugin-system": "^0.
|
|
33
|
+
"@perses-dev/core": "^0.18.0",
|
|
34
|
+
"@perses-dev/plugin-system": "^0.18.0",
|
|
35
35
|
"@prometheus-io/lezer-promql": "^0.37.0",
|
|
36
36
|
"date-fns": "^2.28.0",
|
|
37
37
|
"immer": "^9.0.15"
|