This is an automated email from the ASF dual-hosted git repository.
jeffreyh pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/doris-opentelemetry-demo.git
The following commit(s) were added to refs/heads/dev by this push:
new 27d84a0 feat: release doris-app 1.0.1-alpha.2
27d84a0 is described below
commit 27d84a09b236a86b95c373cef9cdd98e4019127b
Author: Jeffrey <[email protected]>
AuthorDate: Wed Feb 4 19:16:25 2026 +0800
feat: release doris-app 1.0.1-alpha.2
---
src/grafana/plugins/doris-app/382.js | 117 +++-
src/grafana/plugins/doris-app/382.js.map | 6 +-
src/grafana/plugins/doris-app/42.js | 11 +-
src/grafana/plugins/doris-app/42.js.map | 6 +-
src/grafana/plugins/doris-app/439.js | 29 +-
src/grafana/plugins/doris-app/439.js.map | 6 +-
src/grafana/plugins/doris-app/659.js | 917 ++++++++++++++++++++++++++++
src/grafana/plugins/doris-app/659.js.map | 1 +
src/grafana/plugins/doris-app/824.js | 12 +-
src/grafana/plugins/doris-app/824.js.map | 6 +-
src/grafana/plugins/doris-app/CHANGELOG.md | 9 +
src/grafana/plugins/doris-app/module.js | 8 +
src/grafana/plugins/doris-app/module.js.map | 6 +-
src/grafana/plugins/doris-app/plugin.json | 7 +-
14 files changed, 1107 insertions(+), 34 deletions(-)
diff --git a/src/grafana/plugins/doris-app/382.js
b/src/grafana/plugins/doris-app/382.js
index 3b08889..fe79ebc 100644
--- a/src/grafana/plugins/doris-app/382.js
+++ b/src/grafana/plugins/doris-app/382.js
@@ -176,6 +176,7 @@ function FilterContent({ onHide, dataFilterValue }) {
const [dataFilter, setDataFilter] = (0,react/* useAtom */.fp)(discover/*
dataFilterAtom */.EA);
const [tableFieldValue, setTableFieldValue] = (0,react/* useAtom
*/.fp)(discover/* tableFieldValuesAtom */.CL);
const tableData = (0,react/* useAtomValue */.md)(discover/* tableDataAtom
*/.q3);
+ const indexes = (0,react/* useAtomValue */.md)(discover/* indexesAtom
*/.Eq);
const { control, handleSubmit, watch, register, setValue, formState: {
errors } } = (0,index_esm/* useForm */.mN)({
defaultValues: {
field: {
@@ -249,10 +250,8 @@ function FilterContent({ onHide, dataFilterValue }) {
label: op && op.label || op,
value: op && op.value || op
}));
- // text matching ops to remove for numeric fields
- const textMatchOps = [
- 'like',
- 'not like',
+ // match_* operators require doris inverted index. Keep LIKE/NOT LIKE
available for string-like fields
+ const matchOnlyOps = [
'match_all',
'match_any',
'match_phrase',
@@ -270,18 +269,47 @@ function FilterContent({ onHide, dataFilterValue }) {
}
const isNumberOrTime = isNumberField || isTimeField;
if (isNumberOrTime) {
- // remove text match ops for number or time fields
+ // remove text match ops (including LIKE/NOT LIKE and match_*) for
number or time fields
return normalized.filter((opItem)=>{
const v = String(opItem.value).toLowerCase();
- return !textMatchOps.includes(v);
+ return !(v === 'like' || v === 'not like' ||
matchOnlyOps.includes(v));
});
}
// non-number, non-boolean, non-time fields: keep full list
+ // For string-like fields, only allow doris inverted-index text
operators when the field has an inverted index
+ try {
+ const fieldName = typeof field === 'string' ? field : field ===
null || field === void 0 ? void 0 : field.value;
+ // If the user hasn't selected a field yet, show the full list (no
gating)
+ if (!fieldName) {
+ return normalized;
+ }
+ // treat "string" here as any type except NUMBER, BOOLEAN, DATE
+ if (!isNumberField && !isBooleanField && !isTimeField) {
+ const hasInverted = Array.isArray(indexes) &&
indexes.some((idx)=>{
+ if (!idx || !idx.columnName) {
+ return false;
+ }
+ const t = idx.type || '';
+ return String(idx.columnName) === String(fieldName) &&
t.toUpperCase().includes('INVERT');
+ });
+ if (!hasInverted) {
+ // remove only the match_* operators; allow LIKE/NOT LIKE
to remain because they work without inverted index
+ return normalized.filter((opItem)=>{
+ const v = String(opItem.value).toLowerCase();
+ return !matchOnlyOps.includes(v);
+ });
+ }
+ }
+ } catch (e) {
+ // swallow any unexpected errors and fall back to returning full list
+ }
return normalized;
}, [
isNumberField,
isBooleanField,
- isTimeField
+ isTimeField,
+ field,
+ indexes
]);
const getValue = (value)=>isNaN(+value) ? value : +value;
// Convert an input value according to current field type.
@@ -1609,6 +1637,11 @@ function DiscoverHistogram() {
})));
}
+<<<<<<< Updated upstream
+=======
+// EXTERNAL MODULE:
../node_modules/.pnpm/[email protected][email protected][email protected][email protected][email protected][email protected]/node_modules/antd/es/tooltip/index.js
+ 91 modules
+var tooltip = __webpack_require__(8644);
+>>>>>>> Stashed changes
// EXTERNAL MODULE:
../node_modules/.pnpm/[email protected][email protected][email protected][email protected][email protected][email protected]/node_modules/antd/es/button/index.js
+ 19 modules
var es_button = __webpack_require__(3682);
// EXTERNAL MODULE:
../node_modules/.pnpm/@[email protected][email protected][email protected][email protected]/node_modules/@tanstack/react-table/build/lib/index.mjs
@@ -2098,6 +2131,7 @@ function
discover_filter_filter_content_FilterContent(props) {
const { onHide, dataFilterValue } = props;
const [surroundingDataFilter, setSurroundingDataFilter] = (0,react/*
useAtom */.fp)(discover/* surroundingDataFilterAtom */.wc);
const tableFields = (0,react/* useAtomValue */.md)(discover/*
tableFieldsAtom */.D_);
+ const indexes = (0,react/* useAtomValue */.md)(discover/* indexesAtom
*/.Eq);
if (false) // removed by dead control flow
{}
const [tableFieldValue, setTableFieldValue] = (0,react/* useAtom
*/.fp)(discover/* tableFieldValuesAtom */.CL);
@@ -2144,10 +2178,8 @@ function
discover_filter_filter_content_FilterContent(props) {
label: op && op.label || op,
value: op && op.value || op
}));
- // text matching ops to remove for numeric fields
- const textMatchOps = [
- 'like',
- 'not like',
+ // match_* operators require doris inverted index. Keep LIKE/NOT LIKE
available for string-like fields
+ const matchOnlyOps = [
'match_all',
'match_any',
'match_phrase',
@@ -2165,18 +2197,44 @@ function
discover_filter_filter_content_FilterContent(props) {
}
const isNumberOrTime = isNumberField || isTimeField;
if (isNumberOrTime) {
- // remove text match ops for number or time fields
+ // remove text match ops (including LIKE/NOT LIKE and match_*) for
number or time fields
return normalized.filter((opItem)=>{
const v = String(opItem.value).toLowerCase();
- return !textMatchOps.includes(v);
+ return !(v === 'like' || v === 'not like' ||
matchOnlyOps.includes(v));
});
}
- // non-number, non-boolean, non-time fields: keep full list
+ // non-number, non-boolean, non-time fields: keep full list but gate
match_* on inverted index
+ try {
+ const fieldName = typeof field === 'string' ? field : field ===
null || field === void 0 ? void 0 : field.value;
+ if (!fieldName) {
+ return normalized;
+ }
+ if (!isNumberField && !isBooleanField && !isTimeField) {
+ const hasInverted = Array.isArray(indexes) &&
indexes.some((idx)=>{
+ if (!idx || !idx.columnName) {
+ return false;
+ }
+ const t = idx.type || '';
+ return String(idx.columnName) === String(fieldName) &&
t.toUpperCase().includes('INVERT');
+ });
+ if (!hasInverted) {
+ // remove only the match_* operators; allow LIKE/NOT LIKE
to remain
+ return normalized.filter((opItem)=>{
+ const v = String(opItem.value).toLowerCase();
+ return !matchOnlyOps.includes(v);
+ });
+ }
+ }
+ } catch (e) {
+ // fallback to full list
+ }
return normalized;
}, [
isNumberField,
isBooleanField,
- isTimeField
+ isTimeField,
+ field,
+ indexes
]);
// Convert an input value according to current field type.
// Preserve explicit empty string ('') so users can set an empty-string
value.
@@ -3962,7 +4020,9 @@ function DiscoverContent({ fetchNextPage, getTraceData })
{
max-height: 400px;
overflow-y: auto;
`
- }, JSON.stringify(processedData, null, 2)))), /*#__PURE__*/
external_react_default().createElement("a", {
+ }, JSON.stringify(processedData, null, 2)))), /*#__PURE__*/
external_react_default().createElement(tooltip/* default */.A, {
+ title: "Surrounding Items will ignore the existing interface's
filter conditions and view the context through time."
+ }, /*#__PURE__*/ external_react_default().createElement("a", {
onClick: ()=>{
console.log('row', row);
setSurroundingLogsOpen(true);
@@ -3978,7 +4038,7 @@ function DiscoverContent({ fetchNextPage, getTraceData })
{
color: #3D71D9;
}
`
- }, "Surrounding Logs"));
+ }, "Surrounding items")));
};
const callback = (status)=>{
if (status >= 200 && status <= 299) {
@@ -4309,7 +4369,7 @@ function DiscoverContent({ fetchNextPage, getTraceData })
{
traceTable: "otel_traces"
}), surroundingLogsOpen && /*#__PURE__*/
external_react_default().createElement(ui_.Drawer, {
size: "lg",
- title: "Surrounding Logs",
+ title: "Surrounding items",
onClose: ()=>{
setSurroundingTableData([]);
setSurroundingDataFilter([]);
@@ -4390,12 +4450,12 @@ function SearchType() {
const searchMode = searchType === 'Search';
const theme = (0,ui_.useTheme2)();
const options = [
- {
- label: t`Search`,
- value: 'Search',
- disabled: indexes.length === 0,
- tips: t`Discover.SearchType.Search.DisabledText`
- },
+ // {
+ // label: t`Search`,
+ // value: 'Search',
+ // disabled: indexes.length === 0,
+ // tips: t`Discover.SearchType.Search.DisabledText`,
+ // },
{
label: 'SQL',
value: 'SQL'
@@ -6882,6 +6942,7 @@ const testIds = {
};
+<<<<<<< Updated upstream
/***/ }),
/***/ 4338:
@@ -7432,4 +7493,10 @@ const maxDurationAtom =
(0,jotai__WEBPACK_IMPORTED_MODULE_1__/* .atom */ .eU)(''
/***/ })
}]);
-//# sourceMappingURL=382.js.map?_cache=45ca3c194995374286b8
\ No newline at end of file
+//# sourceMappingURL=382.js.map?_cache=45ca3c194995374286b8
+=======
+/***/ })
+
+}]);
+//# sourceMappingURL=382.js.map?_cache=08e0206326f2c926fed2
+>>>>>>> Stashed changes
diff --git a/src/grafana/plugins/doris-app/382.js.map
b/src/grafana/plugins/doris-app/382.js.map
index 2b89928..8b8cfcd 100644
--- a/src/grafana/plugins/doris-app/382.js.map
+++ b/src/grafana/plugins/doris-app/382.js.map
@@ -1 +1,5 @@
-{"version":3,"file":"382.js?_cache=45ca3c194995374286b8","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAmC;AACE;AAE9B,MAAME,wBAAwBD,yCAAMA,CAACE,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuChD,CAAC,CAAC;AAEK,MAAMC,iBAAiBJ,YAAG,CAAC;;AAElC,CAAC,CAAC;AAEK,MAAMK,WAAWL,YAAG,CAAC;;;;AAI5B,CAAC,CAAC;AAEK,MAAMM,WAAWN,YAAG,CAAC;;AAE5B,CAAC,CAAC;AAEK,MAAMO,cAAcP,YAAG,CAAC;;;;;;;;;;;;;;;AAe/B,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzE4C;AACpB;AACM;AACsE;AAC
[...]
\ No newline at end of file
+<<<<<<< Updated upstream
+{"version":3,"file":"382.js?_cache=45ca3c194995374286b8","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAmC;AACE;AAE9B,MAAME,wBAAwBD,yCAAMA,CAACE,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuChD,CAAC,CAAC;AAEK,MAAMC,iBAAiBJ,YAAG,CAAC;;AAElC,CAAC,CAAC;AAEK,MAAMK,WAAWL,YAAG,CAAC;;;;AAI5B,CAAC,CAAC;AAEK,MAAMM,WAAWN,YAAG,CAAC;;AAE5B,CAAC,CAAC;AAEK,MAAMO,cAAcP,YAAG,CAAC;;;;;;;;;;;;;;;AAe/B,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzE4C;AACpB;AACM;AACsE;AAC
[...]
+=======
+{"version":3,"file":"382.js?_cache=08e0206326f2c926fed2","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAmC;AACE;AAE9B,MAAME,wBAAwBD,yCAAMA,CAACE,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuChD,CAAC,CAAC;AAEK,MAAMC,iBAAiBJ,YAAG,CAAC;;AAElC,CAAC,CAAC;AAEK,MAAMK,WAAWL,YAAG,CAAC;;;;AAI5B,CAAC,CAAC;AAEK,MAAMM,WAAWN,YAAG,CAAC;;AAE5B,CAAC,CAAC;AAEK,MAAMO,cAAcP,YAAG,CAAC;;;;;;;;;;;;;;;AAe/B,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzE4C;AACpB;AACM;AACsE;AAC
[...]
+>>>>>>> Stashed changes
diff --git a/src/grafana/plugins/doris-app/42.js
b/src/grafana/plugins/doris-app/42.js
index b120085..f131d7b 100644
--- a/src/grafana/plugins/doris-app/42.js
+++ b/src/grafana/plugins/doris-app/42.js
@@ -287,8 +287,13 @@ __webpack_require__.r(__webpack_exports__);
+<<<<<<< Updated upstream
const Discover = /*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_0___default().lazy(()=>Promise.all(/* import()
*/[__webpack_require__.e(680), __webpack_require__.e(572),
__webpack_require__.e(20), __webpack_require__.e(439),
__webpack_require__.e(382)]).then(__webpack_require__.bind(__webpack_require__,
382)));
const PageTrace = /*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_0___default().lazy(()=>Promise.all(/* import()
*/[__webpack_require__.e(680), __webpack_require__.e(572),
__webpack_require__.e(439),
__webpack_require__.e(824)]).then(__webpack_require__.bind(__webpack_require__,
6824)));
+=======
+const Discover = /*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_0___default().lazy(()=>Promise.all(/* import()
*/[__webpack_require__.e(680), __webpack_require__.e(572),
__webpack_require__.e(20), __webpack_require__.e(439),
__webpack_require__.e(659),
__webpack_require__.e(382)]).then(__webpack_require__.bind(__webpack_require__,
382)));
+const PageTrace = /*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_0___default().lazy(()=>Promise.all(/* import()
*/[__webpack_require__.e(680), __webpack_require__.e(572),
__webpack_require__.e(439), __webpack_require__.e(659),
__webpack_require__.e(824)]).then(__webpack_require__.bind(__webpack_require__,
6824)));
+>>>>>>> Stashed changes
// const PageDashboard = React.lazy(() => import('../../pages/PageDashboard'));
function App(_props) {
return /*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_1__.Routes,
null, /*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_1__.Route,
{
@@ -308,4 +313,8 @@ function App(_props) {
/***/ })
}]);
-//# sourceMappingURL=42.js.map?_cache=f3f97468bc0710881fb5
\ No newline at end of file
+<<<<<<< Updated upstream
+//# sourceMappingURL=42.js.map?_cache=f3f97468bc0710881fb5
+=======
+//# sourceMappingURL=42.js.map?_cache=dad0c51d1ead9b168bd4
+>>>>>>> Stashed changes
diff --git a/src/grafana/plugins/doris-app/42.js.map
b/src/grafana/plugins/doris-app/42.js.map
index 593d144..8b4893c 100644
--- a/src/grafana/plugins/doris-app/42.js.map
+++ b/src/grafana/plugins/doris-app/42.js.map
@@ -1 +1,5 @@
-{"version":3,"file":"42.js?_cache=f3f97468bc0710881fb5","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACuC;AAEH;AAE7B,MAAME,kBAAkB,iDAAC,GAAG,EAAEF,WAAWG,EAAE,EAAE,GAAC;AAE9C,oCAAKC;;;;;WAAAA;MAKX;AAEM,MAAMC,cAAc,sBAAsB;AAC1C,0CAAKC;;;;;;;;;WAAAA;MASX;AAEM,MAAMC,kBAAkB;IAAEC,OAAO;IAAOC,OAAO;AAAM,EAAE;AACvD,MAAMC,oBAAoB;IAAEF,OAAO;IAAOC,OAAO;AAAM,EAAE;AAEzD,MAAME,iBAAiB;IAC1B;QACIC,oBAAoB;QACpBC,cAAc;QACdC,eAAe;QACfC,gBAAgB;IACpB;IACA;QACIH,oBAAoB;QACpBC,cAAc;QACdC,eAAe;QACfC,gBAAgB;IACpB;IACA;QA
[...]
\ No newline at end of file
+<<<<<<< Updated upstream
+{"version":3,"file":"42.js?_cache=f3f97468bc0710881fb5","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACuC;AAEH;AAE7B,MAAME,kBAAkB,iDAAC,GAAG,EAAEF,WAAWG,EAAE,EAAE,GAAC;AAE9C,oCAAKC;;;;;WAAAA;MAKX;AAEM,MAAMC,cAAc,sBAAsB;AAC1C,0CAAKC;;;;;;;;;WAAAA;MASX;AAEM,MAAMC,kBAAkB;IAAEC,OAAO;IAAOC,OAAO;AAAM,EAAE;AACvD,MAAMC,oBAAoB;IAAEF,OAAO;IAAOC,OAAO;AAAM,EAAE;AAEzD,MAAME,iBAAiB;IAC1B;QACIC,oBAAoB;QACpBC,cAAc;QACdC,eAAe;QACfC,gBAAgB;IACpB;IACA;QACIH,oBAAoB;QACpBC,cAAc;QACdC,eAAe;QACfC,gBAAgB;IACpB;IACA;QA
[...]
+=======
+{"version":3,"file":"42.js?_cache=dad0c51d1ead9b168bd4","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACuC;AAEH;AAE7B,MAAME,kBAAkB,iDAAC,GAAG,EAAEF,WAAWG,EAAE,EAAE,GAAC;AAE9C,oCAAKC;;;;;WAAAA;MAKX;AAEM,MAAMC,cAAc,sBAAsB;AAC1C,0CAAKC;;;;;;;;;WAAAA;MASX;AAEM,MAAMC,kBAAkB;IAAEC,OAAO;IAAOC,OAAO;AAAM,EAAE;AACvD,MAAMC,oBAAoB;IAAEF,OAAO;IAAOC,OAAO;AAAM,EAAE;AAEzD,MAAME,iBAAiB;IAC1B;QACIC,oBAAoB;QACpBC,cAAc;QACdC,eAAe;QACfC,gBAAgB;IACpB;IACA;QACIH,oBAAoB;QACpBC,cAAc;QACdC,eAAe;QACfC,gBAAgB;IACpB;IACA;QA
[...]
+>>>>>>> Stashed changes
diff --git a/src/grafana/plugins/doris-app/439.js
b/src/grafana/plugins/doris-app/439.js
index 875131d..0967acf 100644
--- a/src/grafana/plugins/doris-app/439.js
+++ b/src/grafana/plugins/doris-app/439.js
@@ -576,6 +576,7 @@ function getIndexesService({ selectdbDS, database, table })
{
/***/ }),
+<<<<<<< Updated upstream
/***/ 8763:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -942,6 +943,8 @@ function trimSpacesAroundEquals(str) {
/***/ }),
+=======
+>>>>>>> Stashed changes
/***/ 9008:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -986,8 +989,11 @@ function trimSpacesAroundEquals(str) {
/* harmony import */ var _grafana_data__WEBPACK_IMPORTED_MODULE_9___default =
/*#__PURE__*/__webpack_require__.n(_grafana_data__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var dayjs_plugin_utc__WEBPACK_IMPORTED_MODULE_10__ =
__webpack_require__(8837);
/* harmony import */ var
dayjs_plugin_utc__WEBPACK_IMPORTED_MODULE_10___default =
/*#__PURE__*/__webpack_require__.n(dayjs_plugin_utc__WEBPACK_IMPORTED_MODULE_10__);
+<<<<<<< Updated upstream
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_11__ =
__webpack_require__(8763);
+=======
+>>>>>>> Stashed changes
@@ -1774,9 +1780,17 @@ function generateHighlightedResults(data, result) {
if (isWrappedInQuotes(keyword)) {
const parsedKeyword = parseKeywords(keyword);
if (parsedKeyword === strValue) {
+<<<<<<< Updated upstream
highlightValue = `<mark>${itemValue}</mark>`;
} else if (strValue.includes(parsedKeyword)) {
highlightValue = highlightDelimiter(strValue,
parsedKeyword);
+=======
+ // highlightValue = `<mark>${itemValue}</mark>`;
+ highlightValue = itemValue;
+ } else if (strValue.includes(parsedKeyword)) {
+ // highlightValue = highlightDelimiter(strValue,
parsedKeyword);
+ highlightValue = strValue;
+>>>>>>> Stashed changes
}
} else {
const tokenizedAns =
Array.from(js_tokens__WEBPACK_IMPORTED_MODULE_7___default()(strValue)).map((item)=>item.value);
@@ -1794,9 +1808,18 @@ function generateHighlightedResults(data, result) {
}
if (ans.length > 0) {
highlightValue = ans.reduce((acc, curr)=>{
+<<<<<<< Updated upstream
if
(keywordsTokens.filter((token)=>!(0,_utils__WEBPACK_IMPORTED_MODULE_11__/*
.isIgnorableHighlightToken */
.dW)(token)).find((token)=>compare_ignore_quotes(token, curr.toLowerCase())) ||
compare_ignore_quotes(keyword.toLowerCase(), curr.toLowerCase())) {
return acc + `<mark>${curr}</mark>`;
}
+=======
+ // if (
+ // keywordsTokens.filter(token =>
!isIgnorableHighlightToken(token)).find(token => compare_ignore_quotes(token,
curr.toLowerCase())) ||
+ //
compare_ignore_quotes(keyword.toLowerCase(), curr.toLowerCase())
+ // ) {
+ // return acc + `<mark>${curr}</mark>`;
+ // }
+>>>>>>> Stashed changes
return acc + curr;
}, '');
}
@@ -1833,4 +1856,8 @@ const QUERY_TRACE_FIELDS = (/* unused pure expression or
super */ null && ([
/***/ })
}]);
-//# sourceMappingURL=439.js.map?_cache=731b5943bdc7c1368ebd
\ No newline at end of file
+<<<<<<< Updated upstream
+//# sourceMappingURL=439.js.map?_cache=731b5943bdc7c1368ebd
+=======
+//# sourceMappingURL=439.js.map?_cache=bd08506ba880e5929bd3
+>>>>>>> Stashed changes
diff --git a/src/grafana/plugins/doris-app/439.js.map
b/src/grafana/plugins/doris-app/439.js.map
index d35992b..310d301 100644
--- a/src/grafana/plugins/doris-app/439.js.map
+++ b/src/grafana/plugins/doris-app/439.js.map
@@ -1 +1,5 @@
-{"version":3,"file":"439.js?_cache=731b5943bdc7c1368ebd","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA6B;AAC6B;AAC1D,2CAA2C;AACO;AAGuC;AACiC;AAEnH,MAAMU,eAAeP,yEAAgBA,GAAG;AACxC,MAAMQ,iBAAiBX,qDAAIA,CAAmB,EAAE,EAAE;AAClD,MAAMY,sBAAsBZ,qDAAIA,CAAkBM,0EAAuBA,EAAE;AAElF,YAAY;AACL,MAAMO,gBAAgBb,qDAAIA,CAAM,EAAE,EAAE;AACpC,MAAMc,uBAAuBd,qDAAIA,CAAM,EAAE,EAAE;AAC3C,MAAMe,aAAaf,qDAAIA,CAAM,EAAE,EAAE;AACjC,MAAMgB,oBAAoBhB,qDAAIA,CAAM,EAAE,EAAE;AAExC,MAAMiB,qBAAq
[...]
\ No newline at end of file
+<<<<<<< Updated upstream
+{"version":3,"file":"439.js?_cache=731b5943bdc7c1368ebd","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA6B;AAC6B;AAC1D,2CAA2C;AACO;AAGuC;AACiC;AAEnH,MAAMU,eAAeP,yEAAgBA,GAAG;AACxC,MAAMQ,iBAAiBX,qDAAIA,CAAmB,EAAE,EAAE;AAClD,MAAMY,sBAAsBZ,qDAAIA,CAAkBM,0EAAuBA,EAAE;AAElF,YAAY;AACL,MAAMO,gBAAgBb,qDAAIA,CAAM,EAAE,EAAE;AACpC,MAAMc,uBAAuBd,qDAAIA,CAAM,EAAE,EAAE;AAC3C,MAAMe,aAAaf,qDAAIA,CAAM,EAAE,EAAE;AACjC,MAAMgB,oBAAoBhB,qDAAIA,CAAM,EAAE,EAAE;AAExC,MAAMiB,qBAAq
[...]
+=======
+{"version":3,"file":"439.js?_cache=bd08506ba880e5929bd3","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA6B;AAC6B;AAC1D,2CAA2C;AACO;AAGuC;AACiC;AAEnH,MAAMU,eAAeP,yEAAgBA,GAAG;AACxC,MAAMQ,iBAAiBX,qDAAIA,CAAmB,EAAE,EAAE;AAClD,MAAMY,sBAAsBZ,qDAAIA,CAAkBM,0EAAuBA,EAAE;AAElF,YAAY;AACL,MAAMO,gBAAgBb,qDAAIA,CAAM,EAAE,EAAE;AACpC,MAAMc,uBAAuBd,qDAAIA,CAAM,EAAE,EAAE;AAC3C,MAAMe,aAAaf,qDAAIA,CAAM,EAAE,EAAE;AACjC,MAAMgB,oBAAoBhB,qDAAIA,CAAM,EAAE,EAAE;AAExC,MAAMiB,qBAAq
[...]
+>>>>>>> Stashed changes
diff --git a/src/grafana/plugins/doris-app/659.js
b/src/grafana/plugins/doris-app/659.js
new file mode 100644
index 0000000..9127ad1
--- /dev/null
+++ b/src/grafana/plugins/doris-app/659.js
@@ -0,0 +1,917 @@
+"use strict";
+(self["webpackChunkdoris_app"] = self["webpackChunkdoris_app"] ||
[]).push([[659],{
+
+/***/ 4338:
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, {
+ jo: () => (/* binding */ getOperationListService),
+ FC: () => (/* binding */ getServiceListService),
+ hA: () => (/* binding */ getTableDataTraceService),
+ Cy: () => (/* binding */ getTracesService)
+});
+
+// EXTERNAL MODULE: external "@grafana/runtime"
+var runtime_ = __webpack_require__(8531);
+;// ./services/traces.sql.ts
+// 查询某个Table的Trace详情
+function getQueryTableTraceSQL(params) {
+ const { table, trace_id, database } = params;
+ const sql = `
+ SELECT
+ trace_id AS traceID,
+ span_id AS spanID,
+ parent_span_id AS parentSpanID,
+ span_name AS operationName,
+ service_name AS serviceName,
+ CONCAT(
+ '[',
+ array_join(
+ array_map(
+ (x, y) -> json_object('key', x, 'value', y),
+ map_keys(CAST(CAST(resource_attributes AS TEXT) AS MAP<STRING,
STRING>)),
+ map_values(CAST(CAST(resource_attributes AS TEXT) AS MAP<STRING,
STRING>))
+ ),
+ ','
+ ),
+ ']'
+ ) AS serviceTags,
+ UNIX_TIMESTAMP(timestamp) * 1000 AS startTime,
+ duration / 1000 AS duration,
+ CONCAT(
+ '[',
+ array_join(
+ array_map(
+ (x, y) -> json_object('key', x, 'value', y),
+ map_keys(CAST(CAST(span_attributes AS TEXT) AS MAP<STRING,
STRING>)),
+ map_values(CAST(CAST(span_attributes AS TEXT) AS MAP<STRING,
STRING>))
+ ),
+ ','
+ ),
+ ']'
+ ) AS tags,
+ span_kind AS kind,
+ CASE status_code
+ WHEN 'STATUS_CODE_OK' THEN 1
+ WHEN 'STATUS_CODE_ERROR' THEN 2
+ ELSE 0
+ END AS statusCode,
+ status_message AS statusMessage,
+ scope_name AS instrumentationLibraryName,
+ scope_version AS instrumentationLibraryVersion,
+ trace_state AS traceState
+ FROM ${database}.\`${table}\`
+ WHERE trace_id = '${trace_id}';
+ `;
+ return sql;
+}
+function parseDuration(input) {
+ if (!input) {
+ return 0;
+ }
+ if (input.endsWith('ms')) {
+ return parseFloat(input.replace('ms', ''));
+ } else if (input.endsWith('us')) {
+ return parseFloat(input.replace('us', '')) / 1000;
+ } else if (input.endsWith('s')) {
+ return parseFloat(input.replace('s', '')) * 1000;
+ }
+ return 0;
+}
+function tagsToDorisSQLConditions(tags) {
+ if (!tags) {
+ return '1=1';
+ }
+ const conditions = [];
+ const regex = /([\w.]+)=(?:"([^"]+)"|'([^']+)'|([^\s]+))/g;
+ let match;
+ while((match = regex.exec(tags)) !== null){
+ const key = match[1];
+ const val = match[2] || match[3] || match[4];
+ conditions.push(`span_attributes['${key}'] = '${val}'`);
+ }
+ return conditions.length > 0 ? conditions.join(' AND ') : '1=1';
+}
+function buildTraceAggSQLFromParams(params) {
+ const timeFilter = `${params.timeField} >= '${params.startDate}' AND
${params.timeField} < '${params.endDate}'`;
+ const serviceFilter = params.service_name && params.service_name !== 'all'
? `service_name = '${params.service_name}'` : '1=1';
+ const operationFilter = params.operation && params.operation !== 'all' ?
`span_name = '${params.operation}'` : '1=1';
+ const statusFilter = params.statusCode && params.statusCode !== 'all' ?
`status_code = '${params.statusCode}'` : '1=1';
+ const minDuration = parseDuration(params.minDuration);
+ const maxDuration = parseDuration(params.maxDuration);
+ let durationFilter = '1=1';
+ if (minDuration > 0 && maxDuration > 0) {
+ durationFilter = `trace_duration BETWEEN ${minDuration} AND
${maxDuration}`;
+ } else if (minDuration > 0) {
+ durationFilter = `trace_duration >= ${minDuration}`;
+ } else if (maxDuration > 0) {
+ durationFilter = `trace_duration <= ${maxDuration}`;
+ }
+ const tagsFilter = tagsToDorisSQLConditions(params.tags);
+ let rootSpansFilter = '1=1';
+ if (params.service_name && params.service_name !== 'all') {
+ rootSpansFilter = `service_name = '${params.service_name}'`;
+ }
+ if (params.operation && params.operation !== 'all') {
+ rootSpansFilter += ` AND span_name = '${params.operation}'`;
+ }
+ var _params_page_size;
+ const limit = (_params_page_size = params.page_size) !== null &&
_params_page_size !== void 0 ? _params_page_size : 1000;
+ var _params_page;
+ const offset = Math.max((((_params_page = params.page) !== null &&
_params_page !== void 0 ? _params_page : 1) - 1) * limit, 0);
+ let rowNumberOrderBy = 'time DESC';
+ switch(params.sortBy){
+ case 'longest-duration':
+ rowNumberOrderBy = 'trace_duration_ms DESC';
+ break;
+ case 'shortest-duration':
+ rowNumberOrderBy = 'trace_duration_ms ASC';
+ break;
+ case 'most-spans':
+ rowNumberOrderBy = 'spans DESC';
+ break;
+ case 'least-spans':
+ rowNumberOrderBy = 'spans ASC';
+ break;
+ case 'most-recent':
+ rowNumberOrderBy = 'time DESC';
+ break;
+ }
+ const query = `
+USE ${params.database};
+
+WITH
+ trace_durations AS (
+ SELECT
+ trace_id,
+ (UNIX_TIMESTAMP(MAX(end_time)) - UNIX_TIMESTAMP(MIN(timestamp))) * 1000
AS trace_duration
+ FROM ${params.table}
+ WHERE ${timeFilter}
+ GROUP BY trace_id
+ ),
+ all_trace_ids AS (
+ SELECT
+ t.trace_id,
+ MIN(t.${params.timeField}) AS time,
+ d.trace_duration
+ FROM ${params.table} t
+ JOIN trace_durations d ON t.trace_id = d.trace_id
+ WHERE
+ ${timeFilter}
+ AND ${serviceFilter}
+ AND ${operationFilter}
+ AND ${statusFilter}
+ AND ${tagsFilter}
+ AND 1=1
+ AND ${durationFilter}
+ GROUP BY t.trace_id, d.trace_duration
+ ),
+ root_spans AS (
+ SELECT
+ trace_id,
+ span_name AS operation,
+ service_name AS root_service
+ FROM ${params.table}
+ WHERE (parent_span_id IS NULL OR parent_span_id = '') AND
${rootSpansFilter} AND ${timeFilter}
+ ),
+ aggregated AS (
+ SELECT
+ UNIX_TIMESTAMP(MIN(t.${params.timeField})) AS time,
+ t.trace_id,
+ r.operation,
+ r.root_service,
+ COLLECT_SET(t.service_name) AS services,
+ COUNT(*) AS spans,
+ SUM(IF(status_code = 'STATUS_CODE_ERROR', 1, 0)) AS error_spans,
+ MAX(duration) / 1000 AS max_span_duration_ms,
+ MAX(UNIX_TIMESTAMP(t.timestamp) * 1000 + duration / 1000) -
MIN(UNIX_TIMESTAMP(t.timestamp) * 1000) AS trace_duration_ms,
+ MAX(IF(t.parent_span_id IS NULL OR t.parent_span_id = '', duration, 0))
/ 1000 AS root_span_duration_ms
+ FROM ${params.table} t
+ JOIN all_trace_ids a ON t.trace_id = a.trace_id
+ JOIN root_spans r ON t.trace_id = r.trace_id
+ GROUP BY t.trace_id, r.operation, r.root_service
+ ),
+ numbered AS (
+ SELECT
+ a.*,
+ COUNT(*) OVER() AS total_count,
+ ROW_NUMBER() OVER(ORDER BY ${rowNumberOrderBy}) AS rn
+ FROM aggregated a
+ )
+
+SELECT
+ *,
+ total_count AS total
+FROM numbered
+WHERE rn > ${offset} AND rn <= ${offset + limit}
+ORDER BY ${rowNumberOrderBy};
+`;
+ return query;
+}
+function getServiceListSQL(params) {
+ return `
+ SELECT DISTINCT service_name
+ FROM ${params.table}
+ WHERE ${params.timeField} BETWEEN '${params.startDate}' AND
'${params.endDate}'
+ ORDER BY service_name ASC
+ `;
+}
+function getOperationListSQL(params) {
+ return `
+ SELECT DISTINCT span_name
+ FROM ${params.table}
+ WHERE ${params.timeField} BETWEEN '${params.startDate}' AND
'${params.endDate}'
+ AND service_name = '${params.service_name}'
+ ORDER BY span_name ASC
+ `;
+}
+
+;// ./services/traces.ts
+function _object_without_properties(source, excluded) {
+ if (source == null) return {};
+ var target = _object_without_properties_loose(source, excluded);
+ var key, i;
+ if (Object.getOwnPropertySymbols) {
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
+ for(i = 0; i < sourceSymbolKeys.length; i++){
+ key = sourceSymbolKeys[i];
+ if (excluded.indexOf(key) >= 0) continue;
+ if (!Object.prototype.propertyIsEnumerable.call(source, key))
continue;
+ target[key] = source[key];
+ }
+ }
+ return target;
+}
+function _object_without_properties_loose(source, excluded) {
+ if (source == null) return {};
+ var target = {};
+ var sourceKeys = Object.keys(source);
+ var key, i;
+ for(i = 0; i < sourceKeys.length; i++){
+ key = sourceKeys[i];
+ if (excluded.indexOf(key) >= 0) continue;
+ target[key] = source[key];
+ }
+ return target;
+}
+
+
+// 获取table的Trace数据
+function getTableDataTraceService(payload) {
+ const { selectdbDS } = payload, rest = _object_without_properties(payload,
[
+ "selectdbDS"
+ ]);
+ const traceSQL = getQueryTableTraceSQL(rest);
+ return (0,runtime_.getBackendSrv)().fetch({
+ url: '/api/ds/query',
+ method: 'POST',
+ data: {
+ queries: [
+ {
+ refId: 'getTableDataTrace',
+ datasource: {
+ type: 'mysql',
+ uid: selectdbDS.uid
+ },
+ rawSql: traceSQL,
+ format: 'table'
+ }
+ ]
+ },
+ credentials: 'include'
+ });
+}
+// 查询Traces
+function getTracesService(payload) {
+ const { selectdbDS } = payload, rest = _object_without_properties(payload,
[
+ "selectdbDS"
+ ]);
+ const getTracesSQL = buildTraceAggSQLFromParams(rest);
+ return (0,runtime_.getBackendSrv)().fetch({
+ url: '/api/ds/query',
+ method: 'POST',
+ data: {
+ queries: [
+ {
+ refId: 'getTraces',
+ datasource: {
+ type: 'mysql',
+ uid: selectdbDS.uid
+ },
+ rawSql: getTracesSQL,
+ format: 'table'
+ }
+ ]
+ },
+ credentials: 'include'
+ });
+}
+// 查询Trace Services
+function getServiceListService(payload) {
+ const { selectdbDS } = payload, rest = _object_without_properties(payload,
[
+ "selectdbDS"
+ ]);
+ const serviceListSQL = getServiceListSQL(rest);
+ return (0,runtime_.getBackendSrv)().fetch({
+ url: '/api/ds/query',
+ method: 'POST',
+ data: {
+ queries: [
+ {
+ refId: 'getServiceList',
+ datasource: {
+ type: 'mysql',
+ uid: selectdbDS.uid
+ },
+ rawSql: serviceListSQL,
+ format: 'table'
+ }
+ ]
+ },
+ credentials: 'include'
+ });
+}
+// 查询Trace Operations
+function getOperationListService(payload) {
+ const { selectdbDS } = payload, rest = _object_without_properties(payload,
[
+ "selectdbDS"
+ ]);
+ const operationListSQL = getOperationListSQL(rest);
+ return (0,runtime_.getBackendSrv)().fetch({
+ url: '/api/ds/query',
+ method: 'POST',
+ data: {
+ queries: [
+ {
+ refId: 'getOperationList',
+ datasource: {
+ type: 'mysql',
+ uid: selectdbDS.uid
+ },
+ rawSql: operationListSQL,
+ format: 'table'
+ }
+ ]
+ },
+ credentials: 'include'
+ });
+}
+
+
+/***/ }),
+
+/***/ 7273:
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ A: () => (/* binding */ TraceDetail)
+/* harmony export */ });
+/* harmony import */ var _grafana_data__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(7781);
+/* harmony import */ var _grafana_data__WEBPACK_IMPORTED_MODULE_0___default =
/*#__PURE__*/__webpack_require__.n(_grafana_data__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _grafana_runtime__WEBPACK_IMPORTED_MODULE_1__ =
__webpack_require__(8531);
+/* harmony import */ var _grafana_runtime__WEBPACK_IMPORTED_MODULE_1___default
=
/*#__PURE__*/__webpack_require__.n(_grafana_runtime__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var _grafana_ui__WEBPACK_IMPORTED_MODULE_2__ =
__webpack_require__(2007);
+/* harmony import */ var _grafana_ui__WEBPACK_IMPORTED_MODULE_2___default =
/*#__PURE__*/__webpack_require__.n(_grafana_ui__WEBPACK_IMPORTED_MODULE_2__);
+/* harmony import */ var jotai__WEBPACK_IMPORTED_MODULE_3__ =
__webpack_require__(122);
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ =
__webpack_require__(5959);
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default =
/*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
+/* harmony import */ var _services_traces__WEBPACK_IMPORTED_MODULE_5__ =
__webpack_require__(4338);
+/* harmony import */ var _store_discover__WEBPACK_IMPORTED_MODULE_6__ =
__webpack_require__(2539);
+/* harmony import */ var _store_traces__WEBPACK_IMPORTED_MODULE_7__ =
__webpack_require__(8882);
+/* harmony import */ var _utils_data__WEBPACK_IMPORTED_MODULE_8__ =
__webpack_require__(9008);
+function _define_property(obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+ return obj;
+}
+function _object_spread(target) {
+ for(var i = 1; i < arguments.length; i++){
+ var source = arguments[i] != null ? arguments[i] : {};
+ var ownKeys = Object.keys(source);
+ if (typeof Object.getOwnPropertySymbols === "function") {
+ ownKeys =
ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
+ }));
+ }
+ ownKeys.forEach(function(key) {
+ _define_property(target, key, source[key]);
+ });
+ }
+ return target;
+}
+
+
+
+
+
+
+
+
+
+function TraceDetail(props) {
+ const currentTable = (0,jotai__WEBPACK_IMPORTED_MODULE_3__/* .useAtomValue
*/ .md)(_store_traces__WEBPACK_IMPORTED_MODULE_7__/* .currentTraceTableAtom */
.AZ);
+ const currentCatalog = (0,jotai__WEBPACK_IMPORTED_MODULE_3__/*
.useAtomValue */ .md)(_store_discover__WEBPACK_IMPORTED_MODULE_6__/*
.currentCatalogAtom */ .K0);
+ const currentDatabase = (0,jotai__WEBPACK_IMPORTED_MODULE_3__/*
.useAtomValue */ .md)(_store_discover__WEBPACK_IMPORTED_MODULE_6__/*
.currentDatabaseAtom */ .Cf);
+ const [traceData, setTraceData] = (0,jotai__WEBPACK_IMPORTED_MODULE_3__/*
.useAtom */ .fp)(_store_discover__WEBPACK_IMPORTED_MODULE_6__/*
.tableTracesDataAtom */ .UB);
+ const selectedRow = (0,jotai__WEBPACK_IMPORTED_MODULE_3__/* .useAtomValue
*/ .md)(_store_discover__WEBPACK_IMPORTED_MODULE_6__/* .selectedRowAtom */ .nn);
+ const selectdbDS = (0,jotai__WEBPACK_IMPORTED_MODULE_3__/* .useAtomValue
*/ .md)(_store_discover__WEBPACK_IMPORTED_MODULE_6__/* .selectedDatasourceAtom
*/ .SW);
+ const traceTable = (props === null || props === void 0 ? void 0 :
props.traceTable) || currentTable || 'otel_traces';
+ const [loading, setLoading] =
react__WEBPACK_IMPORTED_MODULE_4___default().useState(false);
+ const { open, traceId } = props;
+ const getTraceData =
react__WEBPACK_IMPORTED_MODULE_4___default().useCallback(()=>{
+ let payload = {
+ catalog: currentCatalog,
+ database: currentDatabase,
+ table: traceTable,
+ cluster: '',
+ sort: 'DESC',
+ trace_id: traceId || ''
+ };
+ setLoading(true);
+ (0,_services_traces__WEBPACK_IMPORTED_MODULE_5__/*
.getTableDataTraceService */ .hA)(_object_spread({
+ selectdbDS
+ }, payload)).subscribe({
+ next: ({ data, ok })=>{
+ setLoading(false);
+ if (ok) {
+ const formatedData =
(0,_utils_data__WEBPACK_IMPORTED_MODULE_8__/* .formatTracesResData */
.O1)(data.results.getTableDataTrace.frames[0]);
+ setTraceData(formatedData);
+ }
+ },
+ error: (err)=>{
+ setLoading(false);
+ console.log('Fetch Error', err);
+ }
+ });
+ }, [
+ currentCatalog,
+ currentDatabase,
+ traceTable,
+ selectdbDS,
+ setTraceData,
+ traceId
+ ]);
+ (0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(()=>{
+ if (traceId) {
+ getTraceData();
+ }
+ }, [
+ selectedRow.trace_id,
+ currentCatalog,
+ currentDatabase,
+ selectdbDS,
+ setTraceData,
+ getTraceData,
+ traceId
+ ]);
+ function renderTracePanel() {
+ if (traceData) {
+ return /*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_grafana_runtime__WEBPACK_IMPORTED_MODULE_1__.PanelRenderer,
{
+ title: "trace panel",
+ width: 200,
+ height: 300,
+ pluginId: "traces",
+ options: {},
+ data: {
+ state: loading ?
_grafana_data__WEBPACK_IMPORTED_MODULE_0__.LoadingState.Loading :
_grafana_data__WEBPACK_IMPORTED_MODULE_0__.LoadingState.Done,
+ series: [
+ traceData
+ ],
+ timeRange: {
+ from: new Date(Date.now() - 15 * 60 * 1000),
+ to: new Date(),
+ raw: {
+ from: 'now-15m',
+ to: 'now'
+ }
+ }
+ }
+ });
+ }
+ return null;
+ }
+ return /*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_4___default().createElement((react__WEBPACK_IMPORTED_MODULE_4___default().Fragment),
null, open && /*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_grafana_ui__WEBPACK_IMPORTED_MODULE_2__.Drawer,
{
+ title: "Trace Panel",
+ onClose: ()=>{
+ var _props_onClose;
+ props === null || props === void 0 ? void 0 : (_props_onClose =
props.onClose) === null || _props_onClose === void 0 ? void 0 :
_props_onClose.call(props);
+ },
+ size: "lg"
+ }, loading ? /*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_grafana_ui__WEBPACK_IMPORTED_MODULE_2__.LoadingPlaceholder,
{
+ text: `Loading`
+ }) : renderTracePanel()));
+}
+
+
+/***/ }),
+
+/***/ 8763:
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ gw: () => (/* binding */ trimSpacesAroundEquals),
+/* harmony export */ sd: () => (/* binding */ generateTableDataUID)
+/* harmony export */ });
+/* unused harmony exports generateUid, isIgnorableHighlightToken */
+// --- stable stringify: 递归排序键,避免循环引用导致崩溃 ---
+function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
+ try {
+ var info = gen[key](arg);
+ var value = info.value;
+ } catch (error) {
+ reject(error);
+ return;
+ }
+ if (info.done) {
+ resolve(value);
+ } else {
+ Promise.resolve(value).then(_next, _throw);
+ }
+}
+function _async_to_generator(fn) {
+ return function() {
+ var self = this, args = arguments;
+ return new Promise(function(resolve, reject) {
+ var gen = fn.apply(self, args);
+ function _next(value) {
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw,
"next", value);
+ }
+ function _throw(err) {
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw,
"throw", err);
+ }
+ _next(undefined);
+ });
+ };
+}
+function _define_property(obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+ return obj;
+}
+function _object_spread(target) {
+ for(var i = 1; i < arguments.length; i++){
+ var source = arguments[i] != null ? arguments[i] : {};
+ var ownKeys = Object.keys(source);
+ if (typeof Object.getOwnPropertySymbols === "function") {
+ ownKeys =
ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
+ }));
+ }
+ ownKeys.forEach(function(key) {
+ _define_property(target, key, source[key]);
+ });
+ }
+ return target;
+}
+function ownKeys(object, enumerableOnly) {
+ var keys = Object.keys(object);
+ if (Object.getOwnPropertySymbols) {
+ var symbols = Object.getOwnPropertySymbols(object);
+ if (enumerableOnly) {
+ symbols = symbols.filter(function(sym) {
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+ });
+ }
+ keys.push.apply(keys, symbols);
+ }
+ return keys;
+}
+function _object_spread_props(target, source) {
+ source = source != null ? source : {};
+ if (Object.getOwnPropertyDescriptors) {
+ Object.defineProperties(target,
Object.getOwnPropertyDescriptors(source));
+ } else {
+ ownKeys(Object(source)).forEach(function(key) {
+ Object.defineProperty(target, key,
Object.getOwnPropertyDescriptor(source, key));
+ });
+ }
+ return target;
+}
+function stableStringify(value) {
+ const seen = new WeakSet();
+ const recur = (v)=>{
+ if (v === null) {
+ return 'null';
+ }
+ const t = typeof v;
+ if (t === 'number') {
+ return Number.isFinite(v) ? String(v) : 'null';
+ }
+ if (t === 'boolean') {
+ return v ? 'true' : 'false';
+ }
+ if (t === 'string') {
+ return JSON.stringify(v);
+ }
+ if (t === 'bigint') {
+ return JSON.stringify(v.toString());
+ }
+ if (t === 'undefined' || t === 'function' || t === 'symbol') {
+ return 'null';
+ }
+ // object / array
+ if (seen.has(v)) {
+ return '"[Circular]"';
+ }
+ seen.add(v);
+ if (Array.isArray(v)) {
+ return '[' + v.map(recur).join(',') + ']';
+ }
+ const keys = Object.keys(v).sort();
+ const body = keys.map((k)=>JSON.stringify(k) + ':' +
recur(v[k])).join(',');
+ return '{' + body + '}';
+ };
+ return recur(value);
+}
+// --- 小工具 ---
+function u8ToHex(u8) {
+ let out = '';
+ for(let i = 0; i < u8.length; i++){
+ out += u8[i].toString(16).padStart(2, '0');
+ }
+ return out;
+}
+function hasSubtle() {
+ var _window_crypto_subtle;
+ return typeof window !== 'undefined' && !!window.crypto &&
!!window.isSecureContext && typeof ((_window_crypto_subtle =
window.crypto.subtle) === null || _window_crypto_subtle === void 0 ? void 0 :
_window_crypto_subtle.digest) === 'function';
+}
+// --- 纯 JS 的 SHA-256 fallback(简实现,无依赖) ---
+function sha256HexJS(data) {
+ // 常量
+ const K = new Uint32Array([
+ 0x428a2f98,
+ 0x71374491,
+ 0xb5c0fbcf,
+ 0xe9b5dba5,
+ 0x3956c25b,
+ 0x59f111f1,
+ 0x923f82a4,
+ 0xab1c5ed5,
+ 0xd807aa98,
+ 0x12835b01,
+ 0x243185be,
+ 0x550c7dc3,
+ 0x72be5d74,
+ 0x80deb1fe,
+ 0x9bdc06a7,
+ 0xc19bf174,
+ 0xe49b69c1,
+ 0xefbe4786,
+ 0x0fc19dc6,
+ 0x240ca1cc,
+ 0x2de92c6f,
+ 0x4a7484aa,
+ 0x5cb0a9dc,
+ 0x76f988da,
+ 0x983e5152,
+ 0xa831c66d,
+ 0xb00327c8,
+ 0xbf597fc7,
+ 0xc6e00bf3,
+ 0xd5a79147,
+ 0x06ca6351,
+ 0x14292967,
+ 0x27b70a85,
+ 0x2e1b2138,
+ 0x4d2c6dfc,
+ 0x53380d13,
+ 0x650a7354,
+ 0x766a0abb,
+ 0x81c2c92e,
+ 0x92722c85,
+ 0xa2bfe8a1,
+ 0xa81a664b,
+ 0xc24b8b70,
+ 0xc76c51a3,
+ 0xd192e819,
+ 0xd6990624,
+ 0xf40e3585,
+ 0x106aa070,
+ 0x19a4c116,
+ 0x1e376c08,
+ 0x2748774c,
+ 0x34b0bcb5,
+ 0x391c0cb3,
+ 0x4ed8aa4a,
+ 0x5b9cca4f,
+ 0x682e6ff3,
+ 0x748f82ee,
+ 0x78a5636f,
+ 0x84c87814,
+ 0x8cc70208,
+ 0x90befffa,
+ 0xa4506ceb,
+ 0xbef9a3f7,
+ 0xc67178f2
+ ]);
+ // 初始哈希
+ let h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, h3 = 0xa54ff53a, h4
= 0x510e527f, h5 = 0x9b05688c, h6 = 0x1f83d9ab, h7 = 0x5be0cd19;
+ // 预处理:填充
+ const l = data.length;
+ const bitLenHi = l >>> 29 >>> 0;
+ const bitLenLo = l << 3 >>> 0;
+ const nBlocks = (l + 9 >> 6) + 1 << 4; // 以 16 个 32bit 为一组
+ const M = new Uint32Array(nBlocks);
+ for(let i = 0; i < l; i++){
+ M[i >> 2] |= data[i] << (3 - (i & 3) << 3);
+ }
+ M[l >> 2] |= 0x80 << (3 - (l & 3) << 3);
+ M[nBlocks - 2] = bitLenHi;
+ M[nBlocks - 1] = bitLenLo;
+ const W = new Uint32Array(64);
+ const rotr = (x, n)=>x >>> n | x << 32 - n;
+ for(let i = 0; i < nBlocks; i += 16){
+ for(let t = 0; t < 16; t++){
+ W[t] = M[i + t];
+ }
+ for(let t = 16; t < 64; t++){
+ const s0 = (rotr(W[t - 15], 7) ^ rotr(W[t - 15], 18) ^ W[t - 15]
>>> 3) >>> 0;
+ const s1 = (rotr(W[t - 2], 17) ^ rotr(W[t - 2], 19) ^ W[t - 2] >>>
10) >>> 0;
+ W[t] = W[t - 16] + s0 + W[t - 7] + s1 >>> 0;
+ }
+ let a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7;
+ for(let t = 0; t < 64; t++){
+ const S1 = (rotr(e, 6) ^ rotr(e, 11) ^ rotr(e, 25)) >>> 0;
+ const ch = (e & f ^ ~e & g) >>> 0;
+ const T1 = h + S1 + ch + K[t] + W[t] >>> 0;
+ const S0 = (rotr(a, 2) ^ rotr(a, 13) ^ rotr(a, 22)) >>> 0;
+ const maj = (a & b ^ a & c ^ b & c) >>> 0;
+ const T2 = S0 + maj >>> 0;
+ h = g;
+ g = f;
+ f = e;
+ e = d + T1 >>> 0;
+ d = c;
+ c = b;
+ b = a;
+ a = T1 + T2 >>> 0;
+ }
+ h0 = h0 + a >>> 0;
+ h1 = h1 + b >>> 0;
+ h2 = h2 + c >>> 0;
+ h3 = h3 + d >>> 0;
+ h4 = h4 + e >>> 0;
+ h5 = h5 + f >>> 0;
+ h6 = h6 + g >>> 0;
+ h7 = h7 + h >>> 0;
+ }
+ const out = new Uint8Array(32);
+ const H = [
+ h0,
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6,
+ h7
+ ];
+ for(let i = 0; i < 8; i++){
+ out[i * 4 + 0] = H[i] >>> 24 & 0xff;
+ out[i * 4 + 1] = H[i] >>> 16 & 0xff;
+ out[i * 4 + 2] = H[i] >>> 8 & 0xff;
+ out[i * 4 + 3] = H[i] & 0xff;
+ }
+ return u8ToHex(out);
+}
+// --- 通用 SHA-256(浏览器优先,fallback 到纯 JS) ---
+function sha256Hex(input) {
+ return _async_to_generator(function*() {
+ const data = new TextEncoder().encode(input);
+ if (hasSubtle()) {
+ const buf = yield window.crypto.subtle.digest('SHA-256', data);
+ return u8ToHex(new Uint8Array(buf));
+ }
+ // 非 https 或老环境:走纯 JS
+ return sha256HexJS(data);
+ })();
+}
+// --- 你的两个导出函数 ---
+function generateUid(obj) {
+ return _async_to_generator(function*() {
+ const json = stableStringify(obj);
+ return sha256Hex(json);
+ })();
+}
+function generateTableDataUID(items) {
+ return _async_to_generator(function*() {
+ // 允许 _original 缺失时退回整个 item;并发计算,更快
+ const sources = items.map((it)=>{
+ var _ref;
+ return (_ref = it && it._original) !== null && _ref !== void 0 ?
_ref : it;
+ });
+ const uids = yield Promise.all(sources.map(generateUid));
+ return items.map((it, i)=>_object_spread_props(_object_spread({}, it),
{
+ _uid: uids[i]
+ }));
+ })();
+}
+function isIgnorableHighlightToken(token) {
+ const ignoreChars = new Set([
+ ',',
+ '.',
+ ';',
+ ':',
+ '(',
+ ')',
+ '{',
+ '}',
+ '[',
+ ']',
+ '+',
+ '-',
+ '*',
+ '/',
+ '=',
+ '<',
+ '>',
+ '!',
+ '?',
+ '|',
+ '&',
+ '%',
+ '^',
+ '$',
+ '#',
+ '@',
+ '~',
+ '`',
+ '\\',
+ "'",
+ '"'
+ ]);
+ // 全是空格或换行
+ if (!token.trim()) {
+ return true;
+ }
+ // 单个字符且在 ignoreChars 中
+ if (token.length === 1 && ignoreChars.has(token)) {
+ return true;
+ }
+ // 多个字符但全是标点符号
+ if
(/^[\u2000-\u206F\u2E00-\u2E7F!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~]+$/.test(token))
{
+ return true;
+ }
+ return false;
+}
+function trimSpacesAroundEquals(str) {
+ // 去掉等于号两边所有空格
+ return str.replace(/\s*=\s*/g, '=');
+}
+
+
+/***/ }),
+
+/***/ 8882:
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ AZ: () => (/* binding */ currentTraceTableAtom),
+/* harmony export */ E: () => (/* binding */ tracesServicesAtom),
+/* harmony export */ VA: () => (/* binding */ traceOperationsAtom),
+/* harmony export */ fy: () => (/* binding */ currentSortAtom),
+/* harmony export */ gL: () => (/* binding */ currentServiceAtom),
+/* harmony export */ jB: () => (/* binding */ tagsAtom),
+/* harmony export */ mH: () => (/* binding */ currentOperationAtom),
+/* harmony export */ oC: () => (/* binding */ minDurationAtom),
+/* harmony export */ ok: () => (/* binding */ tracesAtom),
+/* harmony export */ uS: () => (/* binding */ maxDurationAtom)
+/* harmony export */ });
+/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(2560);
+/* harmony import */ var jotai__WEBPACK_IMPORTED_MODULE_1__ =
__webpack_require__(1750);
+
+
+const currentTraceTableAtom = (0,jotai__WEBPACK_IMPORTED_MODULE_1__/* .atom */
.eU)('');
+const currentServiceAtom = (0,jotai__WEBPACK_IMPORTED_MODULE_1__/* .atom */
.eU)(_constants__WEBPACK_IMPORTED_MODULE_0__/* .DEFAULT_SERVICE */ .aR);
+const currentOperationAtom = (0,jotai__WEBPACK_IMPORTED_MODULE_1__/* .atom */
.eU)(_constants__WEBPACK_IMPORTED_MODULE_0__/* .DEFAULT_OPERATION */ .UB);
+const currentSortAtom = (0,jotai__WEBPACK_IMPORTED_MODULE_1__/* .atom */
.eU)('most-recent');
+const tagsAtom = (0,jotai__WEBPACK_IMPORTED_MODULE_1__/* .atom */ .eU)('');
+const tracesAtom = (0,jotai__WEBPACK_IMPORTED_MODULE_1__/* .atom */ .eU)([]);
+const tracesServicesAtom = (0,jotai__WEBPACK_IMPORTED_MODULE_1__/* .atom */
.eU)([]);
+const traceOperationsAtom = (0,jotai__WEBPACK_IMPORTED_MODULE_1__/* .atom */
.eU)([]);
+const minDurationAtom = (0,jotai__WEBPACK_IMPORTED_MODULE_1__/* .atom */
.eU)('');
+const maxDurationAtom = (0,jotai__WEBPACK_IMPORTED_MODULE_1__/* .atom */
.eU)('');
+
+
+/***/ })
+
+}]);
+//# sourceMappingURL=659.js.map?_cache=6b87f40f0978b23bc2bf
\ No newline at end of file
diff --git a/src/grafana/plugins/doris-app/659.js.map
b/src/grafana/plugins/doris-app/659.js.map
new file mode 100644
index 0000000..fb74dae
--- /dev/null
+++ b/src/grafana/plugins/doris-app/659.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"659.js?_cache=6b87f40f0978b23bc2bf","mappings":";;;;;;;;;;;;;;;;;;AAQA,oBAAoB;AACb,SAASA,sBAAsBC,MAA8B;IAChE,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,GAAGH;IAEtC,MAAMI,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA2CN,EAAED,SAAS,GAAG,EAAEF,MAAM;wBACT,EAAEC,SAAS;IAC/B,CAAC;IAED,OAAOE;AACX;AAEA,SAASC,cAAcC,KAAc;IACjC,IAAI,CAACA,OAAO;QACR,OAAO;IACX;IAEA,IAAIA,MAAMC,QAAQ,CAAC,OAAO;QACtB,OAAOC,WAAWF,MAAMG,OAAO,CAAC,MAAM;IAC1C,OAAO,IAAIH,MAAMC,QAAQ,CAAC,OAAO;QAC7
[...]
\ No newline at end of file
diff --git a/src/grafana/plugins/doris-app/824.js
b/src/grafana/plugins/doris-app/824.js
index 8f003d5..34b5146 100644
--- a/src/grafana/plugins/doris-app/824.js
+++ b/src/grafana/plugins/doris-app/824.js
@@ -1,6 +1,7 @@
"use strict";
(self["webpackChunkdoris_app"] = self["webpackChunkdoris_app"] ||
[]).push([[824],{
+<<<<<<< Updated upstream
/***/ 4338:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -362,6 +363,8 @@ function getOperationListService(payload) {
/***/ }),
+=======
+>>>>>>> Stashed changes
/***/ 6824:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -1721,6 +1724,7 @@ function PageTrace() {
}
+<<<<<<< Updated upstream
/***/ }),
/***/ 7273:
@@ -1910,4 +1914,10 @@ const maxDurationAtom =
(0,jotai__WEBPACK_IMPORTED_MODULE_1__/* .atom */ .eU)(''
/***/ })
}]);
-//# sourceMappingURL=824.js.map?_cache=e8f8a0725ff96ada56e3
\ No newline at end of file
+//# sourceMappingURL=824.js.map?_cache=e8f8a0725ff96ada56e3
+=======
+/***/ })
+
+}]);
+//# sourceMappingURL=824.js.map?_cache=82f7b759265fefdd1d12
+>>>>>>> Stashed changes
diff --git a/src/grafana/plugins/doris-app/824.js.map
b/src/grafana/plugins/doris-app/824.js.map
index c613ff6..6d9fbb8 100644
--- a/src/grafana/plugins/doris-app/824.js.map
+++ b/src/grafana/plugins/doris-app/824.js.map
@@ -1 +1,5 @@
-{"version":3,"file":"824.js?_cache=e8f8a0725ff96ada56e3","mappings":";;;;;;;;;;;;;;;;;;AAQA,oBAAoB;AACb,SAASA,sBAAsBC,MAA8B;IAChE,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,GAAGH;IAEtC,MAAMI,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA2CN,EAAED,SAAS,GAAG,EAAEF,MAAM;wBACT,EAAEC,SAAS;IAC/B,CAAC;IAED,OAAOE;AACX;AAEA,SAASC,cAAcC,KAAc;IACjC,IAAI,CAACA,OAAO;QACR,OAAO;IACX;IAEA,IAAIA,MAAMC,QAAQ,CAAC,OAAO;QACtB,OAAOC,WAAWF,MAAMG,OAAO,CAAC,MAAM;IAC1C,OAAO,IAAIH,MAAMC,QAAQ,CAAC,OAAO;QAC7
[...]
\ No newline at end of file
+<<<<<<< Updated upstream
+{"version":3,"file":"824.js?_cache=e8f8a0725ff96ada56e3","mappings":";;;;;;;;;;;;;;;;;;AAQA,oBAAoB;AACb,SAASA,sBAAsBC,MAA8B;IAChE,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,GAAGH;IAEtC,MAAMI,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA2CN,EAAED,SAAS,GAAG,EAAEF,MAAM;wBACT,EAAEC,SAAS;IAC/B,CAAC;IAED,OAAOE;AACX;AAEA,SAASC,cAAcC,KAAc;IACjC,IAAI,CAACA,OAAO;QACR,OAAO;IACX;IAEA,IAAIA,MAAMC,QAAQ,CAAC,OAAO;QACtB,OAAOC,WAAWF,MAAMG,OAAO,CAAC,MAAM;IAC1C,OAAO,IAAIH,MAAMC,QAAQ,CAAC,OAAO;QAC7
[...]
+=======
+{"version":3,"file":"824.js?_cache=82f7b759265fefdd1d12","mappings":";;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAE6E;AAC7E;;;AC5BA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEwC;AACxC;;;ACpBA;AACA;AACA;AACA;AACA;AACA;;AAEkD;AACK;AACW;;AAElE,aAAa,8BAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,UAAU,iCAAa;AAC1B;AACA;AACA;AACA,SAA
[...]
+>>>>>>> Stashed changes
diff --git a/src/grafana/plugins/doris-app/CHANGELOG.md
b/src/grafana/plugins/doris-app/CHANGELOG.md
index 2471ca3..6a8a915 100644
--- a/src/grafana/plugins/doris-app/CHANGELOG.md
+++ b/src/grafana/plugins/doris-app/CHANGELOG.md
@@ -1,5 +1,14 @@
# Changelog
+<<<<<<< Updated upstream
+=======
+##
[1.0.1-alpha.2](https://github.com/jeffreys-cat/grafana-doris-app/compare/v1.0.1-alpha.1...v1.0.1-alpha.2)
(2026-02-04)
+
+### 🎫 Chores
+
+* update author name
([b6cd8d1](https://github.com/jeffreys-cat/grafana-doris-app/commit/b6cd8d1e79576bcbc919b2285eae3f9a5b4403aa))
+
+>>>>>>> Stashed changes
##
[1.0.1-alpha.1](https://github.com/jeffreys-cat/grafana-doris-app/compare/v1.0.0-alpha.1...v1.0.1-alpha.1)
(2026-02-02)
## 1.0.0-alpha.1 (2026-02-02)
diff --git a/src/grafana/plugins/doris-app/module.js
b/src/grafana/plugins/doris-app/module.js
index 2436ba3..fe0b900 100644
--- a/src/grafana/plugins/doris-app/module.js
+++ b/src/grafana/plugins/doris-app/module.js
@@ -1194,7 +1194,11 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__9089__;
/******/ // This function allow to reference async chunks
/******/ __webpack_require__.u = (chunkId) => {
/******/ // return url for filenames based on template
+<<<<<<< Updated upstream
/******/ return "" + chunkId + ".js?_cache=" +
{"20":"4c9e61c25e362f70cef3","42":"f3f97468bc0710881fb5","170":"1756191b88d71217efc9","273":"e9f92c7627444f872189","382":"45ca3c194995374286b8","439":"731b5943bdc7c1368ebd","572":"18987f5f848d0eef4595","680":"05e6691eb2d1fe3a4df9","824":"e8f8a0725ff96ada56e3"}[chunkId]
+ "";
+=======
+/******/ return "" + chunkId + ".js?_cache=" +
{"20":"4c9e61c25e362f70cef3","42":"dad0c51d1ead9b168bd4","170":"1756191b88d71217efc9","273":"e9f92c7627444f872189","382":"08e0206326f2c926fed2","439":"bd08506ba880e5929bd3","572":"18987f5f848d0eef4595","659":"6b87f40f0978b23bc2bf","680":"05e6691eb2d1fe3a4df9","824":"82f7b759265fefdd1d12"}[chunkId]
+ "";
+>>>>>>> Stashed changes
/******/ };
/******/ })();
/******/
@@ -1283,7 +1287,11 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__9089__;
/******/
/******/ /* webpack/runtime/compat */
/******/
+<<<<<<< Updated upstream
/******/ __webpack_require__.sriHashes =
{"20":"sha256-tZK/hhnSbow5KIpPECOg1rp4T1B7QjJRfcpXXf5zFE0=","42":"sha256-ZWPDmhuei67WXB9vZTnS3RNki2gucTomFwxm8UnJsik=","170":"sha256-yGVQfSvxGKmJ2RZi10juUeor95eXXO0+9u+/fTs0zlA=","273":"sha256-mw2eatnfiYTslOQm71RJYNEsp0Sk+J+agaLmkanvobA=","382":"sha256-WCDT20f/28bJ4iTgV8/4vnfSoUGN0oSDL3rFTVMUqGU=","439":"sha256-ft+BhLwRyOzr5mqwKDKxR/JfcERH6aT7kpXwr7kEp1M=","572":"sha256-Yt8baAsWEPnM/qGgb6UAIsWoBrGmEX7uQHuzHWi2Rbo=","680":"sha256-5bWt9FqS28JCY4PED
[...]
+=======
+/******/ __webpack_require__.sriHashes =
{"20":"sha256-tZK/hhnSbow5KIpPECOg1rp4T1B7QjJRfcpXXf5zFE0=","42":"sha256-nzgeakQIWgz8aa7RF8oJyGt85hIx2A6ANWhlQtWz7wY=","170":"sha256-yGVQfSvxGKmJ2RZi10juUeor95eXXO0+9u+/fTs0zlA=","273":"sha256-mw2eatnfiYTslOQm71RJYNEsp0Sk+J+agaLmkanvobA=","382":"sha256-X/fowxSGfrZ4l1ou0L2JAGJ/GPxJ/wcq/0zLBYdp9U8=","439":"sha256-JeiLIC4FLQvxbmrXjGzk/JwQYqUvIL+iQqRVyE5+pnY=","572":"sha256-Yt8baAsWEPnM/qGgb6UAIsWoBrGmEX7uQHuzHWi2Rbo=","659":"sha256-cL5hVc4mjGim9Qrjv
[...]
+>>>>>>> Stashed changes
/******/
/******/ /* webpack/runtime/jsonp chunk loading */
/******/ (() => {
diff --git a/src/grafana/plugins/doris-app/module.js.map
b/src/grafana/plugins/doris-app/module.js.map
index c4846c0..7c98e2f 100644
--- a/src/grafana/plugins/doris-app/module.js.map
+++ b/src/grafana/plugins/doris-app/module.js.map
@@ -1 +1,5 @@
-{"version":3,"file":"module.js","mappings":";;;;;;;AAAA,eAAe,KAAoD,oBAAoB,CAA+G,CAAC,kBAAkB,aAAa,wJAAwJ,EAAE,UAAU,IAAI,WAAW,IAAI,YAAY,IAAI,QAAQ,IAAI,QAAQ,IAAI,iCAAiC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,OAAO,IAAI,GAAG,IAAI,GAAG,IAAI,UAAU,uNAAuN,oCAAoC,4CAA4C,mBAAmB,gBAAgB,yDAAyD,IAAI,kBAAkB,6DAA6D,+CAA+C,mBAAmB,mCAAmC,8GAA8G,mCAAmC,eAAe,yCAAyC,eAAe,OAAO,yCAAyC,kDAAkD,eAAe,mBAAmB,aAAa,OAAO,qCAAqC,oCAAoC,qBAAqB,MAAM,eAAe,uBAAuB,sBAAsB,4BAA4B,mBAAmB,iCAAiC,KAAK,aAAa,WAAW,4
[...]
\ No newline at end of file
+<<<<<<< Updated upstream
+{"version":3,"file":"module.js","mappings":";;;;;;;AAAA,eAAe,KAAoD,oBAAoB,CAA+G,CAAC,kBAAkB,aAAa,wJAAwJ,EAAE,UAAU,IAAI,WAAW,IAAI,YAAY,IAAI,QAAQ,IAAI,QAAQ,IAAI,iCAAiC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,OAAO,IAAI,GAAG,IAAI,GAAG,IAAI,UAAU,uNAAuN,oCAAoC,4CAA4C,mBAAmB,gBAAgB,yDAAyD,IAAI,kBAAkB,6DAA6D,+CAA+C,mBAAmB,mCAAmC,8GAA8G,mCAAmC,eAAe,yCAAyC,eAAe,OAAO,yCAAyC,kDAAkD,eAAe,mBAAmB,aAAa,OAAO,qCAAqC,oCAAoC,qBAAqB,MAAM,eAAe,uBAAuB,sBAAsB,4BAA4B,mBAAmB,iCAAiC,KAAK,aAAa,WAAW,4
[...]
+=======
+{"version":3,"file":"module.js","mappings":";;;;;;;AAAA,eAAe,KAAoD,oBAAoB,CAA+G,CAAC,kBAAkB,aAAa,wJAAwJ,EAAE,UAAU,IAAI,WAAW,IAAI,YAAY,IAAI,QAAQ,IAAI,QAAQ,IAAI,iCAAiC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,OAAO,IAAI,GAAG,IAAI,GAAG,IAAI,UAAU,uNAAuN,oCAAoC,4CAA4C,mBAAmB,gBAAgB,yDAAyD,IAAI,kBAAkB,6DAA6D,+CAA+C,mBAAmB,mCAAmC,8GAA8G,mCAAmC,eAAe,yCAAyC,eAAe,OAAO,yCAAyC,kDAAkD,eAAe,mBAAmB,aAAa,OAAO,qCAAqC,oCAAoC,qBAAqB,MAAM,eAAe,uBAAuB,sBAAsB,4BAA4B,mBAAmB,iCAAiC,KAAK,aAAa,WAAW,4
[...]
+>>>>>>> Stashed changes
diff --git a/src/grafana/plugins/doris-app/plugin.json
b/src/grafana/plugins/doris-app/plugin.json
index df37f2a..7d42339 100644
--- a/src/grafana/plugins/doris-app/plugin.json
+++ b/src/grafana/plugins/doris-app/plugin.json
@@ -11,15 +11,20 @@
],
"description": "",
"author": {
- "name": "SelectDB"
+ "name": "VeloDB"
},
"logos": {
"small": "img/logo.svg",
"large": "img/logo.svg"
},
"screenshots": [],
+<<<<<<< Updated upstream
"version": "1.0.1-alpha.1",
"updated": "2026-02-02"
+=======
+ "version": "1.0.1-alpha.2",
+ "updated": "2026-02-04"
+>>>>>>> Stashed changes
},
"includes": [
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]