This is an automated email from the ASF dual-hosted git repository.
jeffreyh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/doris-opentelemetry-demo.git
The following commit(s) were added to refs/heads/main by this push:
new 72d9d6f feat: fix the grafana auth error
72d9d6f is described below
commit 72d9d6f96a8cd510bcd3e27b6e0b61f8159f9bc1
Author: Jeffrey <[email protected]>
AuthorDate: Thu Aug 28 19:19:31 2025 +0800
feat: fix the grafana auth error
---
src/grafana/plugins/doris-app/181.js | 766 +++++++++++++--------
src/grafana/plugins/doris-app/181.js.map | 2 +-
src/grafana/plugins/doris-app/{892.js => 301.js} | 586 +++++++++++-----
src/grafana/plugins/doris-app/301.js.map | 1 +
src/grafana/plugins/doris-app/462.js | 4 +-
src/grafana/plugins/doris-app/462.js.map | 2 +-
src/grafana/plugins/doris-app/600.js | 300 ++++----
src/grafana/plugins/doris-app/600.js.map | 2 +-
src/grafana/plugins/doris-app/892.js.map | 1 -
.../plugins/doris-app/gpx_doris-app_darwin_amd64 | Bin 25602304 -> 25602304
bytes
.../plugins/doris-app/gpx_doris-app_darwin_arm64 | Bin 24454450 -> 24454450
bytes
.../plugins/doris-app/gpx_doris-app_linux_amd64 | Bin 24740024 -> 24740024
bytes
.../plugins/doris-app/gpx_doris-app_linux_arm | Bin 23199928 -> 23199928
bytes
.../plugins/doris-app/gpx_doris-app_linux_arm64 | Bin 23462072 -> 23462072
bytes
.../doris-app/gpx_doris-app_windows_amd64.exe | Bin 25480192 -> 25480192
bytes
src/grafana/plugins/doris-app/module.js | 4 +-
src/grafana/plugins/doris-app/module.js.map | 2 +-
src/grafana/plugins/doris-app/plugin.json | 2 +-
18 files changed, 1040 insertions(+), 632 deletions(-)
diff --git a/src/grafana/plugins/doris-app/181.js
b/src/grafana/plugins/doris-app/181.js
index e5630b8..ed1e9bd 100644
--- a/src/grafana/plugins/doris-app/181.js
+++ b/src/grafana/plugins/doris-app/181.js
@@ -16,7 +16,7 @@
/* harmony import */ var jotai__WEBPACK_IMPORTED_MODULE_8__ =
__webpack_require__(3689);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ =
__webpack_require__(5959);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default =
/*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
-/* harmony import */ var _services_discover__WEBPACK_IMPORTED_MODULE_4__ =
__webpack_require__(7626);
+/* harmony import */ var _services_traces__WEBPACK_IMPORTED_MODULE_4__ =
__webpack_require__(3764);
/* harmony import */ var _store_discover__WEBPACK_IMPORTED_MODULE_5__ =
__webpack_require__(6247);
/* harmony import */ var _store_traces__WEBPACK_IMPORTED_MODULE_6__ =
__webpack_require__(3982);
/* harmony import */ var _utils_data__WEBPACK_IMPORTED_MODULE_7__ =
__webpack_require__(6700);
@@ -64,6 +64,7 @@ function TraceDetail(props) {
const [traceData, setTraceData] = (0,jotai__WEBPACK_IMPORTED_MODULE_8__/*
.useAtom */ .fp)(_store_discover__WEBPACK_IMPORTED_MODULE_5__/*
.tableTracesDataAtom */ .UB);
const selectedRow = (0,jotai__WEBPACK_IMPORTED_MODULE_8__/* .useAtomValue
*/ .md)(_store_discover__WEBPACK_IMPORTED_MODULE_5__/* .selectedRowAtom */ .nn);
const selectdbDS = (0,jotai__WEBPACK_IMPORTED_MODULE_8__/* .useAtomValue
*/ .md)(_store_discover__WEBPACK_IMPORTED_MODULE_5__/* .selectedDatasourceAtom
*/ .SW);
+ const [loading, setLoading] =
react__WEBPACK_IMPORTED_MODULE_3___default().useState(false);
const { open, traceId } = props;
const getTraceData =
react__WEBPACK_IMPORTED_MODULE_3___default().useCallback(()=>{
let payload = {
@@ -74,16 +75,19 @@ function TraceDetail(props) {
sort: 'DESC',
trace_id: traceId || ''
};
- (0,_services_discover__WEBPACK_IMPORTED_MODULE_4__/*
.getTableDataTraceService */ .hA)(_object_spread({
+ setLoading(true);
+ (0,_services_traces__WEBPACK_IMPORTED_MODULE_4__/*
.getTableDataTraceService */ .hA)(_object_spread({
selectdbDS
}, payload)).subscribe({
next: ({ data, ok })=>{
+ setLoading(false);
if (ok) {
- const formatedData =
(0,_utils_data__WEBPACK_IMPORTED_MODULE_7__/* .formatTracesResData */
.O1)(data);
+ const formatedData =
(0,_utils_data__WEBPACK_IMPORTED_MODULE_7__/* .formatTracesResData */
.O1)(data.results.getTableDataTrace.frames[0]);
setTraceData(formatedData);
}
},
error: (err)=>{
+ setLoading(false);
console.log('查询错误', err);
}
});
@@ -108,6 +112,32 @@ function TraceDetail(props) {
getTraceData,
traceId
]);
+ function renderTracePanel() {
+ if (traceData) {
+ return /*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_grafana_runtime__WEBPACK_IMPORTED_MODULE_1__.PanelRenderer,
{
+ title: "test",
+ 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_3___default().createElement((react__WEBPACK_IMPORTED_MODULE_3___default().Fragment),
null, open && /*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_grafana_ui__WEBPACK_IMPORTED_MODULE_2__.Drawer,
{
title: "Trace Panel",
onClose: ()=>{
@@ -115,27 +145,370 @@ function TraceDetail(props) {
props === null || props === void 0 ? void 0 : (_props_onClose =
props.onClose) === null || _props_onClose === void 0 ? void 0 :
_props_onClose.call(props);
},
size: "lg"
- }, traceData ? /*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_grafana_runtime__WEBPACK_IMPORTED_MODULE_1__.PanelRenderer,
{
- title: "test",
- width: 200,
- height: 300,
- pluginId: "traces",
- options: {},
+ }, loading ? /*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_grafana_ui__WEBPACK_IMPORTED_MODULE_2__.LoadingPlaceholder,
{
+ text: `Loading`
+ }) : renderTracePanel()));
+}
+
+
+/***/ }),
+
+/***/ 3764:
+/***/ ((__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];
+ 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}
+ ),
+ 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: {
- state:
_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'
+ queries: [
+ {
+ refId: 'getTableDataTrace',
+ datasource: {
+ type: 'mysql',
+ uid: selectdbDS.uid
+ },
+ rawSql: traceSQL,
+ format: 'table'
}
- }
- }
- }) : null));
+ ]
+ },
+ 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'
+ });
}
@@ -973,8 +1346,7 @@ function getChartsData(tableDataCharts, currentDate) {
'asc'
]);
}
-function convertColumnToRow(jsonData) {
- const frame = jsonData.results[0];
+function convertColumnToRow(frame) {
const fieldNames = frame.schema.fields.map((f)=>f.name);
const columns = frame.data.values;
if (columns.length === 0) {
@@ -986,11 +1358,9 @@ function convertColumnToRow(jsonData) {
const row = {};
for(let j = 0; j < columns.length; j++){
row[fieldNames[j]] = columns[j][i];
- console.log(frame.schema.fields[j].type.toUpperCase());
if
(isValidTimeFieldType(frame.schema.fields[j].type.toUpperCase())) {
// 如果是时间字段,转换为 Dayjs 对象
row[fieldNames[j]] =
formatTimestampToDateTime(row[fieldNames[j]], frame.schema.fields[j].precision
|| 3);
- // row[fieldNames[j]] =
dayjs.utc(row[fieldNames[j]]).locale(currentLocale).format('YYYY-MM-DD
HH:mm:ss.SSS');
}
if (frame.schema.fields[j].type === 'VARIANT') {
// 如果是 VARIANT 类型,转换为 JSON 对象
@@ -1006,9 +1376,7 @@ function convertColumnToRow(jsonData) {
return rows;
}
// 通过查询 Doris 的字段判断类型,不依赖 Grafana 类型
-function convertColumnToRowViaFieldsType(jsonData, fields) {
- console.log('fields', fields);
- const frame = jsonData.results[0];
+function convertColumnToRowViaFieldsType(frame, fields) {
const fieldNames = frame.schema.fields.map((f)=>f.name);
const columns = frame.data.values;
if (columns.length === 0) {
@@ -1051,8 +1419,7 @@ function formatTimestampToDateTime(timestamp, precision =
3) {
// 转换时间戳并格式化
return
dayjs__WEBPACK_IMPORTED_MODULE_1___default().utc(timestamp).locale(currentLocale).format(formatString);
}
-function formatTracesResData(resData) {
- const frame = resData.results[0];
+function formatTracesResData(frame) {
const { data } = frame;
const traceDataFrame = {
name: 'Trace ID',
@@ -1179,232 +1546,6 @@ function generateHighlightedResults(data, result) {
}
-/***/ }),
-
-/***/ 7626:
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ $g: () => (/* binding */ getTableDataCountService),
-/* harmony export */ Cq: () => (/* binding */ getTracesServicesService),
-/* harmony export */ Cy: () => (/* binding */ getTracesService),
-/* harmony export */ EF: () => (/* binding */ getTableDataService),
-/* harmony export */ H7: () => (/* binding */ getTraceOperationsService),
-/* harmony export */ N: () => (/* binding */ getTopDataService),
-/* harmony export */ Rp: () => (/* binding */ getTableDataChartsService),
-/* harmony export */ hA: () => (/* binding */ getTableDataTraceService),
-/* harmony export */ oq: () => (/* binding */ getSurroundingDataService)
-/* harmony export */ });
-/* harmony import */ var _grafana_runtime__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(8531);
-/* harmony import */ var _grafana_runtime__WEBPACK_IMPORTED_MODULE_0___default
=
/*#__PURE__*/__webpack_require__.n(_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__);
-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 _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;
-}
-
-function getTableDataService(payload) {
- const { selectdbDS } = payload, rest = _object_without_properties(payload,
[
- "selectdbDS"
- ]);
- const response =
(0,_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__.getBackendSrv)().fetch({
- url: '/api/plugins/doris-app/resources/table_data',
- method: 'POST',
- data: _object_spread_props(_object_spread({}, rest), {
- ds: selectdbDS.uid
- }),
- credentials: 'include'
- });
- return response;
-}
-function getTableDataChartsService(payload) {
- const { selectdbDS } = payload, rest = _object_without_properties(payload,
[
- "selectdbDS"
- ]);
- const response =
(0,_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__.getBackendSrv)().fetch({
- url: '/api/plugins/doris-app/resources/table_data_charts',
- method: 'POST',
- data: _object_spread_props(_object_spread({}, rest), {
- ds: selectdbDS.uid
- }),
- credentials: 'include'
- });
- return response;
-}
-function getTopDataService(payload) {
- const { selectdbDS } = payload, rest = _object_without_properties(payload,
[
- "selectdbDS"
- ]);
- const response =
(0,_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__.getBackendSrv)().fetch({
- url: '/api/plugins/doris-app/resources/top_data',
- method: 'POST',
- data: _object_spread_props(_object_spread({}, rest), {
- ds: selectdbDS.uid
- }),
- credentials: 'include'
- });
- return response;
-}
-function getTableDataCountService(payload) {
- const { selectdbDS } = payload, rest = _object_without_properties(payload,
[
- "selectdbDS"
- ]);
- const response =
(0,_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__.getBackendSrv)().fetch({
- url: '/api/plugins/doris-app/resources/table_data_count',
- method: 'POST',
- data: _object_spread_props(_object_spread({}, rest), {
- ds: selectdbDS.uid
- }),
- credentials: 'include'
- });
- return response;
-}
-function getTableDataTraceService(payload) {
- const { selectdbDS } = payload, rest = _object_without_properties(payload,
[
- "selectdbDS"
- ]);
- const response =
(0,_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__.getBackendSrv)().fetch({
- url: '/api/plugins/doris-app/resources/table_data_trace',
- method: 'POST',
- data: _object_spread_props(_object_spread({}, rest), {
- ds: selectdbDS.uid
- }),
- credentials: 'include'
- });
- return response;
-}
-function getTracesService(payload) {
- const { selectdbDS } = payload, rest = _object_without_properties(payload,
[
- "selectdbDS"
- ]);
- const response =
(0,_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__.getBackendSrv)().fetch({
- url: '/api/plugins/doris-app/resources/traces',
- method: 'POST',
- data: _object_spread_props(_object_spread({}, rest), {
- ds: selectdbDS.uid
- }),
- credentials: 'include'
- });
- return response;
-}
-function getTracesServicesService(payload) {
- const { selectdbDS } = payload, rest = _object_without_properties(payload,
[
- "selectdbDS"
- ]);
- const response =
(0,_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__.getBackendSrv)().fetch({
- url: '/api/plugins/doris-app/resources/traces_services',
- method: 'POST',
- data: _object_spread_props(_object_spread({}, rest), {
- ds: selectdbDS.uid
- }),
- credentials: 'include'
- });
- return response;
-}
-function getTraceOperationsService(payload) {
- const { selectdbDS } = payload, rest = _object_without_properties(payload,
[
- "selectdbDS"
- ]);
- const response =
(0,_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__.getBackendSrv)().fetch({
- url: '/api/plugins/doris-app/resources/traces_operations',
- method: 'POST',
- data: _object_spread_props(_object_spread({}, rest), {
- ds: selectdbDS.uid
- }),
- credentials: 'include'
- });
- return response;
-}
-function getSurroundingDataService(payload) {
- const { selectdbDS } = payload, rest = _object_without_properties(payload,
[
- "selectdbDS"
- ]);
- const response =
(0,_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__.getBackendSrv)().fetch({
- url: '/api/plugins/doris-app/resources/surrounding_data',
- method: 'POST',
- data: _object_spread_props(_object_spread({}, rest), {
- ds: selectdbDS.uid
- }),
- credentials: 'include'
- });
- return response;
-}
-
-
/***/ }),
/***/ 7944:
@@ -1434,67 +1575,92 @@ var IntervalEnum = /*#__PURE__*/ function(IntervalEnum)
{
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ H1: () => (/* binding */ getFieldsService),
/* harmony export */ Hm: () => (/* binding */ getDatabases),
-/* harmony export */ oI: () => (/* binding */ getTables),
+/* harmony export */ Rw: () => (/* binding */ getTablesService),
/* harmony export */ s1: () => (/* binding */ getIndexesService)
/* harmony export */ });
/* harmony import */ var _grafana_runtime__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(8531);
/* harmony import */ var _grafana_runtime__WEBPACK_IMPORTED_MODULE_0___default
=
/*#__PURE__*/__webpack_require__.n(_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__);
-// import { lastValueFrom } from 'rxjs';
function getDatabases(selectdbDS) {
- const response =
(0,_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__.getBackendSrv)().fetch({
- url: '/api/plugins/doris-app/resources/database',
- method: 'GET',
- params: {
- ds: selectdbDS.uid
- },
- credentials: 'include'
+ const response$ =
(0,_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__.getBackendSrv)().fetch({
+ url: '/api/ds/query',
+ method: 'POST',
+ data: {
+ queries: [
+ {
+ refId: 'getDatabases',
+ datasource: {
+ type: 'mysql',
+ uid: selectdbDS.uid
+ },
+ rawSql: 'SHOW DATABASES',
+ format: 'table'
+ }
+ ]
+ }
});
- return response;
-// const res = await lastValueFrom(response);
-// return res;
+ return response$;
}
-function getTables({ selectdbDS, database }) {
- const response =
(0,_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__.getBackendSrv)().fetch({
- url: '/api/plugins/doris-app/resources/table',
- method: 'GET',
- params: {
- ds: selectdbDS.uid,
- database
- },
- credentials: 'include'
+function getTablesService({ selectdbDS, database }) {
+ return
(0,_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__.getBackendSrv)().fetch({
+ url: '/api/ds/query',
+ method: 'POST',
+ data: {
+ queries: [
+ {
+ refId: 'getTables',
+ datasource: {
+ type: 'mysql',
+ uid: selectdbDS.uid
+ },
+ rawSql: `SHOW TABLES FROM \`${database}\``,
+ format: 'table'
+ }
+ ]
+ }
});
- return response;
}
function getFieldsService({ selectdbDS, database, table }) {
- const response =
(0,_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__.getBackendSrv)().fetch({
- url: '/api/plugins/doris-app/resources/fields',
- method: 'GET',
- params: {
- ds: selectdbDS.uid,
- database,
- table
- },
- credentials: 'include'
+ return
(0,_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__.getBackendSrv)().fetch({
+ url: '/api/ds/query',
+ method: 'POST',
+ data: {
+ queries: [
+ {
+ refId: 'getFields',
+ datasource: {
+ type: 'mysql',
+ uid: selectdbDS.uid
+ },
+ rawSql: `SHOW COLUMNS FROM \`${database}\`.\`${table}\``,
+ format: 'table'
+ }
+ ]
+ }
});
- return response;
}
function getIndexesService({ selectdbDS, database, table }) {
- const response =
(0,_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__.getBackendSrv)().fetch({
- url: '/api/plugins/doris-app/resources/indexes',
- method: 'GET',
- params: {
- ds: selectdbDS.uid,
- database,
- table
- },
- credentials: 'include'
+ return
(0,_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__.getBackendSrv)().fetch({
+ url: '/api/ds/query',
+ method: 'POST',
+ data: {
+ queries: [
+ {
+ refId: 'getIndexes',
+ datasource: {
+ type: 'mysql',
+ uid: selectdbDS.uid
+ },
+ rawSql: `SHOW INDEXES FROM \`${database}\`.\`${table}\``,
+ format: 'table'
+ }
+ ]
+ }
});
- return response;
}
/***/ })
}]);
-//# sourceMappingURL=181.js.map?_cache=6d914ab9f7dffb39d3ea
\ No newline at end of file
+//# sourceMappingURL=181.js.map?_cache=199c7bc22e9b0ba4a085
\ No newline at end of file
diff --git a/src/grafana/plugins/doris-app/181.js.map
b/src/grafana/plugins/doris-app/181.js.map
index 9a93b2d..70c334f 100644
--- a/src/grafana/plugins/doris-app/181.js.map
+++ b/src/grafana/plugins/doris-app/181.js.map
@@ -1 +1 @@
-{"version":3,"file":"181.js?_cache=6d914ab9f7dffb39d3ea","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA6C;AACI;AACZ;AACS;AACL;AACoB;AAC0E;AAClF;AACJ;AAElC,SAASe,YAAYC,KAAgE;IAChG,MAAMC,eAAeb,6DAAYA,CAACS,0EAAqBA;IACvD,MAAMK,iBAAiBd,6DAAYA,CAACI,yEAAkBA;IACtD,MAAMW,kBAAkBf,6DAAYA,CAACK,0EAAmBA;IACxD,MAAM,CAACW,WAAWC,aAAa,GAAGlB,wDAAOA,CAACO,0EAAmBA;IAC7D,MAAMY,cAAclB,6DAAYA,CAACQ,sEAAeA;IAChD,MAAMW,aAAanB,6DAAYA,CAACO,6EAAsBA;IAEtD,MAAM,EAACa,IAAI,EAAEC,OAAO,EAAC,GAAGT;
[...]
\ No newline at end of file
+{"version":3,"file":"181.js?_cache=199c7bc22e9b0ba4a085","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA6C;AACI;AACQ;AACX;AACL;AACkB;AAC4E;AAClF;AACJ;AAElC,SAASgB,YAAYC,KAAgE;IAChG,MAAMC,eAAeb,6DAAYA,CAACS,0EAAqBA;IACvD,MAAMK,iBAAiBd,6DAAYA,CAACI,yEAAkBA;IACtD,MAAMW,kBAAkBf,6DAAYA,CAACK,0EAAmBA;IACxD,MAAM,CAACW,WAAWC,aAAa,GAAGlB,wDAAOA,CAACO,0EAAmBA;IAC7D,MAAMY,cAAclB,6DAAYA,CAACQ,sEAAeA;IAChD,MAAMW,aAAanB,6DAAYA,CAACO,6EAAsBA;IACtD,MAAM,CAACa,SAASC,WAAW,GAAGpB,qDAAc,CA
[...]
\ No newline at end of file
diff --git a/src/grafana/plugins/doris-app/892.js
b/src/grafana/plugins/doris-app/301.js
similarity index 92%
rename from src/grafana/plugins/doris-app/892.js
rename to src/grafana/plugins/doris-app/301.js
index b82338a..0f08d1d 100644
--- a/src/grafana/plugins/doris-app/892.js
+++ b/src/grafana/plugins/doris-app/301.js
@@ -1,38 +1,7 @@
"use strict";
-(self["webpackChunkdoris_app"] = self["webpackChunkdoris_app"] ||
[]).push([[892],{
+(self["webpackChunkdoris_app"] = self["webpackChunkdoris_app"] ||
[]).push([[301],{
-/***/ 5611:
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ b: () => (/* binding */ testIds)
-/* harmony export */ });
-const testIds = {
- appConfig: {
- apiKey: 'data-testid ac-api-key',
- apiUrl: 'data-testid ac-api-url',
- submit: 'data-testid ac-submit-form'
- },
- pageOne: {
- container: 'data-testid pg-one-container',
- navigateToFour: 'data-testid navigate-to-four'
- },
- pageTwo: {
- container: 'data-testid pg-two-container'
- },
- pageThree: {
- container: 'data-testid pg-three-container'
- },
- pageFour: {
- container: 'data-testid pg-four-container',
- navigateBack: 'data-testid navigate-back'
- }
-};
-
-
-/***/ }),
-
-/***/ 9892:
+/***/ 1301:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
// ESM COMPAT FLAG
@@ -211,26 +180,12 @@ function SearchType() {
// import { CodeEditor, CodeEditorSuggestionItem, ReactMonacoEditor } from
'@grafana/ui';
-function getWordPosLR(str, currentPos) {
- let posR = currentPos;
- let posL = currentPos;
- while(posR < str.length && str.charAt(posR) !== ' '){
- posR++;
- }
- while(posL >= 0 && str.charAt(posL) !== ' '){
- posL--;
- }
- return [
- posL,
- posR
- ];
-}
function SQLSearch({ style, onQuerying }) {
const searchType = (0,react/* useAtomValue */.md)(discover/*
searchTypeAtom */.WM);
- const setSearchFocus = (0,react/* useSetAtom */.Xr)(discover/*
searchFocusAtom */.MM);
- const [tableFields, setTableFields] = (0,react/* useAtom */.fp)(discover/*
tableFieldsAtom */.D_);
+ // const setSearchFocus = useSetAtom(searchFocusAtom);
+ // const [tableFields, setTableFields] = useAtom(tableFieldsAtom);
const [searchValue, setSearchValue] = (0,react/* useAtom */.fp)(discover/*
searchValueAtom */.P8);
- const currentTimeField = (0,react/* useAtomValue */.md)(discover/*
currentTimeFieldAtom */.CA);
+ // const currentTimeField = useAtomValue(currentTimeFieldAtom);
if (false) // removed by dead control flow
{}
// const [options, setOptions] = useState<Array<{ value: string; label:
string }>>([]);
@@ -256,6 +211,8 @@ var utils_data = __webpack_require__(6700);
var constants = __webpack_require__(2351);
// EXTERNAL MODULE: ./services/metaservice.ts
var metaservice = __webpack_require__(8161);
+// EXTERNAL MODULE: external "@grafana/data"
+var data_ = __webpack_require__(7781);
;// ./components/discover-header/index.tsx
'use client';
function _define_property(obj, key, value) {
@@ -323,24 +280,25 @@ function _object_spread_props(target, source) {
+
function DiscoverHeader(props) {
- const catalog = 'internal';
+ // const catalog = 'internal';
// const catalogs = useAtomValue(catalogAtom);
const setIndexes = (0,react/* useSetAtom */.Xr)(discover/* indexesAtom
*/.Eq);
- const setSearchType = (0,react/* useSetAtom */.Xr)(discover/*
searchTypeAtom */.WM);
+ // const setSearchType = useSetAtom(searchTypeAtom);
const [discoverCurrent, setDiscoverCurrent] = (0,react/* useAtom
*/.fp)(discover/* discoverCurrentAtom */.WN);
if (false) // removed by dead control flow
{}
- const [loc, setLoc] = (0,react/* useAtom */.fp)(discover/* locationAtom
*/.JT);
- const [currentCluster, setCurrentCluster] = (0,react/* useAtom
*/.fp)(discover/* currentClusterAtom */.bP);
+ const [_loc, setLoc] = (0,react/* useAtom */.fp)(discover/* locationAtom
*/.JT);
+ // const [currentCluster, setCurrentCluster] = useAtom(currentClusterAtom);
const setTableFields = (0,react/* useSetAtom */.Xr)(discover/*
tableFieldsAtom */.D_);
const [timeFields, setTimeFields] = (0,react/* useAtom */.fp)(discover/*
timeFieldsAtom */.Gg);
- const [currentDate, setCurrentDate] = (0,react/* useAtom */.fp)(discover/*
currentDateAtom */.Zb);
+ const [_currentDate, setCurrentDate] = (0,react/* useAtom
*/.fp)(discover/* currentDateAtom */.Zb);
const currentTimeField = (0,react/* useAtomValue */.md)(discover/*
currentTimeFieldAtom */.CA);
const [currentIndex, setCurrentIndex] = (0,react/* useAtom
*/.fp)(discover/* currentIndexAtom */.TY);
const searchFocus = (0,react/* useAtomValue */.md)(discover/*
searchFocusAtom */.MM);
// const { databaseList } = useDatabaseList();
- const [activeItem, setActiveItem] = (0,react/* useAtom */.fp)(discover/*
activeShortcutAtom */.m_);
+ const [activeItem, _setActiveItem] = (0,react/* useAtom */.fp)(discover/*
activeShortcutAtom */.m_);
// const [clusters, setClusters] = useState<any[]>([]);
// const database = loc.searchParams?.get('database');
// const table = loc.searchParams?.get('table');
@@ -352,7 +310,7 @@ function DiscoverHeader(props) {
const [currentTable, setCurrentTable] = (0,react/* useAtom
*/.fp)(discover/* currentTableAtom */.$w);
const [databases, setDatabases] = (0,react/* useAtom */.fp)(discover/*
databasesAtom */.SK);
const [tables, setTables] = (0,react/* useAtom */.fp)(discover/*
tablesAtom */.b9);
- const [datasources, setDataSource] = (0,react/* useAtom */.fp)(discover/*
datasourcesAtom */.ui);
+ const [_datasources, setDataSource] = (0,react/* useAtom */.fp)(discover/*
datasourcesAtom */.ui);
const setDisabledOptions = (0,react/* useSetAtom */.Xr)(discover/*
disabledOptionsAtom */.IH);
const searchType = (0,react/* useAtomValue */.md)(discover/*
searchTypeAtom */.WM);
const searchMode = searchType === 'Search';
@@ -377,38 +335,29 @@ function DiscoverHeader(props) {
]);
const theme = (0,ui_.useTheme2)();
(0,external_react_.useEffect)(()=>{
- if (selectdbDS) {
- const res = (0,metaservice/* getDatabases */.Hm)(selectdbDS);
- res.subscribe({
- next: ({ data, ok })=>{
- if (ok) {
- var _data_results__data, _data_results_;
- const value = data === null || data === void 0 ? void
0 : (_data_results_ = data.results[0]) === null || _data_results_ === void 0 ?
void 0 : (_data_results__data = _data_results_.data) === null ||
_data_results__data === void 0 ? void 0 : _data_results__data.values[0];
- if (value) {
- const options = value.map((item)=>{
- return {
- label: item,
- value: item
- };
- });
- setDatabases(options);
- }
- }
- },
- error: (err)=>{
- console.log('查询错误', err);
- }
- });
+ if (!selectdbDS) {
+ return;
}
- // eslint-disable-next-line react-hooks/exhaustive-deps
+ const subscription = (0,metaservice/* getDatabases
*/.Hm)(selectdbDS).subscribe({
+ next: (resp)=>{
+ const { data, ok } = resp;
+ if (ok) {
+ const frame =
(0,data_.toDataFrame)(data.results.getDatabases.frames[0]);
+ const values = Array.from(frame.fields[0].values);
+ const options = values.map((item)=>({
+ label: item,
+ value: item
+ }));
+ setDatabases(options);
+ }
+ },
+ error: (err)=>console.log('查询错误', err)
+ });
+ return ()=>subscription.unsubscribe();
}, [
- selectdbDS
+ selectdbDS,
+ setDatabases
]);
- // useEffect(() => {
- // if (startTime && endTime) {
- // setCurrentDate([dayjs(startTime), dayjs(endTime)]);
- // }
- // }, [startTime, endTime, setCurrentDate]);
function getFields(selectedTable) {
(0,metaservice/* getFieldsService */.H1)({
selectdbDS,
@@ -417,10 +366,11 @@ function DiscoverHeader(props) {
}).subscribe({
next: ({ data, ok })=>{
if (ok) {
- var _data_results__data, _data_results_,
_data_results__data1, _data_results_1, _data_results__data2, _data_results_2;
- const value = data === null || data === void 0 ? void 0 :
(_data_results_ = data.results[0]) === null || _data_results_ === void 0 ? void
0 : (_data_results__data = _data_results_.data) === null || _data_results__data
=== void 0 ? void 0 : _data_results__data.values[0];
- const fieldTypes = data === null || data === void 0 ? void
0 : (_data_results_1 = data.results[0]) === null || _data_results_1 === void 0
? void 0 : (_data_results__data1 = _data_results_1.data) === null ||
_data_results__data1 === void 0 ? void 0 : _data_results__data1.values[1];
- const tableFields = data === null || data === void 0 ?
void 0 : (_data_results_2 = data.results[0]) === null || _data_results_2 ===
void 0 ? void 0 : (_data_results__data2 = _data_results_2.data) === null ||
_data_results__data2 === void 0 ? void 0 :
_data_results__data2.values[0].map((item, index)=>{
+ const frame =
(0,data_.toDataFrame)(data.results.getFields.frames[0]);
+ console.log('frame', frame);
+ const values = Array.from(frame.fields[0].values);
+ const fieldTypes = Array.from(frame.fields[1].values);
+ const tableFields = values.map((item, index)=>{
return {
label: item,
Field: item,
@@ -429,9 +379,9 @@ function DiscoverHeader(props) {
};
});
setTableFields(tableFields);
- if (value) {
+ if (values) {
var _options_;
- const options = value.filter((field, index)=>{
+ const options = values.filter((field, index)=>{
return (0,utils_data/* isValidTimeFieldType
*/.Q3)(fieldTypes[index].toUpperCase());
}).map((item)=>{
return {
@@ -459,16 +409,16 @@ function DiscoverHeader(props) {
}).subscribe({
next: ({ data, ok })=>{
if (ok) {
- var _data_results__data, _data_results_,
_data_results__data1, _data_results_1, _data_results__data2, _data_results_2;
- const value = data === null || data === void 0 ? void 0 :
(_data_results_ = data.results[0]) === null || _data_results_ === void 0 ? void
0 : (_data_results__data = _data_results_.data) === null || _data_results__data
=== void 0 ? void 0 : _data_results__data.values[2];
- const columnNames = data === null || data === void 0 ?
void 0 : (_data_results_1 = data.results[0]) === null || _data_results_1 ===
void 0 ? void 0 : (_data_results__data1 = _data_results_1.data) === null ||
_data_results__data1 === void 0 ? void 0 : _data_results__data1.values[4];
- const indexesTypes = data === null || data === void 0 ?
void 0 : (_data_results_2 = data.results[0]) === null || _data_results_2 ===
void 0 ? void 0 : (_data_results__data2 = _data_results_2.data) === null ||
_data_results__data2 === void 0 ? void 0 : _data_results__data2.values[10];
- if (!value || value.length === 0) {
+ const frame =
(0,data_.toDataFrame)(data.results.getIndexes.frames[0]);
+ const values = Array.from(frame.fields[2].values);
+ const columnNames = Array.from(frame.fields[4].values);
+ const indexesTypes = Array.from(frame.fields[10].values);
+ if (!values || values.length === 0) {
setIndexes([]);
setCurrentIndex([]);
return;
}
- const tableIndexes = value === null || value === void 0 ?
void 0 : value.map((item, index)=>{
+ const tableIndexes = values === null || values === void 0
? void 0 : values.map((item, index)=>{
return {
label: item,
value: item,
@@ -523,28 +473,23 @@ function DiscoverHeader(props) {
setDiscoverCurrent(_object_spread_props(_object_spread({},
discoverCurrent), {
database: selectedDatabase.value
}));
- (0,metaservice/* getTables */.oI)({
+ (0,metaservice/* getTablesService */.Rw)({
selectdbDS,
database: selectedDatabase.value
}).subscribe({
- next: ({ data, ok })=>{
+ next: (resp)=>{
+ const { data, ok } = resp;
if (ok) {
- var _data_results__data, _data_results_;
- const value = data === null || data === void 0 ? void
0 : (_data_results_ = data.results[0]) === null || _data_results_ === void 0 ?
void 0 : (_data_results__data = _data_results_.data) === null ||
_data_results__data === void 0 ? void 0 : _data_results__data.values[0];
- if (value) {
- const options = value.map((item)=>{
- return {
- label: item,
- value: item
- };
- });
- setTables(options);
- }
+ const frame =
(0,data_.toDataFrame)(data.results.getTables.frames[0]);
+ const values = Array.from(frame.fields[0].values);
+ const options = values.map((item)=>({
+ label: item,
+ value: item
+ }));
+ setTables(options);
}
},
- error: (err)=>{
- console.log('查询错误', err);
- }
+ error: (err)=>console.log('查询错误', err)
});
}
})), /*#__PURE__*/ external_react_default().createElement(ui_.Field, {
@@ -584,7 +529,7 @@ function DiscoverHeader(props) {
props === null || props === void 0 ? void 0 : props.onQuerying();
}
}))), !searchFocus && /*#__PURE__*/
external_react_default().createElement((external_react_default()).Fragment,
null, /*#__PURE__*/ external_react_default().createElement(ui_.Field, {
- label: "时间字段"
+ label: "Time Field"
}, /*#__PURE__*/ external_react_default().createElement(ui_.Select, {
value: currentTimeField,
options: timeFields,
@@ -600,9 +545,9 @@ function DiscoverHeader(props) {
});
});
},
- placeholder: '时间字段'
+ placeholder: 'Time Field'
})), /*#__PURE__*/ external_react_default().createElement(ui_.Field, {
- label: "时间范围",
+ label: "Time Range",
style: {
marginLeft: 8,
marginRight: 8
@@ -647,7 +592,7 @@ function DiscoverHeader(props) {
},
variant: "primary",
className: "h-8",
- icon: (props === null || props === void 0 ? void 0 : props.loading) ?
"fa fa-spinner" : 'sync',
+ icon: (props === null || props === void 0 ? void 0 : props.loading) ?
'fa fa-spinner' : 'sync',
disabled: !currentTimeField
}, `Query`)));
}
@@ -810,7 +755,7 @@ function FilterContent({ onHide, dataFilterValue }) {
showLabel: !!(dataFilterValue === null || dataFilterValue === void
0 ? void 0 : dataFilterValue.label)
}
});
- const field = watch('field');
+ // const field: any = watch('field');
const operator = watch('operator');
const showLabel = watch('showLabel');
const getValue = (value)=>isNaN(+value) ? value : +value;
@@ -1057,7 +1002,7 @@ function DiscoverFilter() {
const [dataFilterOpen, setDataFilterOpen] =
(0,external_react_.useState)({});
const discoverFilterRef = (0,external_react_.useRef)(null);
const { t } = (0,es/* useTranslation */.Bd)();
- const [loc, setLoc] = (0,react/* useAtom */.fp)(discover/* locationAtom
*/.JT);
+ const [_loc, setLoc] = (0,react/* useAtom */.fp)(discover/* locationAtom
*/.JT);
const theme = (0,ui_.useTheme2)();
return(// className="mt-px rounded-b-sm bg-n8 p-4 pb-6"
/*#__PURE__*/
external_react_default().createElement(DiscoverFilterWrapper, {
@@ -1627,9 +1572,9 @@ function filter_content_FilterContent() {
function DiscoverSidebar() {
const [selectedFields, setSelectedFields] = (0,react/* useAtom
*/.fp)(discover/* selectedFieldsAtom */.Wg);
const tableFields = (0,react/* useAtomValue */.md)(discover/*
tableFieldsAtom */.D_);
- const [searchable, setSearchable] = (0,react/* useAtom */.fp)(discover/*
searchableAtom */.Mb);
- const [aggregatable, setAggregatable] = (0,react/* useAtom
*/.fp)(discover/* aggregatableAtom */.UR);
- const [fieldType, setFieldType] = (0,react/* useAtom */.fp)(discover/*
fieldTypeAtom */.m5);
+ const [searchable, _setSearchable] = (0,react/* useAtom */.fp)(discover/*
searchableAtom */.Mb);
+ const [aggregatable, _setAggregatable] = (0,react/* useAtom
*/.fp)(discover/* aggregatableAtom */.UR);
+ const [fieldType, _setFieldType] = (0,react/* useAtom */.fp)(discover/*
fieldTypeAtom */.m5);
const [searchValue, setSearchValue] = (0,external_react_.useState)('');
const indexes = (0,react/* useAtomValue */.md)(discover/* indexesAtom
*/.Eq);
const theme = (0,ui_.useTheme2)();
@@ -1643,6 +1588,7 @@ function DiscoverSidebar() {
if (aggregatable === utils_data/* AggregatableEnum */.SY.NO) {
return (0,utils_data/* getFieldType */.Re)(field.Type) !==
'NUMBER';
}
+ return false;
}).filter((field)=>{
if (searchable === utils_data/* SearchableEnum */.Yp.ANY) {
return true;
@@ -1653,6 +1599,7 @@ function DiscoverSidebar() {
if (searchable === utils_data/* SearchableEnum */.Yp.NO) {
return !indexes.some((index)=>field.Field === index.Field);
}
+ return false;
}).filter((field)=>{
if (fieldType === utils_data/* FieldTypeEnum */.wI.ANY) {
return true;
@@ -1856,9 +1803,9 @@ function DiscoverHistogram() {
if (false) // removed by dead control flow
{}
const tableTotalCount = (0,react/* useAtomValue */.md)(discover/*
tableTotalCountAtom */.HC);
- const [timeRange, setTimeRange] = (0,react/* useAtom */.fp)(discover/*
timeRangeAtom */.U9);
- const [pageSize, setPageSize] = (0,react/* useAtom */.fp)(discover/*
pageSizeAtom */.Ol);
- const [page, setPage] = (0,react/* useAtom */.fp)(discover/* pageAtom
*/.fs);
+ const [_timeRange, setTimeRange] = (0,react/* useAtom */.fp)(discover/*
timeRangeAtom */.U9);
+ const [_pageSize, setPageSize] = (0,react/* useAtom */.fp)(discover/*
pageSizeAtom */.Ol);
+ const setPage = (0,react/* useSetAtom */.Xr)(discover/* pageAtom */.fs);
(0,external_react_.useEffect)(()=>{
const v = (0,constants/* getAutoInterval
*/.Vy)(currentDate).interval_value;
setInterval_value(v);
@@ -1883,7 +1830,7 @@ function DiscoverHistogram() {
}
const options = {
title: {
- subtext: `${`时间间隔`}: ${timeInterval}`,
+ subtext: `${`Time Interval`}: ${timeInterval}`,
left: 'right',
top: 12
},
@@ -2029,13 +1976,14 @@ function DiscoverHistogram() {
}
});
chart.getEchartsInstance().on('brushEnd', handler);
+ return ()=>{
+ if (chart.ele) {
+ chart.getEchartsInstance().off('brushEnd', handler);
+ }
+ };
}
- return ()=>{
- if (chart.ele) {
- chart.getEchartsInstance().off('brushEnd', handler);
- }
- };
}
+ return undefined;
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [
tableDataCharts
@@ -2992,8 +2940,270 @@ function SurroundingDiscoverFilter(props) {
// EXTERNAL MODULE: ../node_modules/lodash-es/sortBy.js + 7 modules
var sortBy = __webpack_require__(5092);
-// EXTERNAL MODULE: ./services/discover.ts
-var services_discover = __webpack_require__(7626);
+;// ./services/sql.ts
+function getQueryTableResultSQL(params) {
+ const indexesStatement = params.indexesStatement;
+ let statement = `SELECT * FROM \`${params.database}\`.\`${params.table}\`
WHERE`;
+ if (indexesStatement && params.search_type === 'Search') {
+ statement += ` (${indexesStatement}) AND`;
+ }
+ // timeField 加上反引号
+ statement += ` (\`${params.timeField}\` BETWEEN '${params.startDate}' AND
'${params.endDate}') `;
+ statement = params.data_filters.reduce((prev, curr)=>{
+ return addSqlFilter(prev, curr);
+ }, statement);
+ if (params.search_type === 'SQL' && params.search_value) {
+ statement = statement + ` AND ${params.search_value}`;
+ }
+ // ORDER BY 的 timeField 也加反引号
+ statement = statement + ` ORDER BY \`${params.timeField}\` DESC LIMIT
${+params.page_size} OFFSET ${(+(params === null || params === void 0 ? void 0
: params.page) - 1) * params.page_size} `;
+ return statement;
+}
+function getQueryTableChartsSQL(params) {
+ const indexes = params.indexes;
+ console.log(params);
+ let statement = `SELECT
${params.interval}_FLOOR(table_per_time.T,${params.interval_value}) as
TT,sum(table_per_time.cnt) FROM (SELECT
${params.interval}_FLOOR(${params.timeField}) as T,count(*) as cnt FROM
\`${params.database}\`.\`${params.table}\` WHERE`;
+ if (indexes && params.search_type === 'Search') {
+ statement += ` (${indexes}) AND`;
+ }
+ statement += ` (\`${params.timeField}\` between '${params.startDate}' AND
'${params.endDate}') `;
+ if (params.data_filters.length > 0) {
+ statement = params.data_filters.reduce((prev, curr)=>{
+ return addSqlFilter(prev, curr);
+ }, statement);
+ }
+ if (params.search_type === 'SQL' && params.search_value) {
+ statement = statement + ` ` + `AND ${params.search_value}`;
+ }
+ statement = statement + ` ` + `GROUP BY T ORDER BY T) as table_per_time
GROUP BY TT ORDER BY TT`;
+ return statement;
+}
+function getQueryTableResultCountSQL(params) {
+ const indexes = params.indexes;
+ let statement = `SELECT SUM(table_per_time.cnt) AS total_count
+ FROM (
+ SELECT ${params.interval}_FLOOR(${params.timeField}) as T, COUNT(*)
as cnt
+ FROM \`${params.database}\`.\`${params.table}\`
+ WHERE`;
+ if (indexes && params.search_type === 'Search') {
+ statement += ` (${indexes}) AND`;
+ }
+ statement += ` (\`${params.timeField}\` between '${params.startDate}' AND
'${params.endDate}')`;
+ if (params.data_filters.length > 0) {
+ statement = params.data_filters.reduce((prev, curr)=>{
+ return addSqlFilter(prev, curr);
+ }, statement);
+ }
+ if (params.search_type === 'SQL' && params.search_value) {
+ statement = statement + ` ` + `AND ${params.search_value}`;
+ }
+ statement = statement + ` ` + `GROUP BY T) AS table_per_time;`;
+ return statement;
+}
+function getSurroundingSQL(params) {
+ let statement = `SELECT * FROM \`${params.database}\`.\`${params.table}\`
WHERE`;
+ statement += ` (${params.timeField} ${params.operator} '${params.time}')`;
+ statement = params.data_filters.reduce((prev, curr)=>{
+ return addSqlFilter(prev, curr);
+ }, statement);
+ const orderSymbol = params.operator === '<' ? 'DESC' : 'ASC';
+ statement = statement + ` ` + `ORDER BY \`${params.timeField}\`
${orderSymbol} LIMIT ${+params.pageSize}`;
+ return statement;
+}
+function getFilterSQL({ fieldName, operator, value }) {
+ const valueString = value.map((e)=>{
+ if (typeof e === 'string') {
+ return `'${e}'`;
+ } else {
+ return e;
+ }
+ });
+ const transformedFieldName = transformFieldPath(fieldName);
+ if (operator === '=' || operator === '!=' || operator === 'like' ||
operator === 'not like' || operator === 'match_all' || operator === 'match_any'
|| operator === 'match_phrase') {
+ return `${transformedFieldName} ${operator} ${valueString[0]}`;
+ }
+ if (operator === 'is null' || operator === 'is not null') {
+ return `${transformedFieldName} ${operator}`;
+ }
+ if (operator === 'between' || operator === 'not between') {
+ return `${transformedFieldName} ${operator} ${valueString[0]} AND
${valueString[1]}`;
+ }
+ if (operator === 'in' || operator === 'not in') {
+ return `${transformedFieldName} ${operator} (${valueString})`;
+ }
+ return '';
+}
+function addSqlFilter(sql, dataFilterValue) {
+ let result = sql;
+ if (!sql.toUpperCase().includes('WHERE')) {
+ result += ' WHERE';
+ } else {
+ result += ' AND';
+ }
+ result += ` (${getFilterSQL(dataFilterValue)})`;
+ return result;
+}
+function transformFieldPath(fieldPath) {
+ const parts = fieldPath.split('.');
+ return parts[0] + parts.slice(1).map((part)=>`['${part}']`).join('');
+}
+
+;// ./services/discover.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;
+}
+
+
+function getTableDataService(payload) {
+ const { selectdbDS } = payload, rest = _object_without_properties(payload,
[
+ "selectdbDS"
+ ]);
+ const QueryTableResultSQL = getQueryTableResultSQL(rest);
+ const response = (0,runtime_.getBackendSrv)().fetch({
+ url: '/api/ds/query',
+ method: 'POST',
+ data: {
+ queries: [
+ {
+ refId: 'getTableData',
+ datasource: {
+ type: 'mysql',
+ uid: selectdbDS.uid
+ },
+ rawSql: QueryTableResultSQL,
+ format: 'table'
+ }
+ ]
+ },
+ credentials: 'include'
+ });
+ return response;
+}
+function getTableDataChartsService(payload) {
+ const { selectdbDS } = payload, rest = _object_without_properties(payload,
[
+ "selectdbDS"
+ ]);
+ const QueryTableChartsSQL = getQueryTableChartsSQL(rest);
+ const response = (0,runtime_.getBackendSrv)().fetch({
+ url: '/api/ds/query',
+ method: 'POST',
+ data: {
+ queries: [
+ {
+ refId: 'getTableDataCharts',
+ datasource: {
+ type: 'mysql',
+ uid: selectdbDS.uid
+ },
+ rawSql: QueryTableChartsSQL,
+ format: 'table'
+ }
+ ]
+ },
+ credentials: 'include'
+ });
+ return response;
+}
+function getTopDataService(payload) {
+ const { selectdbDS } = payload, rest = _object_without_properties(payload,
[
+ "selectdbDS"
+ ]);
+ const QueryTableResultSQL = getQueryTableResultSQL(rest);
+ const response = (0,runtime_.getBackendSrv)().fetch({
+ url: '/api/ds/query',
+ method: 'POST',
+ data: {
+ queries: [
+ {
+ refId: 'getTableTopData',
+ datasource: {
+ type: 'mysql',
+ uid: selectdbDS.uid
+ },
+ rawSql: QueryTableResultSQL,
+ format: 'table'
+ }
+ ]
+ },
+ credentials: 'include'
+ });
+ return response;
+}
+function getTableDataCountService(payload) {
+ const { selectdbDS } = payload, rest = _object_without_properties(payload,
[
+ "selectdbDS"
+ ]);
+ const QueryTableResultCountSQL = getQueryTableResultCountSQL(rest);
+ const response = (0,runtime_.getBackendSrv)().fetch({
+ url: '/api/ds/query',
+ method: 'POST',
+ data: {
+ queries: [
+ {
+ refId: 'getTableCountData',
+ datasource: {
+ type: 'mysql',
+ uid: selectdbDS.uid
+ },
+ rawSql: QueryTableResultCountSQL,
+ format: 'table'
+ }
+ ]
+ },
+ credentials: 'include'
+ });
+ return response;
+}
+function getSurroundingDataService(payload) {
+ const { selectdbDS } = payload, rest = _object_without_properties(payload,
[
+ "selectdbDS"
+ ]);
+ const surroundingSQL = getSurroundingSQL(rest);
+ const response = (0,runtime_.getBackendSrv)().fetch({
+ url: '/api/ds/query',
+ method: 'POST',
+ data: {
+ queries: [
+ {
+ refId: 'getSurroundingData',
+ datasource: {
+ type: 'mysql',
+ uid: selectdbDS.uid
+ },
+ rawSql: surroundingSQL,
+ format: 'table'
+ }
+ ]
+ },
+ credentials: 'include'
+ });
+ return response;
+}
+
// EXTERNAL MODULE: external "rxjs"
var external_rxjs_ = __webpack_require__(1269);
;// ./utils/utils.ts
@@ -3309,12 +3519,12 @@ function generateTableDataUID(items) {
function SurroundingContentTableActions({ fieldName, fieldValue }) {
console.log(fieldName, fieldValue);
- const [selectedSurroundingFields, setSelectedSurroundingFields] =
(0,react/* useAtom */.fp)(discover/* surroundingSelectedFieldsAtom */.gj);
+ // const [selectedSurroundingFields, setSelectedSurroundingFields] =
useAtom(surroundingSelectedFieldsAtom);
const [surroundingDataFilter, setSurroundingDataFilter] = (0,react/*
useAtom */.fp)(discover/* surroundingDataFilterAtom */.wc);
const tableFields = (0,react/* useAtomValue */.md)(discover/*
tableFieldsAtom */.D_);
const fieldType = tableFields.find((field)=>field.Field ===
fieldName).Type;
- const hasField = selectedSurroundingFields.some((item)=>item.Field ===
fieldName);
- const filterValue = typeof fieldValue === 'object' ?
JSON.stringify(fieldValue) : fieldValue;
+ // const hasField = selectedSurroundingFields.some((item: any) =>
item.Field === fieldName);
+ // const filterValue = typeof fieldValue === 'object' ?
JSON.stringify(fieldValue) : fieldValue;
return /*#__PURE__*/
external_react_default().createElement((external_react_default()).Fragment,
null, /*#__PURE__*/ external_react_default().createElement("div", {
className: "icons",
style: {
@@ -3465,6 +3675,7 @@ function surrounding_logs_object_spread_props(target,
source) {
+// import dayjs from 'dayjs';
@@ -3518,14 +3729,14 @@ function SurroundingLogs() {
time
});
console.log(params.time);
- return (0,external_rxjs_.lastValueFrom)((0,services_discover/*
getSurroundingDataService */.oq)(surrounding_logs_object_spread({
+ return
(0,external_rxjs_.lastValueFrom)(getSurroundingDataService(surrounding_logs_object_spread({
selectdbDS
}, params)));
}, {
manual: true,
onSuccess: (res,
params)=>surrounding_logs_async_to_generator(function*() {
if (res.ok) {
- const rowsData = (0,utils_data/* convertColumnToRow
*/.HL)(res.data);
+ const rowsData = (0,utils_data/* convertColumnToRow
*/.HL)(res.data.results.getSurroundingData.frames[0]);
const result = generateSurroundingResult(rowsData,
currentTimeField);
let data = [
...surroundingTableData
@@ -3564,14 +3775,14 @@ function SurroundingLogs() {
operator: '<',
time
});
- return (0,external_rxjs_.lastValueFrom)((0,services_discover/*
getSurroundingDataService */.oq)(surrounding_logs_object_spread({
+ return
(0,external_rxjs_.lastValueFrom)(getSurroundingDataService(surrounding_logs_object_spread({
selectdbDS
}, params)));
}, {
manual: true,
onSuccess: (res,
params)=>surrounding_logs_async_to_generator(function*() {
if (res.ok) {
- const rowsData = (0,utils_data/* convertColumnToRow
*/.HL)(res.data);
+ const rowsData = (0,utils_data/* convertColumnToRow
*/.HL)(res.data.results.getSurroundingData.frames[0]);
const result = generateSurroundingResult(rowsData,
currentTimeField);
let data = [
...surroundingTableData
@@ -3603,10 +3814,10 @@ function SurroundingLogs() {
operator: '>'
});
return Promise.all([
- (0,external_rxjs_.lastValueFrom)((0,services_discover/*
getSurroundingDataService */.oq)(surrounding_logs_object_spread({
+
(0,external_rxjs_.lastValueFrom)(getSurroundingDataService(surrounding_logs_object_spread({
selectdbDS
}, prevTimeParams))),
- (0,external_rxjs_.lastValueFrom)((0,services_discover/*
getSurroundingDataService */.oq)(surrounding_logs_object_spread({
+
(0,external_rxjs_.lastValueFrom)(getSurroundingDataService(surrounding_logs_object_spread({
selectdbDS
}, afterTimeParams)))
]);
@@ -3616,8 +3827,8 @@ function SurroundingLogs() {
],
onSuccess: (res)=>surrounding_logs_async_to_generator(function*() {
if (res[0].ok && res[1].ok) {
- const rowsData1 = (0,utils_data/* convertColumnToRow
*/.HL)(res[0].data);
- const rowsData2 = (0,utils_data/* convertColumnToRow
*/.HL)(res[1].data);
+ const rowsData1 = (0,utils_data/* convertColumnToRow
*/.HL)(res[0].data.results.getSurroundingData.frames[0]);
+ const rowsData2 = (0,utils_data/* convertColumnToRow
*/.HL)(res[1].data.results.getSurroundingData.frames[0]);
const result1 = generateSurroundingResult(rowsData1,
currentTimeField);
const result2 = generateSurroundingResult(rowsData2,
currentTimeField);
const selectedResult = generateSurroundingResult([
@@ -4063,22 +4274,22 @@ function DiscoverContent({ fetchNextPage, getTraceData
}) {
const theme = (0,ui_.useTheme2)();
const [fields, setFields] = (0,external_react_.useState)([]);
const tableTotalCount = (0,react/* useAtomValue */.md)(discover/*
tableTotalCountAtom */.HC);
- const [tableData, setTableData] = (0,react/* useAtom */.fp)(discover/*
tableDataAtom */.q3);
+ const [tableData, _setTableData] = (0,react/* useAtom */.fp)(discover/*
tableDataAtom */.q3);
const [selectedFields, setSelectedFields] = (0,react/* useAtom
*/.fp)(discover/* selectedFieldsAtom */.Wg);
const hasSelectedFields = selectedFields.length > 0;
const currentTimeField = (0,react/* useAtomValue */.md)(discover/*
currentTimeFieldAtom */.CA);
- const [surroundingOpen, setSurroundingOpen] =
(0,external_react_.useState)(false);
+ // const [surroundingOpen, setSurroundingOpen] = useState(false);
const [selectedRow, setSelectedRow] = (0,react/* useAtom */.fp)(discover/*
selectedRowAtom */.nn);
const setSurroundingTableData = (0,react/* useSetAtom */.Xr)(discover/*
surroundingTableDataAtom */.mj);
const setSurroundingDataFilter = (0,react/* useSetAtom */.Xr)(discover/*
surroundingDataFilterAtom */.wc);
const setSelectedSurroundingFields = (0,react/* useSetAtom
*/.Xr)(discover/* surroundingSelectedFieldsAtom */.gj);
const setBeforeCount = (0,react/* useSetAtom */.Xr)(discover/*
beforeCountAtom */.cn);
const setAfterCount = (0,react/* useSetAtom */.Xr)(discover/*
afterCountAtom */.f5);
- const [pageSize, setPageSize] = (0,react/* useAtom */.fp)(discover/*
pageSizeAtom */.Ol);
+ const [pageSize, _setPageSize] = (0,react/* useAtom */.fp)(discover/*
pageSizeAtom */.Ol);
const [page, setPage] = (0,react/* useAtom */.fp)(discover/* pageAtom
*/.fs);
const [drawerOpen, setDrawerOpen] = (0,external_react_.useState)(false);
const [surroundingLogsOpen, setSurroundingLogsOpen] =
(0,external_react_.useState)(false);
- const [fieldKeyBg, setFieldKeyBg] =
(0,external_react_.useState)('#3f3f4f');
+ const [_fieldKeyBg, setFieldKeyBg] =
(0,external_react_.useState)('#3f3f4f');
(0,external_react_.useEffect)(()=>{
if (theme.isDark) {
setFieldKeyBg('#3f3f4f');
@@ -4449,6 +4660,8 @@ function DiscoverContent({ fetchNextPage, getTraceData })
{
}, /*#__PURE__*/ external_react_default().createElement(SurroundingLogs,
null)));
}
+// EXTERNAL MODULE: ./services/traces.ts + 1 modules
+var traces = __webpack_require__(3764);
;// ./pages/PageDiscover.tsx
function PageDiscover_asyncGeneratorStep(gen, resolve, reject, _next, _throw,
key, arg) {
try {
@@ -4547,6 +4760,8 @@ function PageDiscover_object_spread_props(target, source)
{
+
+
function PageDiscover() {
const [page, setPage] = (0,react/* useAtom */.fp)(discover/* pageAtom
*/.fs);
const pageSize = (0,react/* useAtomValue */.md)(discover/* pageSizeAtom
*/.Ol);
@@ -4580,7 +4795,7 @@ function PageDiscover() {
getTableDataCount();
} else {
setTableDataCharts([]);
- setTableTotalCount(NaN);
+ setTableTotalCount(0);
setTableData([]);
setTopData([]);
}
@@ -4623,7 +4838,7 @@ function PageDiscover() {
if (searchValue) {
payload.search_value = searchType === 'Search' ? (0,utils_data/*
encodeBase64 */.WG)(searchValue) : searchValue;
}
- (0,services_discover/* getTableDataService
*/.EF)(PageDiscover_object_spread({
+ getTableDataService(PageDiscover_object_spread({
selectdbDS
}, payload)).subscribe({
next: ({ data, ok })=>PageDiscover_async_to_generator(function*() {
@@ -4631,7 +4846,7 @@ function PageDiscover() {
getTableData: false
}));
if (ok) {
- const rowsData = (0,utils_data/* convertColumnToRow
*/.HL)(data);
+ const rowsData = (0,utils_data/* convertColumnToRow
*/.HL)(data.results.getTableData.frames[0]);
const resData = (0,utils_data/*
generateHighlightedResults */.F9)({
search_value: searchValue,
indexes: currentIndexes || []
@@ -4667,6 +4882,7 @@ function PageDiscover() {
startDate: (_currentDate_ = currentDate[0]) === null ||
_currentDate_ === void 0 ? void 0 : _currentDate_.format(constants/*
FORMAT_DATE */.fU),
endDate: currentDate[1].format(constants/* FORMAT_DATE */.fU),
cluster: '',
+ data_filters: [],
// cluster: shouldUseClusterParam() ? currentCluster : '',
sort: 'DESC',
interval: timeInterval,
@@ -4680,7 +4896,7 @@ function PageDiscover() {
if (searchValue) {
payload.search_value = searchType === 'Search' ? (0,utils_data/*
encodeBase64 */.WG)(searchValue) : searchValue;
}
- (0,services_discover/* getTableDataChartsService
*/.Rp)(PageDiscover_object_spread({
+ getTableDataChartsService(PageDiscover_object_spread({
selectdbDS
}, payload)).subscribe({
next: ({ data, ok })=>{
@@ -4688,17 +4904,18 @@ function PageDiscover() {
getTableDataCharts: false
}));
if (ok) {
- var _data_results__data, _data_results_,
_data_results__data1, _data_results_1;
- const value = data === null || data === void 0 ? void 0 :
(_data_results_ = data.results[0]) === null || _data_results_ === void 0 ? void
0 : (_data_results__data = _data_results_.data) === null || _data_results__data
=== void 0 ? void 0 : _data_results__data.values[0];
- if (!value || value.length === 0) {
+ var _frame_fields_, _frame_fields_1;
+ const frame =
(0,data_.toDataFrame)(data.results.getTableDataCharts.frames[0]);
+ const times = Array.from((frame === null || frame === void
0 ? void 0 : (_frame_fields_ = frame.fields[0]) === null || _frame_fields_ ===
void 0 ? void 0 : _frame_fields_.values) || []);
+ const values = Array.from((frame === null || frame ===
void 0 ? void 0 : (_frame_fields_1 = frame.fields[1]) === null ||
_frame_fields_1 === void 0 ? void 0 : _frame_fields_1.values) || []);
+ if (!times || times.length === 0 || !values ||
values.length === 0) {
setTableDataCharts([]);
return;
}
- const tableDataCharts = data === null || data === void 0 ?
void 0 : (_data_results_1 = data.results[0]) === null || _data_results_1 ===
void 0 ? void 0 : (_data_results__data1 = _data_results_1.data) === null ||
_data_results__data1 === void 0 ? void 0 :
_data_results__data1.values[0].map((item, index)=>{
- var _data_results__data, _data_results_;
+ const tableDataCharts = times.map((item, index)=>{
return {
TT: item,
- 'sum(cnt)': data === null || data === void 0 ?
void 0 : (_data_results_ = data.results[0]) === null || _data_results_ === void
0 ? void 0 : (_data_results__data = _data_results_.data) === null ||
_data_results__data === void 0 ? void 0 : _data_results__data.values[1][index]
+ 'sum(cnt)': values[index]
};
});
const chartsData = (0,utils_data/* getChartsData
*/.Wd)(tableDataCharts, currentDate);
@@ -4744,13 +4961,12 @@ function PageDiscover() {
if (searchValue) {
payload.search_value = searchType === 'Search' ? (0,utils_data/*
encodeBase64 */.WG)(searchValue) : searchValue;
}
- (0,services_discover/* getTopDataService
*/.N)(PageDiscover_object_spread({
+ getTopDataService(PageDiscover_object_spread({
selectdbDS
}, payload)).subscribe({
next: ({ data, ok })=>{
if (ok) {
- const rowsData = (0,utils_data/*
convertColumnToRowViaFieldsType */.ml)(data, tableFields);
- console.log('rowsData', rowsData);
+ const rowsData = (0,utils_data/*
convertColumnToRowViaFieldsType */.ml)(data.results.getTableTopData.frames[0],
tableFields);
setTopData(rowsData);
}
},
@@ -4779,6 +4995,7 @@ function PageDiscover() {
// cluster: shouldUseClusterParam() ? currentCluster : '',
sort: 'DESC',
interval: timeInterval,
+ data_filters: [],
interval_value: timeIntervalValue,
search_type: searchType,
indexes: indexesStatement
@@ -4789,13 +5006,13 @@ function PageDiscover() {
if (searchValue) {
payload.search_value = searchType === 'Search' ? (0,utils_data/*
encodeBase64 */.WG)(searchValue) : searchValue;
}
- (0,services_discover/* getTableDataCountService
*/.$g)(PageDiscover_object_spread({
+ getTableDataCountService(PageDiscover_object_spread({
selectdbDS
}, payload)).subscribe({
next: ({ data, ok })=>{
if (ok) {
- var _data_results__data, _data_results_;
- const total_count = data === null || data === void 0 ?
void 0 : (_data_results_ = data.results[0]) === null || _data_results_ === void
0 ? void 0 : (_data_results__data = _data_results_.data) === null ||
_data_results__data === void 0 ? void 0 : _data_results__data.values[0];
+ const frame =
(0,data_.toDataFrame)(data.results.getTableCountData.frames[0]);
+ const total_count = frame.fields[0].values[0];
if (!total_count) {
setTableTotalCount(0);
return;
@@ -4814,7 +5031,7 @@ function PageDiscover() {
let payload = {
catalog: currentCatalog,
database: currentDatabase,
- table: 'otel_traces',
+ table: currentTable || 'otel_traces',
timeField: currentTimeField,
startDate: (_currentDate_ = currentDate[0]) === null ||
_currentDate_ === void 0 ? void 0 : _currentDate_.format(constants/*
FORMAT_DATE */.fU),
endDate: currentDate[1].format(constants/* FORMAT_DATE */.fU),
@@ -4837,7 +5054,7 @@ function PageDiscover() {
if (searchValue) {
payload.search_value = (0,utils_data/* encodeBase64
*/.WG)(searchValue);
}
- (0,services_discover/* getTableDataTraceService
*/.hA)(PageDiscover_object_spread({
+ (0,traces/* getTableDataTraceService
*/.hA)(PageDiscover_object_spread({
selectdbDS
}, payload)).subscribe({
next: ({ data, ok })=>{
@@ -4860,7 +5077,7 @@ function PageDiscover() {
getTopData();
} else {
setTableDataCharts([]);
- setTableTotalCount(NaN);
+ setTableTotalCount(0);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [
@@ -4936,7 +5153,38 @@ function PageDiscover() {
}
+/***/ }),
+
+/***/ 5611:
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ b: () => (/* binding */ testIds)
+/* harmony export */ });
+const testIds = {
+ appConfig: {
+ apiKey: 'data-testid ac-api-key',
+ apiUrl: 'data-testid ac-api-url',
+ submit: 'data-testid ac-submit-form'
+ },
+ pageOne: {
+ container: 'data-testid pg-one-container',
+ navigateToFour: 'data-testid navigate-to-four'
+ },
+ pageTwo: {
+ container: 'data-testid pg-two-container'
+ },
+ pageThree: {
+ container: 'data-testid pg-three-container'
+ },
+ pageFour: {
+ container: 'data-testid pg-four-container',
+ navigateBack: 'data-testid navigate-back'
+ }
+};
+
+
/***/ })
}]);
-//# sourceMappingURL=892.js.map?_cache=320114a5eb201b6077e7
\ No newline at end of file
+//# sourceMappingURL=301.js.map?_cache=5b7e7587736f022bf0b0
\ No newline at end of file
diff --git a/src/grafana/plugins/doris-app/301.js.map
b/src/grafana/plugins/doris-app/301.js.map
new file mode 100644
index 0000000..33eab26
--- /dev/null
+++ b/src/grafana/plugins/doris-app/301.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"301.js?_cache=5b7e7587736f022bf0b0","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAmC;AACE;AAE9B,MAAME,uBAAuBD,yCAAMA,CAACE,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;AAsB/C,CAAC,CAAC;AAEK,MAAMC,2BAA2BH,yCAAMA,CAACE,GAAG,CAAC;;;;;;;;;;AAUnD,CAAC,CAAC;AAEK,MAAME,gBAAgBL,YAAG,CAAC;;;;;;;;;;;;AAYjC,CAAC,CAAC;;;;;;;;;;;ACnD6C;AACW;AAChC;AACgH;AACtC;AACjE;AAGpB,SAASsB;IACpB,MAAM,EAAEC,CAAC,EAAE,GAAGjB,6BAAcA;IAC5B,MAAM,CAACkB,YAAYC,cAAc,GAAGlB,yBAAOA,CAACO,+BAAcA;IAC1D,MAAMY,iBAAiBjB,4B
[...]
\ No newline at end of file
diff --git a/src/grafana/plugins/doris-app/462.js
b/src/grafana/plugins/doris-app/462.js
index eb26227..c4d9ecc 100644
--- a/src/grafana/plugins/doris-app/462.js
+++ b/src/grafana/plugins/doris-app/462.js
@@ -16,7 +16,7 @@ __webpack_require__.r(__webpack_exports__);
-const Discover = /*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_0___default().lazy(()=>Promise.all(/* import()
*/[__webpack_require__.e(632), __webpack_require__.e(723),
__webpack_require__.e(181),
__webpack_require__.e(892)]).then(__webpack_require__.bind(__webpack_require__,
9892)));
+const Discover = /*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_0___default().lazy(()=>Promise.all(/* import()
*/[__webpack_require__.e(632), __webpack_require__.e(723),
__webpack_require__.e(181),
__webpack_require__.e(301)]).then(__webpack_require__.bind(__webpack_require__,
1301)));
const PageTrace = /*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_0___default().lazy(()=>Promise.all(/* import()
*/[__webpack_require__.e(632), __webpack_require__.e(181),
__webpack_require__.e(600)]).then(__webpack_require__.bind(__webpack_require__,
2600)));
// const PageDashboard = React.lazy(() => import('../../pages/PageDashboard'));
function App(_props) {
@@ -308,4 +308,4 @@ function translationDateIntervalType(type) {
/***/ })
}]);
-//# sourceMappingURL=462.js.map?_cache=f147cca08cc3ed76dfe3
\ No newline at end of file
+//# sourceMappingURL=462.js.map?_cache=17b5ab6b000cf855c5db
\ No newline at end of file
diff --git a/src/grafana/plugins/doris-app/462.js.map
b/src/grafana/plugins/doris-app/462.js.map
index 63e2df0..14c9823 100644
--- a/src/grafana/plugins/doris-app/462.js.map
+++ b/src/grafana/plugins/doris-app/462.js.map
@@ -1 +1 @@
-{"version":3,"file":"462.js?_cache=f147cca08cc3ed76dfe3","mappings":";;;;;;;;;;;;;;;AAA0B;AACuB;AAER;AACzC,MAAMI,yBAAWJ,iDAAU,CAAC,IAAM,qMAAO;AACzC,MAAMM,0BAAYN,iDAAU,CAAC,IAAM,yKAAO;AAC1C,+EAA+E;AAE/E,SAASO,IAAIC,MAAoB;IAC7B,qBACI,2DAACN,oDAAMA,sBACH,2DAACD,mDAAKA;QAACQ,MAAMN,wDAAMA,CAACC,QAAQ;QAAEM,uBAAS,2DAACN;sBACxC,2DAACH,mDAAKA;QAACQ,MAAM,GAAGN,wDAAMA,CAACQ,MAAM,EAAE;QAAED,uBAAS,2DAACJ;sBAE3C,2DAACL,mDAAKA;QAACQ,MAAK;QAAIC,uBAAS,2DAACN;;AAGtC;AAEA,iEAAeG,GAAGA,EAAC;;;;;;;;;;;;;;;;;
[...]
\ No newline at end of file
+{"version":3,"file":"462.js?_cache=17b5ab6b000cf855c5db","mappings":";;;;;;;;;;;;;;;AAA0B;AACuB;AAER;AACzC,MAAMI,yBAAWJ,iDAAU,CAAC,IAAM,qMAAO;AACzC,MAAMM,0BAAYN,iDAAU,CAAC,IAAM,yKAAO;AAC1C,+EAA+E;AAE/E,SAASO,IAAIC,MAAoB;IAC7B,qBACI,2DAACN,oDAAMA,sBACH,2DAACD,mDAAKA;QAACQ,MAAMN,wDAAMA,CAACC,QAAQ;QAAEM,uBAAS,2DAACN;sBACxC,2DAACH,mDAAKA;QAACQ,MAAM,GAAGN,wDAAMA,CAACQ,MAAM,EAAE;QAAED,uBAAS,2DAACJ;sBAE3C,2DAACL,mDAAKA;QAACQ,MAAK;QAAIC,uBAAS,2DAACN;;AAGtC;AAEA,iEAAeG,GAAGA,EAAC;;;;;;;;;;;;;;;;;
[...]
\ No newline at end of file
diff --git a/src/grafana/plugins/doris-app/600.js
b/src/grafana/plugins/doris-app/600.js
index a856866..eadda9e 100644
--- a/src/grafana/plugins/doris-app/600.js
+++ b/src/grafana/plugins/doris-app/600.js
@@ -403,46 +403,55 @@ var trace_detail = __webpack_require__(1885);
-const TraceView = (props)=>{
- var _props_traces_;
+const TraceView = ({ traces: propTraces, onSortByChange })=>{
+ var _propTraces_;
const theme = (0,ui_.useTheme2)();
const [page, setPage] = (0,react/* useAtom */.fp)(discover/* pageAtom
*/.fs);
const pageSize = (0,react/* useAtomValue */.md)(discover/* pageSizeAtom
*/.Ol);
- const total = ((_props_traces_ = props.traces[0]) === null ||
_props_traces_ === void 0 ? void 0 : _props_traces_.total) || 0;
- const traces = props.traces || [];
+ const total = ((_propTraces_ = propTraces[0]) === null || _propTraces_ ===
void 0 ? void 0 : _propTraces_.total) || 0;
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ const traces = propTraces || [];
const [sort, setSort] = (0,react/* useAtom */.fp)(store_traces/*
currentSortAtom */.fy);
const [drawerOpen, setDrawerOpen] =
external_react_default().useState(false);
const [traceId, setTraceId] = external_react_default().useState('');
- const getOption = ()=>{
+ // 预处理 series 数据,计算 symbolSize
+ const seriesData = (0,external_react_.useMemo)(()=>{
+ return traces.map((s)=>({
+ name: `${s.root_service}:${s.operation}`,
+ spans: s.spans,
+ value: s.trace_duration_ms,
+ trace_id: s.trace_id,
+ symbolSize: Math.max(12, Math.min(30, s.spans || 1))
+ }));
+ }, [
+ traces
+ ]);
+ const option = (0,external_react_.useMemo)(()=>{
return {
tooltip: {
trigger: 'item',
padding: 0,
borderWidth: 0,
backgroundColor: theme.isLight ? '#ffffff' : 'rgba(63, 63, 69,
0.64)',
- onClick: (params)=>{
- setTraceId(params.data.trace_id);
- setDrawerOpen(true);
- },
formatter: function(params) {
const html = `<div
- style="
- padding: 8px;
- min-width: 120px;
- border-radius: 6px;
- backdrop-filter: blur(12px);
- color: ${theme.isLight ? '#1F1F26' :
'#EFEFF0'};
- ">
- <div style="padding-bottom: 4px;
border-bottom: 1px solid ${theme.isLight ? '#DFDFE0' : '#3F3F45'};">${[
+ style="
+ padding: 8px;
+ min-width: 120px;
+ border-radius: 6px;
+ backdrop-filter: blur(12px);
+ color: ${theme.isLight ? '#1F1F26' : '#EFEFF0'};
+ ">
+ <div style="padding-bottom: 4px; border-bottom: 1px
solid ${theme.isLight ? '#DFDFE0' : '#3F3F45'};">${[
params.name
]}</div>
- <div style="padding-top:4px;display:
flex;justify-content: space-between;"><span>Durations:</span><span
style="font-family:DIN Alternate;font-size:14;font-weight:500;">${[
+ <div style="padding-top:4px;display:
flex;justify-content: space-between;"><span>Durations:</span><span
style="font-family:DIN Alternate;font-size:14;font-weight:500;">${[
`${params.value} ms` || 'No Data'
]}</span></div>
- <div style="padding-top:4px;display:
flex;justify-content: space-between;"><span>Spans:</span><span
style="font-family:DIN Alternate;font-size:14;font-weight:500;">${[
+ <div style="padding-top:4px;display:
flex;justify-content: space-between;"><span>Spans:</span><span
style="font-family:DIN Alternate;font-size:14;font-weight:500;">${[
params.data.spans || 'No Data'
]}</span></div>
- </div>`;
+ </div>`;
return html;
}
},
@@ -452,10 +461,6 @@ const TraceView = (props)=>{
data: traces.map((s)=>s.time),
axisLabel: {
color: theme.colors.text.primary
- },
- axisLine: {
- lineStyle: {
- }
}
},
yAxis: {
@@ -472,24 +477,17 @@ const TraceView = (props)=>{
},
series: [
{
- symbolSize: (value, params)=>{
- // 使用 spans 数量决定点的大小,设一个基本缩放,例如:
- const trace = traces[params.dataIndex];
- return Math.max(12, Math.min(30, trace.spans || 1));
// 控制在6~30之间
- },
- data: traces.map((s)=>{
- return {
- name: `${s.root_service}:${s.operation}`,
- spans: s.spans,
- value: s.trace_duration_ms,
- trace_id: s.trace_id
- };
- }),
- type: 'scatter'
+ type: 'scatter',
+ data: seriesData,
+ symbolSize: (data)=>data.symbolSize
}
]
};
- };
+ }, [
+ seriesData,
+ traces,
+ theme
+ ]);
const onEvents = {
click: (params)=>{
setTraceId(params.data.trace_id);
@@ -510,8 +508,8 @@ const TraceView = (props)=>{
height: 300px;
`
}, /*#__PURE__*/ external_react_default().createElement(esm/* default
*/.A, {
- option: getOption(),
- notMerge: true,
+ option: option,
+ notMerge: false,
lazyUpdate: true,
style: {
height: '100%'
@@ -556,7 +554,7 @@ const TraceView = (props)=>{
onChange: (option)=>{
setPage(1);
setSort(option.value);
- props === null || props === void 0 ? void 0 :
props.onSortByChange(option.value);
+ onSortByChange(option.value);
}
}))), /*#__PURE__*/ external_react_default().createElement("div", {
className: (0,css_.css)`
@@ -574,10 +572,8 @@ const TraceView = (props)=>{
`
}, /*#__PURE__*/ external_react_default().createElement("div", null,
traces.length, " Traces, "), /*#__PURE__*/
external_react_default().createElement("div", null, "Total ", total)),
/*#__PURE__*/ external_react_default().createElement(ui_.Pagination, {
currentPage: page,
- numberOfPages: Math.floor(total / pageSize) || 1,
- onNavigate: (toPage)=>{
- setPage(toPage);
- }
+ numberOfPages: Math.ceil(total / pageSize) || 1,
+ onNavigate: (toPage)=>setPage(toPage)
})), /*#__PURE__*/ external_react_default().createElement("div", {
className: (0,css_.css)`
display: flex;
@@ -662,6 +658,8 @@ var utils_data = __webpack_require__(6700);
var constants = __webpack_require__(2351);
// EXTERNAL MODULE: ./services/metaservice.ts
var metaservice = __webpack_require__(8161);
+// EXTERNAL MODULE: external "@grafana/data"
+var data_ = __webpack_require__(7781);
;// ./components/traces/traces-header/index.tsx
'use client';
function _define_property(obj, key, value) {
@@ -728,16 +726,17 @@ function _object_spread_props(target, source) {
+
function TracesHeader() {
// const catalogs = useAtomValue(catalogAtom);
const setIndexes = (0,react/* useSetAtom */.Xr)(discover/* indexesAtom
*/.Eq);
const [discoverCurrent, setDiscoverCurrent] = (0,react/* useAtom
*/.fp)(discover/* discoverCurrentAtom */.WN);
if (false) // removed by dead control flow
{}
- const [loc, setLoc] = (0,react/* useAtom */.fp)(discover/* locationAtom
*/.JT);
+ const setLoc = (0,react/* useSetAtom */.Xr)(discover/* locationAtom */.JT);
const setTableFields = (0,react/* useSetAtom */.Xr)(discover/*
tableFieldsAtom */.D_);
const [timeFields, setTimeFields] = (0,react/* useAtom */.fp)(discover/*
timeFieldsAtom */.Gg);
- const [currentDate, setCurrentDate] = (0,react/* useAtom */.fp)(discover/*
currentDateAtom */.Zb);
+ const [_currentDate, setCurrentDate] = (0,react/* useAtom
*/.fp)(discover/* currentDateAtom */.Zb);
const currentTimeField = (0,react/* useAtomValue */.md)(discover/*
currentTimeFieldAtom */.CA);
const [currentIndex, setCurrentIndex] = (0,react/* useAtom
*/.fp)(discover/* currentIndexAtom */.TY);
const searchFocus = (0,react/* useAtomValue */.md)(discover/*
searchFocusAtom */.MM);
@@ -746,7 +745,7 @@ function TracesHeader() {
const [currentTable, setCurrentTable] = (0,react/* useAtom
*/.fp)(store_traces/* currentTraceTableAtom */.AZ);
const [databases, setDatabases] = (0,react/* useAtom */.fp)(discover/*
databasesAtom */.SK);
const [tables, setTables] = (0,react/* useAtom */.fp)(discover/*
tablesAtom */.b9);
- const [datasources, setDataSource] = (0,react/* useAtom */.fp)(discover/*
datasourcesAtom */.ui);
+ const [_datasources, setDataSource] = (0,react/* useAtom */.fp)(discover/*
datasourcesAtom */.ui);
const setDisabledOptions = (0,react/* useSetAtom */.Xr)(discover/*
disabledOptionsAtom */.IH);
const selectdbDS = (0,react/* useAtomValue */.md)(discover/*
selectedDatasourceAtom */.SW);
(0,external_react_.useEffect)(()=>{
@@ -769,38 +768,29 @@ function TracesHeader() {
]);
const theme = (0,ui_.useTheme2)();
(0,external_react_.useEffect)(()=>{
- if (selectdbDS) {
- const res = (0,metaservice/* getDatabases */.Hm)(selectdbDS);
- res.subscribe({
- next: ({ data, ok })=>{
- if (ok) {
- var _data_results__data, _data_results_;
- const value = data === null || data === void 0 ? void
0 : (_data_results_ = data.results[0]) === null || _data_results_ === void 0 ?
void 0 : (_data_results__data = _data_results_.data) === null ||
_data_results__data === void 0 ? void 0 : _data_results__data.values[0];
- if (value) {
- const options = value.map((item)=>{
- return {
- label: item,
- value: item
- };
- });
- setDatabases(options);
- }
- }
- },
- error: (err)=>{
- console.log('查询错误', err);
- }
- });
+ if (!selectdbDS) {
+ return;
}
- // eslint-disable-next-line react-hooks/exhaustive-deps
+ const subscription = (0,metaservice/* getDatabases
*/.Hm)(selectdbDS).subscribe({
+ next: (resp)=>{
+ const { data, ok } = resp;
+ if (ok) {
+ const frame =
(0,data_.toDataFrame)(data.results.getDatabases.frames[0]);
+ const values = Array.from(frame.fields[0].values);
+ const options = values.map((item)=>({
+ label: item,
+ value: item
+ }));
+ setDatabases(options);
+ }
+ },
+ error: (err)=>console.log('查询错误', err)
+ });
+ return ()=>subscription.unsubscribe();
}, [
- selectdbDS
+ selectdbDS,
+ setDatabases
]);
- // useEffect(() => {
- // if (startTime && endTime) {
- // setCurrentDate([dayjs(startTime), dayjs(endTime)]);
- // }
- // }, [startTime, endTime, setCurrentDate]);
function getFields(selectedTable) {
(0,metaservice/* getFieldsService */.H1)({
selectdbDS,
@@ -809,10 +799,11 @@ function TracesHeader() {
}).subscribe({
next: ({ data, ok })=>{
if (ok) {
- var _data_results__data, _data_results_,
_data_results__data1, _data_results_1, _data_results__data2, _data_results_2;
- const value = data === null || data === void 0 ? void 0 :
(_data_results_ = data.results[0]) === null || _data_results_ === void 0 ? void
0 : (_data_results__data = _data_results_.data) === null || _data_results__data
=== void 0 ? void 0 : _data_results__data.values[0];
- const fieldTypes = data === null || data === void 0 ? void
0 : (_data_results_1 = data.results[0]) === null || _data_results_1 === void 0
? void 0 : (_data_results__data1 = _data_results_1.data) === null ||
_data_results__data1 === void 0 ? void 0 : _data_results__data1.values[1];
- const tableFields = data === null || data === void 0 ?
void 0 : (_data_results_2 = data.results[0]) === null || _data_results_2 ===
void 0 ? void 0 : (_data_results__data2 = _data_results_2.data) === null ||
_data_results__data2 === void 0 ? void 0 :
_data_results__data2.values[0].map((item, index)=>{
+ const frame =
(0,data_.toDataFrame)(data.results.getFields.frames[0]);
+ console.log('frame', frame);
+ const values = Array.from(frame.fields[0].values);
+ const fieldTypes = Array.from(frame.fields[1].values);
+ const tableFields = values.map((item, index)=>{
return {
label: item,
Field: item,
@@ -821,9 +812,9 @@ function TracesHeader() {
};
});
setTableFields(tableFields);
- if (value) {
+ if (values) {
var _options_;
- const options = value.filter((field, index)=>{
+ const options = values.filter((field, index)=>{
return (0,utils_data/* isValidTimeFieldType
*/.Q3)(fieldTypes[index].toUpperCase());
}).map((item)=>{
return {
@@ -851,16 +842,16 @@ function TracesHeader() {
}).subscribe({
next: ({ data, ok })=>{
if (ok) {
- var _data_results__data, _data_results_,
_data_results__data1, _data_results_1, _data_results__data2, _data_results_2;
- const value = data === null || data === void 0 ? void 0 :
(_data_results_ = data.results[0]) === null || _data_results_ === void 0 ? void
0 : (_data_results__data = _data_results_.data) === null || _data_results__data
=== void 0 ? void 0 : _data_results__data.values[2];
- const columnNames = data === null || data === void 0 ?
void 0 : (_data_results_1 = data.results[0]) === null || _data_results_1 ===
void 0 ? void 0 : (_data_results__data1 = _data_results_1.data) === null ||
_data_results__data1 === void 0 ? void 0 : _data_results__data1.values[4];
- const indexesTypes = data === null || data === void 0 ?
void 0 : (_data_results_2 = data.results[0]) === null || _data_results_2 ===
void 0 ? void 0 : (_data_results__data2 = _data_results_2.data) === null ||
_data_results__data2 === void 0 ? void 0 : _data_results__data2.values[10];
- if (!value || value.length === 0) {
+ const frame =
(0,data_.toDataFrame)(data.results.getIndexes.frames[0]);
+ const values = Array.from(frame.fields[2].values);
+ const columnNames = Array.from(frame.fields[4].values);
+ const indexesTypes = Array.from(frame.fields[10].values);
+ if (!values || values.length === 0) {
setIndexes([]);
setCurrentIndex([]);
return;
}
- const tableIndexes = value === null || value === void 0 ?
void 0 : value.map((item, index)=>{
+ const tableIndexes = values === null || values === void 0
? void 0 : values.map((item, index)=>{
return {
label: item,
value: item,
@@ -914,28 +905,23 @@ function TracesHeader() {
setDiscoverCurrent(_object_spread_props(_object_spread({},
discoverCurrent), {
database: selectedDatabase.value
}));
- (0,metaservice/* getTables */.oI)({
+ (0,metaservice/* getTablesService */.Rw)({
selectdbDS,
database: selectedDatabase.value
}).subscribe({
- next: ({ data, ok })=>{
+ next: (resp)=>{
+ const { data, ok } = resp;
if (ok) {
- var _data_results__data, _data_results_;
- const value = data === null || data === void 0 ? void
0 : (_data_results_ = data.results[0]) === null || _data_results_ === void 0 ?
void 0 : (_data_results__data = _data_results_.data) === null ||
_data_results__data === void 0 ? void 0 : _data_results__data.values[0];
- if (value) {
- const options = value.map((item)=>{
- return {
- label: item,
- value: item
- };
- });
- setTables(options);
- }
+ const frame =
(0,data_.toDataFrame)(data.results.getTables.frames[0]);
+ const values = Array.from(frame.fields[0].values);
+ const options = values.map((item)=>({
+ label: item,
+ value: item
+ }));
+ setTables(options);
}
},
- error: (err)=>{
- console.log('查询错误', err);
- }
+ error: (err)=>console.log('查询错误', err)
});
}
})), /*#__PURE__*/ external_react_default().createElement(ui_.Field, {
@@ -956,7 +942,7 @@ function TracesHeader() {
getIndexes(selectedTable);
}
}))), !searchFocus && /*#__PURE__*/
external_react_default().createElement((external_react_default()).Fragment,
null, /*#__PURE__*/ external_react_default().createElement(ui_.Field, {
- label: "时间字段"
+ label: "Time Field"
}, /*#__PURE__*/ external_react_default().createElement(ui_.Select, {
value: currentTimeField,
options: timeFields,
@@ -972,9 +958,9 @@ function TracesHeader() {
});
});
},
- placeholder: '时间字段'
+ placeholder: 'Time Field'
})), /*#__PURE__*/ external_react_default().createElement(ui_.Field, {
- label: "时间范围",
+ label: "Time Range",
style: {
marginLeft: 8,
marginRight: 8
@@ -1002,8 +988,8 @@ function TracesHeader() {
}))));
}
-// EXTERNAL MODULE: ./services/discover.ts
-var services_discover = __webpack_require__(7626);
+// EXTERNAL MODULE: ./services/traces.ts + 1 modules
+var services_traces = __webpack_require__(3764);
;// ./pages/PageTrace.tsx
function PageTrace_define_property(obj, key, value) {
if (key in obj) {
@@ -1070,6 +1056,7 @@ function PageTrace_object_spread_props(target, source) {
+
function PageTrace() {
const theme = (0,ui_.useTheme2)();
const currentTimeField = (0,react/* useAtomValue */.md)(discover/*
currentTimeFieldAtom */.CA);
@@ -1108,7 +1095,7 @@ function PageTrace() {
page_size: pageSize,
service_name: currentService.value,
operation: currentOperation.value,
- sort_by: sort
+ sortBy: sort
};
if (minDuration) {
console.log('minDuration', minDuration);
@@ -1121,13 +1108,13 @@ function PageTrace() {
if (tags && tags.length > 0) {
payload.tags = tags;
}
- (0,services_discover/* getTracesService
*/.Cy)(PageTrace_object_spread({
+ (0,services_traces/* getTracesService */.Cy)(PageTrace_object_spread({
selectdbDS
}, payload)).subscribe({
next: ({ data, ok })=>{
setLoading(false);
if (ok) {
- const rowsData = (0,utils_data/* convertColumnToRow
*/.HL)(data);
+ const rowsData = (0,utils_data/* convertColumnToRow
*/.HL)(data.results.getTraces.frames[0]);
// console.log('查询结果', rowsData);
const formateData = rowsData.map((item)=>{
var _item_trace_duration_ms;
@@ -1174,27 +1161,25 @@ function PageTrace() {
endDate: currentDate[1].format(constants/* FORMAT_DATE */.fU),
cluster: ''
};
- (0,services_discover/* getTracesServicesService
*/.Cq)(PageTrace_object_spread({
+ (0,services_traces/* getServiceListService
*/.FC)(PageTrace_object_spread({
selectdbDS
}, payload)).subscribe({
next: ({ data, ok })=>{
setLoading(false);
if (ok) {
- if (ok) {
- var _data_results__data, _data_results_;
- const value = data === null || data === void 0 ? void
0 : (_data_results_ = data.results[0]) === null || _data_results_ === void 0 ?
void 0 : (_data_results__data = _data_results_.data) === null ||
_data_results__data === void 0 ? void 0 : _data_results__data.values[0];
- if (value) {
- const options = value.map((item)=>{
- return {
- label: item,
- value: item
- };
- });
- setTracesServices([
- constants/* DEFAULT_SERVICE */.aR,
- ...options
- ]);
- }
+ const frame =
(0,data_.toDataFrame)(data.results.getServiceList.frames[0]);
+ const values = Array.from(frame.fields[0].values);
+ if (values) {
+ const options = values.map((item)=>{
+ return {
+ label: item,
+ value: item
+ };
+ });
+ setTracesServices([
+ constants/* DEFAULT_SERVICE */.aR,
+ ...options
+ ]);
}
}
},
@@ -1221,34 +1206,34 @@ function PageTrace() {
timeField: currentTimeField,
startDate: (_currentDate_ = currentDate[0]) === null ||
_currentDate_ === void 0 ? void 0 : _currentDate_.format(constants/*
FORMAT_DATE */.fU),
endDate: currentDate[1].format(constants/* FORMAT_DATE */.fU),
- serviceName: currentService.value,
+ service_name: currentService.value,
cluster: ''
};
- (0,services_discover/* getTraceOperationsService
*/.H7)(PageTrace_object_spread({
+ (0,services_traces/* getOperationListService
*/.jo)(PageTrace_object_spread({
selectdbDS
}, payload)).subscribe({
next: ({ data, ok })=>{
setLoading(false);
if (ok) {
- if (ok) {
- var _data_results__data, _data_results_;
- const value = data === null || data === void 0 ? void
0 : (_data_results_ = data.results[0]) === null || _data_results_ === void 0 ?
void 0 : (_data_results__data = _data_results_.data) === null ||
_data_results__data === void 0 ? void 0 : _data_results__data.values[0];
- if (value) {
- const options = value.map((item)=>{
- return {
- label: item,
- value: item
- };
- });
- setTraceOperations([
- constants/* DEFAULT_OPERATION */.UB,
- ...options
- ]);
- } else {
- setTraceOperations([
- constants/* DEFAULT_OPERATION */.UB
- ]);
- }
+ // const frame =
toDataFrame(data.results.getOperationList.frames[0]);
+ // const values = Array.from(frame.fields[0].values);
+ // const values = frame.data.values
+ const values =
data.results.getOperationList.frames[0].data.values[0];
+ if (values) {
+ const options = values.map((item)=>{
+ return {
+ label: item,
+ value: item
+ };
+ });
+ setTraceOperations([
+ constants/* DEFAULT_OPERATION */.UB,
+ ...options
+ ]);
+ } else {
+ setTraceOperations([
+ constants/* DEFAULT_OPERATION */.UB
+ ]);
}
}
},
@@ -1271,7 +1256,6 @@ function PageTrace() {
(0,external_react_.useEffect)(()=>{
if (currentTimeField && currentTable && currentCatalog &&
currentDatabase && currentDate) {
getTraces();
- getTracesServices();
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [
@@ -1281,6 +1265,16 @@ function PageTrace() {
currentDate,
sort
]);
+ (0,external_react_.useEffect)(()=>{
+ if (currentTimeField && currentTable && currentCatalog &&
currentDatabase && currentDate) {
+ getTracesServices();
+ }
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [
+ currentTimeField,
+ currentDate,
+ sort
+ ]);
(0,external_react_.useEffect)(()=>{
if (currentTimeField && currentTable && currentCatalog &&
currentDatabase && currentService) {
getTracesOperations();
@@ -1349,4 +1343,4 @@ function PageTrace() {
/***/ })
}]);
-//# sourceMappingURL=600.js.map?_cache=ec61aa919838c06e8070
\ No newline at end of file
+//# sourceMappingURL=600.js.map?_cache=da9ca1a564051d04d4f3
\ No newline at end of file
diff --git a/src/grafana/plugins/doris-app/600.js.map
b/src/grafana/plugins/doris-app/600.js.map
index 532e724..a955c39 100644
--- a/src/grafana/plugins/doris-app/600.js.map
+++ b/src/grafana/plugins/doris-app/600.js.map
@@ -1 +1 @@
-{"version":3,"file":"600.js?_cache=ec61aa919838c06e8070","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
[...]
\ No newline at end of file
+{"version":3,"file":"600.js?_cache=da9ca1a564051d04d4f3","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
[...]
\ No newline at end of file
diff --git a/src/grafana/plugins/doris-app/892.js.map
b/src/grafana/plugins/doris-app/892.js.map
deleted file mode 100644
index 19c3eec..0000000
--- a/src/grafana/plugins/doris-app/892.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"892.js?_cache=320114a5eb201b6077e7","mappings":";;;;;;;;;AAAO,MAAMA,UAAU;IACrBC,WAAW;QACTC,QAAQ;QACRC,QAAQ;QACRC,QAAQ;IACV;IACAC,SAAS;QACPC,WAAW;QACXC,gBAAgB;IAClB;IACAC,SAAS;QACPF,WAAW;IACb;IACAG,WAAW;QACTH,WAAW;IACb;IACAI,UAAU;QACRJ,WAAW;QACXK,cAAc;IAChB;AACF,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpBiC;AACE;AAE9B,MAAMG,uBAAuBD,yCAAMA,CAACE,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;AAsB/C,CAAC,CAAC;AAEK,MAAMC,2BAA2BH,yCAAMA,CAACE,GAAG,CAAC;;;;;;;;;;AAUnD,CAAC,CAAC;AAEK,MAAME,gBA
[...]
\ No newline at end of file
diff --git a/src/grafana/plugins/doris-app/gpx_doris-app_darwin_amd64
b/src/grafana/plugins/doris-app/gpx_doris-app_darwin_amd64
index edfdd53..7fd1a3b 100755
Binary files a/src/grafana/plugins/doris-app/gpx_doris-app_darwin_amd64 and
b/src/grafana/plugins/doris-app/gpx_doris-app_darwin_amd64 differ
diff --git a/src/grafana/plugins/doris-app/gpx_doris-app_darwin_arm64
b/src/grafana/plugins/doris-app/gpx_doris-app_darwin_arm64
index de3a4d2..29565d3 100755
Binary files a/src/grafana/plugins/doris-app/gpx_doris-app_darwin_arm64 and
b/src/grafana/plugins/doris-app/gpx_doris-app_darwin_arm64 differ
diff --git a/src/grafana/plugins/doris-app/gpx_doris-app_linux_amd64
b/src/grafana/plugins/doris-app/gpx_doris-app_linux_amd64
index 44899d1..42d5ff9 100755
Binary files a/src/grafana/plugins/doris-app/gpx_doris-app_linux_amd64 and
b/src/grafana/plugins/doris-app/gpx_doris-app_linux_amd64 differ
diff --git a/src/grafana/plugins/doris-app/gpx_doris-app_linux_arm
b/src/grafana/plugins/doris-app/gpx_doris-app_linux_arm
index 617a852..57de697 100755
Binary files a/src/grafana/plugins/doris-app/gpx_doris-app_linux_arm and
b/src/grafana/plugins/doris-app/gpx_doris-app_linux_arm differ
diff --git a/src/grafana/plugins/doris-app/gpx_doris-app_linux_arm64
b/src/grafana/plugins/doris-app/gpx_doris-app_linux_arm64
index df8d186..b266c54 100755
Binary files a/src/grafana/plugins/doris-app/gpx_doris-app_linux_arm64 and
b/src/grafana/plugins/doris-app/gpx_doris-app_linux_arm64 differ
diff --git a/src/grafana/plugins/doris-app/gpx_doris-app_windows_amd64.exe
b/src/grafana/plugins/doris-app/gpx_doris-app_windows_amd64.exe
index 2a26cc3..edf41cc 100755
Binary files a/src/grafana/plugins/doris-app/gpx_doris-app_windows_amd64.exe
and b/src/grafana/plugins/doris-app/gpx_doris-app_windows_amd64.exe differ
diff --git a/src/grafana/plugins/doris-app/module.js
b/src/grafana/plugins/doris-app/module.js
index bce9c04..8b0fd03 100644
--- a/src/grafana/plugins/doris-app/module.js
+++ b/src/grafana/plugins/doris-app/module.js
@@ -1192,7 +1192,7 @@ module.exports = domAPI;
/******/ // This function allow to reference async chunks
/******/ __webpack_require__.u = (chunkId) => {
/******/ // return url for filenames based on template
-/******/ return "" + chunkId + ".js?_cache=" +
{"35":"6d86e876a981760ae4a1","181":"6d914ab9f7dffb39d3ea","202":"960b652c09389756ed7b","462":"f147cca08cc3ed76dfe3","600":"ec61aa919838c06e8070","632":"20f9d65c2526bb592e0a","723":"cd85aac21ae242f5f0f2","892":"320114a5eb201b6077e7"}[chunkId]
+ "";
+/******/ return "" + chunkId + ".js?_cache=" +
{"35":"6d86e876a981760ae4a1","181":"199c7bc22e9b0ba4a085","202":"960b652c09389756ed7b","301":"5b7e7587736f022bf0b0","462":"17b5ab6b000cf855c5db","600":"da9ca1a564051d04d4f3","632":"20f9d65c2526bb592e0a","723":"cd85aac21ae242f5f0f2"}[chunkId]
+ "";
/******/ };
/******/ })();
/******/
@@ -1282,7 +1282,7 @@ module.exports = domAPI;
/******/
/******/ /* webpack/runtime/compat */
/******/
-/******/ __webpack_require__.sriHashes =
{"35":"sha256-8TWj0IuqCnw+QkYOR4eAnmDEKCIKywuChqXPt3S4FV0=","181":"sha256-IM1K/Cb9j/MnX9kSi0A7YI62vASzL73wV8eaMH9bsDM=","202":"sha256-CN4kzTw1qZgwAinJ1/Yabb8xvpGp0KP+/BizIwiPgfQ=","462":"sha256-jqJTq+S8JwIHquoKfThhlhqu/x5cdIPi+9UwJm3a8t0=","600":"sha256-Czep+xD5J2dKAhHemIjsl+UVHvPyKUCreeUM/EtK3sQ=","632":"sha256-MW1oi1N0a/3ek7LCgIZcCVt3rVRNjLXJmSZD8oTGIZY=","723":"sha256-YDvp7Qjz8uu5Sk0fPOr2QrUrKd0OfhzUsNXFLgjBQwM=","892":"sha256-0z6USMK4DrA+ZvE+
[...]
+/******/ __webpack_require__.sriHashes =
{"35":"sha256-8TWj0IuqCnw+QkYOR4eAnmDEKCIKywuChqXPt3S4FV0=","181":"sha256-S9IjFpVV4huLTJA/PBBo8of9bxNErQykqWp0esRD3jg=","202":"sha256-CN4kzTw1qZgwAinJ1/Yabb8xvpGp0KP+/BizIwiPgfQ=","301":"sha256-HVEabGpMVI5Hq1gi79mK1ywt6FU5ynwCRlq8LR7VFnk=","462":"sha256-X497Yr1/vrDrkoN/fqxBo8tu4PppUUPy95D2K4MCI98=","600":"sha256-8fQLd/XtX6vKabiUbI2oAMD+ZI1fpIg4ulotNgeKMo0=","632":"sha256-MW1oi1N0a/3ek7LCgIZcCVt3rVRNjLXJmSZD8oTGIZY=","723":"sha256-YDvp7Qjz8uu5Sk0f
[...]
/******/
/******/ /* 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 9ad894d..08fcc86 100644
--- a/src/grafana/plugins/doris-app/module.js.map
+++ b/src/grafana/plugins/doris-app/module.js.map
@@ -1 +1 @@
-{"version":3,"file":"module.js","mappings":";;;;;;;;AAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA,gDAAgD;AAChD;AACA;AACA,qFAAqF;AACrF;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,sFAAsF,qBAAqB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV
[...]
\ No newline at end of file
+{"version":3,"file":"module.js","mappings":";;;;;;;;AAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA,gDAAgD;AAChD;AACA;AACA,qFAAqF;AACrF;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,sFAAsF,qBAAqB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV
[...]
\ No newline at end of file
diff --git a/src/grafana/plugins/doris-app/plugin.json
b/src/grafana/plugins/doris-app/plugin.json
index d28b86c..37d4405 100644
--- a/src/grafana/plugins/doris-app/plugin.json
+++ b/src/grafana/plugins/doris-app/plugin.json
@@ -19,7 +19,7 @@
},
"screenshots": [],
"version": "1.0.0",
- "updated": "2025-08-18"
+ "updated": "2025-08-28"
},
"includes": [
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]