專案

一般

配置概況

工作單 #198 » RT990101.json

marlboro chu, 2025-06-30 01:49

 
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": 129,
"links": [],
"panels": [
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 7,
"panels": [],
"title": "A. Transaction Volume and Verification Statistics",
"type": "row"
},
{
"gridPos": {
"h": 3,
"w": 5,
"x": 0,
"y": 1
},
"id": 14,
"libraryPanel": {
"name": "總交易數量",
"uid": "belqbqk6ef8qoa"
},
"title": "Total Transaction Volume"
},
{
"gridPos": {
"h": 3,
"w": 5,
"x": 5,
"y": 1
},
"id": 17,
"libraryPanel": {
"name": "卡號數量",
"uid": "aelqbr0vgho1se"
},
"title": "Unique Card Number Count"
},
{
"gridPos": {
"h": 12,
"w": 7,
"x": 10,
"y": 1
},
"id": 21,
"libraryPanel": {
"name": "3DS驗證結果佔比",
"uid": "aelqbtxzv5n9ca"
},
"title": "Proportion of 3DS Results"
},
{
"gridPos": {
"h": 12,
"w": 7,
"x": 17,
"y": 1
},
"id": 22,
"libraryPanel": {
"name": "授權結果佔比餅圖",
"uid": "belqbuex8vw1sa"
},
"title": "Proportion of Auth Results"
},
{
"gridPos": {
"h": 3,
"w": 5,
"x": 0,
"y": 4
},
"id": 16,
"libraryPanel": {
"name": "總交易數量(有設備資訊)",
"uid": "aelqbrf2c81z4d"
},
"title": "Total Transaction Volume (With Device Info)"
},
{
"gridPos": {
"h": 3,
"w": 5,
"x": 5,
"y": 4
},
"id": 15,
"libraryPanel": {
"name": "設備數量",
"uid": "celqbrxn8j7cwd"
},
"title": "Unique Device Count"
},
{
"gridPos": {
"h": 3,
"w": 5,
"x": 0,
"y": 7
},
"id": 18,
"libraryPanel": {
"name": "3DS 反饋筆數",
"uid": "celqbskcpsx6of"
},
"title": "3DS Feedback Count"
},
{
"gridPos": {
"h": 3,
"w": 5,
"x": 5,
"y": 7
},
"id": 19,
"libraryPanel": {
"name": "Auth 反饋筆數",
"uid": "eelqbt0wd39j4d"
},
"title": "Auth Feedback Count"
},
{
"gridPos": {
"h": 3,
"w": 10,
"x": 0,
"y": 10
},
"id": 20,
"libraryPanel": {
"name": "總商店數",
"uid": "celqbthxho0zkd"
},
"title": "Unique Merchant Count"
},
{
"gridPos": {
"h": 11,
"w": 24,
"x": 0,
"y": 13
},
"id": 27,
"libraryPanel": {
"name": "商店交易,設備統計-OLD",
"uid": "delqbw8ibwq9sb"
},
"title": "Merchant and Device Transaction Statistics"
},
{
"gridPos": {
"h": 10,
"w": 8,
"x": 0,
"y": 24
},
"id": 24,
"libraryPanel": {
"name": "整體風險決策比例",
"uid": "belqbxnaol5ogf"
},
"title": "Overall Risk Prediction Proportion"
},
{
"gridPos": {
"h": 10,
"w": 16,
"x": 8,
"y": 24
},
"id": 25,
"libraryPanel": {
"name": "規則群組與風險決策統計",
"uid": "celqbx167yolcb"
},
"title": "Rule Group and Risk Prediction Statistics"
},
{
"gridPos": {
"h": 12,
"w": 24,
"x": 0,
"y": 34
},
"id": 26,
"libraryPanel": {
"name": "規則群組與風險決策走勢",
"uid": "belqby2mhnnk0f"
},
"title": "Rule Group and Risk Prediction Statistics"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 46
},
"id": 6,
"panels": [],
"title": "B.Device Relation",
"type": "row"
},
{
"gridPos": {
"h": 12,
"w": 12,
"x": 0,
"y": 47
},
"id": 13,
"libraryPanel": {
"name": "RT9901- 關連圖明細",
"uid": "eel1ofjz6mdj4f"
},
"title": " "
},
{
"gridPos": {
"h": 12,
"w": 12,
"x": 12,
"y": 47
},
"id": 12,
"libraryPanel": {
"name": "RT9901-來源IP地理資訊 ",
"uid": "fel1ofzuyvmyod"
},
"title": "Source IP Geolocation"
},
{
"gridPos": {
"h": 12,
"w": 12,
"x": 0,
"y": 59
},
"id": 2,
"libraryPanel": {
"name": "RT9901-關連圖_force 佈局",
"uid": "fel1ogkqetzpca"
},
"title": "UDID Relation"
},
{
"gridPos": {
"h": 12,
"w": 12,
"x": 12,
"y": 59
},
"id": 5,
"libraryPanel": {
"name": "RT9901-關連圖_none 佈局",
"uid": "bel1ogy4i8i68c"
},
"title": "UDID Relation II"
},
{
"datasource": {
"type": "yesoreyeram-infinity-datasource",
"uid": "aegaeyjq187b4e"
},
"description": "",
"fieldConfig": {
"defaults": {},
"overrides": []
},
"gridPos": {
"h": 12,
"w": 24,
"x": 0,
"y": 71
},
"id": 28,
"options": {
"baidu": {
"callback": "bmapReady",
"key": ""
},
"editor": {
"format": "auto"
},
"editorMode": "visual",
"gaode": {
"key": "",
"plugin": "AMap.Scale,AMap.ToolBar"
},
"getOption": "const series = context.panel.data.series.map((s) => {\n const sData = s.fields.find((f) => f.type === 'number').values.buffer || s.fields.find((f) => f.type === 'number').values;\n const sTime = s.fields.find((f) => f.type === 'time').values.buffer || s.fields.find((f) => f.type === 'time').values;\n \n return {\n name: s.refId,\n type: 'line',\n showSymbol: false,\n areaStyle: {\n opacity: 0.1,\n },\n lineStyle: {\n width: 1,\n },\n data: sData.map((d, i) => [sTime[i], d.toFixed(2)]),\n };\n});\n\n/**\n * Enable Data Zoom by default\n */\nsetTimeout(() => context.panel.chart.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'dataZoomSelect',\n dataZoomSelectActive: true,\n}), 500);\n\n/**\n * Update Time Range on Zoom\n */\ncontext.panel.chart.on('datazoom', function (params) {\n const startValue = params.batch[0]?.startValue;\n const endValue = params.batch[0]?.endValue;\n locationService.partial({ from: startValue, to: endValue });\n});\n\nreturn {\n backgroundColor: 'transparent',\n tooltip: {\n trigger: 'axis',\n },\n legend: {\n left: '0',\n bottom: '0',\n data: context.panel.data.series.map((s) => s.refId),\n textStyle: {\n color: 'rgba(128, 128, 128, .9)',\n },\n },\n toolbox: {\n feature: {\n dataZoom: {\n yAxisIndex: 'none',\n icon: {\n zoom: 'path://',\n back: 'path://',\n },\n },\n saveAsImage: {},\n }\n },\n xAxis: {\n type: 'time',\n },\n yAxis: {\n type: 'value',\n min: 'dataMin',\n },\n grid: {\n left: '2%',\n right: '2%',\n top: '2%',\n bottom: 24,\n containLabel: true,\n },\n series,\n};",
"google": {
"callback": "gmapReady",
"key": ""
},
"map": "none",
"renderer": "canvas",
"themeEditor": {
"config": "{}",
"name": "default"
},
"visualEditor": {
"code": "const data = context.panel.data;\nlet graph = {\n nodes: [],\n links: [],\n categories: []\n};\n\nif (data.series.length > 0) {\n data.series[0].fields.forEach((s) => {\n console.log(`Processing field: ${s.name}`, JSON.parse(s.values));\n if (s.name === 'links') graph.links = JSON.parse(s.values);\n else if (s.name === 'nodes') graph.nodes = JSON.parse(s.values);\n else if (s.name === 'categories') graph.categories = JSON.parse(s.values);\n });\n}\ngraph.nodes.forEach(node => {\n if (node.category == 0) node.category = 1;\n else if (node.category == 1) node.category = 0;\n else if (node.category == 3) node.category = 4;\n else if (node.category == 4) node.category = 3;\n});\n\ngraph.categories.forEach(categorie => {\n if (categorie.name === 'IP 1') {\n categorie.name = '設備ID-1';\n } else if (categorie.name === 'IP 2') {\n categorie.name = '設備ID-2';\n } else if (categorie.name === 'UDID 1') {\n categorie.name = '位址-1';\n } else if (categorie.name === 'UDID 2') {\n categorie.name = '位址-2';\n } else if (categorie.name === 'Account 1') {\n categorie.name = '帳號-1';\n } else if (categorie.name === 'Account 2') {\n categorie.name = '帳號-2';\n }\n});\n\nconst categoryColors = {\n 3: \"#81D4FA\", 4: \"#AED581\", 5: \"#FFB74D\",\n 0: \"#0288D1\", 1: \"#388E3C\", 2: \"#F57C00\"\n};\n\n//====== 設定\nconst triangleHeight = 0; // 頂部與底部之間的垂直距離\nconst triangleSpacing = 480; // 左右兩個三角形之間的水平距離\nconst nodeSpacing = 36; // 節點垂直間距(由水平改成垂直)\n\nconst categoryGroups = {\n 0: { baseX: -triangleSpacing, baseY: triangleHeight }, // 左頂\n 1: { baseX: -triangleSpacing - 360, baseY: triangleHeight + 180 }, // 左底左\n 2: { baseX: -triangleSpacing + 360, baseY: triangleHeight + 180 }, // 左底右\n 3: { baseX: triangleSpacing, baseY: triangleHeight }, // 右頂\n 4: { baseX: triangleSpacing - 360, baseY: triangleHeight + 180 }, // 右底左\n 5: { baseX: triangleSpacing + 360, baseY: triangleHeight + 180 } // 右底右\n};\n\n// 初始化每類別的偏移量為 0\nconst categoryOffsets = {};\nObject.keys(categoryGroups).forEach(k => categoryOffsets[k] = 0);\n\ngraph.nodes.forEach(node => {\n const cat = node.category;\n const group = categoryGroups[cat];\n const offset = categoryOffsets[cat];\n node.symbol = \"circle\"; //circle,rect,roundRect,triangle,diamond\n node.symbolSize = [8, 8];\n node.label = { show: true, position: \"inside\" };\n\n // 改為「固定 X、Y 軸上下堆疊」\n node.x = group.baseX;\n node.y = group.baseY + offset;\n categoryOffsets[cat] += nodeSpacing;\n console.log(cat + ':' + categoryOffsets[cat]);\n // 節點顏色\n node.itemStyle = {\n color: categoryColors[cat] || \"#cccccc\"\n };\n\n //categoryOffsets[cat] = categoryOffsets[cat] + 10;\n\n});\n\nreturn {\n tooltip: {},\n legend: [\n {\n icon: 'circle',\n data: graph.categories.map(a => a.name)\n }\n ],\n series: [\n {\n name: \"Graph\",\n type: \"graph\",\n layout: \"none\", // 固定座標\n zoom: 0.8,\n data: graph.nodes.map((node) => ({\n ...node,\n draggable: true, // 允許拖曳\n itemStyle: { color: categoryColors[node.category] || \"#cccccc\" },\n symbol: 'circle',\n symbolSize: [12, 12],\n label: {\n show: true,\n position: \"right\",\n padding: [0, 0, 0, 5],\n formatter: params => params.name.substring(0, 16),\n },\n })),\n links: graph.links,\n categories: graph.categories.map((cat, index) => ({\n ...cat,\n itemStyle: { color: categoryColors[index] || \"#cccccc\" }\n })),\n roam: true, // 允許拖曳,但不會影響原始佈局\n focusNodeAdjacency: false,\n lineStyle: {\n color: \"source\",\n curveness: 0.3\n }\n }\n ],\n graphic: graph.nodes.length === 0 ? [\n {\n type: \"text\",\n left: \"center\",\n top: \"middle\",\n style: {\n text: \"查無資訊\",\n fill: \"#999\",\n font: \"bold 20px sans-serif\"\n }\n }\n ] : []\n};\n",
"dataset": [],
"series": []
}
},
"pluginVersion": "6.6.0",
"targets": [
{
"columns": [],
"datasource": {
"type": "yesoreyeram-infinity-datasource",
"uid": "aegaeyjq187b4e"
},
"filters": [],
"format": "table",
"global_query_id": "",
"parser": "backend",
"refId": "A",
"root_selector": "",
"source": "url",
"type": "json",
"url": "/smartfds-adm-web/report/api/relation",
"url_options": {
"data": "",
"headers": [],
"method": "GET",
"params": [
{
"key": "requestIP",
"value": "${query_ip}"
},
{
"key": "from_time",
"value": "${__from}"
},
{
"key": "to_time",
"value": "${__to}"
},
{
"key": "acctNumber",
"value": "${query_acct_number}"
},
{
"key": "udid",
"value": "${query_udid}"
},
{
"key": "operator_id",
"value": "${operator_id}"
},
{
"key": "institute_id",
"value": "${institute_id}"
},
{
"key": "top10udid",
"value": "${top10Udid}"
},
{
"key": "veriid_trans_id",
"value": "${query_veriid_trans_id}"
},
{
"key": "merchant_id",
"value": "${merchant_id}"
},
{
"key": "auth_token",
"value": "${auth_token}"
}
]
}
}
],
"title": "UDID Relation II",
"transformations": [
{
"id": "organize",
"options": {}
}
],
"type": "volkovlabs-echarts-panel"
}
],
"preload": false,
"refresh": "",
"schemaVersion": 40,
"tags": [],
"templating": {
"list": [
{
"current": {
"text": "HT158004",
"value": "HT158004"
},
"datasource": {
"type": "yesoreyeram-infinity-datasource",
"uid": "aegaeyjq187b4e"
},
"definition": "",
"description": "",
"hide": 2,
"includeAll": false,
"label": "operator_id",
"name": "operator_id",
"options": [],
"query": {
"infinityQuery": {
"columns": [],
"filters": [],
"format": "table",
"parser": "backend",
"refId": "variable",
"root_selector": "",
"source": "url",
"type": "json",
"url": "/smartfds-adm-web/report/api/operator-id",
"url_options": {
"data": "",
"method": "GET",
"params": [
{
"key": "email",
"value": "${user_email}"
},
{
"key": "auth_token",
"value": "${auth_token}"
}
]
}
},
"query": "",
"queryType": "infinity"
},
"refresh": 1,
"regex": "",
"type": "query"
},
{
"current": {
"text": "HT158004",
"value": "HT158004"
},
"name": "d_operator_id",
"options": [
{
"selected": true,
"text": "HT158004",
"value": "HT158004"
}
],
"query": "${operator_id}",
"type": "custom"
},
{
"current": {
"text": "11008",
"value": "11008"
},
"datasource": {
"type": "yesoreyeram-infinity-datasource",
"uid": "bei5nq7vsfxmoc"
},
"definition": "",
"includeAll": false,
"label": "institute_id",
"name": "institute_id",
"options": [],
"query": {
"infinityQuery": {
"columns": [],
"filters": [],
"format": "table",
"parser": "backend",
"refId": "variable",
"root_selector": "",
"source": "url",
"type": "json",
"url": "/report/api/institute-id",
"url_options": {
"data": "",
"method": "GET",
"params": [
{
"key": "operatorId",
"value": "$operator_id"
},
{
"key": "auth_token",
"value": "${auth_token}"
}
]
}
},
"query": "",
"queryType": "infinity"
},
"refresh": 1,
"regex": "",
"sort": 2,
"type": "query"
},
{
"current": {
"text": "Select",
"value": "*"
},
"datasource": {
"type": "yesoreyeram-infinity-datasource",
"uid": "bei5nq7vsfxmoc"
},
"definition": "",
"label": "merchant_id",
"name": "merchant_id",
"options": [],
"query": {
"infinityQuery": {
"columns": [],
"filters": [],
"format": "table",
"parser": "backend",
"refId": "variable",
"root_selector": "",
"source": "url",
"type": "json",
"url": "/report/api/merchant-id",
"url_options": {
"data": "",
"method": "GET",
"params": [
{
"key": "operatorId",
"value": "$operator_id"
},
{
"key": "instituteId",
"value": "$institute_id"
},
{
"key": "auth_token",
"value": "${auth_token}"
}
]
}
},
"query": "",
"queryType": "infinity"
},
"refresh": 1,
"regex": "",
"type": "query"
},
{
"current": {
"text": "Select (Top10)",
"value": ""
},
"datasource": {
"type": "yesoreyeram-infinity-datasource",
"uid": "bei5nq7vsfxmoc"
},
"definition": "",
"label": "top10-udid",
"name": "top10Udid",
"options": [],
"query": {
"infinityQuery": {
"columns": [
{
"selector": "label",
"text": "label",
"type": "string"
},
{
"selector": "value",
"text": "value",
"type": "string"
}
],
"filters": [],
"format": "table",
"parser": "backend",
"refId": "variable",
"root_selector": "$",
"source": "url",
"type": "json",
"url": "/report/api/top10udid",
"url_options": {
"data": "",
"method": "GET",
"params": [
{
"key": "operatorId",
"value": "$operator_id"
},
{
"key": "instituteId",
"value": "$institute_id"
},
{
"key": "merchantId",
"value": "$merchant_id"
},
{
"key": "auth_token",
"value": "${auth_token}"
}
]
}
},
"query": "",
"queryType": "infinity"
},
"refresh": 1,
"regex": "",
"type": "query"
},
{
"current": {
"text": "",
"value": ""
},
"name": "query_udid",
"options": [
{
"selected": true,
"text": "",
"value": ""
}
],
"query": "",
"type": "textbox"
},
{
"current": {
"text": "",
"value": ""
},
"label": "query ip",
"name": "query_ip",
"options": [
{
"selected": true,
"text": "",
"value": ""
}
],
"query": "",
"type": "textbox"
},
{
"current": {
"text": "",
"value": ""
},
"name": "query_acct_number",
"options": [
{
"selected": true,
"text": "",
"value": ""
}
],
"query": "",
"type": "textbox"
},
{
"current": {
"text": "",
"value": ""
},
"description": "",
"name": "query_veriid_trans_id",
"options": [
{
"selected": true,
"text": "",
"value": ""
}
],
"query": "",
"type": "textbox"
},
{
"current": {
"text": "O000",
"value": "O000"
},
"datasource": {
"type": "mysql",
"uid": "a76b20bd-1896-4924-8e9c-7aa092df7078"
},
"definition": "SELECT UPPER(SUBSTRING_INDEX(SUBSTRING_INDEX('${__user.email}', '@', -1),'.',-1)) AS operator\n",
"hide": 2,
"name": "user_operator_id",
"options": [],
"query": "SELECT UPPER(SUBSTRING_INDEX(SUBSTRING_INDEX('${__user.email}', '@', -1),'.',-1)) AS operator\n",
"refresh": 1,
"regex": "",
"type": "query"
},
{
"current": {
"text": "I000",
"value": "I000"
},
"datasource": {
"type": "mysql",
"uid": "a76b20bd-1896-4924-8e9c-7aa092df7078"
},
"definition": "SELECT UPPER(SUBSTRING_INDEX(SUBSTRING_INDEX('${__user.email}', '@', -1),'.',1)) AS institute",
"hide": 2,
"name": "user_institute_id",
"options": [],
"query": "SELECT UPPER(SUBSTRING_INDEX(SUBSTRING_INDEX('${__user.email}', '@', -1),'.',1)) AS institute",
"refresh": 1,
"regex": "",
"type": "query"
},
{
"current": {
"text": "SYSADMIN",
"value": "SYSADMIN"
},
"datasource": {
"type": "mysql",
"uid": "a76b20bd-1896-4924-8e9c-7aa092df7078"
},
"definition": "SELECT UPPER(SUBSTRING_INDEX('${__user.email}', '@', 1)) AS account;",
"hide": 2,
"name": "user_account",
"options": [],
"query": "SELECT UPPER(SUBSTRING_INDEX('${__user.email}', '@', 1)) AS account;",
"refresh": 1,
"regex": "",
"type": "query"
},
{
"current": {
"text": "%",
"value": "%"
},
"datasource": {
"type": "mysql",
"uid": "a76b20bd-1896-4924-8e9c-7aa092df7078"
},
"definition": "SELECT \nCASE \nWHEN institute_type = 0 THEN '%'\nWHEN institute_type != 0 THEN operator_id \nEND AS operator_param\nFROM t_institute where institute_id = \n(select institute_id \nfrom t_institute_user \nwhere UPPER(account) = UPPER('${user_account}') and UPPER(institute_id) = UPPER('${user_institute_id}')) ;\n",
"hide": 2,
"name": "query_operator_param",
"options": [],
"query": "SELECT \nCASE \nWHEN institute_type = 0 THEN '%'\nWHEN institute_type != 0 THEN operator_id \nEND AS operator_param\nFROM t_institute where institute_id = \n(select institute_id \nfrom t_institute_user \nwhere UPPER(account) = UPPER('${user_account}') and UPPER(institute_id) = UPPER('${user_institute_id}')) ;\n",
"refresh": 1,
"regex": "",
"type": "query"
},
{
"current": {
"text": "",
"value": ""
},
"hide": 2,
"label": "auth_token",
"name": "auth_token",
"options": [],
"query": "",
"type": "custom"
},
{
"current": {
"text": "sysadmin@i000.o000",
"value": "sysadmin@i000.o000"
},
"hide": 2,
"name": "user_email",
"options": [
{
"selected": true,
"text": "sysadmin@i000.o000",
"value": "sysadmin@i000.o000"
}
],
"query": "${__user.email}",
"type": "custom"
},
{
"current": {
"text": "(operator_id:${operator_id} AND institute_id:${institute_id} AND NOT operator_id:1751247809138)",
"value": "(operator_id:${operator_id} AND institute_id:${institute_id} AND NOT operator_id:1751247809138)"
},
"datasource": {
"type": "yesoreyeram-infinity-datasource",
"uid": "aegaeyjq187b4e"
},
"definition": "",
"hide": 2,
"name": "decision_query",
"options": [],
"query": {
"infinityQuery": {
"columns": [],
"filters": [],
"format": "table",
"parser": "backend",
"refId": "variable",
"root_selector": "",
"source": "url",
"type": "json",
"url": "/smartfds-adm-web/report/api/decision-query",
"url_options": {
"data": "",
"method": "GET",
"params": [
{
"key": "operator_id",
"value": "${operator_id}"
},
{
"key": "institute_id",
"value": "${institute_id}"
},
{
"key": "auth_token",
"value": "${auth_token}"
},
{
"key": "merchant_id",
"value": "${merchant_id}"
}
]
}
},
"query": "",
"queryType": "infinity"
},
"refresh": 2,
"regex": "",
"type": "query"
},
{
"current": {
"text": "( (process_type:01 AND operator_id:${operator_id} AND institute_id:${institute_id} AND NOT operator_id:1751247809322) OR (!process_type:* AND operator_id:${operator_id} AND institute_id:${institute_id}))",
"value": "( (process_type:01 AND operator_id:${operator_id} AND institute_id:${institute_id} AND NOT operator_id:1751247809322) OR (!process_type:* AND operator_id:${operator_id} AND institute_id:${institute_id}))"
},
"datasource": {
"type": "yesoreyeram-infinity-datasource",
"uid": "aegaeyjq187b4e"
},
"definition": "",
"hide": 2,
"name": "process_query",
"options": [],
"query": {
"infinityQuery": {
"columns": [],
"filters": [],
"format": "table",
"parser": "backend",
"refId": "variable",
"root_selector": "",
"source": "url",
"type": "json",
"url": "/smartfds-adm-web/report/api/process-query",
"url_options": {
"data": "",
"method": "GET",
"params": [
{
"key": "operator_id",
"value": "${operator_id}"
},
{
"key": "institute_id",
"value": "${institute_id}"
},
{
"key": "auth_token",
"value": "${auth_token}"
},
{
"key": "merchant_id",
"value": "${merchant_id}"
}
]
}
},
"query": "",
"queryType": "infinity"
},
"refresh": 1,
"regex": "",
"type": "query"
}
]
},
"time": {
"from": "now-1M/M",
"to": "now/d"
},
"timepicker": {},
"timezone": "browser",
"title": "關連圖-RT990101",
"uid": "RT990101",
"version": 142,
"weekStart": ""
}
(5-5/5)