diff options
| -rw-r--r-- | cn-admin/src/main/java/net/geedge/modules/report/service/impl/ReportJobServiceImpl.java | 2 | ||||
| -rw-r--r-- | cn-admin/src/main/resources/db/R__AZ_magic_api_file.sql | 16 |
2 files changed, 9 insertions, 9 deletions
diff --git a/cn-admin/src/main/java/net/geedge/modules/report/service/impl/ReportJobServiceImpl.java b/cn-admin/src/main/java/net/geedge/modules/report/service/impl/ReportJobServiceImpl.java index bbf6a80..45a99f9 100644 --- a/cn-admin/src/main/java/net/geedge/modules/report/service/impl/ReportJobServiceImpl.java +++ b/cn-admin/src/main/java/net/geedge/modules/report/service/impl/ReportJobServiceImpl.java @@ -223,7 +223,7 @@ public class ReportJobServiceImpl extends ServiceImpl<ReportJobDao, ReportJob> i file.delete(); } FileUtil.writeBytes(html.getBytes(), file); - log.info("pdf command--> node "+Constant.CONFIG_PATH+File.separator+"report.js "+Constant.TEMP_PATH+File.separator+StrUtil.C_SPACE+htmlName+StrUtil.C_SPACE+Constant.TEMP_PATH+File.separator+fileName); + log.info("pdf command--> node "+Constant.CONFIG_PATH+File.separator+"report.js "+Constant.TEMP_PATH+File.separator+htmlName+StrUtil.C_SPACE+Constant.TEMP_PATH+File.separator+fileName); RuntimeUtil.exec("node "+Constant.CONFIG_PATH+File.separator+"report.js "+Constant.TEMP_PATH+File.separator+htmlName+StrUtil.C_SPACE+Constant.TEMP_PATH+File.separator+fileName); }catch(Exception e) { html=""; diff --git a/cn-admin/src/main/resources/db/R__AZ_magic_api_file.sql b/cn-admin/src/main/resources/db/R__AZ_magic_api_file.sql index 3a8c8f7..25e5d9d 100644 --- a/cn-admin/src/main/resources/db/R__AZ_magic_api_file.sql +++ b/cn-admin/src/main/resources/db/R__AZ_magic_api_file.sql @@ -6,9 +6,9 @@ SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- DROP TABLE IF EXISTS `magic_api_file`; CREATE TABLE `magic_api_file` ( - `file_path` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, - `file_content` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, - PRIMARY KEY (`file_path`) USING BTREE + `file_path` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `file_content` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, + PRIMARY KEY (`file_path`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- @@ -106,7 +106,7 @@ INSERT INTO `magic_api_file` VALUES ('/api/interface/application/performance/ove INSERT INTO `magic_api_file` VALUES ('/api/interface/application/performance/overview/各维度重传率.ms', '{\n \"properties\" : { },\n \"id\" : \"copy1673344841304d4825\",\n \"script\" : null,\n \"groupId\" : \"34a616d95df64af18b77542132670eed\",\n \"name\" : \"各维度重传率\",\n \"createTime\" : null,\n \"updateTime\" : 1693549817761,\n \"lock\" : null,\n \"createBy\" : null,\n \"updateBy\" : \"ljy\",\n \"path\" : \"/dimensionPacketRetransPercent\",\n \"method\" : \"GET\",\n \"parameters\" : [ {\n \"name\" : \"startTime\",\n \"value\" : \"1693530180\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"endTime\",\n \"value\" : \"1693533780\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"type\",\n \"value\" : \"ip\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"params\",\n \"value\" : \"\'116.178.236.216\',\'2408:877a:2000:3:4000:0:b00:100\',\'116.178.78.204\'\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"cycle\",\n \"value\" : \"1\",\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"options\" : [ ],\n \"requestBody\" : \"\",\n \"headers\" : [ ],\n \"paths\" : [ ],\n \"responseBody\" : \"{\\n \\\"code\\\": 400,\\n \\\"time\\\": \\\"2023-01-13 02:51:13\\\",\\n \\\"message\\\": \\\"参数[type]为必填项\\\"\\n}\",\n \"description\" : null,\n \"requestBodyDefinition\" : null,\n \"responseBodyDefinition\" : {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"code\",\n \"value\" : \"400\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"time\",\n \"value\" : \"2023-01-13 02:51:13\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"message\",\n \"value\" : \"参数[type]为必填项\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }\n}\r\n================================\r\nimport http;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport \'@/pre/timeHandle\' as preHandle;\r\nimport \'@/post/table\' as objHandle\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult\r\nimport \'@/pre/typeHandle6th\' as typeHandle6th;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"type\":type,\r\n \"params\":params,\r\n \"cycle\":cycle\r\n}\r\n\r\npreHandle(parameter);\r\ntypeHandle6th(parameter);\r\n\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\":\\\"<#if cycle?default(\'\')?trim? length gt 0 && cycle ==\'1\'> SELECT ${fieldName} AS ${lad}, ROUND(AVG(pkt_retrans_ratio), 4) AS pkt_retrans_percent FROM ${tableName} WHERE stat_time >= ${startTime}-${timeDiff} AND stat_time < ${endTime}-${timeDiff} AND isNotNull(pkt_retrans_ratio) AND ${lad} IN (<#if params?default(\'\')?trim? length gt 0> ${params} </#if>)<#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> GROUP BY ${lad} <#else> SELECT ${fieldName} AS ${lad}, ROUND(AVG(pkt_retrans_ratio), 4) AS pkt_retrans_percent FROM ${tableName} WHERE stat_time >= ${startTime} AND stat_time < ${endTime} AND isNotNull(pkt_retrans_ratio) AND ${lad} IN (<#if params?default(\'\')?trim? length gt 0> ${params} </#if>)<#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> GROUP BY ${lad} </#if>\\\",\\\"option\\\":\\\"real-time\\\",\\\"format\\\":\\\"json\\\"}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"applicationPerformanceOverviewDimensionPacketRetransPercent\",q,parameter);\r\nvar param = jsonUtil.toBean(result,HashMap.class);\r\nvar galaxyRes = getGalaxyResult(param);\r\n\r\n\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar result = objHandle(galaxyRes);\r\n\r\nreturn result;'); INSERT INTO `magic_api_file` VALUES ('/api/interface/application/performance/overview/整体HTTP响应延迟.ms', '{\n \"properties\" : { },\n \"id\" : \"copy1673944391203d81567\",\n \"script\" : null,\n \"groupId\" : \"34a616d95df64af18b77542132670eed\",\n \"name\" : \"整体HTTP响应延迟\",\n \"createTime\" : null,\n \"updateTime\" : 1673945439663,\n \"lock\" : null,\n \"createBy\" : \"th\",\n \"updateBy\" : \"ljy\",\n \"path\" : \"/totalHttpResponseDelay\",\n \"method\" : \"GET\",\n \"parameters\" : [ {\n \"name\" : \"startTime\",\n \"value\" : \"1673940665\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"endTime\",\n \"value\" : \"1673944265\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"options\" : [ ],\n \"requestBody\" : \"\",\n \"headers\" : [ ],\n \"paths\" : [ ],\n \"responseBody\" : \"{\\n \\\"status\\\": 200,\\n \\\"code\\\": 200,\\n \\\"queryKey\\\": \\\"7c2ec67593c6fc913a484c5cc74e5eec\\\",\\n \\\"success\\\": true,\\n \\\"message\\\": null,\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 6,\\n \\\"rows_read\\\": 119160,\\n \\\"bytes_read\\\": 3512816,\\n \\\"result_size\\\": 5141,\\n \\\"result_rows\\\": 101\\n },\\n \\\"job\\\": null,\\n \\\"formatType\\\": \\\"json\\\",\\n \\\"meta\\\": [{\\n \\\"name\\\": \\\"stat_time\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Dimension\\\"\\n }, {\\n \\\"name\\\": \\\"http_response_latency\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }],\\n \\\"data\\\": {\\n \\\"resultType\\\": \\\"matrix\\\",\\n \\\"result\\\": [{\\n \\\"type\\\": \\\"httpResponseLatency\\\",\\n \\\"httpResponseLatency\\\": {\\n \\\"values\\\": [\\n [\\\"1673940636\\\", \\\"87\\\"],\\n [\\\"1673940672\\\", \\\"254\\\"],\\n [\\\"1673940708\\\", \\\"170\\\"],\\n [\\\"1673940744\\\", \\\"162\\\"],\\n [\\\"1673940780\\\", \\\"361\\\"],\\n [\\\"1673940816\\\", \\\"239\\\"],\\n [\\\"1673940852\\\", \\\"108\\\"],\\n [\\\"1673940888\\\", \\\"172\\\"],\\n [\\\"1673940924\\\", \\\"129\\\"],\\n [\\\"1673940960\\\", \\\"189\\\"],\\n [\\\"1673940996\\\", \\\"165\\\"],\\n [\\\"1673941032\\\", \\\"328\\\"],\\n [\\\"1673941068\\\", \\\"283\\\"],\\n [\\\"1673941104\\\", \\\"101\\\"],\\n [\\\"1673941140\\\", \\\"146\\\"],\\n [\\\"1673941176\\\", \\\"113\\\"],\\n [\\\"1673941212\\\", \\\"97\\\"],\\n [\\\"1673941248\\\", \\\"149\\\"],\\n [\\\"1673941284\\\", \\\"251\\\"],\\n [\\\"1673941320\\\", \\\"277\\\"],\\n [\\\"1673941356\\\", \\\"254\\\"],\\n [\\\"1673941392\\\", \\\"224\\\"],\\n [\\\"1673941428\\\", \\\"209\\\"],\\n [\\\"1673941464\\\", \\\"253\\\"],\\n [\\\"1673941500\\\", \\\"420\\\"],\\n [\\\"1673941536\\\", \\\"117\\\"],\\n [\\\"1673941572\\\", \\\"282\\\"],\\n [\\\"1673941608\\\", \\\"88\\\"],\\n [\\\"1673941644\\\", \\\"182\\\"],\\n [\\\"1673941680\\\", \\\"243\\\"],\\n [\\\"1673941716\\\", \\\"274\\\"],\\n [\\\"1673941752\\\", \\\"196\\\"],\\n [\\\"1673941788\\\", \\\"85\\\"],\\n [\\\"1673941824\\\", \\\"268\\\"],\\n [\\\"1673941860\\\", \\\"119\\\"],\\n [\\\"1673941896\\\", \\\"242\\\"],\\n [\\\"1673941932\\\", \\\"228\\\"],\\n [\\\"1673941968\\\", \\\"122\\\"],\\n [\\\"1673942004\\\", \\\"186\\\"],\\n [\\\"1673942040\\\", \\\"120\\\"],\\n [\\\"1673942076\\\", \\\"279\\\"],\\n [\\\"1673942112\\\", \\\"223\\\"],\\n [\\\"1673942148\\\", \\\"195\\\"],\\n [\\\"1673942184\\\", \\\"225\\\"],\\n [\\\"1673942220\\\", \\\"154\\\"],\\n [\\\"1673942256\\\", \\\"404\\\"],\\n [\\\"1673942292\\\", \\\"147\\\"],\\n [\\\"1673942328\\\", \\\"195\\\"],\\n [\\\"1673942364\\\", \\\"122\\\"],\\n [\\\"1673942400\\\", \\\"219\\\"],\\n [\\\"1673942436\\\", \\\"181\\\"],\\n [\\\"1673942472\\\", \\\"94\\\"],\\n [\\\"1673942508\\\", \\\"143\\\"],\\n [\\\"1673942544\\\", \\\"249\\\"],\\n [\\\"1673942580\\\", \\\"123\\\"],\\n [\\\"1673942616\\\", \\\"110\\\"],\\n [\\\"1673942652\\\", \\\"139\\\"],\\n [\\\"1673942688\\\", \\\"134\\\"],\\n [\\\"1673942724\\\", \\\"128\\\"],\\n [\\\"1673942760\\\", \\\"205\\\"],\\n [\\\"1673942796\\\", \\\"78\\\"],\\n [\\\"1673942832\\\", \\\"95\\\"],\\n [\\\"1673942868\\\", \\\"173\\\"],\\n [\\\"1673942904\\\", \\\"170\\\"],\\n [\\\"1673942940\\\", \\\"128\\\"],\\n [\\\"1673942976\\\", \\\"370\\\"],\\n [\\\"1673943012\\\", \\\"211\\\"],\\n [\\\"1673943048\\\", \\\"330\\\"],\\n [\\\"1673943084\\\", \\\"286\\\"],\\n [\\\"1673943120\\\", \\\"144\\\"],\\n [\\\"1673943156\\\", \\\"91\\\"],\\n [\\\"1673943192\\\", \\\"139\\\"],\\n [\\\"1673943228\\\", \\\"256\\\"],\\n [\\\"1673943264\\\", \\\"104\\\"],\\n [\\\"1673943300\\\", \\\"216\\\"],\\n [\\\"1673943336\\\", \\\"92\\\"],\\n [\\\"1673943372\\\", \\\"165\\\"],\\n [\\\"1673943408\\\", \\\"203\\\"],\\n [\\\"1673943444\\\", \\\"503\\\"],\\n [\\\"1673943480\\\", \\\"211\\\"],\\n [\\\"1673943516\\\", \\\"248\\\"],\\n [\\\"1673943552\\\", \\\"147\\\"],\\n [\\\"1673943588\\\", \\\"157\\\"],\\n [\\\"1673943624\\\", \\\"283\\\"],\\n [\\\"1673943660\\\", \\\"116\\\"],\\n [\\\"1673943696\\\", \\\"174\\\"],\\n [\\\"1673943732\\\", \\\"170\\\"],\\n [\\\"1673943768\\\", \\\"209\\\"],\\n [\\\"1673943804\\\", \\\"245\\\"],\\n [\\\"1673943840\\\", \\\"277\\\"],\\n [\\\"1673943876\\\", \\\"116\\\"],\\n [\\\"1673943912\\\", \\\"240\\\"],\\n [\\\"1673943948\\\", \\\"161\\\"],\\n [\\\"1673943984\\\", \\\"100\\\"],\\n [\\\"1673944020\\\", \\\"170\\\"],\\n [\\\"1673944056\\\", \\\"152\\\"],\\n [\\\"1673944092\\\", \\\"175\\\"],\\n [\\\"1673944128\\\", \\\"155\\\"],\\n [\\\"1673944164\\\", \\\"82\\\"],\\n [\\\"1673944200\\\", \\\"298\\\"],\\n [\\\"1673944236\\\", \\\"253\\\"]\\n ],\\n \\\"analysis\\\": {\\n \\\"avg\\\": \\\"5.4\\\",\\n \\\"max\\\": \\\"503.0\\\",\\n \\\"min\\\": \\\"78.0\\\",\\n \\\"p95\\\": \\\"330.0\\\"\\n }\\n }\\n }]\\n },\\n \\\"msg\\\": \\\"OK\\\"\\n}\",\n \"description\" : null,\n \"requestBodyDefinition\" : null,\n \"responseBodyDefinition\" : {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"status\",\n \"value\" : \"200\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"code\",\n \"value\" : \"200\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"queryKey\",\n \"value\" : \"7c2ec67593c6fc913a484c5cc74e5eec\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"success\",\n \"value\" : \"true\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Boolean\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"message\",\n \"value\" : \"null\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"statistics\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"elapsed\",\n \"value\" : \"6\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"rows_read\",\n \"value\" : \"119160\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"bytes_read\",\n \"value\" : \"3512816\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result_size\",\n \"value\" : \"5141\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result_rows\",\n \"value\" : \"101\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }, {\n \"name\" : \"job\",\n \"value\" : \"null\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"formatType\",\n \"value\" : \"json\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"meta\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Array\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"name\",\n \"value\" : \"stat_time\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"type\",\n \"value\" : \"long\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"category\",\n \"value\" : \"Dimension\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n } ]\n }, {\n \"name\" : \"data\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"resultType\",\n \"value\" : \"matrix\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Array\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"type\",\n \"value\" : \"httpResponseLatency\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"httpResponseLatency\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"values\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Array\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Array\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"\",\n \"value\" : \"1673940636\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n } ]\n }, {\n \"name\" : \"analysis\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"avg\",\n \"value\" : \"5.4\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"max\",\n \"value\" : \"503.0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"min\",\n \"value\" : \"78.0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"p95\",\n \"value\" : \"330.0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n } ]\n } ]\n } ]\n } ]\n }, {\n \"name\" : \"msg\",\n \"value\" : \"OK\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }\n}\r\n================================\r\nimport http;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport \'@/pre/timeHandle\' as preHandle;\r\nimport \'@/public/getPercentile\' as getPercentile\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult\r\n\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime\r\n}\r\n\r\npreHandle(parameter);\r\n\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT TIME_FLOOR_WITH_FILL(common_recv_time,\\\'PT${step}S\\\',\\\'zero\\\') AS stat_time,IFNULL(ROUND(AVG(http_response_latency_ms)),0) AS http_response_latency FROM session_record_cn WHERE common_recv_time >= ${startTime} AND common_recv_time < ${endTime} AND common_schema_type = \\\'HTTP\\\' GROUP BY stat_time ORDER BY stat_time ASC\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"applicationPerformanceOverviewHttpResponseDelay\",q,parameter);\r\nvar param = jsonUtil.toBean(result,HashMap.class);\r\nvar result = getGalaxyResult(param);\r\n\r\n\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nif(result.success){\r\n var o = {};\r\n o.resultType=\"matrix\";\r\n var old = new ArrayList();\r\n var list = result.data;\r\n var newList = new ArrayList();\r\n for(i,j in list){\r\n newList.add(list[i]);\r\n }\r\n if(list.length > 0){\r\n for(i,j in list){\r\n var pojo = list[i];\r\n var tempObj= {};\r\n for (key,value in pojo){\r\n if(key.indexOf(\"stat_time\") != -1){\r\n tempObj[\'statTime\'] = pojo[key]\r\n }else if(key.indexOf(\"establish_latency_ms\") != -1){\r\n tempObj[\'establishLatencyMs\'] = pojo[key]\r\n }else if(key.indexOf(\"http_response_latency\") != -1){\r\n tempObj[\'httpResponseLatency\'] = pojo[key]\r\n }else if(key.indexOf(\"ssl_con_latency\") != -1){\r\n tempObj[\'sslConLatency\'] = pojo[key]\r\n }else if(key.indexOf(\"tcp_lostlen_percent\") != -1){\r\n tempObj[\'tcpLostlenPercent\'] = pojo[key]\r\n }else if(key.indexOf(\"pkt_retrans_percent\") != -1){\r\n tempObj[\'pktRetransPercent\'] = pojo[key]\r\n }\r\n }\r\n list[i] = tempObj;\r\n list[i].statTime = list[i].statTime;\r\n }\r\n var establishLatencyMs = [];\r\n var httpResponseLatency = [];\r\n var sslConLatency = [];\r\n var tcpLostlenPercent = [];\r\n var pktRetransPercent = [];\r\n for(key,value in list[0]){\r\n if(key.indexOf(\"establishLatencyMs\") != -1){\r\n establishLatencyMs.push(key);\r\n } else if(key.indexOf(\"httpResponseLatency\") != -1){\r\n httpResponseLatency.push(key);\r\n } else if(key.indexOf(\"sslConLatency\") != -1){\r\n sslConLatency.push(key);\r\n } else if(key.indexOf(\"tcpLostlenPercent\") != -1){\r\n tcpLostlenPercent.push(key);\r\n } else if(key.indexOf(\"pktRetransPercent\") != -1){\r\n pktRetransPercent.push(key);\r\n }\r\n }\r\n var map = new HashMap();\r\n map.put(\"establishLatencyMs\",\"establish_latency_ms\");\r\n map.put(\"httpResponseLatency\",\"http_response_latency\");\r\n map.put(\"sslConLatency\",\"ssl_con_latency\");\r\n map.put(\"tcpLostlenPercent\",\"tcp_lostlen_percent\");\r\n map.put(\"pktRetransPercent\",\"pkt_retrans_percent\");\r\n var type = {};\r\n type.httpResponseLatency = httpResponseLatency;\r\n for(key,value in type){\r\n var obj = {};\r\n obj.type = key;\r\n var typeKey = type[key];\r\n for(m,n in typeKey){\r\n var zong = {};\r\n var analysis = {};\r\n var values = new ArrayList();\r\n list.sort((a,b)=>a.statTime.asDouble()-b.statTime.asDouble());\r\n var sumValue = 0;\r\n for(i,j in list){\r\n var pojo = list[i];\r\n var tempArray = new ArrayList();\r\n tempArray.add(pojo[\"statTime\"]);\r\n tempArray.add(pojo[typeKey[m]] + \"\");\r\n values.add(tempArray);\r\n }\r\n for(i,j in newList){\r\n var pojo = newList[i];\r\n var field = map.get(typeKey[m]);\r\n var value = pojo[field].asDouble();\r\n sumValue += value;\r\n }\r\n analysis.avg = (sumValue/parameter.timeDiff).toFixed(2).asDouble();\r\n if(key==\"bytes\"){\r\n analysis.avg = analysis.avg * 8;\r\n }\r\n analysis.avg=analysis.avg+\"\";\r\n \r\n var plist = [];\r\n for(i,j in values){\r\n plist.push(values[i][1].asDouble());\r\n }\r\n analysis.max = plist.max()+\"\";\r\n analysis.min = plist.min()+\"\";\r\n analysis.p95 = getPercentile(plist, 0.95)+\"\";\r\n \r\n \r\n zong.values = values;\r\n zong.analysis = analysis;\r\n \r\n obj[typeKey[m]] = zong;\r\n }\r\n old.add(obj);\r\n }\r\n }\r\n o.result = old;\r\n result.code=200;\r\n result.data=o;\r\n result.msg = result.message;\r\n result.message=null;\r\n}\r\n\r\nreturn result;'); INSERT INTO `magic_api_file` VALUES ('/api/interface/application/performance/overview/整体SSL握手延迟.ms', '{\n \"properties\" : { },\n \"id\" : \"copy1673945415748d10175\",\n \"script\" : null,\n \"groupId\" : \"34a616d95df64af18b77542132670eed\",\n \"name\" : \"整体SSL握手延迟\",\n \"createTime\" : null,\n \"updateTime\" : 1673945533814,\n \"lock\" : null,\n \"createBy\" : \"th\",\n \"updateBy\" : \"ljy\",\n \"path\" : \"/totalSslConDelay\",\n \"method\" : \"GET\",\n \"parameters\" : [ {\n \"name\" : \"startTime\",\n \"value\" : \"1673940665\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"endTime\",\n \"value\" : \"1673944265\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"options\" : [ ],\n \"requestBody\" : \"\",\n \"headers\" : [ ],\n \"paths\" : [ ],\n \"responseBody\" : \"{\\n \\\"status\\\": 200,\\n \\\"code\\\": 200,\\n \\\"queryKey\\\": \\\"d6f27783c28c05d135bd7f3288ecc717\\\",\\n \\\"success\\\": true,\\n \\\"message\\\": null,\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 4,\\n \\\"rows_read\\\": 119160,\\n \\\"bytes_read\\\": 3512816,\\n \\\"result_size\\\": 4343,\\n \\\"result_rows\\\": 101\\n },\\n \\\"job\\\": null,\\n \\\"formatType\\\": \\\"json\\\",\\n \\\"meta\\\": [{\\n \\\"name\\\": \\\"stat_time\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Dimension\\\"\\n }, {\\n \\\"name\\\": \\\"ssl_con_latency\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }],\\n \\\"data\\\": {\\n \\\"resultType\\\": \\\"matrix\\\",\\n \\\"result\\\": [{\\n \\\"type\\\": \\\"sslConLatency\\\",\\n \\\"sslConLatency\\\": {\\n \\\"values\\\": [\\n [\\\"1673940636\\\", \\\"0\\\"],\\n [\\\"1673940672\\\", \\\"0\\\"],\\n [\\\"1673940708\\\", \\\"0\\\"],\\n [\\\"1673940744\\\", \\\"0\\\"],\\n [\\\"1673940780\\\", \\\"0\\\"],\\n [\\\"1673940816\\\", \\\"0\\\"],\\n [\\\"1673940852\\\", \\\"0\\\"],\\n [\\\"1673940888\\\", \\\"0\\\"],\\n [\\\"1673940924\\\", \\\"0\\\"],\\n [\\\"1673940960\\\", \\\"0\\\"],\\n [\\\"1673940996\\\", \\\"0\\\"],\\n [\\\"1673941032\\\", \\\"0\\\"],\\n [\\\"1673941068\\\", \\\"0\\\"],\\n [\\\"1673941104\\\", \\\"0\\\"],\\n [\\\"1673941140\\\", \\\"0\\\"],\\n [\\\"1673941176\\\", \\\"0\\\"],\\n [\\\"1673941212\\\", \\\"0\\\"],\\n [\\\"1673941248\\\", \\\"0\\\"],\\n [\\\"1673941284\\\", \\\"0\\\"],\\n [\\\"1673941320\\\", \\\"0\\\"],\\n [\\\"1673941356\\\", \\\"0\\\"],\\n [\\\"1673941392\\\", \\\"0\\\"],\\n [\\\"1673941428\\\", \\\"0\\\"],\\n [\\\"1673941464\\\", \\\"0\\\"],\\n [\\\"1673941500\\\", \\\"0\\\"],\\n [\\\"1673941536\\\", \\\"0\\\"],\\n [\\\"1673941572\\\", \\\"0\\\"],\\n [\\\"1673941608\\\", \\\"0\\\"],\\n [\\\"1673941644\\\", \\\"0\\\"],\\n [\\\"1673941680\\\", \\\"0\\\"],\\n [\\\"1673941716\\\", \\\"0\\\"],\\n [\\\"1673941752\\\", \\\"0\\\"],\\n [\\\"1673941788\\\", \\\"0\\\"],\\n [\\\"1673941824\\\", \\\"0\\\"],\\n [\\\"1673941860\\\", \\\"0\\\"],\\n [\\\"1673941896\\\", \\\"0\\\"],\\n [\\\"1673941932\\\", \\\"0\\\"],\\n [\\\"1673941968\\\", \\\"0\\\"],\\n [\\\"1673942004\\\", \\\"0\\\"],\\n [\\\"1673942040\\\", \\\"0\\\"],\\n [\\\"1673942076\\\", \\\"0\\\"],\\n [\\\"1673942112\\\", \\\"0\\\"],\\n [\\\"1673942148\\\", \\\"0\\\"],\\n [\\\"1673942184\\\", \\\"0\\\"],\\n [\\\"1673942220\\\", \\\"0\\\"],\\n [\\\"1673942256\\\", \\\"0\\\"],\\n [\\\"1673942292\\\", \\\"0\\\"],\\n [\\\"1673942328\\\", \\\"0\\\"],\\n [\\\"1673942364\\\", \\\"0\\\"],\\n [\\\"1673942400\\\", \\\"0\\\"],\\n [\\\"1673942436\\\", \\\"0\\\"],\\n [\\\"1673942472\\\", \\\"0\\\"],\\n [\\\"1673942508\\\", \\\"0\\\"],\\n [\\\"1673942544\\\", \\\"0\\\"],\\n [\\\"1673942580\\\", \\\"0\\\"],\\n [\\\"1673942616\\\", \\\"0\\\"],\\n [\\\"1673942652\\\", \\\"0\\\"],\\n [\\\"1673942688\\\", \\\"0\\\"],\\n [\\\"1673942724\\\", \\\"0\\\"],\\n [\\\"1673942760\\\", \\\"0\\\"],\\n [\\\"1673942796\\\", \\\"0\\\"],\\n [\\\"1673942832\\\", \\\"0\\\"],\\n [\\\"1673942868\\\", \\\"0\\\"],\\n [\\\"1673942904\\\", \\\"0\\\"],\\n [\\\"1673942940\\\", \\\"0\\\"],\\n [\\\"1673942976\\\", \\\"0\\\"],\\n [\\\"1673943012\\\", \\\"0\\\"],\\n [\\\"1673943048\\\", \\\"0\\\"],\\n [\\\"1673943084\\\", \\\"0\\\"],\\n [\\\"1673943120\\\", \\\"0\\\"],\\n [\\\"1673943156\\\", \\\"0\\\"],\\n [\\\"1673943192\\\", \\\"0\\\"],\\n [\\\"1673943228\\\", \\\"0\\\"],\\n [\\\"1673943264\\\", \\\"0\\\"],\\n [\\\"1673943300\\\", \\\"0\\\"],\\n [\\\"1673943336\\\", \\\"0\\\"],\\n [\\\"1673943372\\\", \\\"0\\\"],\\n [\\\"1673943408\\\", \\\"0\\\"],\\n [\\\"1673943444\\\", \\\"0\\\"],\\n [\\\"1673943480\\\", \\\"0\\\"],\\n [\\\"1673943516\\\", \\\"0\\\"],\\n [\\\"1673943552\\\", \\\"0\\\"],\\n [\\\"1673943588\\\", \\\"0\\\"],\\n [\\\"1673943624\\\", \\\"0\\\"],\\n [\\\"1673943660\\\", \\\"0\\\"],\\n [\\\"1673943696\\\", \\\"0\\\"],\\n [\\\"1673943732\\\", \\\"0\\\"],\\n [\\\"1673943768\\\", \\\"0\\\"],\\n [\\\"1673943804\\\", \\\"0\\\"],\\n [\\\"1673943840\\\", \\\"0\\\"],\\n [\\\"1673943876\\\", \\\"0\\\"],\\n [\\\"1673943912\\\", \\\"0\\\"],\\n [\\\"1673943948\\\", \\\"0\\\"],\\n [\\\"1673943984\\\", \\\"0\\\"],\\n [\\\"1673944020\\\", \\\"0\\\"],\\n [\\\"1673944056\\\", \\\"0\\\"],\\n [\\\"1673944092\\\", \\\"0\\\"],\\n [\\\"1673944128\\\", \\\"0\\\"],\\n [\\\"1673944164\\\", \\\"0\\\"],\\n [\\\"1673944200\\\", \\\"0\\\"],\\n [\\\"1673944236\\\", \\\"0\\\"]\\n ],\\n \\\"analysis\\\": {\\n \\\"avg\\\": \\\"0.0\\\",\\n \\\"max\\\": \\\"0.0\\\",\\n \\\"min\\\": \\\"0.0\\\",\\n \\\"p95\\\": \\\"0.0\\\"\\n }\\n }\\n }]\\n },\\n \\\"msg\\\": \\\"OK\\\"\\n}\",\n \"description\" : null,\n \"requestBodyDefinition\" : null,\n \"responseBodyDefinition\" : {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"status\",\n \"value\" : \"200\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"code\",\n \"value\" : \"200\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"queryKey\",\n \"value\" : \"d6f27783c28c05d135bd7f3288ecc717\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"success\",\n \"value\" : \"true\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Boolean\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"message\",\n \"value\" : \"null\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"statistics\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"elapsed\",\n \"value\" : \"4\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"rows_read\",\n \"value\" : \"119160\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"bytes_read\",\n \"value\" : \"3512816\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result_size\",\n \"value\" : \"4343\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result_rows\",\n \"value\" : \"101\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }, {\n \"name\" : \"job\",\n \"value\" : \"null\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"formatType\",\n \"value\" : \"json\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"meta\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Array\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"name\",\n \"value\" : \"stat_time\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"type\",\n \"value\" : \"long\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"category\",\n \"value\" : \"Dimension\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n } ]\n }, {\n \"name\" : \"data\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"resultType\",\n \"value\" : \"matrix\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Array\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"type\",\n \"value\" : \"sslConLatency\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"sslConLatency\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"values\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Array\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Array\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"\",\n \"value\" : \"1673940636\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n } ]\n }, {\n \"name\" : \"analysis\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"avg\",\n \"value\" : \"0.0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"max\",\n \"value\" : \"0.0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"min\",\n \"value\" : \"0.0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"p95\",\n \"value\" : \"0.0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n } ]\n } ]\n } ]\n } ]\n }, {\n \"name\" : \"msg\",\n \"value\" : \"OK\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }\n}\r\n================================\r\nimport http;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport \'@/pre/timeHandle\' as preHandle;\r\nimport \'@/public/getPercentile\' as getPercentile\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult\r\n\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime\r\n}\r\n\r\npreHandle(parameter);\r\n\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT TIME_FLOOR_WITH_FILL(common_recv_time,\\\'PT${step}S\\\',\\\'zero\\\') AS stat_time,IFNULL(ROUND(AVG(ssl_con_latency_ms)),0) AS ssl_con_latency FROM session_record_cn WHERE common_recv_time >= ${startTime} AND common_recv_time < ${endTime} AND common_schema_type = \\\'SSL\\\' GROUP BY stat_time ORDER BY stat_time ASC\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"applicationPerformanceOverviewHttpResponseDelay\",q,parameter);\r\nvar param = jsonUtil.toBean(result,HashMap.class);\r\nvar result = getGalaxyResult(param);\r\n\r\n\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nif(result.success){\r\n var o = {};\r\n o.resultType=\"matrix\";\r\n var old = new ArrayList();\r\n var list = result.data;\r\n var newList = new ArrayList();\r\n for(i,j in list){\r\n newList.add(list[i]);\r\n }\r\n if(list.length > 0){\r\n for(i,j in list){\r\n var pojo = list[i];\r\n var tempObj= {};\r\n for (key,value in pojo){\r\n if(key.indexOf(\"stat_time\") != -1){\r\n tempObj[\'statTime\'] = pojo[key]\r\n }else if(key.indexOf(\"establish_latency_ms\") != -1){\r\n tempObj[\'establishLatencyMs\'] = pojo[key]\r\n }else if(key.indexOf(\"http_response_latency\") != -1){\r\n tempObj[\'httpResponseLatency\'] = pojo[key]\r\n }else if(key.indexOf(\"ssl_con_latency\") != -1){\r\n tempObj[\'sslConLatency\'] = pojo[key]\r\n }else if(key.indexOf(\"tcp_lostlen_percent\") != -1){\r\n tempObj[\'tcpLostlenPercent\'] = pojo[key]\r\n }else if(key.indexOf(\"pkt_retrans_percent\") != -1){\r\n tempObj[\'pktRetransPercent\'] = pojo[key]\r\n }\r\n }\r\n list[i] = tempObj;\r\n list[i].statTime = list[i].statTime;\r\n }\r\n var establishLatencyMs = [];\r\n var httpResponseLatency = [];\r\n var sslConLatency = [];\r\n var tcpLostlenPercent = [];\r\n var pktRetransPercent = [];\r\n for(key,value in list[0]){\r\n if(key.indexOf(\"establishLatencyMs\") != -1){\r\n establishLatencyMs.push(key);\r\n } else if(key.indexOf(\"httpResponseLatency\") != -1){\r\n httpResponseLatency.push(key);\r\n } else if(key.indexOf(\"sslConLatency\") != -1){\r\n sslConLatency.push(key);\r\n } else if(key.indexOf(\"tcpLostlenPercent\") != -1){\r\n tcpLostlenPercent.push(key);\r\n } else if(key.indexOf(\"pktRetransPercent\") != -1){\r\n pktRetransPercent.push(key);\r\n }\r\n }\r\n var map = new HashMap();\r\n map.put(\"establishLatencyMs\",\"establish_latency_ms\");\r\n map.put(\"httpResponseLatency\",\"http_response_latency\");\r\n map.put(\"sslConLatency\",\"ssl_con_latency\");\r\n map.put(\"tcpLostlenPercent\",\"tcp_lostlen_percent\");\r\n map.put(\"pktRetransPercent\",\"pkt_retrans_percent\");\r\n var type = {};\r\n type.sslConLatency = sslConLatency;\r\n for(key,value in type){\r\n var obj = {};\r\n obj.type = key;\r\n var typeKey = type[key];\r\n for(m,n in typeKey){\r\n var zong = {};\r\n var analysis = {};\r\n var values = new ArrayList();\r\n list.sort((a,b)=>a.statTime.asDouble()-b.statTime.asDouble());\r\n var sumValue = 0;\r\n for(i,j in list){\r\n var pojo = list[i];\r\n var tempArray = new ArrayList();\r\n tempArray.add(pojo[\"statTime\"]);\r\n tempArray.add(pojo[typeKey[m]] + \"\");\r\n values.add(tempArray);\r\n }\r\n for(i,j in newList){\r\n var pojo = newList[i];\r\n var field = map.get(typeKey[m]);\r\n var value = pojo[field].asDouble();\r\n sumValue += value;\r\n }\r\n analysis.avg = (sumValue/parameter.timeDiff).toFixed(2).asDouble();\r\n if(key==\"bytes\"){\r\n analysis.avg = analysis.avg * 8;\r\n }\r\n analysis.avg=analysis.avg+\"\";\r\n \r\n var plist = [];\r\n for(i,j in values){\r\n plist.push(values[i][1].asDouble());\r\n }\r\n analysis.max = plist.max()+\"\";\r\n analysis.min = plist.min()+\"\";\r\n analysis.p95 = getPercentile(plist, 0.95)+\"\";\r\n \r\n \r\n zong.values = values;\r\n zong.analysis = analysis;\r\n \r\n obj[typeKey[m]] = zong;\r\n }\r\n old.add(obj);\r\n }\r\n }\r\n o.result = old;\r\n result.code=200;\r\n result.data=o;\r\n result.msg = result.message;\r\n result.message=null;\r\n}\r\n\r\nreturn result;'); -INSERT INTO `magic_api_file` VALUES ('/api/interface/application/performance/overview/整体流量统计曲线图.ms', '{\n \"properties\" : { },\n \"id\" : \"4e5a17b89e5e42dca5fb9b66e9022ce1\",\n \"script\" : null,\n \"groupId\" : \"34a616d95df64af18b77542132670eed\",\n \"name\" : \"整体流量统计曲线图\",\n \"createTime\" : null,\n \"updateTime\" : 1695198954697,\n \"lock\" : null,\n \"createBy\" : null,\n \"updateBy\" : \"ljy\",\n \"path\" : \"/totalTrafficAnalysis\",\n \"method\" : \"GET\",\n \"parameters\" : [ {\n \"name\" : \"startTime\",\n \"value\" : \"1695192478\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"endTime\",\n \"value\" : \"1695196078\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"options\" : [ ],\n \"requestBody\" : \"\",\n \"headers\" : [ ],\n \"paths\" : [ ],\n \"responseBody\" : \"{\\n \\\"status\\\": 200,\\n \\\"code\\\": 200,\\n \\\"queryKey\\\": \\\"18e4137d1bd55f82034d99e567f85b35\\\",\\n \\\"success\\\": true,\\n \\\"message\\\": null,\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 8,\\n \\\"rows_read\\\": 3494277,\\n \\\"bytes_read\\\": 27954216,\\n \\\"result_size\\\": 0,\\n \\\"result_rows\\\": 0\\n },\\n \\\"job\\\": null,\\n \\\"formatType\\\": \\\"json\\\",\\n \\\"meta\\\": [{\\n \\\"name\\\": \\\"stat_time\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Dimension\\\"\\n }, {\\n \\\"name\\\": \\\"total_bytes\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"inbound_bytes\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"outbound_bytes\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"internal_bytes\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"through_bytes\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"total_packets\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"inbound_packets\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"outbound_packets\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"internal_packets\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"through_packets\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"sessions\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"establish_latency_ms_avg\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"http_response_latency_avg\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"ssl_con_latency_avg\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"tcp_lostlen_percent_avg\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"pkt_retrans_percent_avg\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }],\\n \\\"data\\\": {\\n \\\"resultType\\\": \\\"matrix\\\",\\n \\\"result\\\": []\\n },\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT TIME_FLOOR_WITH_FILL(stat_time,\'PT1M\',\'zero\') AS stat_time, SUM(common_c2s_byte_num + common_s2c_byte_num) AS total_bytes, SUM(traffic_inbound_byte) AS inbound_bytes, SUM(traffic_outbound_byte) AS outbound_bytes, SUM(traffic_internal_byte) AS internal_bytes, SUM(traffic_through_byte) AS through_bytes, SUM(common_c2s_pkt_num + common_s2c_pkt_num) AS total_packets, SUM(traffic_inbound_pkt) AS inbound_packets, SUM(traffic_outbound_pkt) AS outbound_packets, SUM(traffic_internal_pkt) AS internal_packets, SUM(traffic_through_pkt) AS through_packets, SUM(common_sessions) AS sessions, IFNULL(ROUND(AVG(avg_establish_latency_ms), 4),0) AS establish_latency_ms_avg, IFNULL(ROUND(AVG(avg_http_response_latency_ms), 4),0) AS http_response_latency_avg, IFNULL(ROUND(AVG(avg_ssl_con_latency_ms), 4),0) AS ssl_con_latency_avg, IFNULL(ROUND(AVG(tcp_lostlen_ratio), 4),0) AS tcp_lostlen_percent_avg, IFNULL(ROUND(AVG(pkt_retrans_ratio), 4),0) AS pkt_retrans_percent_avg FROM metric_application WHERE stat_time >= 1 AND stat_time < 1673315583 GROUP BY stat_time ORDER BY stat_time ASC&format=json&option=real-time\\\",\\n \\\"msg\\\": \\\"OK\\\"\\n}\",\n \"description\" : null,\n \"requestBodyDefinition\" : null,\n \"responseBodyDefinition\" : {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"status\",\n \"value\" : \"200\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"code\",\n \"value\" : \"200\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"queryKey\",\n \"value\" : \"18e4137d1bd55f82034d99e567f85b35\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"success\",\n \"value\" : \"true\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Boolean\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"message\",\n \"value\" : \"null\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"statistics\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"elapsed\",\n \"value\" : \"8\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"rows_read\",\n \"value\" : \"3494277\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"bytes_read\",\n \"value\" : \"27954216\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result_size\",\n \"value\" : \"0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result_rows\",\n \"value\" : \"0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }, {\n \"name\" : \"job\",\n \"value\" : \"null\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"formatType\",\n \"value\" : \"json\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"meta\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Array\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"name\",\n \"value\" : \"stat_time\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"type\",\n \"value\" : \"long\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"category\",\n \"value\" : \"Dimension\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n } ]\n }, {\n \"name\" : \"data\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"resultType\",\n \"value\" : \"matrix\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Array\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }, {\n \"name\" : \"originalUrl\",\n \"value\" : \"http://192.168.44.55:9999/?query=SELECT TIME_FLOOR_WITH_FILL(stat_time,\'PT1M\',\'zero\') AS stat_time, SUM(common_c2s_byte_num + common_s2c_byte_num) AS total_bytes, SUM(traffic_inbound_byte) AS inbound_bytes, SUM(traffic_outbound_byte) AS outbound_bytes, SUM(traffic_internal_byte) AS internal_bytes, SUM(traffic_through_byte) AS through_bytes, SUM(common_c2s_pkt_num + common_s2c_pkt_num) AS total_packets, SUM(traffic_inbound_pkt) AS inbound_packets, SUM(traffic_outbound_pkt) AS outbound_packets, SUM(traffic_internal_pkt) AS internal_packets, SUM(traffic_through_pkt) AS through_packets, SUM(common_sessions) AS sessions, IFNULL(ROUND(AVG(avg_establish_latency_ms), 4),0) AS establish_latency_ms_avg, IFNULL(ROUND(AVG(avg_http_response_latency_ms), 4),0) AS http_response_latency_avg, IFNULL(ROUND(AVG(avg_ssl_con_latency_ms), 4),0) AS ssl_con_latency_avg, IFNULL(ROUND(AVG(tcp_lostlen_ratio), 4),0) AS tcp_lostlen_percent_avg, IFNULL(ROUND(AVG(pkt_retrans_ratio), 4),0) AS pkt_retrans_percent_avg FROM metric_application WHERE stat_time >= 1 AND stat_time < 1673315583 GROUP BY stat_time ORDER BY stat_time ASC&format=json&option=real-time\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"msg\",\n \"value\" : \"OK\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }\n}\r\n================================\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport \'@/pre/timeHandleNone\' as preHandle;\r\nimport \'@/post/object\' as objHandle\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult\r\nimport \'@/public/toHump\' as toHump\r\nimport \'@/public/getPercentile\' as getPercentile\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime\r\n}\r\n\r\npreHandle(parameter);\r\n\r\n\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\":\\\"SELECT TIME_FLOOR_WITH_FILL(stat_time,\'PT1M\',\'zero\') AS stat_time, SUM(common_c2s_byte_num + common_s2c_byte_num) AS total_bytes, SUM(traffic_inbound_byte) AS inbound_bytes, SUM(traffic_outbound_byte) AS outbound_bytes, SUM(traffic_internal_byte) AS internal_bytes, SUM(traffic_through_byte) AS through_bytes, SUM(common_c2s_pkt_num + common_s2c_pkt_num) AS total_packets, SUM(traffic_inbound_pkt) AS inbound_packets, SUM(traffic_outbound_pkt) AS outbound_packets, SUM(traffic_internal_pkt) AS internal_packets, SUM(traffic_through_pkt) AS through_packets, SUM(common_sessions) AS sessions, IFNULL(ROUND(AVG(avg_establish_latency_ms), 4),0) AS establish_latency_ms_avg, IFNULL(ROUND(AVG(avg_http_response_latency_ms), 4),0) AS http_response_latency_avg, IFNULL(ROUND(AVG(avg_ssl_con_latency_ms), 4),0) AS ssl_con_latency_avg, IFNULL(ROUND(AVG(tcp_lostlen_ratio), 4),0) AS tcp_lostlen_percent_avg, IFNULL(ROUND(AVG(pkt_retrans_ratio), 4),0) AS pkt_retrans_percent_avg FROM metric_application WHERE stat_time >= ${startTime} AND stat_time < ${endTime} GROUP BY stat_time ORDER BY stat_time ASC\\\",\\\"option\\\":\\\"real-time\\\",\\\"format\\\":\\\"json\\\"}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"applicationPerformanceOverviewTotalTrafficAnalysis\",q,parameter);\r\nvar param = jsonUtil.toBean(result,HashMap.class);\r\nvar result = getGalaxyResult(param);\r\n\r\n\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nif(result.success){\r\n var o = {};\r\n o.resultType=\"matrix\";\r\n var old = new ArrayList();\r\n var list = result.data;\r\n var newList = new ArrayList();\r\n for(i,j in list){\r\n newList.add(list[i]);\r\n }\r\n if(list.length > 0){\r\n for(i,j in list){\r\n var pojo = list[i];\r\n var tempObj= {};\r\n for (key,value in pojo){\r\n if(key.indexOf(\"stat_time\") != -1){\r\n tempObj[\'statTime\'] = pojo[key]\r\n }else if(key.indexOf(\"total_bytes\") != -1){\r\n tempObj[\'totalBitsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2).asDouble() * 8\r\n }else if(key.indexOf(\"total_packets\") != -1){\r\n tempObj[\'totalPacketsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"sessions\") != -1){\r\n tempObj[\'totalSessionsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"inbound_bytes\") != -1){\r\n tempObj[\'inboundBitsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2).asDouble() * 8\r\n }else if(key.indexOf(\"inbound_packets\") != -1){\r\n tempObj[\'inboundPacketsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"outbound_bytes\") != -1){\r\n tempObj[\'outboundBitsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2).asDouble() * 8\r\n }else if(key.indexOf(\"outbound_packets\") != -1){\r\n tempObj[\'outboundPacketsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"internal_bytes\") != -1){\r\n tempObj[\'internalBitsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2).asDouble() * 8\r\n }else if(key.indexOf(\"internal_packets\") != -1){\r\n tempObj[\'internalPacketsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"through_bytes\") != -1){\r\n tempObj[\'throughBitsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2).asDouble() * 8\r\n }else if(key.indexOf(\"through_packets\") != -1){\r\n tempObj[\'throughPacketsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"establish_latency_ms_avg\") != -1){\r\n tempObj[\'establishLatencyMsAvg\'] = pojo[key]\r\n }else if(key.indexOf(\"http_response_latency_avg\") != -1){\r\n tempObj[\'httpResponseLatencyAvg\'] = pojo[key]\r\n }else if(key.indexOf(\"ssl_con_latency_avg\") != -1){\r\n tempObj[\'sslConLatencyAvg\'] = pojo[key]\r\n }else if(key.indexOf(\"tcp_lostlen_percent_avg\") != -1){\r\n tempObj[\'tcpLostlenPercentAvg\'] = pojo[key]\r\n }else if(key.indexOf(\"pkt_retrans_percent_avg\") != -1){\r\n tempObj[\'pktRetransPercentAvg\'] = pojo[key]\r\n }\r\n }\r\n list[i] = tempObj;\r\n }\r\n var bytes = [];\r\n var packets = [];\r\n var sessions = [];\r\n var establishLatencyMs = [];\r\n var httpResponseLatency = [];\r\n var sslConLatency = [];\r\n var tcpLostlenPercent = [];\r\n var pktRetransPercent = [];\r\n for(key,value in list[0]){\r\n if(key.indexOf(\"Bits\") != -1){\r\n bytes.push(key);\r\n } else if(key.indexOf(\"Packets\") != -1){\r\n packets.push(key);\r\n } else if(key.indexOf(\"Sessions\") != -1){\r\n sessions.push(key);\r\n } else if(key.indexOf(\"establishLatencyMsAvg\") != -1){\r\n establishLatencyMs.push(key);\r\n } else if(key.indexOf(\"httpResponseLatencyAvg\") != -1){\r\n httpResponseLatency.push(key);\r\n } else if(key.indexOf(\"sslConLatencyAvg\") != -1){\r\n sslConLatency.push(key);\r\n } else if(key.indexOf(\"tcpLostlenPercentAvg\") != -1){\r\n tcpLostlenPercent.push(key);\r\n } else if(key.indexOf(\"pktRetransPercentAvg\") != -1){\r\n pktRetransPercent.push(key);\r\n }\r\n }\r\n var map = new HashMap();\r\n map.put(\"totalBitsRate\",\"total_bytes\");\r\n map.put(\"totalPacketsRate\",\"total_packets\");\r\n map.put(\"totalSessionsRate\",\"sessions\");\r\n map.put(\"inboundBitsRate\",\"inbound_bytes\");\r\n map.put(\"inboundPacketsRate\",\"inbound_packets\");\r\n map.put(\"outboundBitsRate\",\"outbound_bytes\");\r\n map.put(\"outboundPacketsRate\",\"outbound_packets\");\r\n map.put(\"internalBitsRate\",\"internal_bytes\");\r\n map.put(\"internalPacketsRate\",\"internal_packets\");\r\n map.put(\"throughBitsRate\",\"through_bytes\");\r\n map.put(\"throughPacketsRate\",\"through_packets\");\r\n map.put(\"establishLatencyMsAvg\",\"establish_latency_ms_avg\");\r\n map.put(\"httpResponseLatencyAvg\",\"http_response_latency_avg\");\r\n map.put(\"sslConLatencyAvg\",\"ssl_con_latency_avg\");\r\n map.put(\"tcpLostlenPercentAvg\",\"tcp_lostlen_percent_avg\");\r\n map.put(\"pktRetransPercentAvg\",\"pkt_retrans_percent_avg\");\r\n var type = {};\r\n type.bytes = bytes;\r\n type.packets = packets;\r\n type.sessions = sessions;\r\n type.establishLatencyMs = establishLatencyMs;\r\n type.httpResponseLatency = httpResponseLatency;\r\n type.sslConLatency = sslConLatency;\r\n type.tcpLostlenPercent = tcpLostlenPercent;\r\n type.pktRetransPercent = pktRetransPercent;\r\n for(key,value in type){\r\n var obj = {};\r\n obj.type = key;\r\n var typeKey = type[key];\r\n for(m,n in typeKey){\r\n var zong = {};\r\n var analysis = {};\r\n var values = new ArrayList();\r\n list.sort((a,b)=>a.statTime.asDouble()-b.statTime.asDouble());\r\n var sumValue = 0;\r\n for(i,j in list){\r\n var pojo = list[i];\r\n var tempArray = new ArrayList();\r\n tempArray.add(pojo[\"statTime\"]);\r\n tempArray.add(pojo[typeKey[m]].asDouble());\r\n values.add(tempArray);\r\n }\r\n for(i,j in newList){\r\n var pojo = newList[i];\r\n var field = map.get(typeKey[m]);\r\n var value = pojo[field];\r\n sumValue += value.asDouble();\r\n }\r\n analysis.avg = (sumValue.asDouble()/parameter.timeDiff).toFixed(2);\r\n if(key==\"bytes\"){\r\n analysis.avg = analysis.avg.asDouble() * 8;\r\n }\r\n analysis.avg=analysis.avg+\"\";\r\n \r\n var plist = [];\r\n for(i,j in values){\r\n plist.push(values[i][1].asDouble());\r\n }\r\n analysis.max = plist.max()+\"\";\r\n analysis.min = plist.min()+\"\";\r\n analysis.p95 = getPercentile(plist, 0.95)+\"\";\r\n \r\n zong.values = values;\r\n zong.analysis = analysis;\r\n \r\n obj[typeKey[m]] = zong;\r\n }\r\n old.add(obj);\r\n }\r\n var len = old[0][\"totalBitsRate\"][\"values\"].length;\r\n for(a,b in old){\r\n if(old[a].type == \'bytes\' || old[a].type == \'packets\'){\r\n var other = {};\r\n var analysis = {};\r\n var values = new ArrayList();\r\n var sumValue = 0;\r\n for(i in range(0,len-1)){\r\n var sum = 0;\r\n var tempArray = new ArrayList();\r\n for(b,c in old[a]){\r\n if(b != \'type\'){\r\n if(b.indexOf(\"total\") != -1){\r\n sum += old[a][b][\"values\"][i][1];\r\n } else {\r\n sum -= old[a][b][\"values\"][i][1];\r\n }\r\n }\r\n }\r\n sum = sum.asDouble() > 0 ? sum:0;\r\n tempArray.add(old[0][\"totalBitsRate\"][\"values\"][i][0]);\r\n tempArray.add(sum.toFixed(2).asDouble());\r\n values.add(tempArray);\r\n sumValue += sum.asDouble();\r\n }\r\n analysis.avg = Math.round((sumValue / len)*100)/100 + \"\";\r\n \r\n var plist = [];\r\n for(i,j in values){\r\n plist.push(values[i][1].asDouble());\r\n }\r\n analysis.max = plist.max()+\"\";\r\n analysis.min = plist.min()+\"\";\r\n analysis.p95 = getPercentile(plist, 0.95)+\"\";\r\n \r\n other.values = values;\r\n other.analysis = analysis;\r\n old[a].other = other;\r\n }\r\n }\r\n }\r\n o.result = old;\r\n result.code=200;\r\n result.data=o;\r\n result.msg = result.message;\r\n result.message=null;\r\n}\r\n\r\nreturn result;'); +INSERT INTO `magic_api_file` VALUES ('/api/interface/application/performance/overview/整体流量统计曲线图.ms', '{\n \"properties\" : { },\n \"id\" : \"4e5a17b89e5e42dca5fb9b66e9022ce1\",\n \"script\" : null,\n \"groupId\" : \"34a616d95df64af18b77542132670eed\",\n \"name\" : \"整体流量统计曲线图\",\n \"createTime\" : null,\n \"updateTime\" : 1697098536848,\n \"lock\" : null,\n \"createBy\" : null,\n \"updateBy\" : \"admin\",\n \"path\" : \"/totalTrafficAnalysis\",\n \"method\" : \"GET\",\n \"parameters\" : [ {\n \"name\" : \"startTime\",\n \"value\" : \"1695192478\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"endTime\",\n \"value\" : \"1695196078\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"options\" : [ ],\n \"requestBody\" : \"\",\n \"headers\" : [ ],\n \"paths\" : [ ],\n \"responseBody\" : \"{\\n \\\"status\\\": 200,\\n \\\"code\\\": 200,\\n \\\"queryKey\\\": \\\"18e4137d1bd55f82034d99e567f85b35\\\",\\n \\\"success\\\": true,\\n \\\"message\\\": null,\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 8,\\n \\\"rows_read\\\": 3494277,\\n \\\"bytes_read\\\": 27954216,\\n \\\"result_size\\\": 0,\\n \\\"result_rows\\\": 0\\n },\\n \\\"job\\\": null,\\n \\\"formatType\\\": \\\"json\\\",\\n \\\"meta\\\": [{\\n \\\"name\\\": \\\"stat_time\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Dimension\\\"\\n }, {\\n \\\"name\\\": \\\"total_bytes\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"inbound_bytes\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"outbound_bytes\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"internal_bytes\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"through_bytes\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"total_packets\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"inbound_packets\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"outbound_packets\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"internal_packets\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"through_packets\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"sessions\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"establish_latency_ms_avg\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"http_response_latency_avg\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"ssl_con_latency_avg\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"tcp_lostlen_percent_avg\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"pkt_retrans_percent_avg\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }],\\n \\\"data\\\": {\\n \\\"resultType\\\": \\\"matrix\\\",\\n \\\"result\\\": []\\n },\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT TIME_FLOOR_WITH_FILL(stat_time,\'PT1M\',\'zero\') AS stat_time, SUM(common_c2s_byte_num + common_s2c_byte_num) AS total_bytes, SUM(traffic_inbound_byte) AS inbound_bytes, SUM(traffic_outbound_byte) AS outbound_bytes, SUM(traffic_internal_byte) AS internal_bytes, SUM(traffic_through_byte) AS through_bytes, SUM(common_c2s_pkt_num + common_s2c_pkt_num) AS total_packets, SUM(traffic_inbound_pkt) AS inbound_packets, SUM(traffic_outbound_pkt) AS outbound_packets, SUM(traffic_internal_pkt) AS internal_packets, SUM(traffic_through_pkt) AS through_packets, SUM(common_sessions) AS sessions, IFNULL(ROUND(AVG(avg_establish_latency_ms), 4),0) AS establish_latency_ms_avg, IFNULL(ROUND(AVG(avg_http_response_latency_ms), 4),0) AS http_response_latency_avg, IFNULL(ROUND(AVG(avg_ssl_con_latency_ms), 4),0) AS ssl_con_latency_avg, IFNULL(ROUND(AVG(tcp_lostlen_ratio), 4),0) AS tcp_lostlen_percent_avg, IFNULL(ROUND(AVG(pkt_retrans_ratio), 4),0) AS pkt_retrans_percent_avg FROM metric_application WHERE stat_time >= 1 AND stat_time < 1673315583 GROUP BY stat_time ORDER BY stat_time ASC&format=json&option=real-time\\\",\\n \\\"msg\\\": \\\"OK\\\"\\n}\",\n \"description\" : null,\n \"requestBodyDefinition\" : null,\n \"responseBodyDefinition\" : {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"status\",\n \"value\" : \"200\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"code\",\n \"value\" : \"200\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"queryKey\",\n \"value\" : \"18e4137d1bd55f82034d99e567f85b35\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"success\",\n \"value\" : \"true\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Boolean\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"message\",\n \"value\" : \"null\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"statistics\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"elapsed\",\n \"value\" : \"8\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"rows_read\",\n \"value\" : \"3494277\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"bytes_read\",\n \"value\" : \"27954216\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result_size\",\n \"value\" : \"0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result_rows\",\n \"value\" : \"0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }, {\n \"name\" : \"job\",\n \"value\" : \"null\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"formatType\",\n \"value\" : \"json\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"meta\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Array\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"name\",\n \"value\" : \"stat_time\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"type\",\n \"value\" : \"long\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"category\",\n \"value\" : \"Dimension\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n } ]\n }, {\n \"name\" : \"data\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"resultType\",\n \"value\" : \"matrix\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Array\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }, {\n \"name\" : \"originalUrl\",\n \"value\" : \"http://192.168.44.55:9999/?query=SELECT TIME_FLOOR_WITH_FILL(stat_time,\'PT1M\',\'zero\') AS stat_time, SUM(common_c2s_byte_num + common_s2c_byte_num) AS total_bytes, SUM(traffic_inbound_byte) AS inbound_bytes, SUM(traffic_outbound_byte) AS outbound_bytes, SUM(traffic_internal_byte) AS internal_bytes, SUM(traffic_through_byte) AS through_bytes, SUM(common_c2s_pkt_num + common_s2c_pkt_num) AS total_packets, SUM(traffic_inbound_pkt) AS inbound_packets, SUM(traffic_outbound_pkt) AS outbound_packets, SUM(traffic_internal_pkt) AS internal_packets, SUM(traffic_through_pkt) AS through_packets, SUM(common_sessions) AS sessions, IFNULL(ROUND(AVG(avg_establish_latency_ms), 4),0) AS establish_latency_ms_avg, IFNULL(ROUND(AVG(avg_http_response_latency_ms), 4),0) AS http_response_latency_avg, IFNULL(ROUND(AVG(avg_ssl_con_latency_ms), 4),0) AS ssl_con_latency_avg, IFNULL(ROUND(AVG(tcp_lostlen_ratio), 4),0) AS tcp_lostlen_percent_avg, IFNULL(ROUND(AVG(pkt_retrans_ratio), 4),0) AS pkt_retrans_percent_avg FROM metric_application WHERE stat_time >= 1 AND stat_time < 1673315583 GROUP BY stat_time ORDER BY stat_time ASC&format=json&option=real-time\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"msg\",\n \"value\" : \"OK\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }\n}\r\n================================\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport \'@/pre/timeHandleNone\' as preHandle;\r\nimport \'@/post/object\' as objHandle\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult\r\nimport \'@/public/toHump\' as toHump\r\nimport \'@/public/getPercentile\' as getPercentile\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime\r\n}\r\n\r\npreHandle(parameter);\r\n\r\n\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\":\\\"SELECT TIME_FLOOR_WITH_FILL(stat_time,\'PT${step}S\',\'zero\') AS stat_time, SUM(common_c2s_byte_num + common_s2c_byte_num) AS total_bytes, SUM(traffic_inbound_byte) AS inbound_bytes, SUM(traffic_outbound_byte) AS outbound_bytes, SUM(traffic_internal_byte) AS internal_bytes, SUM(traffic_through_byte) AS through_bytes, SUM(common_c2s_pkt_num + common_s2c_pkt_num) AS total_packets, SUM(traffic_inbound_pkt) AS inbound_packets, SUM(traffic_outbound_pkt) AS outbound_packets, SUM(traffic_internal_pkt) AS internal_packets, SUM(traffic_through_pkt) AS through_packets, SUM(common_sessions) AS sessions, IFNULL(ROUND(AVG(avg_establish_latency_ms), 4),0) AS establish_latency_ms_avg, IFNULL(ROUND(AVG(avg_http_response_latency_ms), 4),0) AS http_response_latency_avg, IFNULL(ROUND(AVG(avg_ssl_con_latency_ms), 4),0) AS ssl_con_latency_avg, IFNULL(ROUND(AVG(tcp_lostlen_ratio), 4),0) AS tcp_lostlen_percent_avg, IFNULL(ROUND(AVG(pkt_retrans_ratio), 4),0) AS pkt_retrans_percent_avg FROM metric_application WHERE stat_time >= ${startTime} AND stat_time < ${endTime} GROUP BY stat_time ORDER BY stat_time ASC\\\",\\\"option\\\":\\\"real-time\\\",\\\"format\\\":\\\"json\\\"}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"applicationPerformanceOverviewTotalTrafficAnalysis\",q,parameter);\r\nvar param = jsonUtil.toBean(result,HashMap.class);\r\nvar result = getGalaxyResult(param);\r\n\r\n\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nif(result.success){\r\n var o = {};\r\n o.resultType=\"matrix\";\r\n var old = new ArrayList();\r\n var list = result.data;\r\n var newList = new ArrayList();\r\n for(i,j in list){\r\n newList.add(list[i]);\r\n }\r\n if(list.length > 0){\r\n for(i,j in list){\r\n var pojo = list[i];\r\n var tempObj= {};\r\n for (key,value in pojo){\r\n if(key.indexOf(\"stat_time\") != -1){\r\n tempObj[\'statTime\'] = pojo[key]\r\n }else if(key.indexOf(\"total_bytes\") != -1){\r\n tempObj[\'totalBitsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2).asDouble() * 8\r\n }else if(key.indexOf(\"total_packets\") != -1){\r\n tempObj[\'totalPacketsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"sessions\") != -1){\r\n tempObj[\'totalSessionsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"inbound_bytes\") != -1){\r\n tempObj[\'inboundBitsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2).asDouble() * 8\r\n }else if(key.indexOf(\"inbound_packets\") != -1){\r\n tempObj[\'inboundPacketsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"outbound_bytes\") != -1){\r\n tempObj[\'outboundBitsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2).asDouble() * 8\r\n }else if(key.indexOf(\"outbound_packets\") != -1){\r\n tempObj[\'outboundPacketsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"internal_bytes\") != -1){\r\n tempObj[\'internalBitsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2).asDouble() * 8\r\n }else if(key.indexOf(\"internal_packets\") != -1){\r\n tempObj[\'internalPacketsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"through_bytes\") != -1){\r\n tempObj[\'throughBitsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2).asDouble() * 8\r\n }else if(key.indexOf(\"through_packets\") != -1){\r\n tempObj[\'throughPacketsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"establish_latency_ms_avg\") != -1){\r\n tempObj[\'establishLatencyMsAvg\'] = pojo[key]\r\n }else if(key.indexOf(\"http_response_latency_avg\") != -1){\r\n tempObj[\'httpResponseLatencyAvg\'] = pojo[key]\r\n }else if(key.indexOf(\"ssl_con_latency_avg\") != -1){\r\n tempObj[\'sslConLatencyAvg\'] = pojo[key]\r\n }else if(key.indexOf(\"tcp_lostlen_percent_avg\") != -1){\r\n tempObj[\'tcpLostlenPercentAvg\'] = pojo[key]\r\n }else if(key.indexOf(\"pkt_retrans_percent_avg\") != -1){\r\n tempObj[\'pktRetransPercentAvg\'] = pojo[key]\r\n }\r\n }\r\n list[i] = tempObj;\r\n }\r\n var bytes = [];\r\n var packets = [];\r\n var sessions = [];\r\n var establishLatencyMs = [];\r\n var httpResponseLatency = [];\r\n var sslConLatency = [];\r\n var tcpLostlenPercent = [];\r\n var pktRetransPercent = [];\r\n for(key,value in list[0]){\r\n if(key.indexOf(\"Bits\") != -1){\r\n bytes.push(key);\r\n } else if(key.indexOf(\"Packets\") != -1){\r\n packets.push(key);\r\n } else if(key.indexOf(\"Sessions\") != -1){\r\n sessions.push(key);\r\n } else if(key.indexOf(\"establishLatencyMsAvg\") != -1){\r\n establishLatencyMs.push(key);\r\n } else if(key.indexOf(\"httpResponseLatencyAvg\") != -1){\r\n httpResponseLatency.push(key);\r\n } else if(key.indexOf(\"sslConLatencyAvg\") != -1){\r\n sslConLatency.push(key);\r\n } else if(key.indexOf(\"tcpLostlenPercentAvg\") != -1){\r\n tcpLostlenPercent.push(key);\r\n } else if(key.indexOf(\"pktRetransPercentAvg\") != -1){\r\n pktRetransPercent.push(key);\r\n }\r\n }\r\n var map = new HashMap();\r\n map.put(\"totalBitsRate\",\"total_bytes\");\r\n map.put(\"totalPacketsRate\",\"total_packets\");\r\n map.put(\"totalSessionsRate\",\"sessions\");\r\n map.put(\"inboundBitsRate\",\"inbound_bytes\");\r\n map.put(\"inboundPacketsRate\",\"inbound_packets\");\r\n map.put(\"outboundBitsRate\",\"outbound_bytes\");\r\n map.put(\"outboundPacketsRate\",\"outbound_packets\");\r\n map.put(\"internalBitsRate\",\"internal_bytes\");\r\n map.put(\"internalPacketsRate\",\"internal_packets\");\r\n map.put(\"throughBitsRate\",\"through_bytes\");\r\n map.put(\"throughPacketsRate\",\"through_packets\");\r\n map.put(\"establishLatencyMsAvg\",\"establish_latency_ms_avg\");\r\n map.put(\"httpResponseLatencyAvg\",\"http_response_latency_avg\");\r\n map.put(\"sslConLatencyAvg\",\"ssl_con_latency_avg\");\r\n map.put(\"tcpLostlenPercentAvg\",\"tcp_lostlen_percent_avg\");\r\n map.put(\"pktRetransPercentAvg\",\"pkt_retrans_percent_avg\");\r\n var type = {};\r\n type.bytes = bytes;\r\n type.packets = packets;\r\n type.sessions = sessions;\r\n type.establishLatencyMs = establishLatencyMs;\r\n type.httpResponseLatency = httpResponseLatency;\r\n type.sslConLatency = sslConLatency;\r\n type.tcpLostlenPercent = tcpLostlenPercent;\r\n type.pktRetransPercent = pktRetransPercent;\r\n for(key,value in type){\r\n var obj = {};\r\n obj.type = key;\r\n var typeKey = type[key];\r\n for(m,n in typeKey){\r\n var zong = {};\r\n var analysis = {};\r\n var values = new ArrayList();\r\n list.sort((a,b)=>a.statTime.asDouble()-b.statTime.asDouble());\r\n var sumValue = 0;\r\n for(i,j in list){\r\n var pojo = list[i];\r\n var tempArray = new ArrayList();\r\n tempArray.add(pojo[\"statTime\"]);\r\n tempArray.add(pojo[typeKey[m]].asDouble());\r\n values.add(tempArray);\r\n }\r\n for(i,j in newList){\r\n var pojo = newList[i];\r\n var field = map.get(typeKey[m]);\r\n var value = pojo[field];\r\n sumValue += value.asDouble();\r\n }\r\n analysis.avg = (sumValue.asDouble()/parameter.timeDiff).toFixed(2);\r\n if(key==\"bytes\"){\r\n analysis.avg = analysis.avg.asDouble() * 8;\r\n }\r\n analysis.avg=analysis.avg+\"\";\r\n \r\n var plist = [];\r\n for(i,j in values){\r\n plist.push(values[i][1].asDouble());\r\n }\r\n analysis.max = plist.max()+\"\";\r\n analysis.min = plist.min()+\"\";\r\n analysis.p95 = getPercentile(plist, 0.95)+\"\";\r\n \r\n zong.values = values;\r\n zong.analysis = analysis;\r\n \r\n obj[typeKey[m]] = zong;\r\n }\r\n old.add(obj);\r\n }\r\n var len = old[0][\"totalBitsRate\"][\"values\"].length;\r\n for(a,b in old){\r\n if(old[a].type == \'bytes\' || old[a].type == \'packets\'){\r\n var other = {};\r\n var analysis = {};\r\n var values = new ArrayList();\r\n var sumValue = 0;\r\n for(i in range(0,len-1)){\r\n var sum = 0;\r\n var tempArray = new ArrayList();\r\n for(b,c in old[a]){\r\n if(b != \'type\'){\r\n if(b.indexOf(\"total\") != -1){\r\n sum += old[a][b][\"values\"][i][1];\r\n } else {\r\n sum -= old[a][b][\"values\"][i][1];\r\n }\r\n }\r\n }\r\n sum = sum.asDouble() > 0 ? sum:0;\r\n tempArray.add(old[0][\"totalBitsRate\"][\"values\"][i][0]);\r\n tempArray.add(sum.toFixed(2).asDouble());\r\n values.add(tempArray);\r\n sumValue += sum.asDouble();\r\n }\r\n analysis.avg = Math.round((sumValue / len)*100)/100 + \"\";\r\n \r\n var plist = [];\r\n for(i,j in values){\r\n plist.push(values[i][1].asDouble());\r\n }\r\n analysis.max = plist.max()+\"\";\r\n analysis.min = plist.min()+\"\";\r\n analysis.p95 = getPercentile(plist, 0.95)+\"\";\r\n \r\n other.values = values;\r\n other.analysis = analysis;\r\n old[a].other = other;\r\n }\r\n }\r\n }\r\n o.result = old;\r\n result.code=200;\r\n result.data=o;\r\n result.msg = result.message;\r\n result.message=null;\r\n}\r\n\r\nreturn result;'); INSERT INTO `magic_api_file` VALUES ('/api/interface/application/performance/overview/整体网络数据统计.ms', '{\n \"properties\" : { },\n \"id\" : \"46c440514cc547f190e49406ece40ff8\",\n \"script\" : null,\n \"groupId\" : \"34a616d95df64af18b77542132670eed\",\n \"name\" : \"整体网络数据统计\",\n \"createTime\" : null,\n \"updateTime\" : 1693548831044,\n \"lock\" : null,\n \"createBy\" : null,\n \"updateBy\" : \"ljy\",\n \"path\" : \"/totalNetworkAnalysis\",\n \"method\" : \"GET\",\n \"parameters\" : [ {\n \"name\" : \"startTime\",\n \"value\" : \"1693530180\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"endTime\",\n \"value\" : \"1693533780\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"options\" : [ ],\n \"requestBody\" : \"\",\n \"headers\" : [ ],\n \"paths\" : [ ],\n \"responseBody\" : \"{\\n \\\"status\\\": 200,\\n \\\"code\\\": 200,\\n \\\"queryKey\\\": \\\"069aab5ad4c0a6ce6d29e5b21f4b27c5\\\",\\n \\\"success\\\": true,\\n \\\"message\\\": null,\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 0,\\n \\\"rows_read\\\": 0,\\n \\\"bytes_read\\\": 0,\\n \\\"result_size\\\": 0,\\n \\\"result_rows\\\": 0\\n },\\n \\\"job\\\": null,\\n \\\"formatType\\\": \\\"json\\\",\\n \\\"meta\\\": [{\\n \\\"name\\\": \\\"stat_time\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"establish_latency_ms\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"tcp_lostlen_percent\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"pkt_retrans_percent\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }],\\n \\\"data\\\": {\\n \\\"resultType\\\": \\\"matrix\\\",\\n \\\"result\\\": []\\n },\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT TIME_FLOOR_WITH_FILL(common_recv_time,\'PT100040S\',\'zero\') AS stat_time,IFNULL(ROUND(AVG(common_establish_latency_ms)),0) AS establish_latency_ms,IFNULL(ROUND(SUM(common_c2s_tcp_lostlen + common_s2c_tcp_lostlen)/SUM(common_c2s_byte_num + common_s2c_byte_num + common_c2s_tcp_lostlen + common_s2c_tcp_lostlen),4),0) AS tcp_lostlen_percent,IFNULL(ROUND(SUM(common_c2s_pkt_retrans + common_s2c_pkt_retrans)/ SUM(common_c2s_pkt_num + common_s2c_pkt_num),4),0) AS pkt_retrans_percent FROM session_record_cn WHERE common_recv_time >= toDateTime(1663315422) AND common_recv_time < toDateTime(1673319422) AND common_l4_protocol IN (\'IPv4_TCP\', \'IPv6_TCP\') GROUP BY stat_time ORDER BY stat_time ASC&format=json&option=real-time\\\",\\n \\\"msg\\\": \\\"OK\\\"\\n}\",\n \"description\" : null,\n \"requestBodyDefinition\" : null,\n \"responseBodyDefinition\" : {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"status\",\n \"value\" : \"200\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"code\",\n \"value\" : \"200\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"queryKey\",\n \"value\" : \"069aab5ad4c0a6ce6d29e5b21f4b27c5\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"success\",\n \"value\" : \"true\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Boolean\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"message\",\n \"value\" : \"null\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"statistics\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"elapsed\",\n \"value\" : \"0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"rows_read\",\n \"value\" : \"0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"bytes_read\",\n \"value\" : \"0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result_size\",\n \"value\" : \"0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result_rows\",\n \"value\" : \"0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }, {\n \"name\" : \"job\",\n \"value\" : \"null\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"formatType\",\n \"value\" : \"json\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"meta\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Array\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"name\",\n \"value\" : \"stat_time\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"type\",\n \"value\" : \"long\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"category\",\n \"value\" : \"Metric\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n } ]\n }, {\n \"name\" : \"data\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"resultType\",\n \"value\" : \"matrix\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Array\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }, {\n \"name\" : \"originalUrl\",\n \"value\" : \"http://192.168.44.55:9999/?query=SELECT TIME_FLOOR_WITH_FILL(common_recv_time,\'PT100040S\',\'zero\') AS stat_time,IFNULL(ROUND(AVG(common_establish_latency_ms)),0) AS establish_latency_ms,IFNULL(ROUND(SUM(common_c2s_tcp_lostlen + common_s2c_tcp_lostlen)/SUM(common_c2s_byte_num + common_s2c_byte_num + common_c2s_tcp_lostlen + common_s2c_tcp_lostlen),4),0) AS tcp_lostlen_percent,IFNULL(ROUND(SUM(common_c2s_pkt_retrans + common_s2c_pkt_retrans)/ SUM(common_c2s_pkt_num + common_s2c_pkt_num),4),0) AS pkt_retrans_percent FROM session_record_cn WHERE common_recv_time >= toDateTime(1663315422) AND common_recv_time < toDateTime(1673319422) AND common_l4_protocol IN (\'IPv4_TCP\', \'IPv6_TCP\') GROUP BY stat_time ORDER BY stat_time ASC&format=json&option=real-time\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"msg\",\n \"value\" : \"OK\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }\n}\r\n================================\r\nimport http;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport \'@/pre/timeHandle\' as preHandle;\r\nimport \'@/post/table\' as objHandle\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult\r\nimport \'@/public/getPercentile\' as getPercentile\r\n\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime\r\n}\r\n\r\npreHandle(parameter);\r\n\r\n\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\":\\\"SELECT TIME_FLOOR_WITH_FILL(common_recv_time,\'PT${step}S\',\'zero\') AS stat_time,IFNULL(ROUND(AVG(common_establish_latency_ms)),0) AS establish_latency_ms,IFNULL(ROUND(SUM(common_c2s_tcp_lostlen + common_s2c_tcp_lostlen)/SUM(common_c2s_byte_num + common_s2c_byte_num + common_c2s_tcp_lostlen + common_s2c_tcp_lostlen),4),0) AS tcp_lostlen_percent,IFNULL(ROUND(SUM(common_c2s_pkt_retrans + common_s2c_pkt_retrans)/ SUM(common_c2s_pkt_num + common_s2c_pkt_num),4),0) AS pkt_retrans_percent FROM session_record_cn WHERE common_recv_time >= ${startTime} AND common_recv_time < ${endTime} AND common_l4_protocol IN (\'IPv4_TCP\', \'IPv6_TCP\') GROUP BY stat_time ORDER BY stat_time ASC\\\",\\\"option\\\":\\\"real-time\\\",\\\"format\\\":\\\"json\\\"}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"applicationPerformanceOverviewNetworkAnalysis\",q,parameter);\r\nvar param = jsonUtil.toBean(result,HashMap.class);\r\nvar result = getGalaxyResult(param);\r\n\r\n\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nif(result.success){\r\n var o = {};\r\n o.resultType=\"matrix\";\r\n var old = new ArrayList();\r\n var list = result.data;\r\n var newList = new ArrayList();\r\n for(i,j in list){\r\n newList.add(list[i]);\r\n }\r\n if(list.length > 0){\r\n for(i,j in list){\r\n var pojo = list[i];\r\n var tempObj= {};\r\n for (key,value in pojo){\r\n if(key.indexOf(\"stat_time\") != -1){\r\n tempObj[\'statTime\'] = pojo[key]\r\n }else if(key.indexOf(\"establish_latency_ms\") != -1){\r\n tempObj[\'establishLatencyMs\'] = pojo[key]\r\n }else if(key.indexOf(\"http_response_latency\") != -1){\r\n tempObj[\'httpResponseLatency\'] = pojo[key]\r\n }else if(key.indexOf(\"ssl_con_latency\") != -1){\r\n tempObj[\'sslConLatency\'] = pojo[key]\r\n }else if(key.indexOf(\"tcp_lostlen_percent\") != -1){\r\n tempObj[\'tcpLostlenPercent\'] = pojo[key]\r\n }else if(key.indexOf(\"pkt_retrans_percent\") != -1){\r\n tempObj[\'pktRetransPercent\'] = pojo[key]\r\n }\r\n }\r\n list[i] = tempObj;\r\n list[i].statTime = list[i].statTime;\r\n }\r\n var establishLatencyMs = [];\r\n var httpResponseLatency = [];\r\n var sslConLatency = [];\r\n var tcpLostlenPercent = [];\r\n var pktRetransPercent = [];\r\n for(key,value in list[0]){\r\n if(key.indexOf(\"establishLatencyMs\") != -1){\r\n establishLatencyMs.push(key);\r\n } else if(key.indexOf(\"httpResponseLatency\") != -1){\r\n httpResponseLatency.push(key);\r\n } else if(key.indexOf(\"sslConLatency\") != -1){\r\n sslConLatency.push(key);\r\n } else if(key.indexOf(\"tcpLostlenPercent\") != -1){\r\n tcpLostlenPercent.push(key);\r\n } else if(key.indexOf(\"pktRetransPercent\") != -1){\r\n pktRetransPercent.push(key);\r\n }\r\n }\r\n var map = new HashMap();\r\n map.put(\"establishLatencyMs\",\"establish_latency_ms\");\r\n map.put(\"httpResponseLatency\",\"http_response_latency\");\r\n map.put(\"sslConLatency\",\"ssl_con_latency\");\r\n map.put(\"tcpLostlenPercent\",\"tcp_lostlen_percent\");\r\n map.put(\"pktRetransPercent\",\"pkt_retrans_percent\");\r\n var type = {};\r\n type.establishLatencyMs = establishLatencyMs;\r\n type.tcpLostlenPercent = tcpLostlenPercent;\r\n type.pktRetransPercent = pktRetransPercent;\r\n for(key,value in type){\r\n var obj = {};\r\n obj.type = key;\r\n var typeKey = type[key];\r\n for(m,n in typeKey){\r\n var zong = {};\r\n var analysis = {};\r\n var values = new ArrayList();\r\n list.sort((a,b)=>a.statTime.asDouble()-b.statTime.asDouble());\r\n var sumValue = 0;\r\n for(i,j in list){\r\n var pojo = list[i];\r\n var tempArray = new ArrayList();\r\n tempArray.add(pojo[\"statTime\"]);\r\n tempArray.add(pojo[typeKey[m]] + \"\");\r\n values.add(tempArray);\r\n }\r\n for(i,j in newList){\r\n var pojo = newList[i];\r\n var field = map.get(typeKey[m]);\r\n var value = pojo[field].asDouble();\r\n sumValue += value;\r\n }\r\n analysis.avg = (sumValue/parameter.timeDiff).asDouble();\r\n if(key==\"bytes\"){\r\n analysis.avg = analysis.avg * 8;\r\n }\r\n analysis.avg=analysis.avg+\"\";\r\n \r\n var plist = [];\r\n for(i,j in values){\r\n plist.push(values[i][1].asDouble());\r\n }\r\n analysis.max = plist.max()+\"\";\r\n analysis.min = plist.min()+\"\";\r\n analysis.p95 = getPercentile(plist, 0.95)+\"\";\r\n \r\n \r\n zong.values = values;\r\n zong.analysis = analysis;\r\n \r\n obj[typeKey[m]] = zong;\r\n }\r\n old.add(obj);\r\n }\r\n }\r\n o.result = old;\r\n result.code=200;\r\n result.data=o;\r\n result.msg = result.message;\r\n result.message=null;\r\n}\r\n\r\nreturn result;'); INSERT INTO `magic_api_file` VALUES ('/api/interface/application/performance/overview/缺包率.ms', '{\n \"properties\" : { },\n \"id\" : \"copy1673346071175d34038\",\n \"script\" : null,\n \"groupId\" : \"34a616d95df64af18b77542132670eed\",\n \"name\" : \"缺包率\",\n \"createTime\" : null,\n \"updateTime\" : 1693298729178,\n \"lock\" : null,\n \"createBy\" : \"th\",\n \"updateBy\" : \"ljy\",\n \"path\" : \"/tcpLostlenPercent\",\n \"method\" : \"GET\",\n \"parameters\" : [ {\n \"name\" : \"startTime\",\n \"value\" : \"1693272384\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"endTime\",\n \"value\" : \"1693275984\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"cycle\",\n \"value\" : \"0\",\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"options\" : [ ],\n \"requestBody\" : \"\",\n \"headers\" : [ ],\n \"paths\" : [ ],\n \"responseBody\" : \"{\\n \\\"status\\\": 200,\\n \\\"code\\\": 200,\\n \\\"queryKey\\\": \\\"eaeb038a0a9ff38ab2dac99990be5aa1\\\",\\n \\\"success\\\": true,\\n \\\"message\\\": null,\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 1,\\n \\\"rows_read\\\": 16433,\\n \\\"bytes_read\\\": 279361,\\n \\\"result_size\\\": 153,\\n \\\"result_rows\\\": 1\\n },\\n \\\"job\\\": null,\\n \\\"formatType\\\": \\\"json\\\",\\n \\\"meta\\\": [{\\n \\\"name\\\": \\\"tcp_lostlen_percent_avg\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"tcp_lostlen_percent_p50\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"tcp_lostlen_percent_p90\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"tcp_lostlen_percent_p95\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"tcp_lostlen_percent_p99\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }],\\n \\\"data\\\": {\\n \\\"resultType\\\": \\\"object\\\",\\n \\\"result\\\": {\\n \\\"tcpLostlenPercentAvg\\\": 1.0E-4,\\n \\\"tcpLostlenPercentP50\\\": 0,\\n \\\"tcpLostlenPercentP90\\\": 0,\\n \\\"tcpLostlenPercentP95\\\": 0.0859,\\n \\\"tcpLostlenPercentP99\\\": 0\\n }\\n },\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query= SELECT ROUND(AVG(tcp_lostlen_ratio), 4) AS tcp_lostlen_percent_avg, ROUND(QUANTILE(tcp_lostlen_ratio, 0.5), 4) AS tcp_lostlen_percent_p50, ROUND(QUANTILE(tcp_lostlen_ratio, 0.9), 4) AS tcp_lostlen_percent_p90, ROUND(QUANTILE(tcp_lostlen_ratio, 1), 4) AS tcp_lostlen_percent_p95, ROUND(QUANTILE(tcp_lostlen_ratio, 0.99), 4) AS tcp_lostlen_percent_p99 FROM metric_application WHERE stat_time >= toDateTime(1693272384) AND stat_time < toDateTime(1693275984) &format=json&option=real-time\\\",\\n \\\"msg\\\": \\\"OK\\\"\\n}\",\n \"description\" : null,\n \"requestBodyDefinition\" : null,\n \"responseBodyDefinition\" : null\n}\r\n================================\r\nimport http;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport \'@/pre/timeHandle\' as preHandle;\r\nimport \'@/post/object\' as objHandle\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult\r\n\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"cycle\":cycle\r\n}\r\n\r\npreHandle(parameter);\r\n\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\":\\\"<#if cycle?default(\'\')?trim? length gt 0 && cycle ==1> SELECT ROUND(AVG(tcp_lostlen_ratio), 4) AS tcp_lostlen_percent_avg FROM metric_application WHERE stat_time >= ${startTime}-${timeDiff} AND stat_time < ${endTime}-${timeDiff} <#else> SELECT ROUND(AVG(tcp_lostlen_ratio), 4) AS tcp_lostlen_percent_avg, ROUND(QUANTILE(tcp_lostlen_ratio, 0.5), 4) AS tcp_lostlen_percent_p50, ROUND(QUANTILE(tcp_lostlen_ratio, 0.9), 4) AS tcp_lostlen_percent_p90, ROUND(QUANTILE(tcp_lostlen_ratio, 0.95), 4) AS tcp_lostlen_percent_p95, ROUND(QUANTILE(tcp_lostlen_ratio, 0.99), 4) AS tcp_lostlen_percent_p99 FROM metric_application WHERE stat_time >= ${startTime} AND stat_time < ${endTime} </#if>\\\",\\\"option\\\":\\\"real-time\\\",\\\"format\\\":\\\"json\\\"}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"applicationPerformanceOverviewTcpLostlenPercent\",q,parameter);\r\nvar param = jsonUtil.toBean(result,HashMap.class);\r\nvar galaxyRes = getGalaxyResult(param);\r\n\r\n\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar result = objHandle(galaxyRes);\r\n\r\nreturn result;'); INSERT INTO `magic_api_file` VALUES ('/api/interface/application/performance/overview/重传率.ms', '{\n \"properties\" : { },\n \"id\" : \"copy1673346017578d28129\",\n \"script\" : null,\n \"groupId\" : \"34a616d95df64af18b77542132670eed\",\n \"name\" : \"重传率\",\n \"createTime\" : null,\n \"updateTime\" : 1693298573162,\n \"lock\" : null,\n \"createBy\" : \"th\",\n \"updateBy\" : \"ljy\",\n \"path\" : \"/packetRetransPercent\",\n \"method\" : \"GET\",\n \"parameters\" : [ {\n \"name\" : \"startTime\",\n \"value\" : \"1693272384\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"endTime\",\n \"value\" : \"1693275984\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"cycle\",\n \"value\" : \"0\",\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"options\" : [ ],\n \"requestBody\" : \"\",\n \"headers\" : [ ],\n \"paths\" : [ ],\n \"responseBody\" : \"{\\n \\\"status\\\": 200,\\n \\\"code\\\": 200,\\n \\\"queryKey\\\": \\\"7f618a31a4d55b6882ad7e3e827b3745\\\",\\n \\\"success\\\": true,\\n \\\"message\\\": null,\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 1,\\n \\\"rows_read\\\": 8192,\\n \\\"bytes_read\\\": 139264,\\n \\\"result_size\\\": 36,\\n \\\"result_rows\\\": 1\\n },\\n \\\"job\\\": null,\\n \\\"formatType\\\": \\\"json\\\",\\n \\\"meta\\\": [{\\n \\\"name\\\": \\\"pkt_retrans_percent_avg\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }],\\n \\\"data\\\": {\\n \\\"resultType\\\": \\\"object\\\",\\n \\\"result\\\": {\\n \\\"pktRetransPercentAvg\\\": 0.0275\\n }\\n },\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query= SELECT ROUND(AVG(pkt_retrans_ratio), 4) AS pkt_retrans_percent_avg FROM metric_application WHERE stat_time >= toDateTime(1693272384)-3600 AND stat_time < toDateTime(1693275984)-3600 &format=json&option=real-time\\\",\\n \\\"msg\\\": \\\"OK\\\"\\n}\",\n \"description\" : null,\n \"requestBodyDefinition\" : null,\n \"responseBodyDefinition\" : {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"status\",\n \"value\" : \"200\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"code\",\n \"value\" : \"200\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"queryKey\",\n \"value\" : \"7f618a31a4d55b6882ad7e3e827b3745\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"success\",\n \"value\" : \"true\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Boolean\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"message\",\n \"value\" : \"null\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"statistics\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"elapsed\",\n \"value\" : \"1\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"rows_read\",\n \"value\" : \"8192\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"bytes_read\",\n \"value\" : \"139264\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result_size\",\n \"value\" : \"36\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result_rows\",\n \"value\" : \"1\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }, {\n \"name\" : \"job\",\n \"value\" : \"null\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"formatType\",\n \"value\" : \"json\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"meta\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Array\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"name\",\n \"value\" : \"pkt_retrans_percent_avg\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"type\",\n \"value\" : \"double\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"category\",\n \"value\" : \"Metric\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n } ]\n }, {\n \"name\" : \"data\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"resultType\",\n \"value\" : \"object\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"pktRetransPercentAvg\",\n \"value\" : \"0.0275\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Double\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n } ]\n }, {\n \"name\" : \"originalUrl\",\n \"value\" : \"http://192.168.44.55:9999/?query= SELECT ROUND(AVG(pkt_retrans_ratio), 4) AS pkt_retrans_percent_avg FROM metric_application WHERE stat_time >= toDateTime(1693272384)-3600 AND stat_time < toDateTime(1693275984)-3600 &format=json&option=real-time\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"msg\",\n \"value\" : \"OK\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }\n}\r\n================================\r\nimport http;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport \'@/pre/timeHandle\' as preHandle;\r\nimport \'@/post/object\' as objHandle\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult\r\n\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"cycle\":cycle\r\n}\r\n\r\npreHandle(parameter);\r\n\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\":\\\"<#if cycle?default(\'\')?trim? length gt 0 && cycle ==1> SELECT ROUND(AVG(pkt_retrans_ratio), 4) AS pkt_retrans_percent_avg FROM metric_application WHERE stat_time >= ${startTime}-${timeDiff} AND stat_time < ${endTime}-${timeDiff} <#else> SELECT ROUND(AVG(pkt_retrans_ratio), 4) AS pkt_retrans_percent_avg, ROUND(QUANTILE(pkt_retrans_ratio, 0.5), 4) AS pkt_retrans_percent_p50, ROUND(QUANTILE(pkt_retrans_ratio, 0.9), 4) AS pkt_retrans_percent_p90, ROUND(QUANTILE(pkt_retrans_ratio, 0.95), 4) AS pkt_retrans_percent_p95, ROUND(QUANTILE(pkt_retrans_ratio, 0.99), 4) AS pkt_retrans_percent_p99 FROM metric_application WHERE stat_time >= ${startTime} AND stat_time < ${endTime} </#if>\\\",\\\"option\\\":\\\"real-time\\\",\\\"format\\\":\\\"json\\\"}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"applicationPerformanceOverviewPacketRetransPercent\",q,parameter);\r\nvar param = jsonUtil.toBean(result,HashMap.class);\r\nvar galaxyRes = getGalaxyResult(param);\r\n\r\n\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar result = objHandle(galaxyRes);\r\n\r\nreturn result;'); @@ -196,7 +196,7 @@ INSERT INTO `magic_api_file` VALUES ('/api/interface/dns/overview/tab/relation/g INSERT INTO `magic_api_file` VALUES ('/api/interface/dns/overview/tab/relation/tab/', 'this is directory'); INSERT INTO `magic_api_file` VALUES ('/api/interface/dns/overview/tab/relation/tab/DNS下钻后各关联维度列表.ms', '{\n \"properties\" : { },\n \"id\" : \"cdece184ccfc45299e0019ece43bdb66\",\n \"script\" : null,\n \"groupId\" : \"9a4be40f1a58492ab15c4f0e6e07b001\",\n \"name\" : \"DNS下钻后各关联维度列表\",\n \"createTime\" : null,\n \"updateTime\" : 1695262149749,\n \"lock\" : null,\n \"createBy\" : null,\n \"updateBy\" : \"ljy\",\n \"path\" : \"/list\",\n \"method\" : \"GET\",\n \"parameters\" : [ {\n \"name\" : \"startTime\",\n \"value\" : \"1672707977\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"endTime\",\n \"value\" : \"1692857977\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"limit\",\n \"value\" : null,\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"type\",\n \"value\" : \"superAdminArea\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"name\",\n \"value\" : \"\",\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"q\",\n \"value\" : \"server_super_admin_area=\'xinjing\'\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"options\" : [ ],\n \"requestBody\" : \"\",\n \"headers\" : [ ],\n \"paths\" : [ ],\n \"responseBody\" : \"{\\n \\\"message\\\": \\\"Please log in to the system first\\\",\\n \\\"code\\\": 518008,\\n \\\"time\\\": 1695262044052\\n}\",\n \"description\" : null,\n \"requestBodyDefinition\" : null,\n \"responseBodyDefinition\" : {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"message\",\n \"value\" : \"Please log in to the system first\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"code\",\n \"value\" : \"518008\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"time\",\n \"value\" : \"1695262044052\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }\n}\r\n================================\r\nimport http;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport \'@/pre/timeHandle\' as preHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult\r\nimport \'@/pre/typeHandle3rd\' as typeHandle3rd\r\n\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"limit\":limit,\r\n \"type\":type,\r\n \"name\":name,\r\n \"q\":q\r\n}\r\n\r\npreHandle(parameter);\r\ntypeHandle3rd(parameter);\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\":\\\"SELECT ${dimension} AS ${label} FROM session_record_cn WHERE common_recv_time >= ${startTime} AND common_recv_time < ${endTime}<#if type?default(\'\')?trim? length gt 0 && type!=\'qtype\' && type!=\'rcode\'> AND notEmpty(${dimension}) </#if> AND common_l7_protocol = \'DNS\' <#if q?default(\'\')?trim? length gt 0> AND (${q}) </#if> <#if filter?default(\'\')?trim? length gt 0>AND (${filter}) </#if> <#if name?default(\'\')?trim? length gt 0> AND ${label} like \'%${name}%\'</#if> GROUP BY ${label} ORDER BY SUM(common_s2c_byte_num + common_c2s_byte_num) DESC <#if limit?default(\'\')?trim? length gt 0> LIMIT ${limit} </#if>\\\",\\\"option\\\":\\\"real-time\\\",\\\"format\\\":\\\"json\\\"}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"dnsOverviewDrilldownList\",q,parameter);\r\nvar param = jsonUtil.toBean(result,HashMap.class);\r\nvar result = getGalaxyResult(param);\r\n\r\n\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nif(result.success){\r\n var o={};\r\n o.resultType=\"Object\";\r\n o.result=result.data;\r\n if(o.result.length > 0){\r\n for(i,j in o.result){\r\n var pojo = o.result[i];\r\n var val = \'\';\r\n for (key,value in pojo){ \r\n val = pojo[key];\r\n }\r\n o.result[i] = val;\r\n }\r\n }\r\n result.code=200;\r\n result.data=o;\r\n result.msg = result.message;\r\n result.message=null;\r\n}\r\n\r\nreturn result;'); INSERT INTO `magic_api_file` VALUES ('/api/interface/dns/overview/tab/relation/tab/group.json', '{\n \"properties\" : { },\n \"id\" : \"9a4be40f1a58492ab15c4f0e6e07b001\",\n \"name\" : \"tab\",\n \"type\" : \"api\",\n \"parentId\" : \"ccc3435c3bb848018079592f628025fd\",\n \"path\" : \"/tab\",\n \"createTime\" : 1692864543286,\n \"updateTime\" : null,\n \"createBy\" : \"ljy\",\n \"updateBy\" : null,\n \"paths\" : [ ],\n \"options\" : [ ]\n}'); -INSERT INTO `magic_api_file` VALUES ('/api/interface/dns/overview/整体流量统计曲线图.ms', '{\n \"properties\" : { },\n \"id\" : \"copy1673334218884d42884\",\n \"script\" : null,\n \"groupId\" : \"1557496edb7544508ef686b4c904dc99\",\n \"name\" : \"整体流量统计曲线图\",\n \"createTime\" : null,\n \"updateTime\" : 1693448173055,\n \"lock\" : null,\n \"createBy\" : null,\n \"updateBy\" : \"ljy\",\n \"path\" : \"/totalTrafficAnalysis\",\n \"method\" : \"GET\",\n \"parameters\" : [ {\n \"name\" : \"startTime\",\n \"value\" : \"1693444557\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"endTime\",\n \"value\" : \"1693448157\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"options\" : [ ],\n \"requestBody\" : \"\",\n \"headers\" : [ ],\n \"paths\" : [ ],\n \"responseBody\" : \"{\\n \\\"status\\\": 200,\\n \\\"code\\\": 200,\\n \\\"queryKey\\\": \\\"b0f1045be1bb3ce449ace2b50cb25d96\\\",\\n \\\"success\\\": true,\\n \\\"message\\\": null,\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 269,\\n \\\"rows_read\\\": 3455771,\\n \\\"bytes_read\\\": 93849396,\\n \\\"result_size\\\": 0,\\n \\\"result_rows\\\": 0\\n },\\n \\\"job\\\": null,\\n \\\"formatType\\\": \\\"json\\\",\\n \\\"meta\\\": [{\\n \\\"name\\\": \\\"stat_time\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Dimension\\\"\\n }, {\\n \\\"name\\\": \\\"total_bytes\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"inbound_bytes\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"outbound_bytes\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"query_num\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }],\\n \\\"data\\\": {\\n \\\"resultType\\\": \\\"object\\\",\\n \\\"result\\\": []\\n },\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT TIME_FLOOR_WITH_FILL(stat_time,\'PT1M\',\'zero\') AS stat_time, SUM(common_c2s_byte_num + common_s2c_byte_num) AS total_bytes, SUM(traffic_inbound_byte) AS inbound_bytes, SUM(traffic_outbound_byte) AS outbound_bytes, COUNT(*) AS query_num FROM metric_protocol WHERE stat_time >= 1693272384 AND stat_time < 1693299968 AND common_l7_protocol = \'DNS\' GROUP BY stat_time ORDER BY stat_time ASC&format=json&option=real-time\\\",\\n \\\"msg\\\": \\\"OK\\\"\\n}\",\n \"description\" : null,\n \"requestBodyDefinition\" : null,\n \"responseBodyDefinition\" : {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"status\",\n \"value\" : \"200\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"code\",\n \"value\" : \"200\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"queryKey\",\n \"value\" : \"b0f1045be1bb3ce449ace2b50cb25d96\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"success\",\n \"value\" : \"true\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Boolean\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"message\",\n \"value\" : \"null\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"statistics\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"elapsed\",\n \"value\" : \"269\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"rows_read\",\n \"value\" : \"3455771\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"bytes_read\",\n \"value\" : \"93849396\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result_size\",\n \"value\" : \"0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result_rows\",\n \"value\" : \"0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }, {\n \"name\" : \"job\",\n \"value\" : \"null\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"formatType\",\n \"value\" : \"json\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"meta\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Array\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"name\",\n \"value\" : \"stat_time\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"type\",\n \"value\" : \"long\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"category\",\n \"value\" : \"Dimension\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n } ]\n }, {\n \"name\" : \"data\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"resultType\",\n \"value\" : \"object\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Array\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }, {\n \"name\" : \"originalUrl\",\n \"value\" : \"http://192.168.44.55:9999/?query=SELECT TIME_FLOOR_WITH_FILL(stat_time,\'PT1M\',\'zero\') AS stat_time, SUM(common_c2s_byte_num + common_s2c_byte_num) AS total_bytes, SUM(traffic_inbound_byte) AS inbound_bytes, SUM(traffic_outbound_byte) AS outbound_bytes, COUNT(*) AS query_num FROM metric_protocol WHERE stat_time >= 1693272384 AND stat_time < 1693299968 AND common_l7_protocol = \'DNS\' GROUP BY stat_time ORDER BY stat_time ASC&format=json&option=real-time\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"msg\",\n \"value\" : \"OK\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }\n}\r\n================================\r\nimport http;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport \'@/pre/timeHandleNone\' as preHandle;\r\nimport \'@/post/object\' as objHandle\r\nimport \'@/public/getPercentile\' as getPercentile\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult\r\n\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime\r\n}\r\n\r\npreHandle(parameter);\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\":\\\"SELECT TIME_FLOOR_WITH_FILL(stat_time,\'PT1M\',\'zero\') AS stat_time, SUM(common_c2s_byte_num + common_s2c_byte_num) AS total_bytes, SUM(traffic_inbound_byte) AS inbound_bytes, SUM(traffic_outbound_byte) AS outbound_bytes, COUNT(*) AS query_num FROM metric_protocol WHERE stat_time >= ${startTime} AND stat_time < ${endTime} AND common_l7_protocol = \'DNS\' GROUP BY stat_time ORDER BY stat_time ASC\\\",\\\"option\\\":\\\"real-time\\\",\\\"format\\\":\\\"json\\\"}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"dnsOverviewTotalTrafficAnalysis\",q,parameter);\r\nvar param = jsonUtil.toBean(result,HashMap.class);\r\nvar result = getGalaxyResult(param);\r\n\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nif(result.success){\r\n var o = {};\r\n o.resultType=\"object\";\r\n var old = new ArrayList();\r\n var list = result.data;\r\n var newList = new ArrayList();\r\n for(i,j in list){\r\n newList.add(list[i]);\r\n }\r\n if(list.length > 0){\r\n for(i,j in list){\r\n var pojo = list[i];\r\n var tempObj= {};\r\n for (key,value in pojo){\r\n if(key.indexOf(\"stat_time\") != -1){\r\n tempObj[\'statTime\'] = pojo[key]\r\n }else if(key.indexOf(\"total_bytes\") != -1){\r\n tempObj[\'totalBitsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2).asDouble() * 8\r\n }else if(key.indexOf(\"inbound_bytes\") != -1){\r\n tempObj[\'inboundBitsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2).asDouble() * 8\r\n }else if(key.indexOf(\"outbound_bytes\") != -1){\r\n tempObj[\'outboundBitsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2).asDouble() * 8\r\n }else if(key == \'query_num\'){\r\n tempObj[\'totalQueryRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2).asDouble()\r\n }\r\n }\r\n list[i] = tempObj;\r\n list[i].statTime = list[i].statTime;\r\n }\r\n var bytes = [];\r\n var queries = [];\r\n for(key,value in list[0]){\r\n if(key.indexOf(\"Bits\") != -1){\r\n bytes.push(key);\r\n } else if(key.indexOf(\"Query\") != -1){\r\n queries.push(key);\r\n }\r\n }\r\n var map = new HashMap();\r\n map.put(\"totalBitsRate\",\"total_bytes\");\r\n map.put(\"inboundBitsRate\",\"inbound_bytes\");\r\n map.put(\"outboundBitsRate\",\"outbound_bytes\");\r\n map.put(\"totalQueryRate\",\"query_num\");\r\n var type = {};\r\n type.bytes = bytes;\r\n type.queries = queries;\r\n for(key,value in type){\r\n var obj = {};\r\n obj.type = key;\r\n var typeKey = type[key];\r\n for(m,n in typeKey){\r\n var zong = {};\r\n var analysis = {};\r\n var values = new ArrayList();\r\n list.sort((a,b)=>a.statTime.asDouble() - b.statTime.asDouble());\r\n var sumValue = 0;\r\n for(i,j in list){\r\n var pojo = list[i];\r\n var tempArray = new ArrayList();\r\n tempArray.add(pojo[\"statTime\"]);\r\n tempArray.add(pojo[typeKey[m]] + \"\");\r\n values.add(tempArray);\r\n }\r\n for(i,j in newList){\r\n var pojo = newList[i];\r\n var field = map.get(typeKey[m]);\r\n var value = pojo[field];\r\n sumValue += value.asDouble();\r\n }\r\n analysis.avg = (sumValue/parameter.timeDiff).toFixed(2);\r\n if(key==\"bytes\"){\r\n analysis.avg = analysis.avg.asDouble() * 8;\r\n }\r\n analysis.avg=analysis.avg+\"\";\r\n \r\n var plist = [];\r\n for(i,j in values){\r\n plist.push(values[i][1].asDouble());\r\n }\r\n analysis.max = plist.max()+\"\";\r\n analysis.min = plist.min()+\"\";\r\n analysis.p95 = getPercentile(plist, 0.95)+\"\";\r\n \r\n zong.values = values;\r\n zong.analysis = analysis;\r\n obj[typeKey[m]] = zong;\r\n }\r\n old.add(obj);\r\n }\r\n }\r\n o.result = old;\r\n result.code=200;\r\n result.data=o;\r\n result.msg = result.message;\r\n result.message=null;\r\n}\r\n\r\nreturn result;'); +INSERT INTO `magic_api_file` VALUES ('/api/interface/dns/overview/整体流量统计曲线图.ms', '{\n \"properties\" : { },\n \"id\" : \"copy1673334218884d42884\",\n \"script\" : null,\n \"groupId\" : \"1557496edb7544508ef686b4c904dc99\",\n \"name\" : \"整体流量统计曲线图\",\n \"createTime\" : null,\n \"updateTime\" : 1697098532018,\n \"lock\" : null,\n \"createBy\" : null,\n \"updateBy\" : \"admin\",\n \"path\" : \"/totalTrafficAnalysis\",\n \"method\" : \"GET\",\n \"parameters\" : [ {\n \"name\" : \"startTime\",\n \"value\" : \"1693444557\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"endTime\",\n \"value\" : \"1693448157\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"options\" : [ ],\n \"requestBody\" : \"\",\n \"headers\" : [ ],\n \"paths\" : [ ],\n \"responseBody\" : \"{\\n \\\"status\\\": 200,\\n \\\"code\\\": 200,\\n \\\"queryKey\\\": \\\"b0f1045be1bb3ce449ace2b50cb25d96\\\",\\n \\\"success\\\": true,\\n \\\"message\\\": null,\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 269,\\n \\\"rows_read\\\": 3455771,\\n \\\"bytes_read\\\": 93849396,\\n \\\"result_size\\\": 0,\\n \\\"result_rows\\\": 0\\n },\\n \\\"job\\\": null,\\n \\\"formatType\\\": \\\"json\\\",\\n \\\"meta\\\": [{\\n \\\"name\\\": \\\"stat_time\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Dimension\\\"\\n }, {\\n \\\"name\\\": \\\"total_bytes\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"inbound_bytes\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"outbound_bytes\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"query_num\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }],\\n \\\"data\\\": {\\n \\\"resultType\\\": \\\"object\\\",\\n \\\"result\\\": []\\n },\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT TIME_FLOOR_WITH_FILL(stat_time,\'PT1M\',\'zero\') AS stat_time, SUM(common_c2s_byte_num + common_s2c_byte_num) AS total_bytes, SUM(traffic_inbound_byte) AS inbound_bytes, SUM(traffic_outbound_byte) AS outbound_bytes, COUNT(*) AS query_num FROM metric_protocol WHERE stat_time >= 1693272384 AND stat_time < 1693299968 AND common_l7_protocol = \'DNS\' GROUP BY stat_time ORDER BY stat_time ASC&format=json&option=real-time\\\",\\n \\\"msg\\\": \\\"OK\\\"\\n}\",\n \"description\" : null,\n \"requestBodyDefinition\" : null,\n \"responseBodyDefinition\" : {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"status\",\n \"value\" : \"200\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"code\",\n \"value\" : \"200\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"queryKey\",\n \"value\" : \"b0f1045be1bb3ce449ace2b50cb25d96\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"success\",\n \"value\" : \"true\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Boolean\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"message\",\n \"value\" : \"null\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"statistics\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"elapsed\",\n \"value\" : \"269\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"rows_read\",\n \"value\" : \"3455771\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"bytes_read\",\n \"value\" : \"93849396\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result_size\",\n \"value\" : \"0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result_rows\",\n \"value\" : \"0\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }, {\n \"name\" : \"job\",\n \"value\" : \"null\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"formatType\",\n \"value\" : \"json\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"meta\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Array\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"name\",\n \"value\" : \"stat_time\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"type\",\n \"value\" : \"long\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"category\",\n \"value\" : \"Dimension\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n } ]\n }, {\n \"name\" : \"data\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"resultType\",\n \"value\" : \"object\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"result\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Array\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }, {\n \"name\" : \"originalUrl\",\n \"value\" : \"http://192.168.44.55:9999/?query=SELECT TIME_FLOOR_WITH_FILL(stat_time,\'PT1M\',\'zero\') AS stat_time, SUM(common_c2s_byte_num + common_s2c_byte_num) AS total_bytes, SUM(traffic_inbound_byte) AS inbound_bytes, SUM(traffic_outbound_byte) AS outbound_bytes, COUNT(*) AS query_num FROM metric_protocol WHERE stat_time >= 1693272384 AND stat_time < 1693299968 AND common_l7_protocol = \'DNS\' GROUP BY stat_time ORDER BY stat_time ASC&format=json&option=real-time\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"msg\",\n \"value\" : \"OK\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }\n}\r\n================================\r\nimport http;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport \'@/pre/timeHandleNone\' as preHandle;\r\nimport \'@/post/object\' as objHandle\r\nimport \'@/public/getPercentile\' as getPercentile\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult\r\n\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime\r\n}\r\n\r\npreHandle(parameter);\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\":\\\"SELECT TIME_FLOOR_WITH_FILL(stat_time,\'PT${step}S\',\'zero\') AS stat_time, SUM(common_c2s_byte_num + common_s2c_byte_num) AS total_bytes, SUM(traffic_inbound_byte) AS inbound_bytes, SUM(traffic_outbound_byte) AS outbound_bytes, COUNT(*) AS query_num FROM metric_protocol WHERE stat_time >= ${startTime} AND stat_time < ${endTime} AND common_l7_protocol = \'DNS\' GROUP BY stat_time ORDER BY stat_time ASC\\\",\\\"option\\\":\\\"real-time\\\",\\\"format\\\":\\\"json\\\"}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"dnsOverviewTotalTrafficAnalysis\",q,parameter);\r\nvar param = jsonUtil.toBean(result,HashMap.class);\r\nvar result = getGalaxyResult(param);\r\n\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nif(result.success){\r\n var o = {};\r\n o.resultType=\"object\";\r\n var old = new ArrayList();\r\n var list = result.data;\r\n var newList = new ArrayList();\r\n for(i,j in list){\r\n newList.add(list[i]);\r\n }\r\n if(list.length > 0){\r\n for(i,j in list){\r\n var pojo = list[i];\r\n var tempObj= {};\r\n for (key,value in pojo){\r\n if(key.indexOf(\"stat_time\") != -1){\r\n tempObj[\'statTime\'] = pojo[key]\r\n }else if(key.indexOf(\"total_bytes\") != -1){\r\n tempObj[\'totalBitsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2).asDouble() * 8\r\n }else if(key.indexOf(\"inbound_bytes\") != -1){\r\n tempObj[\'inboundBitsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2).asDouble() * 8\r\n }else if(key.indexOf(\"outbound_bytes\") != -1){\r\n tempObj[\'outboundBitsRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2).asDouble() * 8\r\n }else if(key == \'query_num\'){\r\n tempObj[\'totalQueryRate\'] = (pojo[key].asDouble() / parameter.step).toFixed(2).asDouble()\r\n }\r\n }\r\n list[i] = tempObj;\r\n list[i].statTime = list[i].statTime;\r\n }\r\n var bytes = [];\r\n var queries = [];\r\n for(key,value in list[0]){\r\n if(key.indexOf(\"Bits\") != -1){\r\n bytes.push(key);\r\n } else if(key.indexOf(\"Query\") != -1){\r\n queries.push(key);\r\n }\r\n }\r\n var map = new HashMap();\r\n map.put(\"totalBitsRate\",\"total_bytes\");\r\n map.put(\"inboundBitsRate\",\"inbound_bytes\");\r\n map.put(\"outboundBitsRate\",\"outbound_bytes\");\r\n map.put(\"totalQueryRate\",\"query_num\");\r\n var type = {};\r\n type.bytes = bytes;\r\n type.queries = queries;\r\n for(key,value in type){\r\n var obj = {};\r\n obj.type = key;\r\n var typeKey = type[key];\r\n for(m,n in typeKey){\r\n var zong = {};\r\n var analysis = {};\r\n var values = new ArrayList();\r\n list.sort((a,b)=>a.statTime.asDouble() - b.statTime.asDouble());\r\n var sumValue = 0;\r\n for(i,j in list){\r\n var pojo = list[i];\r\n var tempArray = new ArrayList();\r\n tempArray.add(pojo[\"statTime\"]);\r\n tempArray.add(pojo[typeKey[m]] + \"\");\r\n values.add(tempArray);\r\n }\r\n for(i,j in newList){\r\n var pojo = newList[i];\r\n var field = map.get(typeKey[m]);\r\n var value = pojo[field];\r\n sumValue += value.asDouble();\r\n }\r\n analysis.avg = (sumValue/parameter.timeDiff).toFixed(2);\r\n if(key==\"bytes\"){\r\n analysis.avg = analysis.avg.asDouble() * 8;\r\n }\r\n analysis.avg=analysis.avg+\"\";\r\n \r\n var plist = [];\r\n for(i,j in values){\r\n plist.push(values[i][1].asDouble());\r\n }\r\n analysis.max = plist.max()+\"\";\r\n analysis.min = plist.min()+\"\";\r\n analysis.p95 = getPercentile(plist, 0.95)+\"\";\r\n \r\n zong.values = values;\r\n zong.analysis = analysis;\r\n obj[typeKey[m]] = zong;\r\n }\r\n old.add(obj);\r\n }\r\n }\r\n o.result = old;\r\n result.code=200;\r\n result.data=o;\r\n result.msg = result.message;\r\n result.message=null;\r\n}\r\n\r\nreturn result;'); INSERT INTO `magic_api_file` VALUES ('/api/interface/dns/公开递归域名服务器.ms', '{\n \"properties\" : { },\n \"id\" : \"copy1673428711234d93442\",\n \"script\" : null,\n \"groupId\" : \"9ee598b8dd6a46fdab5a76fd392dda1b\",\n \"name\" : \"公开递归域名服务器\",\n \"createTime\" : null,\n \"updateTime\" : 1673493956684,\n \"lock\" : null,\n \"createBy\" : \"th\",\n \"updateBy\" : \"ljy\",\n \"path\" : \"/oprdns\",\n \"method\" : \"GET\",\n \"parameters\" : [ ],\n \"options\" : [ ],\n \"requestBody\" : \"\",\n \"headers\" : [ ],\n \"paths\" : [ ],\n \"responseBody\" : null,\n \"description\" : null,\n \"requestBodyDefinition\" : null,\n \"responseBodyDefinition\" : null\n}\r\n================================\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport \'@/pre/timeHandle\' as preHandle;\r\nimport \'@/post/single\' as postHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\":\\\"SELECT COUNT(DISTINCT(ip_addr)) AS count FROM entity_info WHERE dns_server_role like \'%OPRDNS%\'\\\",\\\"option\\\":\\\"real-time\\\",\\\"format\\\":\\\"json\\\"}\"\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"dnsOprdns\",q,parameter);\r\n\r\n/**\r\n * 调用galaxy接口获取结果信息\r\n */\r\nvar res = jsonUtil.toBean(result,HashMap.class);\r\nvar galaxyRes = getGalaxyResult(res);\r\n\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar result = postHandle(galaxyRes);\r\nprintln(jsonUtil.toJsonStr(galaxyRes));\r\n\r\nreturn result;'); INSERT INTO `magic_api_file` VALUES ('/api/interface/dns/加密DNS协议支持统计.ms', '{\n \"properties\" : { },\n \"id\" : \"copy1673421570861d8838\",\n \"script\" : null,\n \"groupId\" : \"9ee598b8dd6a46fdab5a76fd392dda1b\",\n \"name\" : \"加密DNS协议支持统计\",\n \"createTime\" : null,\n \"updateTime\" : 1673598457759,\n \"lock\" : null,\n \"createBy\" : \"th\",\n \"updateBy\" : \"ljy\",\n \"path\" : \"/encryptedProtocolSupport\",\n \"method\" : \"GET\",\n \"parameters\" : [ ],\n \"options\" : [ ],\n \"requestBody\" : \"\",\n \"headers\" : [ ],\n \"paths\" : [ ],\n \"responseBody\" : \"{\\n \\\"status\\\": 200,\\n \\\"code\\\": 200,\\n \\\"queryKey\\\": \\\"42cfb65821ab69a82c506c85c479040b\\\",\\n \\\"success\\\": true,\\n \\\"message\\\": null,\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 0,\\n \\\"rows_read\\\": 2,\\n \\\"result_size\\\": 16,\\n \\\"result_rows\\\": 1\\n },\\n \\\"job\\\": null,\\n \\\"formatType\\\": \\\"json\\\",\\n \\\"meta\\\": [{\\n \\\"name\\\": \\\"doh\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"dot\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }],\\n \\\"data\\\": {\\n \\\"resultType\\\": \\\"object\\\",\\n \\\"result\\\": {\\n \\\"doh\\\": {\\n \\\"count\\\": 104,\\n \\\"percent\\\": 1.0E-4\\n },\\n \\\"dot\\\": {\\n \\\"count\\\": 0,\\n \\\"percent\\\": -0.0\\n }\\n }\\n },\\n \\\"msg\\\": \\\"OK\\\"\\n}\",\n \"description\" : null,\n \"requestBodyDefinition\" : null,\n \"responseBodyDefinition\" : null\n}\r\n================================\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport \'@/pre/timeHandle\' as preHandle;\r\nimport \'@/public/toHump\' as toHump\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\nimport \'@get:/interface/dns/dohCount\' as gatDoh;\r\nimport \'@get:/interface/dns/dotCount\' as gatDot;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \r\n}\r\nvar doh = gatDoh();\r\nvar dot = gatDot();\r\nif(doh.success){\r\n if(!is_null(doh.data.result)){\r\n parameter.doh = doh.data.result;\r\n } else{\r\n parameter.doh = {}\r\n }\r\n}\r\nif(dot.success){\r\n if(!is_null(dot.data.result)){\r\n parameter.dot = dot.data.result\r\n } else{\r\n parameter.dot = {}\r\n }\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\":\\\"SELECT 0 AS doh ,0 AS dot FROM entity_info LIMIT 1\\\",\\\"option\\\":\\\"real-time\\\",\\\"format\\\":\\\"json\\\"}\"\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"dnsEncryptedProtocolSupport\",q,parameter);\r\n\r\n/**\r\n * 调用galaxy接口获取结果信息\r\n */\r\nvar res = jsonUtil.toBean(result,HashMap.class);\r\nvar result = getGalaxyResult(res);\r\n\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nif(result.success){\r\n var o={};\r\n o.resultType=\"object\";\r\n o.result={};\r\n if(result.data.length > 0){\r\n o.result.doh = parameter.doh;\r\n o.result.dot = parameter.dot;\r\n }\r\n result.code=200;\r\n result.data=o;\r\n result.msg = result.message;\r\n result.message=null;\r\n}\r\nprintln(jsonUtil.toJsonStr(galaxyRes));\r\n\r\nreturn result;'); INSERT INTO `magic_api_file` VALUES ('/api/interface/dns/响应失败率.ms', '{\n \"properties\" : { },\n \"id\" : \"copy1673420918610d26480\",\n \"script\" : null,\n \"groupId\" : \"9ee598b8dd6a46fdab5a76fd392dda1b\",\n \"name\" : \"响应失败率\",\n \"createTime\" : null,\n \"updateTime\" : 1675847807192,\n \"lock\" : null,\n \"createBy\" : \"th\",\n \"updateBy\" : \"ljy\",\n \"path\" : \"/responseFailureRate\",\n \"method\" : \"GET\",\n \"parameters\" : [ {\n \"name\" : \"startTime\",\n \"value\" : \"1675405158\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"endTime\",\n \"value\" : \"1675408758\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"options\" : [ ],\n \"requestBody\" : \"\",\n \"headers\" : [ ],\n \"paths\" : [ ],\n \"responseBody\" : \"{\\n \\\"message\\\": \\\"Please log in to the system first\\\",\\n \\\"code\\\": 518008,\\n \\\"time\\\": 1675847788185\\n}\",\n \"description\" : null,\n \"requestBodyDefinition\" : null,\n \"responseBodyDefinition\" : {\n \"name\" : \"\",\n \"value\" : \"\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Object\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ {\n \"name\" : \"message\",\n \"value\" : \"Please log in to the system first\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"code\",\n \"value\" : \"518008\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n }, {\n \"name\" : \"time\",\n \"value\" : \"1675847788185\",\n \"description\" : \"\",\n \"required\" : false,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : \"\",\n \"error\" : \"\",\n \"expression\" : \"\",\n \"children\" : [ ]\n } ]\n }\n}\r\n================================\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport \'@/pre/timeHandleNone\' as preHandle;\r\nimport \'@/post/matrix\' as postHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime\r\n}\r\npreHandle(parameter)\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\":\\\"SELECT TIME_FLOOR_WITH_FILL(UNIX_TIMESTAMP(common_recv_time),\'PT${step}S\',\'zero\') AS stat_time, ROUND(SUM(IF(dns_rcode = 1,1,0))/COUNT(dns_rcode),4) AS format_error_rate, ROUND(SUM(IF(dns_rcode = 2,1,0))/COUNT(dns_rcode),4) AS server_failure_rate, ROUND(SUM(IF(dns_rcode = 3,1,0))/COUNT(dns_rcode),4) AS non_existent_domain_rate, ROUND(SUM(IF(dns_rcode = 4,1,0))/COUNT(dns_rcode),4) AS not_implemented_rate, ROUND(SUM(IF(dns_rcode = 5,1,0))/COUNT(dns_rcode),4) AS query_refused_rate FROM session_record_cn WHERE common_recv_time >= ${startTime} AND common_recv_time < ${endTime} AND common_schema_type = \'DNS\' GROUP BY stat_time ORDER BY stat_time ASC\\\",\\\"option\\\":\\\"real-time\\\",\\\"format\\\":\\\"json\\\"}\"\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"dnsResponseFailureRate\",q,parameter);\r\n\r\n/**\r\n * 调用galaxy接口获取结果信息\r\n */\r\nvar res = jsonUtil.toBean(result,HashMap.class);\r\nvar galaxyRes = getGalaxyResult(res);\r\n\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar result = postHandle(galaxyRes);\r\nprintln(jsonUtil.toJsonStr(galaxyRes));\r\n\r\nreturn result;'); @@ -860,8 +860,8 @@ INSERT INTO `magic_api_file` VALUES ('/function/preHandle/各维度类型参数� INSERT INTO `magic_api_file` VALUES ('/function/preHandle/各维度类型参数处理8.ms', '{\n \"properties\" : { },\n \"id\" : \"copy1673514404382d97509\",\n \"script\" : null,\n \"groupId\" : \"c054c13da78d46bdb768eaa42d23694b\",\n \"name\" : \"各维度类型参数处理8\",\n \"createTime\" : 1673513939666,\n \"updateTime\" : 1673514507091,\n \"lock\" : null,\n \"createBy\" : \"ljy\",\n \"updateBy\" : \"ljy\",\n \"path\" : \"/typeHandle8th\",\n \"description\" : null,\n \"returnType\" : null,\n \"mappingPath\" : null,\n \"parameters\" : [ {\n \"name\" : \"parameter\",\n \"value\" : null,\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ]\n}\r\n================================\r\nif(parameter.type==\'idcRenter\'){\r\n parameter.dimension = \'app_company\';\r\n parameter.label = \'app_company\';\r\n parameter.filter = \"entity_type = \'app\'\";\r\n}else if(parameter.type==\'appLabel\'){\r\n parameter.dimension = \'app_name\';\r\n parameter.label = \'app_name\';\r\n parameter.filter = \"entity_type = \'app\'\";\r\n}'); INSERT INTO `magic_api_file` VALUES ('/function/preHandle/各维度类型参数处理9.ms', '{\n \"properties\" : { },\n \"id\" : \"copy1673592240076d99307\",\n \"script\" : null,\n \"groupId\" : \"c054c13da78d46bdb768eaa42d23694b\",\n \"name\" : \"各维度类型参数处理9\",\n \"createTime\" : 1673513939666,\n \"updateTime\" : 1694503000675,\n \"lock\" : null,\n \"createBy\" : \"ljy\",\n \"updateBy\" : \"ljy\",\n \"path\" : \"/typeHandle9th\",\n \"description\" : null,\n \"returnType\" : null,\n \"mappingPath\" : null,\n \"parameters\" : [ {\n \"name\" : \"parameter\",\n \"value\" : null,\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ]\n}\r\n================================\r\nif(parameter.type==\'ip\'){\r\n parameter.dimension = \'server_ip\';\r\n}else if(parameter.type==\'appLabel\'){\r\n parameter.dimension = \'app_name\';\r\n}else if(parameter.type==\'domain\'){\r\n parameter.dimension = \'domain\';\r\n}else if(parameter.type==\'domainSld\'){\r\n parameter.dimension = \'domain\';\r\n}'); INSERT INTO `magic_api_file` VALUES ('/function/preHandle/实体网络质量参数处理.ms', '{\n \"properties\" : { },\n \"id\" : \"copy1693446386341d91769\",\n \"script\" : null,\n \"groupId\" : \"c054c13da78d46bdb768eaa42d23694b\",\n \"name\" : \"实体网络质量参数处理\",\n \"createTime\" : 1673513178380,\n \"updateTime\" : 1693447166949,\n \"lock\" : null,\n \"createBy\" : \"ljy\",\n \"updateBy\" : \"ljy\",\n \"path\" : \"/entityTrafficHandle\",\n \"description\" : null,\n \"returnType\" : null,\n \"mappingPath\" : null,\n \"parameters\" : [ {\n \"name\" : \"parameter\",\n \"value\" : null,\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ]\n}\r\n================================\r\nif(parameter.entityType==\"ip\"){\r\n parameter.tableName = \"metric_ip\";\r\n}else if(parameter.entityType==\"app\"){\r\n parameter.tableName = \"metric_application\";\r\n}else if(parameter.entityType==\"domain\"){\r\n parameter.tableName = \"metric_domain\";\r\n}\r\nreturn parameter;'); -INSERT INTO `magic_api_file` VALUES ('/function/preHandle/时间处理无转换.ms', '{\n \"properties\" : { },\n \"id\" : \"9c995d697d8048f8958eaf11d71e0748\",\n \"script\" : null,\n \"groupId\" : \"c054c13da78d46bdb768eaa42d23694b\",\n \"name\" : \"时间处理无转换\",\n \"createTime\" : 1672897818972,\n \"updateTime\" : 1673923226582,\n \"lock\" : null,\n \"createBy\" : \"admin\",\n \"updateBy\" : \"ljy\",\n \"path\" : \"/timeHandleNone\",\n \"description\" : null,\n \"returnType\" : null,\n \"mappingPath\" : null,\n \"parameters\" : [ {\n \"name\" : \"parameter\",\n \"value\" : null,\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : \"java.lang.Object\",\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ]\n}\r\n================================\r\nif (parameter.endTime==\"\" || is_null(parameter.endTime)) {\r\n parameter.endTime = new Date().getTime()/1000;\r\n}\r\nif (parameter.startTime==\"\" || is_null(parameter.startTime)) {\r\n parameter.startTime = parameter.endTime - 60 * 60;\r\n}\r\n/*计算step,series最多显示100个点,单位:s*/\r\nparameter.step = (parameter.endTime.asLong() - parameter.startTime.asLong())/100;\r\nparameter.step = parameter.step>=30?parameter.step:30;\r\nparameter.timeDiff = parameter.endTime.asLong() - parameter.startTime.asLong()\r\nreturn parameter'); -INSERT INTO `magic_api_file` VALUES ('/function/preHandle/时间处理有转换.ms', '{\n \"properties\" : { },\n \"id\" : \"copy1671778479626d96635\",\n \"script\" : null,\n \"groupId\" : \"c054c13da78d46bdb768eaa42d23694b\",\n \"name\" : \"时间处理有转换\",\n \"createTime\" : 1672897818975,\n \"updateTime\" : 1673923221154,\n \"lock\" : null,\n \"createBy\" : \"admin\",\n \"updateBy\" : \"ljy\",\n \"path\" : \"/timeHandle\",\n \"description\" : null,\n \"returnType\" : null,\n \"mappingPath\" : null,\n \"parameters\" : [ {\n \"name\" : \"parameter\",\n \"value\" : null,\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ]\n}\r\n================================\r\nif (parameter.endTime==\"\" || is_null(parameter.endTime)) {\r\n parameter.endTime = new Date().getTime()/1000;\r\n}\r\nif (parameter.startTime==\"\" || is_null(parameter.startTime)) {\r\n parameter.startTime = parameter.endTime - 60 * 60;\r\n}\r\n\r\n/*计算step,series最多显示100个点,单位:s*/\r\nparameter.step = (parameter.endTime.asLong() - parameter.startTime.asLong())/100;\r\nparameter.step = parameter.step>=30?parameter.step:30;\r\nparameter.timeDiff = parameter.endTime.asLong() - parameter.startTime.asLong()\r\n/*时间转换为toDateTime*/\r\nparameter.endTime = \'toDateTime(\'+parameter.endTime+\')\';\r\nparameter.startTime = \'toDateTime(\'+parameter.startTime+\')\';\r\nreturn parameter'); +INSERT INTO `magic_api_file` VALUES ('/function/preHandle/时间处理无转换.ms', '{\n \"properties\" : { },\n \"id\" : \"9c995d697d8048f8958eaf11d71e0748\",\n \"script\" : null,\n \"groupId\" : \"c054c13da78d46bdb768eaa42d23694b\",\n \"name\" : \"时间处理无转换\",\n \"createTime\" : 1672897818972,\n \"updateTime\" : 1697098828450,\n \"lock\" : null,\n \"createBy\" : \"admin\",\n \"updateBy\" : \"admin\",\n \"path\" : \"/timeHandleNone\",\n \"description\" : null,\n \"returnType\" : null,\n \"mappingPath\" : null,\n \"parameters\" : [ {\n \"name\" : \"parameter\",\n \"value\" : null,\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : \"java.lang.Object\",\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ]\n}\r\n================================\r\nif (parameter.endTime==\"\" || is_null(parameter.endTime)) {\r\n parameter.endTime = new Date().getTime()/1000;\r\n}\r\nif (parameter.startTime==\"\" || is_null(parameter.startTime)) {\r\n parameter.startTime = parameter.endTime - 60 * 60;\r\n}\r\n/*计算step,series最多显示100个点,单位:s*/\r\nparameter.step = (parameter.endTime.asLong() - parameter.startTime.asLong())/100;\r\nparameter.step = parameter.step>=60?Math.round(parameter.step/60)*60:60;\r\nparameter.timeDiff = parameter.endTime.asLong() - parameter.startTime.asLong()\r\nreturn parameter'); +INSERT INTO `magic_api_file` VALUES ('/function/preHandle/时间处理有转换.ms', '{\n \"properties\" : { },\n \"id\" : \"copy1671778479626d96635\",\n \"script\" : null,\n \"groupId\" : \"c054c13da78d46bdb768eaa42d23694b\",\n \"name\" : \"时间处理有转换\",\n \"createTime\" : 1672897818975,\n \"updateTime\" : 1697098824683,\n \"lock\" : null,\n \"createBy\" : \"admin\",\n \"updateBy\" : \"admin\",\n \"path\" : \"/timeHandle\",\n \"description\" : null,\n \"returnType\" : null,\n \"mappingPath\" : null,\n \"parameters\" : [ {\n \"name\" : \"parameter\",\n \"value\" : null,\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ]\n}\r\n================================\r\nif (parameter.endTime==\"\" || is_null(parameter.endTime)) {\r\n parameter.endTime = new Date().getTime()/1000;\r\n}\r\nif (parameter.startTime==\"\" || is_null(parameter.startTime)) {\r\n parameter.startTime = parameter.endTime - 60 * 60;\r\n}\r\n\r\n/*计算step,series最多显示100个点,单位:s*/\r\nparameter.step = (parameter.endTime.asLong() - parameter.startTime.asLong())/100;\r\nparameter.step = parameter.step>=60?Math.round(parameter.step/60)*60:60;\r\nparameter.timeDiff = parameter.endTime.asLong() - parameter.startTime.asLong()\r\n/*时间转换为toDateTime*/\r\nparameter.endTime = \'toDateTime(\'+parameter.endTime+\')\';\r\nparameter.startTime = \'toDateTime(\'+parameter.startTime+\')\';\r\nreturn parameter\r\n\r\n'); INSERT INTO `magic_api_file` VALUES ('/function/preHandle/时间处理默认半年.ms', '{\n \"properties\" : { },\n \"id\" : \"copy1689132787298d39552\",\n \"script\" : null,\n \"groupId\" : \"c054c13da78d46bdb768eaa42d23694b\",\n \"name\" : \"时间处理默认半年\",\n \"createTime\" : 1689132901647,\n \"updateTime\" : 1673923226582,\n \"lock\" : null,\n \"createBy\" : \"ljy\",\n \"updateBy\" : \"ljy\",\n \"path\" : \"/timeHandleHalf\",\n \"description\" : null,\n \"returnType\" : null,\n \"mappingPath\" : null,\n \"parameters\" : [ {\n \"name\" : \"parameter\",\n \"value\" : null,\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : \"java.lang.Object\",\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ]\n}\r\n================================\r\nimport cn.hutool.core.util.ObjectUtil\r\n\r\nif (ObjectUtil.isEmpty(parameter.endTime)) {\r\n parameter.endTime = new Date().getTime()/1000;\r\n}\r\nif (ObjectUtil.isEmpty(parameter.startTime)) {\r\n parameter.startTime = parameter.endTime - 6 * 30 * 86400;\r\n}\r\nreturn parameter'); INSERT INTO `magic_api_file` VALUES ('/function/public/', 'this is directory'); INSERT INTO `magic_api_file` VALUES ('/function/public/group.json', '{\n \"properties\" : { },\n \"id\" : \"673ae6470fae40f2af520bff187a0f96\",\n \"name\" : \"public\",\n \"type\" : \"function\",\n \"parentId\" : \"0\",\n \"path\" : \"public\",\n \"createTime\" : 1672897818302,\n \"updateTime\" : 1672713601333,\n \"createBy\" : \"admin\",\n \"updateBy\" : \"admin\",\n \"paths\" : [ ],\n \"options\" : [ ]\n}'); @@ -874,4 +874,4 @@ INSERT INTO `magic_api_file` VALUES ('/function/public/发送POST请求.ms', '{\ INSERT INTO `magic_api_file` VALUES ('/function/public/实体关系处理.ms', '{\n \"properties\" : { },\n \"id\" : \"f14a13aeffb64785befc9bcaa06d59c0\",\n \"script\" : null,\n \"groupId\" : \"673ae6470fae40f2af520bff187a0f96\",\n \"name\" : \"实体关系处理\",\n \"createTime\" : 1672900390868,\n \"updateTime\" : null,\n \"lock\" : null,\n \"createBy\" : \"admin\",\n \"updateBy\" : null,\n \"path\" : \"/relation\",\n \"description\" : null,\n \"returnType\" : null,\n \"mappingPath\" : null,\n \"parameters\" : [ {\n \"name\" : \"obj\",\n \"value\" : null,\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"data\",\n \"value\" : null,\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ]\n}\r\n================================\r\nimport \'@/public/relation\' as handlerResult\r\n\r\nif(data!=null&&data!=undefined){\r\n if(data.leaf!=null&&data.leaf!=undefined&&data.leaf.length>0){\r\n for(i in data.leaf){\r\n handlerResult(obj,i);\r\n }\r\n }else{\r\n var node = {};\r\n node.name = data.name;\r\n node.type = data.type;\r\n node.lastTime = data.last_time;\r\n\r\n var link = {};\r\n link.from = data.from;\r\n link.to = data.to;\r\n\r\n obj.result.links.push(link);\r\n obj.result.nodes.push(node);\r\n }\r\n}'); INSERT INTO `magic_api_file` VALUES ('/function/public/获取分位数.ms', '{\n \"properties\" : { },\n \"id\" : \"a8f4fd176b264f87a126ccec2c01b48c\",\n \"script\" : null,\n \"groupId\" : \"673ae6470fae40f2af520bff187a0f96\",\n \"name\" : \"获取分位数\",\n \"createTime\" : 1672897818983,\n \"updateTime\" : 1673851116387,\n \"lock\" : null,\n \"createBy\" : \"admin\",\n \"updateBy\" : \"ljy\",\n \"path\" : \"/getPercentile\",\n \"description\" : null,\n \"returnType\" : null,\n \"mappingPath\" : null,\n \"parameters\" : [ {\n \"name\" : \"list\",\n \"value\" : null,\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : \"java.util.Collection\",\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"p\",\n \"value\" : null,\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : \"java.lang.Number\",\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ]\n}\r\n================================\r\nvar n = list.length;\r\nlist = list.sort((a, b) => {\r\n if (a > b) {\r\n return 1;\r\n } else if(a==b){\r\n return 0;\r\n } else {\r\n return -1;\r\n }\r\n});\r\nvar px = p*(n-1);\r\nvar i = Math.floor(px);\r\nvar g = px - i;\r\nif(g==0){\r\n return list[i];\r\n}\r\nreturn (1-g)*list[i]+g*list[i+1];\r\n'); -SET FOREIGN_KEY_CHECKS = 1;
\ No newline at end of file +SET FOREIGN_KEY_CHECKS = 1; |
