diff options
| author | lijinyang <[email protected]> | 2023-11-09 14:02:43 +0800 |
|---|---|---|
| committer | lijinyang <[email protected]> | 2023-11-09 14:02:43 +0800 |
| commit | c51dc454ea8bcaa800ab0c5bcafc283fb0813ca7 (patch) | |
| tree | 8e7b457299f61bbb3b908fc6775a2b5c692e9726 | |
| parent | fec31e7e9ae283247f7d9fd3a3960b15732bfe1c (diff) | |
fix:CN-1460 API 实体列表左侧业务指标统计Top唯一数统计调整
5 files changed, 165 insertions, 29 deletions
diff --git a/cn-admin/src/main/java/net/geedge/modules/entity/service/EntityExplorerService.java b/cn-admin/src/main/java/net/geedge/modules/entity/service/EntityExplorerService.java index 717bdd5..1dbfbec 100644 --- a/cn-admin/src/main/java/net/geedge/modules/entity/service/EntityExplorerService.java +++ b/cn-admin/src/main/java/net/geedge/modules/entity/service/EntityExplorerService.java @@ -16,4 +16,10 @@ public interface EntityExplorerService { Map<String, Object> getAssociationQueryParam(String resource); String getBasicQueryFilter(String resource); + + List<String> getPrimayForFilter(String resource, String dataName); + + String formatHasFilter(String resource); + + List<String> gatTagsForFilter(String resource); } diff --git a/cn-admin/src/main/java/net/geedge/modules/entity/service/impl/EntityExplorerServiceImpl.java b/cn-admin/src/main/java/net/geedge/modules/entity/service/impl/EntityExplorerServiceImpl.java index 1c2c4b4..28a9934 100644 --- a/cn-admin/src/main/java/net/geedge/modules/entity/service/impl/EntityExplorerServiceImpl.java +++ b/cn-admin/src/main/java/net/geedge/modules/entity/service/impl/EntityExplorerServiceImpl.java @@ -10,8 +10,13 @@ import net.geedge.modules.sys.service.SysConfigService; import net.sf.jsqlparser.JSQLParserException; import net.sf.jsqlparser.expression.Expression; import net.sf.jsqlparser.expression.ExpressionVisitorAdapter; +import net.sf.jsqlparser.expression.Function; +import net.sf.jsqlparser.expression.operators.conditional.AndExpression; +import net.sf.jsqlparser.expression.operators.conditional.OrExpression; import net.sf.jsqlparser.expression.operators.relational.EqualsTo; +import net.sf.jsqlparser.expression.operators.relational.ExpressionList; import net.sf.jsqlparser.expression.operators.relational.InExpression; +import net.sf.jsqlparser.expression.operators.relational.LikeExpression; import net.sf.jsqlparser.parser.CCJSqlParserUtil; import net.sf.jsqlparser.schema.Column; import net.sf.jsqlparser.schema.Table; @@ -59,15 +64,12 @@ public class EntityExplorerServiceImpl implements EntityExplorerService { ExpressionDeParser result = new ExpressionDeParser() { @Override public void visit(Column column) { + removeDoubleQuotes(column); + String columnName = ""; + if(ObjectUtil.isNotEmpty(column.getTable())) { + columnName = column.getTable() + "." + column.getColumnName(); + } for (Map<String, Object> map : searchColumns) { - if(column.getColumnName().contains("\"")) { - String newColumn = column.getColumnName().replace("\"", "").trim().replace(" ","."); - column.setColumnName(newColumn); - } - String columnName = ""; - if(ObjectUtil.isNotEmpty(column.getTable())) { - columnName = column.getTable() + "." + column.getColumnName(); - } if (column.getColumnName().equals((String)map.get("label")) || columnName.equals((String)map.get("label"))){ Map<String, Object> connector =(Map<String, Object>) map.get("connector"); String table = (String)connector.get("alias"); @@ -86,13 +88,9 @@ public class EntityExplorerServiceImpl implements EntityExplorerService { ExpressionDeParser result = new ExpressionDeParser() { @Override public void visit(Column column) { + removeDoubleQuotes(column); for (Map<String, Object> map : searchColumns) { - if(column.getColumnName().contains("\"")) { - String newColumn = column.getColumnName().replace("\"", "").trim().replace(" ","."); - column.setColumnName(newColumn); - } - String columnName = ""; - if (column.getColumnName().equals((String)map.get("label")) || columnName.equals((String)map.get("label"))){ + if (column.getColumnName().equals((String)map.get("label"))){ column.setColumnName((String) map.get("name")); break; } @@ -193,4 +191,135 @@ public class EntityExplorerServiceImpl implements EntityExplorerService { List<Map<String, Object>> searchColumns = (List<Map<String, Object>>) entityMetadata.get("searchColumns"); return searchColumns; } + + @Override + public List<String> getPrimayForFilter(String resource, String dataName) { + List<String> result = new ArrayList<>(); + if(ObjectUtil.isNotEmpty(resource)) { + List<Map<String, Object>> searchColumns = getSearchColumns(dataName); + try { + Expression expr = CCJSqlParserUtil.parseCondExpression(resource); + ExpressionDeParser expressionDeParser = null; + if("entityMetadata".equals(dataName)) { + result = getPrimayParse(resource,searchColumns); + } + } catch (JSQLParserException e) { + e.printStackTrace(); + } + } + return result; + } + + private List<String> getPrimayParse(String resource, List<Map<String, Object>> searchColumns) throws JSQLParserException { + List<String> result = new ArrayList<>(); + Expression expr = CCJSqlParserUtil.parseCondExpression(resource); + ExpressionDeParser expressionDeParser = new ExpressionDeParser() { + @Override + public void visit(Column column) { + removeDoubleQuotes(column); + String columnName = ""; + if(ObjectUtil.isNotEmpty(column.getTable())) { + columnName = column.getTable() + "." + column.getColumnName(); + } + for (Map<String, Object> map : searchColumns) { + if (column.getColumnName().equals((String)map.get("label")) || columnName.equals((String)map.get("label"))){ + Map<String, Object> doc =(Map<String, Object>) map.get("doc"); + Map<String, Object> constraints = (Map<String, Object>)doc.get("constraints"); + String primay = (String)constraints.get("primay"); + List<String> split = Arrays.asList(primay.split(",")); + result.addAll(split); + } + } + } + }; + expr.accept(expressionDeParser); + return result; + } + + private void removeDoubleQuotes(Column column) { + if(column.getColumnName().contains("\"")) { + String newColumn = column.getColumnName().replace("\"", "").trim().replace(" ","."); + column.setColumnName(newColumn); + } + } + + @Override + public String formatHasFilter(String resource) { + StringBuffer result = new StringBuffer(); + if(ObjectUtil.isNotEmpty(resource)) { + try { + Expression expr = CCJSqlParserUtil.parseCondExpression(resource); + ExpressionDeParser expressionDeParser = formatHasEdp(result); + expr.accept(expressionDeParser); + } catch (JSQLParserException e) { + e.printStackTrace(); + } + } + removeSuperfluousAnd(result); + return result.toString().trim(); + } + + private ExpressionDeParser formatHasEdp(StringBuffer whereBuffer) { + ExpressionDeParser result = new ExpressionDeParser() { + @Override + public void visit(Function function) { + if(function.getName().equals("has")) { + ExpressionList parameters = function.getParameters(); + List<Expression> expressions = parameters.getExpressions(); + whereBuffer.append(StrUtil.concat(false," AND (has(",expressions.get(0).toString(),", concat('ip.',",expressions.get(1).toString(), + ")) OR has(",expressions.get(0).toString(),", concat('domain.',",expressions.get(1).toString(), + ")) OR has(",expressions.get(0).toString(),", concat('app.',",expressions.get(1).toString(),")))")); + } + } + @Override + public void visit(LikeExpression likeExpression) { + whereBuffer.append(StrUtil.concat(false," AND ",likeExpression.toString())); + } + @Override + public void visit(EqualsTo equalsTo) { + whereBuffer.append(StrUtil.concat(false," AND ",equalsTo.toString())); + } + @Override + public void visit(InExpression inExpression) { + whereBuffer.append(StrUtil.concat(false," AND ",inExpression.toString())); + } + }; + return result; + } + + private void removeSuperfluousAnd(StringBuffer whereBuffer) { + int firstAndIndex = whereBuffer.indexOf("AND"); + if(firstAndIndex != -1) { + whereBuffer.delete(firstAndIndex,firstAndIndex + 3); + } + } + + @Override + public List<String> gatTagsForFilter(String resource) { + List<String> result = new ArrayList<>(); + if(ObjectUtil.isNotEmpty(resource)) { + try { + Expression expr = CCJSqlParserUtil.parseCondExpression(resource); + ExpressionDeParser expressionDeParser = gatTagsForFilterEdp(result); + expr.accept(expressionDeParser); + } catch (JSQLParserException e) { + e.printStackTrace(); + } + } + return result; + } + + private ExpressionDeParser gatTagsForFilterEdp(List<String> list) { + ExpressionDeParser result = new ExpressionDeParser() { + @Override + public void visit(Function function) { + if (function.getName().equals("has")) { + ExpressionList parameters = function.getParameters(); + List<Expression> expressions = parameters.getExpressions(); + list.add(expressions.get(1).toString()); + } + } + }; + return result; + } } 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 9182718..3f72802 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 @@ -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\" : 1698719086336,\n \"lock\" : null,\n \"createBy\" : null,\n \"updateBy\" : \"ljy\",\n \"path\" : \"/totalTrafficAnalysis\",\n \"method\" : \"GET\",\n \"parameters\" : [ {\n \"name\" : \"startTime\",\n \"value\" : \"1698546257\",\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\" : \"1698719057\",\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\\\": \\\"1d7aa584bf2394505cdd2c12812b27a1\\\",\\n \\\"success\\\": true,\\n \\\"message\\\": null,\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 52,\\n \\\"rows_read\\\": 27090109,\\n \\\"bytes_read\\\": 575606148,\\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\\\": \\\"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,\'PT60S\',\'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(common_sessions) AS query_num FROM metric_protocol WHERE stat_time >= 1698546257 AND stat_time < 1695263245 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\" : \"1d7aa584bf2394505cdd2c12812b27a1\",\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\" : \"52\",\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\" : \"27090109\",\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\" : \"575606148\",\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\" : \"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,\'PT60S\',\'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(common_sessions) AS query_num FROM metric_protocol WHERE stat_time >= 1698546257 AND stat_time < 1695263245 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, SUM(common_sessions) 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\" : 1698722493749,\n \"lock\" : null,\n \"createBy\" : null,\n \"updateBy\" : \"ljy\",\n \"path\" : \"/totalTrafficAnalysis\",\n \"method\" : \"GET\",\n \"parameters\" : [ {\n \"name\" : \"startTime\",\n \"value\" : \"1698546257\",\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\" : \"1698719057\",\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\\\": \\\"71dcf9bdd80b82729597951857ae1d45\\\",\\n \\\"success\\\": true,\\n \\\"message\\\": null,\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 61,\\n \\\"rows_read\\\": 27090109,\\n \\\"bytes_read\\\": 583153764,\\n \\\"result_size\\\": 14581,\\n \\\"result_rows\\\": 145\\n },\\n \\\"job\\\": null,\\n \\\"formatType\\\": \\\"json\\\",\\n \\\"meta\\\": [{\\n \\\"name\\\": \\\"stat_time\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\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 \\\"type\\\": \\\"bytes\\\",\\n \\\"totalBitsRate\\\": {\\n \\\"values\\\": [\\n [1698546000, \\\"0.0\\\"],\\n [1698547200, \\\"0.0\\\"],\\n [1698548400, \\\"0.0\\\"],\\n [1698549600, \\\"0.0\\\"],\\n [1698550800, \\\"0.0\\\"],\\n [1698552000, \\\"0.0\\\"],\\n [1698553200, \\\"0.0\\\"],\\n [1698554400, \\\"0.0\\\"],\\n [1698555600, \\\"0.0\\\"],\\n [1698556800, \\\"0.0\\\"],\\n [1698558000, \\\"0.0\\\"],\\n [1698559200, \\\"0.0\\\"],\\n [1698560400, \\\"0.0\\\"],\\n [1698561600, \\\"0.0\\\"],\\n [1698562800, \\\"0.0\\\"],\\n [1698564000, \\\"0.0\\\"],\\n [1698565200, \\\"0.0\\\"],\\n [1698566400, \\\"0.0\\\"],\\n [1698567600, \\\"0.0\\\"],\\n [1698568800, \\\"0.0\\\"],\\n [1698570000, \\\"0.0\\\"],\\n [1698571200, \\\"0.0\\\"],\\n [1698572400, \\\"0.0\\\"],\\n [1698573600, \\\"0.0\\\"],\\n [1698574800, \\\"0.0\\\"],\\n [1698576000, \\\"0.0\\\"],\\n [1698577200, \\\"0.0\\\"],\\n [1698578400, \\\"0.0\\\"],\\n [1698579600, \\\"0.0\\\"],\\n [1698580800, \\\"0.0\\\"],\\n [1698582000, \\\"0.0\\\"],\\n [1698583200, \\\"0.0\\\"],\\n [1698584400, \\\"0.0\\\"],\\n [1698585600, \\\"0.0\\\"],\\n [1698586800, \\\"0.0\\\"],\\n [1698588000, \\\"0.0\\\"],\\n [1698589200, \\\"0.0\\\"],\\n [1698590400, \\\"0.0\\\"],\\n [1698591600, \\\"0.0\\\"],\\n [1698592800, \\\"0.0\\\"],\\n [1698594000, \\\"0.0\\\"],\\n [1698595200, \\\"0.0\\\"],\\n [1698596400, \\\"0.0\\\"],\\n [1698597600, \\\"0.0\\\"],\\n [1698598800, \\\"0.0\\\"],\\n [1698600000, \\\"0.0\\\"],\\n [1698601200, \\\"0.0\\\"],\\n [1698602400, \\\"0.0\\\"],\\n [1698603600, \\\"0.0\\\"],\\n [1698604800, \\\"0.0\\\"],\\n [1698606000, \\\"0.0\\\"],\\n [1698607200, \\\"0.0\\\"],\\n [1698608400, \\\"0.0\\\"],\\n [1698609600, \\\"0.0\\\"],\\n [1698610800, \\\"0.0\\\"],\\n [1698612000, \\\"0.0\\\"],\\n [1698613200, \\\"0.0\\\"],\\n [1698614400, \\\"0.0\\\"],\\n [1698615600, \\\"0.0\\\"],\\n [1698616800, \\\"0.0\\\"],\\n [1698618000, \\\"0.0\\\"],\\n [1698619200, \\\"0.0\\\"],\\n [1698620400, \\\"0.0\\\"],\\n [1698621600, \\\"0.0\\\"],\\n [1698622800, \\\"0.0\\\"],\\n [1698624000, \\\"0.0\\\"],\\n [1698625200, \\\"0.0\\\"],\\n [1698626400, \\\"0.0\\\"],\\n [1698627600, \\\"0.0\\\"],\\n [1698628800, \\\"0.0\\\"],\\n [1698630000, \\\"0.0\\\"],\\n [1698631200, \\\"0.0\\\"],\\n [1698632400, \\\"56.88\\\"],\\n [1698633600, \\\"171.2\\\"],\\n [1698634800, \\\"330.64\\\"],\\n [1698636000, \\\"2475.04\\\"],\\n [1698637200, \\\"122.56\\\"],\\n [1698638400, \\\"0.0\\\"],\\n [1698639600, \\\"0.0\\\"],\\n [1698640800, \\\"0.0\\\"],\\n [1698642000, \\\"0.0\\\"],\\n [1698643200, \\\"0.0\\\"],\\n [1698644400, \\\"0.0\\\"],\\n [1698645600, \\\"331.6\\\"],\\n [1698646800, \\\"55.44\\\"],\\n [1698648000, \\\"256.8\\\"],\\n [1698649200, \\\"462.72\\\"],\\n [1698650400, \\\"360.56\\\"],\\n [1698651600, \\\"367.92\\\"],\\n [1698652800, \\\"499.68\\\"],\\n [1698654000, \\\"576.16\\\"],\\n [1698655200, \\\"711.2\\\"],\\n [1698656400, \\\"546.32\\\"],\\n [1698657600, \\\"174.96\\\"],\\n [1698658800, \\\"362.0\\\"],\\n [1698660000, \\\"459.28\\\"],\\n [1698661200, \\\"362.16\\\"],\\n [1698662400, \\\"262.16\\\"],\\n [1698663600, \\\"217.04\\\"],\\n [1698664800, \\\"212.08\\\"],\\n [1698666000, \\\"131.84\\\"],\\n [1698667200, \\\"114.0\\\"],\\n [1698668400, \\\"154.08\\\"],\\n [1698669600, \\\"16.0\\\"],\\n [1698670800, \\\"94.96\\\"],\\n [1698672000, \\\"91.68\\\"],\\n [1698673200, \\\"164.48\\\"],\\n [1698674400, \\\"66.0\\\"],\\n [1698675600, \\\"236.64\\\"],\\n [1698676800, \\\"218.72\\\"],\\n [1698678000, \\\"170.4\\\"],\\n [1698679200, \\\"152.64\\\"],\\n [1698680400, \\\"120.32\\\"],\\n [1698681600, \\\"74.88\\\"],\\n [1698682800, \\\"268.4\\\"],\\n [1698684000, \\\"165.36\\\"],\\n [1698685200, \\\"87.84\\\"],\\n [1698686400, \\\"171.68\\\"],\\n [1698687600, \\\"42.08\\\"],\\n [1698688800, \\\"135.84\\\"],\\n [1698690000, \\\"148.32\\\"],\\n [1698691200, \\\"49.36\\\"],\\n [1698692400, \\\"128.72\\\"],\\n [1698693600, \\\"101.12\\\"],\\n [1698694800, \\\"133.2\\\"],\\n [1698696000, \\\"107.92\\\"],\\n [1698697200, \\\"149.28\\\"],\\n [1698698400, \\\"125.12\\\"],\\n [1698699600, \\\"201.76\\\"],\\n [1698700800, \\\"135.04\\\"],\\n [1698702000, \\\"188.8\\\"],\\n [1698703200, \\\"92.4\\\"],\\n [1698704400, \\\"132.08\\\"],\\n [1698705600, \\\"78.64\\\"],\\n [1698706800, \\\"195.76\\\"],\\n [1698708000, \\\"254.16\\\"],\\n [1698709200, \\\"84.4\\\"],\\n [1698710400, \\\"263.28\\\"],\\n [1698711600, \\\"84.24\\\"],\\n [1698712800, \\\"153.12\\\"],\\n [1698714000, \\\"133.12\\\"],\\n [1698715200, \\\"0.0\\\"],\\n [1698716400, \\\"0.0\\\"],\\n [1698717600, \\\"0.0\\\"],\\n [1698718800, \\\"0.0\\\"]\\n ],\\n \\\"analysis\\\": {\\n \\\"avg\\\": \\\"104.08\\\",\\n \\\"max\\\": \\\"2475.04\\\",\\n \\\"min\\\": \\\"0.0\\\",\\n \\\"p95\\\": \\\"366.7679999999999\\\"\\n }\\n },\\n \\\"inboundBitsRate\\\": {\\n \\\"values\\\": [\\n [1698546000, \\\"0.0\\\"],\\n [1698547200, \\\"0.0\\\"],\\n [1698548400, \\\"0.0\\\"],\\n [1698549600, \\\"0.0\\\"],\\n [1698550800, \\\"0.0\\\"],\\n [1698552000, \\\"0.0\\\"],\\n [1698553200, \\\"0.0\\\"],\\n [1698554400, \\\"0.0\\\"],\\n [1698555600, \\\"0.0\\\"],\\n [1698556800, \\\"0.0\\\"],\\n [1698558000, \\\"0.0\\\"],\\n [1698559200, \\\"0.0\\\"],\\n [1698560400, \\\"0.0\\\"],\\n [1698561600, \\\"0.0\\\"],\\n [1698562800, \\\"0.0\\\"],\\n [1698564000, \\\"0.0\\\"],\\n [1698565200, \\\"0.0\\\"],\\n [1698566400, \\\"0.0\\\"],\\n [1698567600, \\\"0.0\\\"],\\n [1698568800, \\\"0.0\\\"],\\n [1698570000, \\\"0.0\\\"],\\n [1698571200, \\\"0.0\\\"],\\n [1698572400, \\\"0.0\\\"],\\n [1698573600, \\\"0.0\\\"],\\n [1698574800, \\\"0.0\\\"],\\n [1698576000, \\\"0.0\\\"],\\n [1698577200, \\\"0.0\\\"],\\n [1698578400, \\\"0.0\\\"],\\n [1698579600, \\\"0.0\\\"],\\n [1698580800, \\\"0.0\\\"],\\n [1698582000, \\\"0.0\\\"],\\n [1698583200, \\\"0.0\\\"],\\n [1698584400, \\\"0.0\\\"],\\n [1698585600, \\\"0.0\\\"],\\n [1698586800, \\\"0.0\\\"],\\n [1698588000, \\\"0.0\\\"],\\n [1698589200, \\\"0.0\\\"],\\n [1698590400, \\\"0.0\\\"],\\n [1698591600, \\\"0.0\\\"],\\n [1698592800, \\\"0.0\\\"],\\n [1698594000, \\\"0.0\\\"],\\n [1698595200, \\\"0.0\\\"],\\n [1698596400, \\\"0.0\\\"],\\n [1698597600, \\\"0.0\\\"],\\n [1698598800, \\\"0.0\\\"],\\n [1698600000, \\\"0.0\\\"],\\n [1698601200, \\\"0.0\\\"],\\n [1698602400, \\\"0.0\\\"],\\n [1698603600, \\\"0.0\\\"],\\n [1698604800, \\\"0.0\\\"],\\n [1698606000, \\\"0.0\\\"],\\n [1698607200, \\\"0.0\\\"],\\n [1698608400, \\\"0.0\\\"],\\n [1698609600, \\\"0.0\\\"],\\n [1698610800, \\\"0.0\\\"],\\n [1698612000, \\\"0.0\\\"],\\n [1698613200, \\\"0.0\\\"],\\n [1698614400, \\\"0.0\\\"],\\n [1698615600, \\\"0.0\\\"],\\n [1698616800, \\\"0.0\\\"],\\n [1698618000, \\\"0.0\\\"],\\n [1698619200, \\\"0.0\\\"],\\n [1698620400, \\\"0.0\\\"],\\n [1698621600, \\\"0.0\\\"],\\n [1698622800, \\\"0.0\\\"],\\n [1698624000, \\\"0.0\\\"],\\n [1698625200, \\\"0.0\\\"],\\n [1698626400, \\\"0.0\\\"],\\n [1698627600, \\\"0.0\\\"],\\n [1698628800, \\\"0.0\\\"],\\n [1698630000, \\\"0.0\\\"],\\n [1698631200, \\\"0.0\\\"],\\n [1698632400, \\\"41.52\\\"],\\n [1698633600, \\\"137.92\\\"],\\n [1698634800, \\\"259.92\\\"],\\n [1698636000, \\\"1742.64\\\"],\\n [1698637200, \\\"83.6\\\"],\\n [1698638400, \\\"0.0\\\"],\\n [1698639600, \\\"0.0\\\"],\\n [1698640800, \\\"0.0\\\"],\\n [1698642000, \\\"0.0\\\"],\\n [1698643200, \\\"0.0\\\"],\\n [1698644400, \\\"0.0\\\"],\\n [1698645600, \\\"221.12\\\"],\\n [1698646800, \\\"39.6\\\"],\\n [1698648000, \\\"149.6\\\"],\\n [1698649200, \\\"289.6\\\"],\\n [1698650400, \\\"245.76\\\"],\\n [1698651600, \\\"254.4\\\"],\\n [1698652800, \\\"333.52\\\"],\\n [1698654000, \\\"394.24\\\"],\\n [1698655200, \\\"445.76\\\"],\\n [1698656400, \\\"364.8\\\"],\\n [1698657600, \\\"125.76\\\"],\\n [1698658800, \\\"263.76\\\"],\\n [1698660000, \\\"296.88\\\"],\\n [1698661200, \\\"291.6\\\"],\\n [1698662400, \\\"207.76\\\"],\\n [1698663600, \\\"172.08\\\"],\\n [1698664800, \\\"168.0\\\"],\\n [1698666000, \\\"99.68\\\"],\\n [1698667200, \\\"88.96\\\"],\\n [1698668400, \\\"121.36\\\"],\\n [1698669600, \\\"12.96\\\"],\\n [1698670800, \\\"74.32\\\"],\\n [1698672000, \\\"72.32\\\"],\\n [1698673200, \\\"123.12\\\"],\\n [1698674400, \\\"38.32\\\"],\\n [1698675600, \\\"174.32\\\"],\\n [1698676800, \\\"159.92\\\"],\\n [1698678000, \\\"116.64\\\"],\\n [1698679200, \\\"115.04\\\"],\\n [1698680400, \\\"83.92\\\"],\\n [1698681600, \\\"50.48\\\"],\\n [1698682800, \\\"193.92\\\"],\\n [1698684000, \\\"110.0\\\"],\\n [1698685200, \\\"63.04\\\"],\\n [1698686400, \\\"123.12\\\"],\\n [1698687600, \\\"25.76\\\"],\\n [1698688800, \\\"101.76\\\"],\\n [1698690000, \\\"105.12\\\"],\\n [1698691200, \\\"35.36\\\"],\\n [1698692400, \\\"100.72\\\"],\\n [1698693600, \\\"74.08\\\"],\\n [1698694800, \\\"99.36\\\"],\\n [1698696000, \\\"82.56\\\"],\\n [1698697200, \\\"113.92\\\"],\\n [1698698400, \\\"90.8\\\"],\\n [1698699600, \\\"150.4\\\"],\\n [1698700800, \\\"104.64\\\"],\\n [1698702000, \\\"140.72\\\"],\\n [1698703200, \\\"60.96\\\"],\\n [1698704400, \\\"93.04\\\"],\\n [1698705600, \\\"60.88\\\"],\\n [1698706800, \\\"155.92\\\"],\\n [1698708000, \\\"183.44\\\"],\\n [1698709200, \\\"63.12\\\"],\\n [1698710400, \\\"203.84\\\"],\\n [1698711600, \\\"59.84\\\"],\\n [1698712800, \\\"118.64\\\"],\\n [1698714000, \\\"106.88\\\"],\\n [1698715200, \\\"0.0\\\"],\\n [1698716400, \\\"0.0\\\"],\\n [1698717600, \\\"0.0\\\"],\\n [1698718800, \\\"0.0\\\"]\\n ],\\n \\\"analysis\\\": {\\n \\\"avg\\\": \\\"74.16\\\",\\n \\\"max\\\": \\\"1742.64\\\",\\n \\\"min\\\": \\\"0.0\\\",\\n \\\"p95\\\": \\\"284.43199999999956\\\"\\n }\\n },\\n \\\"outboundBitsRate\\\": {\\n \\\"values\\\": [\\n [1698546000, \\\"0.0\\\"],\\n [1698547200, \\\"0.0\\\"],\\n [1698548400, \\\"0.0\\\"],\\n [1698549600, \\\"0.0\\\"],\\n [1698550800, \\\"0.0\\\"],\\n [1698552000, \\\"0.0\\\"],\\n [1698553200, \\\"0.0\\\"],\\n [1698554400, \\\"0.0\\\"],\\n [1698555600, \\\"0.0\\\"],\\n [1698556800, \\\"0.0\\\"],\\n [1698558000, \\\"0.0\\\"],\\n [1698559200, \\\"0.0\\\"],\\n [1698560400, \\\"0.0\\\"],\\n [1698561600, \\\"0.0\\\"],\\n [1698562800, \\\"0.0\\\"],\\n [1698564000, \\\"0.0\\\"],\\n [1698565200, \\\"0.0\\\"],\\n [1698566400, \\\"0.0\\\"],\\n [1698567600, \\\"0.0\\\"],\\n [1698568800, \\\"0.0\\\"],\\n [1698570000, \\\"0.0\\\"],\\n [1698571200, \\\"0.0\\\"],\\n [1698572400, \\\"0.0\\\"],\\n [1698573600, \\\"0.0\\\"],\\n [1698574800, \\\"0.0\\\"],\\n [1698576000, \\\"0.0\\\"],\\n [1698577200, \\\"0.0\\\"],\\n [1698578400, \\\"0.0\\\"],\\n [1698579600, \\\"0.0\\\"],\\n [1698580800, \\\"0.0\\\"],\\n [1698582000, \\\"0.0\\\"],\\n [1698583200, \\\"0.0\\\"],\\n [1698584400, \\\"0.0\\\"],\\n [1698585600, \\\"0.0\\\"],\\n [1698586800, \\\"0.0\\\"],\\n [1698588000, \\\"0.0\\\"],\\n [1698589200, \\\"0.0\\\"],\\n [1698590400, \\\"0.0\\\"],\\n [1698591600, \\\"0.0\\\"],\\n [1698592800, \\\"0.0\\\"],\\n [1698594000, \\\"0.0\\\"],\\n [1698595200, \\\"0.0\\\"],\\n [1698596400, \\\"0.0\\\"],\\n [1698597600, \\\"0.0\\\"],\\n [1698598800, \\\"0.0\\\"],\\n [1698600000, \\\"0.0\\\"],\\n [1698601200, \\\"0.0\\\"],\\n [1698602400, \\\"0.0\\\"],\\n [1698603600, \\\"0.0\\\"],\\n [1698604800, \\\"0.0\\\"],\\n [1698606000, \\\"0.0\\\"],\\n [1698607200, \\\"0.0\\\"],\\n [1698608400, \\\"0.0\\\"],\\n [1698609600, \\\"0.0\\\"],\\n [1698610800, \\\"0.0\\\"],\\n [1698612000, \\\"0.0\\\"],\\n [1698613200, \\\"0.0\\\"],\\n [1698614400, \\\"0.0\\\"],\\n [1698615600, \\\"0.0\\\"],\\n [1698616800, \\\"0.0\\\"],\\n [1698618000, \\\"0.0\\\"],\\n [1698619200, \\\"0.0\\\"],\\n [1698620400, \\\"0.0\\\"],\\n [1698621600, \\\"0.0\\\"],\\n [1698622800, \\\"0.0\\\"],\\n [1698624000, \\\"0.0\\\"],\\n [1698625200, \\\"0.0\\\"],\\n [1698626400, \\\"0.0\\\"],\\n [1698627600, \\\"0.0\\\"],\\n [1698628800, \\\"0.0\\\"],\\n [1698630000, \\\"0.0\\\"],\\n [1698631200, \\\"0.0\\\"],\\n [1698632400, \\\"15.36\\\"],\\n [1698633600, \\\"33.28\\\"],\\n [1698634800, \\\"70.72\\\"],\\n [1698636000, \\\"732.48\\\"],\\n [1698637200, \\\"38.88\\\"],\\n [1698638400, \\\"0.0\\\"],\\n [1698639600, \\\"0.0\\\"],\\n [1698640800, \\\"0.0\\\"],\\n [1698642000, \\\"0.0\\\"],\\n [1698643200, \\\"0.0\\\"],\\n [1698644400, \\\"0.0\\\"],\\n [1698645600, \\\"110.48\\\"],\\n [1698646800, \\\"15.92\\\"],\\n [1698648000, \\\"107.2\\\"],\\n [1698649200, \\\"173.12\\\"],\\n [1698650400, \\\"114.8\\\"],\\n [1698651600, \\\"113.52\\\"],\\n [1698652800, \\\"166.16\\\"],\\n [1698654000, \\\"181.92\\\"],\\n [1698655200, \\\"265.36\\\"],\\n [1698656400, \\\"181.6\\\"],\\n [1698657600, \\\"49.2\\\"],\\n [1698658800, \\\"98.24\\\"],\\n [1698660000, \\\"162.4\\\"],\\n [1698661200, \\\"70.56\\\"],\\n [1698662400, \\\"54.48\\\"],\\n [1698663600, \\\"44.96\\\"],\\n [1698664800, \\\"44.08\\\"],\\n [1698666000, \\\"32.24\\\"],\\n [1698667200, \\\"25.04\\\"],\\n [1698668400, \\\"32.72\\\"],\\n [1698669600, \\\"3.04\\\"],\\n [1698670800, \\\"20.64\\\"],\\n [1698672000, \\\"19.36\\\"],\\n [1698673200, \\\"41.36\\\"],\\n [1698674400, \\\"27.68\\\"],\\n [1698675600, \\\"62.32\\\"],\\n [1698676800, \\\"58.8\\\"],\\n [1698678000, \\\"53.76\\\"],\\n [1698679200, \\\"37.6\\\"],\\n [1698680400, \\\"36.4\\\"],\\n [1698681600, \\\"24.32\\\"],\\n [1698682800, \\\"74.48\\\"],\\n [1698684000, \\\"55.36\\\"],\\n [1698685200, \\\"24.8\\\"],\\n [1698686400, \\\"48.56\\\"],\\n [1698687600, \\\"16.32\\\"],\\n [1698688800, \\\"34.08\\\"],\\n [1698690000, \\\"43.12\\\"],\\n [1698691200, \\\"14.0\\\"],\\n [1698692400, \\\"28.0\\\"],\\n [1698693600, \\\"27.12\\\"],\\n [1698694800, \\\"33.84\\\"],\\n [1698696000, \\\"25.28\\\"],\\n [1698697200, \\\"35.28\\\"],\\n [1698698400, \\\"34.32\\\"],\\n [1698699600, \\\"51.44\\\"],\\n [1698700800, \\\"30.4\\\"],\\n [1698702000, \\\"48.08\\\"],\\n [1698703200, \\\"31.44\\\"],\\n [1698704400, \\\"38.96\\\"],\\n [1698705600, \\\"17.76\\\"],\\n [1698706800, \\\"39.84\\\"],\\n [1698708000, \\\"70.72\\\"],\\n [1698709200, \\\"21.2\\\"],\\n [1698710400, \\\"59.52\\\"],\\n [1698711600, \\\"24.48\\\"],\\n [1698712800, \\\"34.48\\\"],\\n [1698714000, \\\"26.24\\\"],\\n [1698715200, \\\"0.0\\\"],\\n [1698716400, \\\"0.0\\\"],\\n [1698717600, \\\"0.0\\\"],\\n [1698718800, \\\"0.0\\\"]\\n ],\\n \\\"analysis\\\": {\\n \\\"avg\\\": \\\"29.92\\\",\\n \\\"max\\\": \\\"732.48\\\",\\n \\\"min\\\": \\\"0.0\\\",\\n \\\"p95\\\": \\\"114.54399999999998\\\"\\n }\\n }\\n }, {\\n \\\"type\\\": \\\"queries\\\",\\n \\\"totalQueryRate\\\": {\\n \\\"values\\\": [\\n [1698546000, \\\"0.0\\\"],\\n [1698547200, \\\"0.0\\\"],\\n [1698548400, \\\"0.0\\\"],\\n [1698549600, \\\"0.0\\\"],\\n [1698550800, \\\"0.0\\\"],\\n [1698552000, \\\"0.0\\\"],\\n [1698553200, \\\"0.0\\\"],\\n [1698554400, \\\"0.0\\\"],\\n [1698555600, \\\"0.0\\\"],\\n [1698556800, \\\"0.0\\\"],\\n [1698558000, \\\"0.0\\\"],\\n [1698559200, \\\"0.0\\\"],\\n [1698560400, \\\"0.0\\\"],\\n [1698561600, \\\"0.0\\\"],\\n [1698562800, \\\"0.0\\\"],\\n [1698564000, \\\"0.0\\\"],\\n [1698565200, \\\"0.0\\\"],\\n [1698566400, \\\"0.0\\\"],\\n [1698567600, \\\"0.0\\\"],\\n [1698568800, \\\"0.0\\\"],\\n [1698570000, \\\"0.0\\\"],\\n [1698571200, \\\"0.0\\\"],\\n [1698572400, \\\"0.0\\\"],\\n [1698573600, \\\"0.0\\\"],\\n [1698574800, \\\"0.0\\\"],\\n [1698576000, \\\"0.0\\\"],\\n [1698577200, \\\"0.0\\\"],\\n [1698578400, \\\"0.0\\\"],\\n [1698579600, \\\"0.0\\\"],\\n [1698580800, \\\"0.0\\\"],\\n [1698582000, \\\"0.0\\\"],\\n [1698583200, \\\"0.0\\\"],\\n [1698584400, \\\"0.0\\\"],\\n [1698585600, \\\"0.0\\\"],\\n [1698586800, \\\"0.0\\\"],\\n [1698588000, \\\"0.0\\\"],\\n [1698589200, \\\"0.0\\\"],\\n [1698590400, \\\"0.0\\\"],\\n [1698591600, \\\"0.0\\\"],\\n [1698592800, \\\"0.0\\\"],\\n [1698594000, \\\"0.0\\\"],\\n [1698595200, \\\"0.0\\\"],\\n [1698596400, \\\"0.0\\\"],\\n [1698597600, \\\"0.0\\\"],\\n [1698598800, \\\"0.0\\\"],\\n [1698600000, \\\"0.0\\\"],\\n [1698601200, \\\"0.0\\\"],\\n [1698602400, \\\"0.0\\\"],\\n [1698603600, \\\"0.0\\\"],\\n [1698604800, \\\"0.0\\\"],\\n [1698606000, \\\"0.0\\\"],\\n [1698607200, \\\"0.0\\\"],\\n [1698608400, \\\"0.0\\\"],\\n [1698609600, \\\"0.0\\\"],\\n [1698610800, \\\"0.0\\\"],\\n [1698612000, \\\"0.0\\\"],\\n [1698613200, \\\"0.0\\\"],\\n [1698614400, \\\"0.0\\\"],\\n [1698615600, \\\"0.0\\\"],\\n [1698616800, \\\"0.0\\\"],\\n [1698618000, \\\"0.0\\\"],\\n [1698619200, \\\"0.0\\\"],\\n [1698620400, \\\"0.0\\\"],\\n [1698621600, \\\"0.0\\\"],\\n [1698622800, \\\"0.0\\\"],\\n [1698624000, \\\"0.0\\\"],\\n [1698625200, \\\"0.0\\\"],\\n [1698626400, \\\"0.0\\\"],\\n [1698627600, \\\"0.0\\\"],\\n [1698628800, \\\"0.0\\\"],\\n [1698630000, \\\"0.0\\\"],\\n [1698631200, \\\"0.0\\\"],\\n [1698632400, \\\"0.0\\\"],\\n [1698633600, \\\"0.01\\\"],\\n [1698634800, \\\"0.01\\\"],\\n [1698636000, \\\"0.02\\\"],\\n [1698637200, \\\"0.01\\\"],\\n [1698638400, \\\"0.0\\\"],\\n [1698639600, \\\"0.0\\\"],\\n [1698640800, \\\"0.0\\\"],\\n [1698642000, \\\"0.0\\\"],\\n [1698643200, \\\"0.0\\\"],\\n [1698644400, \\\"0.0\\\"],\\n [1698645600, \\\"0.01\\\"],\\n [1698646800, \\\"0.0\\\"],\\n [1698648000, \\\"0.01\\\"],\\n [1698649200, \\\"0.01\\\"],\\n [1698650400, \\\"0.02\\\"],\\n [1698651600, \\\"0.01\\\"],\\n [1698652800, \\\"0.01\\\"],\\n [1698654000, \\\"0.02\\\"],\\n [1698655200, \\\"0.02\\\"],\\n [1698656400, \\\"0.02\\\"],\\n [1698657600, \\\"0.01\\\"],\\n [1698658800, \\\"0.01\\\"],\\n [1698660000, \\\"0.01\\\"],\\n [1698661200, \\\"0.01\\\"],\\n [1698662400, \\\"0.01\\\"],\\n [1698663600, \\\"0.01\\\"],\\n [1698664800, \\\"0.01\\\"],\\n [1698666000, \\\"0.01\\\"],\\n [1698667200, \\\"0.01\\\"],\\n [1698668400, \\\"0.01\\\"],\\n [1698669600, \\\"0.0\\\"],\\n [1698670800, \\\"0.01\\\"],\\n [1698672000, \\\"0.01\\\"],\\n [1698673200, \\\"0.02\\\"],\\n [1698674400, \\\"0.01\\\"],\\n [1698675600, \\\"0.01\\\"],\\n [1698676800, \\\"0.01\\\"],\\n [1698678000, \\\"0.02\\\"],\\n [1698679200, \\\"0.01\\\"],\\n [1698680400, \\\"0.01\\\"],\\n [1698681600, \\\"0.01\\\"],\\n [1698682800, \\\"0.01\\\"],\\n [1698684000, \\\"0.01\\\"],\\n [1698685200, \\\"0.01\\\"],\\n [1698686400, \\\"0.01\\\"],\\n [1698687600, \\\"0.0\\\"],\\n [1698688800, \\\"0.01\\\"],\\n [1698690000, \\\"0.01\\\"],\\n [1698691200, \\\"0.0\\\"],\\n [1698692400, \\\"0.01\\\"],\\n [1698693600, \\\"0.01\\\"],\\n [1698694800, \\\"0.01\\\"],\\n [1698696000, \\\"0.01\\\"],\\n [1698697200, \\\"0.01\\\"],\\n [1698698400, \\\"0.01\\\"],\\n [1698699600, \\\"0.01\\\"],\\n [1698700800, \\\"0.01\\\"],\\n [1698702000, \\\"0.01\\\"],\\n [1698703200, \\\"0.01\\\"],\\n [1698704400, \\\"0.01\\\"],\\n [1698705600, \\\"0.01\\\"],\\n [1698706800, \\\"0.01\\\"],\\n [1698708000, \\\"0.01\\\"],\\n [1698709200, \\\"0.01\\\"],\\n [1698710400, \\\"0.02\\\"],\\n [1698711600, \\\"0.01\\\"],\\n [1698712800, \\\"0.01\\\"],\\n [1698714000, \\\"0.01\\\"],\\n [1698715200, \\\"0.0\\\"],\\n [1698716400, \\\"0.0\\\"],\\n [1698717600, \\\"0.0\\\"],\\n [1698718800, \\\"0.0\\\"]\\n ],\\n \\\"analysis\\\": {\\n \\\"avg\\\": \\\"0.00\\\",\\n \\\"max\\\": \\\"0.02\\\",\\n \\\"min\\\": \\\"0.0\\\",\\n \\\"p95\\\": \\\"0.017999999999999832\\\"\\n }\\n }\\n }]\\n },\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT TIME_FLOOR_WITH_FILL(stat_time,\'PT1200S\',\'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 >= 1698546257 AND stat_time < 1698719057 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\" : \"71dcf9bdd80b82729597951857ae1d45\",\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\" : \"61\",\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\" : \"27090109\",\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\" : \"583153764\",\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\" : \"14581\",\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\" : \"145\",\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\" : \"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 \"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\" : \"bytes\",\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\" : \"totalBitsRate\",\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\" : \"1698546000\",\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 }, {\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\" : \"104.08\",\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\" : \"2475.04\",\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\" : \"366.7679999999999\",\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\" : \"inboundBitsRate\",\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\" : \"1698546000\",\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 }, {\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\" : \"74.16\",\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\" : \"1742.64\",\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\" : \"284.43199999999956\",\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\" : \"outboundBitsRate\",\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\" : \"1698546000\",\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 }, {\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\" : \"29.92\",\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\" : \"732.48\",\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\" : \"114.54399999999998\",\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\" : \"originalUrl\",\n \"value\" : \"http://192.168.44.55:9999/?query=SELECT TIME_FLOOR_WITH_FILL(stat_time,\'PT1200S\',\'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 >= 1698546257 AND stat_time < 1698719057 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, SUM(common_sessions) 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;'); @@ -550,7 +550,7 @@ INSERT INTO `magic_api_file` VALUES ('/api/v1/detection/security/status/事件� INSERT INTO `magic_api_file` VALUES ('/api/v1/detection/security/victim-ip/', 'this is directory'); INSERT INTO `magic_api_file` VALUES ('/api/v1/detection/security/victim-ip/group.json', '{\r\n \"properties\" : { },\r\n \"id\" : \"7df655bd31fa4aafb376f3b936ae78fb\",\r\n \"name\" : \"victim-ip\",\r\n \"type\" : \"api\",\r\n \"parentId\" : \"de526fab02d442ccbbee9790c3c7f53d\",\r\n \"path\" : \"/victim-ip\",\r\n \"createTime\" : 1697782114252,\r\n \"updateTime\" : null,\r\n \"createBy\" : \"admin\",\r\n \"updateBy\" : null,\r\n \"paths\" : [ ],\r\n \"options\" : [ ]\r\n}'); INSERT INTO `magic_api_file` VALUES ('/api/v1/detection/security/victim-ip/受害者IP统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"90342eac26ac4711a541f2d020bca92e\",\r\n \"script\" : null,\r\n \"groupId\" : \"7df655bd31fa4aafb376f3b936ae78fb\",\r\n \"name\" : \"受害者IP统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1698030096399,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/statistics\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"startTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"resource\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : null,\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : null\r\n}\r\n================================\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/pre/timeHandle\' as preHandle;\r\nimport \'@/post/table\' as postHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n\r\n\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"resource\":resource\r\n}\r\npreHandle(parameter);\r\nparameter.resource = EntityExplorerService.parseExpression(parameter.resource,\"securityEventMetadata\");\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\": \\\"SELECT victim_ip AS victim_ip,COUNT(*) AS count FROM cn_security_event WHERE start_time >= ${startTime} AND start_time < ${endTime} <#if resource?default(\'\')?trim? length gt 0> AND ${resource} </#if> GROUP BY victim_ip ORDER BY count DESC limit 100\\\",\\\"option\\\": \\\"real-time\\\",\\\"format\\\": \\\"json\\\"}\"\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"detectionSecurityList\",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/v1/detection/security/安全事件列表.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"868948a7dad9416c84cee0fb1da2a524\",\r\n \"script\" : null,\r\n \"groupId\" : \"de526fab02d442ccbbee9790c3c7f53d\",\r\n \"name\" : \"安全事件列表\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1698030434318,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/list\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"startTime\",\r\n \"value\" : \"1672544582\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : \"1698810182\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"resource\",\r\n \"value\" : \"eventType in (\'ip\') and victimIP = \'8.8.8.8\' or domain like \'bai%\'\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"pageNo\",\r\n \"value\" : \"1\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"pageSize\",\r\n \"value\" : \"10\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 999,\\n \\\"time\\\": \\\"2023-10-23 03:06:42\\\",\\n \\\"message\\\": \\\"404 null at Row:10~10,Col:32~36\\\\n\\\\nvar galaxyResult = httpRequest.get().getBody();\\\\r\\\\n ^^^^^ \\\"\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"999\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-10-23 03:06:42\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"404 null at Row:10~10,Col:32~36\\\\n\\\\nvar galaxyResult = httpRequest.get().getBody();\\\\r\\\\n ^^^^^\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/pre/timeHandle\' as preHandle;\r\nimport \'@/post/table\' as postHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\nimport \'@/pre/pageFieldsHandle\' as pageFieldsHandle;\r\n\r\n\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"resource\":resource,\r\n \"pageNo\":pageNo,\r\n \"pageSize\":pageSize\r\n}\r\npageFieldsHandle(parameter);\r\npreHandle(parameter);\r\nparameter.resource = EntityExplorerService.parseExpression(parameter.resource,\"securityEventMetadata\");\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\": \\\"SELECT event_id AS event_id, event_type AS event_type, event_name AS event_name, event_key AS event_key, rule_id AS rule_id, rule_type AS rule_type, is_builtin AS is_builtin, severity AS severity, offender_ip AS offender_ip, victim_ip AS victim_ip, domain AS domain, app AS app, start_time AS start_time, end_time AS end_time, duration_s AS duration_s, match_times AS match_times, status AS status, event_info AS event_info FROM cn_security_event WHERE start_time >= ${startTime} AND start_time < ${endTime} <#if resource?default(\'\')?trim? length gt 0> AND ${resource} </#if> ORDER BY start_time DESC <#if pageSize?default(\\\'\\\')?trim? length gt 0&&pageNo?default(\\\'\\\')?trim? length gt 0> LIMIT ${pageNo},${pageSize}</#if>\\\",\\\"option\\\": \\\"real-time\\\",\\\"format\\\": \\\"json\\\"}\"\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"detectionSecurityList\",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/v1/detection/security/安全事件列表.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"868948a7dad9416c84cee0fb1da2a524\",\r\n \"script\" : null,\r\n \"groupId\" : \"de526fab02d442ccbbee9790c3c7f53d\",\r\n \"name\" : \"安全事件列表\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1699349749616,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/list\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"startTime\",\r\n \"value\" : \"1672544582\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : \"1698810182\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"resource\",\r\n \"value\" : \"\\\"eventType\\\" in (\'ip\') and victimIP = \'8.8.8.8\' or domain like \'bai%\'\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"pageNo\",\r\n \"value\" : \"1\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"pageSize\",\r\n \"value\" : \"10\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"status\\\": 200,\\n \\\"code\\\": 200,\\n \\\"queryKey\\\": \\\"27e97d2766a97545c9eaf72b97e6d142\\\",\\n \\\"success\\\": true,\\n \\\"message\\\": null,\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 5,\\n \\\"rows_read\\\": 9697,\\n \\\"bytes_read\\\": 3431697,\\n \\\"result_size\\\": 0,\\n \\\"result_rows\\\": 0\\n },\\n \\\"job\\\": null,\\n \\\"formatType\\\": \\\"json\\\",\\n \\\"meta\\\": [\\n {\\n \\\"name\\\": \\\"event_id\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"event_type\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"event_name\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"event_key\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"rule_id\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"rule_type\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"is_builtin\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"severity\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"offender_ip\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"victim_ip\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"domain\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"app\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"start_time\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"end_time\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"duration_s\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"match_times\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"status\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"event_info\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }\\n ],\\n \\\"data\\\": {\\n \\\"resultType\\\": \\\"table\\\",\\n \\\"result\\\": []\\n },\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT event_id AS event_id, event_type AS event_type, event_name AS event_name, event_key AS event_key, rule_id AS rule_id, rule_type AS rule_type, is_builtin AS is_builtin, severity AS severity, offender_ip AS offender_ip, victim_ip AS victim_ip, domain AS domain, app AS app, start_time AS start_time, end_time AS end_time, duration_s AS duration_s, match_times AS match_times, status AS status, event_info AS event_info FROM cn_security_event WHERE start_time >= toDateTime(1672544582) AND start_time < toDateTime(1698810182) AND event_type IN (\'ip\') AND victim_ip = \'8.8.8.8\' OR domain LIKE \'bai%\' ORDER BY start_time DESC LIMIT 0,10&format=json&option=real-time\\\",\\n \\\"msg\\\": \\\"OK\\\"\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"999\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-10-23 03:06:42\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"404 null at Row:10~10,Col:32~36\\\\n\\\\nvar galaxyResult = httpRequest.get().getBody();\\\\r\\\\n ^^^^^\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/pre/timeHandle\' as preHandle;\r\nimport \'@/post/table\' as postHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\nimport \'@/pre/pageFieldsHandle\' as pageFieldsHandle;\r\n\r\n\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"resource\":resource,\r\n \"pageNo\":pageNo,\r\n \"pageSize\":pageSize\r\n}\r\npageFieldsHandle(parameter);\r\npreHandle(parameter);\r\nparameter.resource = EntityExplorerService.parseExpression(parameter.resource,\"securityEventMetadata\");\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\": \\\"SELECT event_id AS event_id, event_type AS event_type, event_name AS event_name, event_key AS event_key, rule_id AS rule_id, rule_type AS rule_type, is_builtin AS is_builtin, severity AS severity, offender_ip AS offender_ip, victim_ip AS victim_ip, domain AS domain, app AS app, start_time AS start_time, end_time AS end_time, duration_s AS duration_s, match_times AS match_times, status AS status, event_info AS event_info FROM cn_security_event WHERE start_time >= ${startTime} AND start_time < ${endTime} <#if resource?default(\'\')?trim? length gt 0> AND ${resource} </#if> ORDER BY start_time DESC <#if pageSize?default(\\\'\\\')?trim? length gt 0&&pageNo?default(\\\'\\\')?trim? length gt 0> LIMIT ${pageNo},${pageSize}</#if>\\\",\\\"option\\\": \\\"real-time\\\",\\\"format\\\": \\\"json\\\"}\"\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"detectionSecurityList\",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/v1/detection/security/安全事件总数.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"0df4b899f7604767897aac295e7df9f2\",\r\n \"script\" : null,\r\n \"groupId\" : \"de526fab02d442ccbbee9790c3c7f53d\",\r\n \"name\" : \"安全事件总数\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1698031172752,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/count\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"startTime\",\r\n \"value\" : \"1698024263\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : \"1698027863\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"resource\",\r\n \"value\" : \"eventType in (\'ip\') and victimIP = \'8.8.8.8\' or domain like \'bai%\'\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"status\\\": 200,\\n \\\"code\\\": 200,\\n \\\"queryKey\\\": \\\"e56dbb4c568fb1d6aab366d56b428e9a\\\",\\n \\\"success\\\": true,\\n \\\"message\\\": null,\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 1,\\n \\\"rows_read\\\": 1865,\\n \\\"bytes_read\\\": 108083,\\n \\\"result_size\\\": 15,\\n \\\"result_rows\\\": 1\\n },\\n \\\"job\\\": null,\\n \\\"formatType\\\": \\\"json\\\",\\n \\\"meta\\\": [{\\n \\\"name\\\": \\\"count\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }],\\n \\\"data\\\": {\\n \\\"resultType\\\": \\\"single\\\",\\n \\\"result\\\": \\\"0\\\"\\n },\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT count(*) AS count FROM cn_security_event WHERE start_time >= toDateTime(1698024263) AND start_time < toDateTime(1698027863) AND event_type IN (\'ip\') AND victim_ip = \'8.8.8.8\' OR domain LIKE \'bai%\' &format=json&option=real-time\\\",\\n \\\"msg\\\": \\\"OK\\\"\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"status\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"code\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"queryKey\",\r\n \"value\" : \"e56dbb4c568fb1d6aab366d56b428e9a\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"success\",\r\n \"value\" : \"true\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Boolean\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"null\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"statistics\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"elapsed\",\r\n \"value\" : \"1\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"rows_read\",\r\n \"value\" : \"1865\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"bytes_read\",\r\n \"value\" : \"108083\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"result_size\",\r\n \"value\" : \"15\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"result_rows\",\r\n \"value\" : \"1\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }, {\r\n \"name\" : \"job\",\r\n \"value\" : \"null\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"formatType\",\r\n \"value\" : \"json\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"meta\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Array\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"name\",\r\n \"value\" : \"count\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"type\",\r\n \"value\" : \"long\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"category\",\r\n \"value\" : \"Metric\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n } ]\r\n }, {\r\n \"name\" : \"data\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"resultType\",\r\n \"value\" : \"single\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"result\",\r\n \"value\" : \"0\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }, {\r\n \"name\" : \"originalUrl\",\r\n \"value\" : \"http://192.168.44.55:9999/?query=SELECT count(*) AS count FROM cn_security_event WHERE start_time >= toDateTime(1698024263) AND start_time < toDateTime(1698027863) AND event_type IN (\'ip\') AND victim_ip = \'8.8.8.8\' OR domain LIKE \'bai%\' &format=json&option=real-time\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"msg\",\r\n \"value\" : \"OK\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\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\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"resource\":resource\r\n}\r\npreHandle(parameter);\r\nparameter.resource = EntityExplorerService.parseExpression(parameter.resource,\"securityEventMetadata\");\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\": \\\"SELECT count(*) AS count FROM cn_security_event WHERE start_time >= ${startTime} AND start_time < ${endTime} <#if resource?default(\'\')?trim? length gt 0> AND ${resource} </#if> \\\",\\\"option\\\": \\\"real-time\\\",\\\"format\\\": \\\"json\\\"}\"\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"detectionSecurityList\",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/v1/entity/', 'this is directory'); INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/detail/', 'this is directory'); @@ -637,21 +637,21 @@ INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/detail/traffic/thr INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/group.json', '{\n \"properties\" : { },\n \"id\" : \"877b51b4c5184132b246ca6f050d5776\",\n \"name\" : \"explorer\",\n \"type\" : \"api\",\n \"parentId\" : \"d12747533faa48698e64aec0aae936bd\",\n \"path\" : \"/explorer\",\n \"createTime\" : 1688453187085,\n \"updateTime\" : null,\n \"createBy\" : \"ljy\",\n \"updateBy\" : null,\n \"paths\" : [ ],\n \"options\" : [ ]\n}'); INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/overview/', 'this is directory'); INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/overview/group.json', '{\n \"properties\" : { },\n \"id\" : \"605d302dc4f847b596819f332c7f5605\",\n \"name\" : \"overview\",\n \"type\" : \"api\",\n \"parentId\" : \"877b51b4c5184132b246ca6f050d5776\",\n \"path\" : \"/overview\",\n \"createTime\" : 1688956231998,\n \"updateTime\" : null,\n \"createBy\" : \"ljy\",\n \"updateBy\" : null,\n \"paths\" : [ ],\n \"options\" : [ ]\n}'); -INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/overview/数据概览.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"e857c6ece26c4e479ee60df7e70f6fa2\",\r\n \"script\" : null,\r\n \"groupId\" : \"605d302dc4f847b596819f332c7f5605\",\r\n \"name\" : \"数据概览\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1697789540928,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/{metricType}\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ {\r\n \"name\" : \"metricType\",\r\n \"value\" : \"active\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 200,\\n \\\"data\\\": {\\n \\\"appCount\\\": 120,\\n \\\"domainCount\\\": 559,\\n \\\"ipCount\\\": 841,\\n \\\"totalCount\\\": 1520\\n },\\n \\\"time\\\": \\\"2023-08-31 03:27:28\\\",\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount ,plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time FROM cn_entity_relation e WHERE 1=1 )&format=json&option=real-time\\\",\\n \\\"message\\\": \\\"success\\\",\\n \\\"status\\\": 200\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"data\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"appCount\",\r\n \"value\" : \"120\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"domainCount\",\r\n \"value\" : \"559\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"ipCount\",\r\n \"value\" : \"841\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"totalCount\",\r\n \"value\" : \"1520\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-08-31 03:27:28\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"originalUrl\",\r\n \"value\" : \"http://192.168.44.55:9999/?query=SELECT COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount ,plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time FROM cn_entity_relation e WHERE 1=1 )&format=json&option=real-time\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"success\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"status\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/pre/timeHandleNone\' as timeHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"metricType\":metricType,\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\nparameter.resource = EntityExplorerService.parseExpression(parameter.resource,\"entityMetadata\");\r\n/**\r\n * 如果resource表达式中涉及联表字段,将进行联表查询。例:Whois.Domain\r\n */\r\nparameter.filter = parameter.resource;\r\nvar param = EntityExplorerService.getAssociationQueryParam(parameter.resource);\r\nvar columns = [\"dr\",\"fqdnCategory\",\"whois\",\"appCategory\"];\r\nif(ObjectUtil.isNotEmpty(param)){\r\n for (item in columns) {\r\n for (k,v in param) {\r\n parameter[k] = v;\r\n if (v.asString().contains(item)){\r\n parameter[item] = true;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') AS appCount, COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') AS domainCount, COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS ipCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0> JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE 1=1 <#if metricType==\\\"active\\\"> AND e.update_time >= ${startTime} AND e.update_time < ${endTime} </#if> <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> )\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggCountry\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var data = aresult[0];\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount <#if metricType==\\\"total\\\"> ,plus(ipCount,plus(appCount,domainCount)) AS totalCount </#if> FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE 1=1 <#if metricType==\\\"active\\\"> AND e.update_time >= ${startTime} AND e.update_time < ${endTime} <#if dr> AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} </#if> </#if><#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if> )\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar temp = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggCountry\",q,parameter);\r\n\r\n/**\r\n * 调用galaxy接口获取结果信息\r\n */\r\nvar res = jsonUtil.toBean(temp,HashMap.class);\r\nvar result = getGalaxyResult(res);\r\nvar data = {};\r\nif(result.success){\r\n for(k,v in result.data[0]){\r\n data.put(k,v.asInt());\r\n }\r\n}\r\n\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); +INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/overview/数据概览.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"e857c6ece26c4e479ee60df7e70f6fa2\",\r\n \"script\" : null,\r\n \"groupId\" : \"605d302dc4f847b596819f332c7f5605\",\r\n \"name\" : \"数据概览\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1699509193690,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"ljy\",\r\n \"path\" : \"/{metricType}\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"domain like \'dd%\' and has(tag,\'dd\') AND ip.port in (80) and has(tag,\'ss\')\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ {\r\n \"name\" : \"metricType\",\r\n \"value\" : \"active\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 200,\\n \\\"data\\\": {\\n \\\"appCount\\\": 120,\\n \\\"domainCount\\\": 559,\\n \\\"ipCount\\\": 841,\\n \\\"totalCount\\\": 1520\\n },\\n \\\"time\\\": \\\"2023-08-31 03:27:28\\\",\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount ,plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time FROM cn_entity_relation e WHERE 1=1 )&format=json&option=real-time\\\",\\n \\\"message\\\": \\\"success\\\",\\n \\\"status\\\": 200\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"data\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"appCount\",\r\n \"value\" : \"120\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"domainCount\",\r\n \"value\" : \"559\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"ipCount\",\r\n \"value\" : \"841\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"totalCount\",\r\n \"value\" : \"1520\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-08-31 03:27:28\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"originalUrl\",\r\n \"value\" : \"http://192.168.44.55:9999/?query=SELECT COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount ,plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time FROM cn_entity_relation e WHERE 1=1 )&format=json&option=real-time\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"success\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"status\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/pre/timeHandleNone\' as timeHandle;\r\nimport \'@/pre/entityAggHandle\' as entityAggHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"metricType\":metricType,\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\nentityAggHandle(parameter);\r\n\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') AS appCount, COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') AS domainCount, COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS ipCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0> JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE 1=1 <#if metricType==\\\"active\\\"> AND e.update_time >= ${startTime} AND e.update_time < ${endTime} </#if> <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> )\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggCountry\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var data = aresult[0];\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount <#if metricType==\\\"total\\\"> ,plus(ipCount,plus(appCount,domainCount)) AS totalCount </#if> FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE 1=1 <#if metricType==\\\"active\\\"> AND e.update_time >= ${startTime} AND e.update_time < ${endTime} <#if dr> AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} </#if> </#if><#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if> )\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar temp = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggCountry\",q,parameter);\r\n\r\n/**\r\n * 调用galaxy接口获取结果信息\r\n */\r\nvar res = jsonUtil.toBean(temp,HashMap.class);\r\nvar result = getGalaxyResult(res);\r\nvar data = {};\r\nif(result.success){\r\n for(k,v in result.data[0]){\r\n data.put(k,v.asInt());\r\n }\r\n}\r\n\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/query/', 'this is directory'); INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/query/group.json', '{\n \"properties\" : { },\n \"id\" : \"9e64aeec148c46259a28506f2f1e4cac\",\n \"name\" : \"query\",\n \"type\" : \"api\",\n \"parentId\" : \"877b51b4c5184132b246ca6f050d5776\",\n \"path\" : \"/query\",\n \"createTime\" : 1688465971314,\n \"updateTime\" : null,\n \"createBy\" : \"ljy\",\n \"updateBy\" : null,\n \"paths\" : [ ],\n \"options\" : [ ]\n}'); -INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/query/实体列表.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"efe394db28ce4eef89cc7a3089936d6c\",\r\n \"script\" : null,\r\n \"groupId\" : \"9e64aeec148c46259a28506f2f1e4cac\",\r\n \"name\" : \"实体列表\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1697789554706,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/list\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"ip.country=\'India\'\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"pageNo\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"pageSize\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 999,\\n \\\"time\\\": \\\"2023-08-31 03:44:05\\\",\\n \\\"message\\\": \\\"对象为空\\\"\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"999\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-08-31 03:44:05\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"对象为空\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@get:/v1/entity/explorer/query/summaryCount\' as getSummaryCount;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/pre/pageFieldsHandle\' as pageHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"pageNo\":pageNo,\r\n \"pageSize\":pageSize,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\npageHandle(parameter);\r\nparameter.resource = EntityExplorerService.parseExpression(parameter.resource,\"entityMetadata\");\r\n/**\r\n * 如果resource表达式中涉及联表字段,将进行联表查询。例:Whois.Domain\r\n */\r\nparameter.filter = parameter.resource;\r\nvar param = EntityExplorerService.getAssociationQueryParam(parameter.resource);\r\nvar columns = [\"dr\",\"fqdnCategory\",\"whois\",\"appCategory\"];\r\nif(ObjectUtil.isNotEmpty(param)){\r\n for (item in columns) {\r\n for (k,v in param) {\r\n parameter[k] = v;\r\n if (v.asString().contains(item)){\r\n parameter[item] = true;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT a.entityValue AS entityValue, (case when ip = entityValue then \'ip\' when domain= entityValue then \'domain\' when app_name = entityValue then \'app\' else \'\' end) AS entityType FROM (SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, concat(e.app_name,\'$\',e.domain,\'$\',e.ip) AS entity_value FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0> JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> ) CROSS JOIN unnest(split(entity_value,\'$\')) AS a(entityValue) WHERE entityValue != \'\' GROUP BY entityValue,ip,domain,app_name ORDER BY MAX(update_time) DESC <#if pageSize?default(\\\'\\\')?trim? length gt 0 && pageNo?default(\\\'\\\')?trim? length gt 0> LIMIT ${pageNo},${pageSize}</#if>\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggCountry\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var data = {};\r\n data.list = aresult;\r\n data.total = total;\r\n data.pageNo = ObjectUtil.isNotEmpty(pageNo) ? pageNo : 1;\r\n data.pageSize = ObjectUtil.isNotEmpty(pageSize) ? pageSize : parameter.pageSize;\r\n return R.ok(data).put(\"originalUrl\",ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT arrayJoin(splitByChar(\'$\',concat(ip , \'$\', domain, \'$\', app_name))) AS entityValue, (case when ip = entityValue then \'ip\' when domain= entityValue then \'domain\' when app_name = entityValue then \'app\' else \'\' end) AS entityType FROM (SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} <#if dr> AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} </#if><#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if> ) WHERE notEmpty(entityValue) GROUP BY entityValue,entityType ORDER BY MAX(update_time) DESC <#if pageSize?default(\\\'\\\')?trim? length gt 0&&pageNo?default(\\\'\\\')?trim? length gt 0> LIMIT ${pageNo},${pageSize}</#if>\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerQueryList\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nresource = parameter.resource;\r\nstartTime = parameter.startTime;\r\nendTime = parameter.endTime;\r\nvar SummaryCount = getSummaryCount();\r\nvar total = SummaryCount.data.totalCount.asInt();\r\nvar data = {};\r\nif(result.success){\r\n data.list = result.data;\r\n data.total = total;\r\n data.pageNo = ObjectUtil.isNotEmpty(pageNo) ? pageNo : 1;\r\n data.pageSize = ObjectUtil.isNotEmpty(pageSize) ? pageSize : parameter.pageSize;\r\n}\r\n\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); -INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/query/实体基数统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"c5f77524ffab4c02a0cdc05b44b95ad0\",\r\n \"script\" : null,\r\n \"groupId\" : \"9e64aeec148c46259a28506f2f1e4cac\",\r\n \"name\" : \"实体基数统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1697789548671,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/summaryCount\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"message\\\": \\\"Please log in to the system first\\\",\\n \\\"code\\\": 518008,\\n \\\"time\\\": 1693792233719\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"message\",\r\n \"value\" : \"Please log in to the system first\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"code\",\r\n \"value\" : \"518008\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"1693792233719\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/pre/pageFieldsHandle\' as pageHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"pageNo\":pageNo,\r\n \"pageSize\":pageSize,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\npageHandle(parameter);\r\nparameter.resource = EntityExplorerService.parseExpression(parameter.resource,\"entityMetadata\");\r\n/**\r\n * 如果resource表达式中涉及联表字段,将进行联表查询。例:Whois.Domain\r\n */\r\nparameter.filter = parameter.resource;\r\nvar param = EntityExplorerService.getAssociationQueryParam(parameter.resource);\r\nvar columns = [\"dr\",\"fqdnCategory\",\"whois\",\"appCategory\"];\r\nif(ObjectUtil.isNotEmpty(param)){\r\n for (item in columns) {\r\n for (k,v in param) {\r\n parameter[k] = v;\r\n if (v.asString().contains(item)){\r\n parameter[item] = true;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') AS appCount, COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') AS domainCount, COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS ipCount, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') + COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') + COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS total FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0> JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> )\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerQuerySummaryCount\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var data = aresult[0];\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} <#if dr> AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} </#if><#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if>)\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerQuerySummaryCount\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar data = {};\r\nif(result.success){\r\n for(k,v in result.data[0]){\r\n data.put(k,v.asInt());\r\n }\r\n}\r\n\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); +INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/query/实体列表.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"efe394db28ce4eef89cc7a3089936d6c\",\r\n \"script\" : null,\r\n \"groupId\" : \"9e64aeec148c46259a28506f2f1e4cac\",\r\n \"name\" : \"实体列表\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1699509322710,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"ljy\",\r\n \"path\" : \"/list\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"has(tag,\'sss\')\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"pageNo\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"pageSize\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 200,\\n \\\"data\\\": {\\n \\\"list\\\": [\\n {\\n \\\"entityValue\\\": \\\"google_accounts\\\",\\n \\\"entityType\\\": \\\"app\\\"\\n },\\n {\\n \\\"entityValue\\\": \\\"216.58.203.67\\\",\\n \\\"entityType\\\": \\\"ip\\\"\\n },\\n {\\n \\\"entityValue\\\": \\\"accounts.google.com.hk\\\",\\n \\\"entityType\\\": \\\"domain\\\"\\n },\\n {\\n \\\"entityValue\\\": \\\"142.250.193.3\\\",\\n \\\"entityType\\\": \\\"ip\\\"\\n },\\n {\\n \\\"entityValue\\\": \\\"google_gen\\\",\\n \\\"entityType\\\": \\\"app\\\"\\n },\\n {\\n \\\"entityValue\\\": \\\"id.google.com\\\",\\n \\\"entityType\\\": \\\"domain\\\"\\n },\\n {\\n \\\"entityValue\\\": \\\"s.ytimg.com\\\",\\n \\\"entityType\\\": \\\"domain\\\"\\n },\\n {\\n \\\"entityValue\\\": \\\"216.58.203.78\\\",\\n \\\"entityType\\\": \\\"ip\\\"\\n },\\n {\\n \\\"entityValue\\\": \\\"youtube\\\",\\n \\\"entityType\\\": \\\"app\\\"\\n },\\n {\\n \\\"entityValue\\\": \\\"216.58.203.74\\\",\\n \\\"entityType\\\": \\\"ip\\\"\\n }\\n ],\\n \\\"total\\\": 937,\\n \\\"pageNo\\\": 1,\\n \\\"pageSize\\\": 10\\n },\\n \\\"time\\\": \\\"2023-11-07 09:44:10\\\",\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT arrayJoin(splitByChar(\'$\',concat(ip , \'$\', domain, \'$\', app_name))) AS entityValue, (case when ip = entityValue then \'ip\' when domain= entityValue then \'domain\' when app_name = entityValue then \'app\' else \'\' end) AS entityType FROM (SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time FROM cn_entity_relation e WHERE e.update_time >= 1683798219 AND e.update_time < 1699350219 AND (e.ip_country_region = \'India\') ) WHERE notEmpty(entityValue) GROUP BY entityValue,entityType ORDER BY MAX(update_time) DESC LIMIT 0,10&format=json&option=real-time\\\",\\n \\\"message\\\": \\\"success\\\",\\n \\\"status\\\": 200\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"999\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-08-31 03:44:05\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"对象为空\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@get:/v1/entity/explorer/query/summaryCount\' as getSummaryCount;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/pre/pageFieldsHandle\' as pageHandle;\r\nimport \'@/pre/entityAggHandle\' as entityAggHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"pageNo\":pageNo,\r\n \"pageSize\":pageSize,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false,\r\n \"is_ip_attribut_primary\":0,\r\n \"is_app_attribut_primary\":0,\r\n \"is_domain_attribut_primary\":0,\r\n \"hideRelated\":false\r\n}\r\ntimeHandle(parameter);\r\npageHandle(parameter);\r\nentityAggHandle(parameter);\r\n\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT a.entityValue AS entityValue, (case when ip = entityValue then \'ip\' when domain= entityValue then \'domain\' when app_name = entityValue then \'app\' else \'\' end) AS entityType FROM (SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, concat(e.app_name,\'$\',e.domain,\'$\',e.ip) AS entity_value FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0> JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> ) CROSS JOIN unnest(split(entity_value,\'$\')) AS a(entityValue) WHERE entityValue != \'\' GROUP BY entityValue,ip,domain,app_name ORDER BY MAX(update_time) DESC <#if pageSize?default(\\\'\\\')?trim? length gt 0 && pageNo?default(\\\'\\\')?trim? length gt 0> LIMIT ${pageNo},${pageSize}</#if>\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggCountry\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var data = {};\r\n data.list = aresult;\r\n data.total = total;\r\n data.pageNo = ObjectUtil.isNotEmpty(pageNo) ? pageNo : 1;\r\n data.pageSize = ObjectUtil.isNotEmpty(pageSize) ? pageSize : parameter.pageSize;\r\n return R.ok(data).put(\"originalUrl\",ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT arrayJoin(splitByChar(\'$\',concat(ip , \'$\', domain, \'$\', app_name))) AS entityValue, (case when ip = entityValue then \'ip\' when domain= entityValue then \'domain\' when app_name = entityValue then \'app\' else \'\' end) AS entityType FROM (SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} <#if dr> AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} </#if><#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if> ) WHERE notEmpty(entityValue) GROUP BY entityValue,entityType ORDER BY MAX(update_time) DESC <#if pageSize?default(\\\'\\\')?trim? length gt 0&&pageNo?default(\\\'\\\')?trim? length gt 0> LIMIT ${pageNo},${pageSize}</#if>\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerQueryList\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nresource = parameter.resource;\r\nstartTime = parameter.startTime;\r\nendTime = parameter.endTime;\r\nvar SummaryCount = getSummaryCount();\r\nvar total = SummaryCount.data.totalCount.asInt();\r\nvar data = {};\r\nif(result.success){\r\n data.list = result.data;\r\n data.total = total;\r\n data.pageNo = ObjectUtil.isNotEmpty(pageNo) ? pageNo : 1;\r\n data.pageSize = ObjectUtil.isNotEmpty(pageSize) ? pageSize : parameter.pageSize;\r\n}\r\n\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); +INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/query/实体基数统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"c5f77524ffab4c02a0cdc05b44b95ad0\",\r\n \"script\" : null,\r\n \"groupId\" : \"9e64aeec148c46259a28506f2f1e4cac\",\r\n \"name\" : \"实体基数统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1699501869185,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"ljy\",\r\n \"path\" : \"/summaryCount\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"domain like \'dd%\' and has(tag,\'dd\') AND ip.port in (80) and has(tag,\'ss\')\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 999,\\n \\\"time\\\": \\\"2023-11-08 07:03:21\\\",\\n \\\"message\\\": \\\"400 null at Row:10~10,Col:32~36\\\\n\\\\nvar galaxyResult = httpRequest.get().getBody();\\\\r\\\\n ^^^^^ \\\"\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"999\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-11-07 09:03:06\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"404 null at Row:10~10,Col:32~36\\n\\nvar galaxyResult = httpRequest.get().getBody();\\r\\n ^^^^^ \",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/pre/pageFieldsHandle\' as pageHandle;\r\nimport \'@/pre/entityAggHandle\' as entityAggHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"pageNo\":pageNo,\r\n \"pageSize\":pageSize,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\npageHandle(parameter);\r\nentityAggHandle(parameter);\r\n\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') AS appCount, COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') AS domainCount, COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS ipCount, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') + COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') + COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS total FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0> JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> )\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerQuerySummaryCount\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var data = aresult[0];\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} <#if dr> AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} </#if> <#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if> )\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerQuerySummaryCount\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar data = {};\r\nif(result.success){\r\n for(k,v in result.data[0]){\r\n data.put(k,v.asInt());\r\n }\r\n}\r\n\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/top/', 'this is directory'); -INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/top/App类别-实体基数统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"fd06a1755cbb415ab4eefa767aaba193\",\r\n \"script\" : null,\r\n \"groupId\" : \"80392cde8e944a6e9c947b4ad8661c29\",\r\n \"name\" : \"App类别-实体基数统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1697789592271,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/aggAppCategory\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 999,\\n \\\"time\\\": \\\"2023-08-29 07:57:31\\\",\\n \\\"message\\\": \\\"404 null at Row:10~10,Col:32~36\\\\n\\\\nvar galaxyResult = httpRequest.get().getBody();\\\\r\\\\n ^^^^^ \\\"\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"999\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-08-29 07:57:31\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"404 null at Row:10~10,Col:32~36\\\\n\\\\nvar galaxyResult = httpRequest.get().getBody();\\\\r\\\\n ^^^^^\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/public/toHump\' as toHump;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\nparameter.resource = EntityExplorerService.parseExpression(parameter.resource,\"entityMetadata\");\r\n/**\r\n * 如果resource表达式中涉及联表字段,将进行联表查询。例:Whois.Domain\r\n */\r\nparameter.filter = parameter.resource;\r\nvar param = EntityExplorerService.getAssociationQueryParam(parameter.resource);\r\nvar columns = [\"dr\",\"fqdnCategory\",\"whois\",\"appCategory\"];\r\nif(ObjectUtil.isNotEmpty(param)){\r\n for (item in columns) {\r\n for (k,v in param) {\r\n parameter[k] = v;\r\n if (v.asString().contains(item)){\r\n parameter[item] = true;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT app_category AS app_category, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') AS appCount, COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') AS domainCount, COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS ipCount, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') + COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') + COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.app_category AS app_category FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0> JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND app_category != \'\' <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> ) GROUP BY app_category ORDER BY totalCount DESC\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggTag\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var list=new ArrayList();\r\n if(ObjectUtil.isNotEmpty(aresult)){\r\n if(aresult.length > 0){\r\n for(key,value in aresult){\r\n var obj = {};\r\n obj.value = value.app_category;\r\n obj.uniqueEntities = value.totalCount;\r\n list.add(obj);\r\n }\r\n }\r\n }\r\n var data = {};\r\n data.list = list;\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT app_category as app_category, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.app_category AS app_category FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND notEmpty(app_category)<#if dr> AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} </#if><#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if>) GROUP BY app_category ORDER BY totalCount DESC limit 100\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggTag\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar data = {};\r\nvar list = new ArrayList();\r\nif(result.success){\r\n for(key,value in result.data){\r\n var obj = {};\r\n obj.value = value.app_category;\r\n obj.uniqueEntities = value.totalCount;\r\n list.add(obj);\r\n }\r\n}\r\ndata.list = list;\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); +INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/top/App类别-实体基数统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"fd06a1755cbb415ab4eefa767aaba193\",\r\n \"script\" : null,\r\n \"groupId\" : \"80392cde8e944a6e9c947b4ad8661c29\",\r\n \"name\" : \"App类别-实体基数统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1699501668656,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"ljy\",\r\n \"path\" : \"/aggAppCategory\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"domain like \'dd%\' and has(tag,\'dd\') AND ip.port in (80) and has(tag,\'ss\')\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 200,\\n \\\"data\\\": {\\n \\\"list\\\": [\\n {\\n \\\"value\\\": \\\"general-internet\\\",\\n \\\"uniqueEntities\\\": \\\"468\\\"\\n },\\n {\\n \\\"value\\\": \\\"business-systems\\\",\\n \\\"uniqueEntities\\\": \\\"116\\\"\\n },\\n {\\n \\\"value\\\": \\\"media\\\",\\n \\\"uniqueEntities\\\": \\\"85\\\"\\n },\\n {\\n \\\"value\\\": \\\"collaboration\\\",\\n \\\"uniqueEntities\\\": \\\"58\\\"\\n },\\n {\\n \\\"value\\\": \\\"networking\\\",\\n \\\"uniqueEntities\\\": \\\"49\\\"\\n }\\n ]\\n },\\n \\\"time\\\": \\\"2023-11-08 06:26:31\\\",\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT app_category as app_category, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.app_category AS app_category FROM cn_entity_relation e WHERE e.update_time >= 1683872791 AND e.update_time < 1699424791 AND notEmpty(app_category)) GROUP BY app_category ORDER BY count DESC limit 100&format=json&option=real-time\\\",\\n \\\"message\\\": \\\"success\\\",\\n \\\"status\\\": 200\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"999\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-08-29 07:57:31\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"404 null at Row:10~10,Col:32~36\\\\n\\\\nvar galaxyResult = httpRequest.get().getBody();\\\\r\\\\n ^^^^^\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/public/toHump\' as toHump;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/pre/entityAggHandle\' as entityAggHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\nentityAggHandle(parameter);\r\n\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT app_category AS app_category, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') AS count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.app_category AS app_category FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0> JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND app_category != \'\' <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> ) GROUP BY app_category ORDER BY count DESC\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggTag\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var list=new ArrayList();\r\n if(ObjectUtil.isNotEmpty(aresult)){\r\n if(aresult.length > 0){\r\n for(key,value in aresult){\r\n var obj = {};\r\n obj.value = value.app_category;\r\n obj.uniqueEntities = value.count;\r\n list.add(obj);\r\n }\r\n }\r\n }\r\n var data = {};\r\n data.list = list;\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT app_category as app_category, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.app_category AS app_category FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND notEmpty(app_category)<#if dr> AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} </#if><#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if>) GROUP BY app_category ORDER BY count DESC limit 100\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggTag\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar data = {};\r\nvar list = new ArrayList();\r\nif(result.success){\r\n for(key,value in result.data){\r\n var obj = {};\r\n obj.value = value.app_category;\r\n obj.uniqueEntities = value.count;\r\n list.add(obj);\r\n }\r\n}\r\ndata.list = list;\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/top/group.json', '{\n \"properties\" : { },\n \"id\" : \"80392cde8e944a6e9c947b4ad8661c29\",\n \"name\" : \"top\",\n \"type\" : \"api\",\n \"parentId\" : \"877b51b4c5184132b246ca6f050d5776\",\n \"path\" : \"/top\",\n \"createTime\" : 1688462140950,\n \"updateTime\" : null,\n \"createBy\" : \"ljy\",\n \"updateBy\" : null,\n \"paths\" : [ ],\n \"options\" : [ ]\n}'); -INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/top/IP-ASN-实体基数统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"fb874f72ba3c4c56b597beeb21e51c23\",\r\n \"script\" : null,\r\n \"groupId\" : \"80392cde8e944a6e9c947b4ad8661c29\",\r\n \"name\" : \"IP-ASN-实体基数统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1697789598084,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/agg-ip-asn\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"status\\\": 200,\\n \\\"code\\\": \\\"20000666\\\",\\n \\\"queryKey\\\": \\\"e8418bf2f06a27ed717cdbb65ee305ba\\\",\\n \\\"success\\\": true,\\n \\\"message\\\": \\\"OK\\\",\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 2,\\n \\\"rows_read\\\": 2652,\\n \\\"bytes_read\\\": 227891,\\n \\\"result_size\\\": 0,\\n \\\"result_rows\\\": 0\\n },\\n \\\"job\\\": null,\\n \\\"formatType\\\": \\\"json\\\",\\n \\\"meta\\\": [{\\n \\\"name\\\": \\\"ip_asn\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Dimension\\\"\\n }, {\\n \\\"name\\\": \\\"appCount\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"domainCount\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"ipCount\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }, {\\n \\\"name\\\": \\\"totalCount\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }],\\n \\\"data\\\": {\\n \\\"list\\\": []\\n },\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT ip_asn as ip_asn, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_asn AS ip_asn FROM cn_entity_relation e JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) WHERE e.update_time >= 1677291537 AND e.update_time < 1692843537 AND notEmpty(ip_asn) AND dr.update_time >= 1677291537 AND dr.update_time < 1692843537 AND (e.app_category = \'param\' OR dr.port = 80 AND has(e.entity_tags, \'lll\')) ) GROUP BY ip_asn ORDER BY totalCount DESC limit 5&format=json&option=real-time\\\"\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"status\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"code\",\r\n \"value\" : \"20000666\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"queryKey\",\r\n \"value\" : \"e8418bf2f06a27ed717cdbb65ee305ba\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"success\",\r\n \"value\" : \"true\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Boolean\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"OK\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"statistics\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"elapsed\",\r\n \"value\" : \"2\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"rows_read\",\r\n \"value\" : \"2652\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"bytes_read\",\r\n \"value\" : \"227891\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"result_size\",\r\n \"value\" : \"0\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"result_rows\",\r\n \"value\" : \"0\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }, {\r\n \"name\" : \"job\",\r\n \"value\" : \"null\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"formatType\",\r\n \"value\" : \"json\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"meta\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Array\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"name\",\r\n \"value\" : \"ip_asn\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"type\",\r\n \"value\" : \"string\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"category\",\r\n \"value\" : \"Dimension\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n } ]\r\n }, {\r\n \"name\" : \"data\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"list\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Array\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }, {\r\n \"name\" : \"originalUrl\",\r\n \"value\" : \"http://192.168.44.55:9999/?query=SELECT ip_asn as ip_asn, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_asn AS ip_asn FROM cn_entity_relation e JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) WHERE e.update_time >= 1677291537 AND e.update_time < 1692843537 AND notEmpty(ip_asn) AND dr.update_time >= 1677291537 AND dr.update_time < 1692843537 AND (e.app_category = \'param\' OR dr.port = 80 AND has(e.entity_tags, \'lll\')) ) GROUP BY ip_asn ORDER BY totalCount DESC limit 5&format=json&option=real-time\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/public/toHump\' as toHump;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\nparameter.resource = EntityExplorerService.parseExpression(parameter.resource,\"entityMetadata\");\r\n/**\r\n * 如果resource表达式中涉及联表字段,将进行联表查询。例:Whois.Domain\r\n */\r\nparameter.filter = parameter.resource;\r\nvar param = EntityExplorerService.getAssociationQueryParam(parameter.resource);\r\nvar columns = [\"dr\",\"fqdnCategory\",\"whois\",\"appCategory\"];\r\nif(ObjectUtil.isNotEmpty(param)){\r\n for (item in columns) {\r\n for (k,v in param) {\r\n parameter[k] = v;\r\n if (v.asString().contains(item)){\r\n parameter[item] = true;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT ip_asn AS ip_asn, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') AS appCount, COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') AS domainCount, COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS ipCount, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') + COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') + COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_asn AS ip_asn FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0> JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE e.update_time >= $start AND e.update_time < $end AND ip_asn != \'\' <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> ) GROUP BY ip_asn ORDER BY totalCount DESC\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggCity\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var list=new ArrayList();\r\n if(ObjectUtil.isNotEmpty(aresult)){\r\n if(aresult.length > 0){\r\n for(key,value in aresult){\r\n var obj = {};\r\n obj.value = value.ip_asn;\r\n obj.uniqueEntities = value.totalCount;\r\n list.add(obj);\r\n }\r\n }\r\n }\r\n var data = {};\r\n data.list = list;\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT ip_asn as ip_asn, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_asn AS ip_asn FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND notEmpty(ip_asn) <#if dr> AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} </#if><#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if> ) GROUP BY ip_asn ORDER BY totalCount DESC limit 100\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggAsn\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar data = {};\r\nvar list = new ArrayList();\r\nif(result.success){\r\n for(key,value in result.data){\r\n var obj = {};\r\n obj.value = value.ip_asn;\r\n obj.uniqueEntities = value.totalCount;\r\n list.add(obj);\r\n }\r\n}\r\ndata.list = list;\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); -INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/top/IP运营商-实体基数统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"41df106274164d698b55dc2a5bc53b95\",\r\n \"script\" : null,\r\n \"groupId\" : \"80392cde8e944a6e9c947b4ad8661c29\",\r\n \"name\" : \"IP运营商-实体基数统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1697789604094,\r\n \"lock\" : null,\r\n \"createBy\" : \"ljy\",\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/agg-ip-isp\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 999,\\n \\\"time\\\": \\\"2023-08-29 07:57:57\\\",\\n \\\"message\\\": \\\"404 null at Row:10~10,Col:32~36\\\\n\\\\nvar galaxyResult = httpRequest.get().getBody();\\\\r\\\\n ^^^^^ \\\"\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"999\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-08-29 07:57:57\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"404 null at Row:10~10,Col:32~36\\\\n\\\\nvar galaxyResult = httpRequest.get().getBody();\\\\r\\\\n ^^^^^\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/public/toHump\' as toHump;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\nparameter.resource = EntityExplorerService.parseExpression(parameter.resource,\"entityMetadata\");\r\n/**\r\n * 如果resource表达式中涉及联表字段,将进行联表查询。例:Whois.Domain\r\n */\r\nparameter.filter = parameter.resource;\r\nvar param = EntityExplorerService.getAssociationQueryParam(parameter.resource);\r\nvar columns = [\"dr\",\"fqdnCategory\",\"whois\",\"appCategory\"];\r\nif(ObjectUtil.isNotEmpty(param)){\r\n for (item in columns) {\r\n for (k,v in param) {\r\n parameter[k] = v;\r\n if (v.asString().contains(item)){\r\n parameter[item] = true;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT ip_isp AS ip_isp, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') AS appCount, COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') AS domainCount, COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS ipCount, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') + COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') + COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_isp AS ip_isp FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0> JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND ip_isp != \'\' <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> ) GROUP BY ip_isp ORDER BY totalCount DESC\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggTag\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var list=new ArrayList();\r\n if(ObjectUtil.isNotEmpty(aresult)){\r\n if(aresult.length > 0){\r\n for(key,value in aresult){\r\n var obj = {};\r\n obj.value = value.ip_isp;\r\n obj.uniqueEntities = value.totalCount;\r\n list.add(obj);\r\n }\r\n }\r\n }\r\n var data = {};\r\n data.list = list;\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT ip_isp as ip_isp, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_isp AS ip_isp FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND notEmpty(ip_isp) <#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if> ) GROUP BY ip_isp ORDER BY totalCount DESC limit 100\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggTag\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar data = {};\r\nvar list = new ArrayList();\r\nif(result.success){\r\n for(key,value in result.data){\r\n var obj = {};\r\n obj.value = value.ip_isp;\r\n obj.uniqueEntities = value.totalCount;\r\n list.add(obj);\r\n }\r\n}\r\ndata.list = list;\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); -INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/top/国家-实体基数统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"7c364aebd4704afdbff3f623cd0d0b4b\",\r\n \"script\" : null,\r\n \"groupId\" : \"80392cde8e944a6e9c947b4ad8661c29\",\r\n \"name\" : \"国家-实体基数统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1697789579206,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/aggCountry\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 999,\\n \\\"time\\\": \\\"2023-08-29 07:56:57\\\",\\n \\\"message\\\": \\\"404 null at Row:10~10,Col:32~36\\\\n\\\\nvar galaxyResult = httpRequest.get().getBody();\\\\r\\\\n ^^^^^ \\\"\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"999\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-08-29 07:56:57\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"404 null at Row:10~10,Col:32~36\\\\n\\\\nvar galaxyResult = httpRequest.get().getBody();\\\\r\\\\n ^^^^^\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/public/toHump\' as toHump;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\nparameter.resource = EntityExplorerService.parseExpression(parameter.resource,\"entityMetadata\");\r\n/**\r\n * 如果resource表达式中涉及联表字段,将进行联表查询。例:Whois.Domain\r\n */\r\nparameter.filter = parameter.resource;\r\nvar param = EntityExplorerService.getAssociationQueryParam(parameter.resource);\r\nvar columns = [\"dr\",\"fqdnCategory\",\"whois\",\"appCategory\"];\r\nif(ObjectUtil.isNotEmpty(param)){\r\n for (item in columns) {\r\n for (k,v in param) {\r\n parameter[k] = v;\r\n if (v.asString().contains(item)){\r\n parameter[item] = true;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT ip_country_region AS ip_country_region, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') AS appCount, COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') AS domainCount, COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS ipCount, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') + COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') + COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_country_region AS ip_country_region FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0> JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND ip_country_region != \'\' <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> ) GROUP BY ip_country_region ORDER BY totalCount DESC\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggCountry\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var list=new ArrayList();\r\n if(ObjectUtil.isNotEmpty(aresult)){\r\n if(aresult.length > 0){\r\n for(key,value in aresult){\r\n var obj = {};\r\n obj.value = value.ip_country_region;\r\n obj.uniqueEntities = value.totalCount;\r\n list.add(obj);\r\n }\r\n }\r\n }\r\n var data = {};\r\n data.list = list;\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT ip_country_region as ip_country_region, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_country_region AS ip_country_region FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND notEmpty(ip_country_region)<#if dr> AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} </#if><#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if>) GROUP BY ip_country_region ORDER BY totalCount DESC limit 100\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggCountry\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar data = {};\r\nvar list = new ArrayList();\r\nif(result.success){\r\n for(key,value in result.data){\r\n var obj = {};\r\n obj.value = value.ip_country_region;\r\n obj.uniqueEntities = value.totalCount;\r\n list.add(obj);\r\n }\r\n}\r\ndata.list = list;\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); -INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/top/城市-实体基数统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"29790a82d1b54dff811980a7167ebaca\",\r\n \"script\" : null,\r\n \"groupId\" : \"80392cde8e944a6e9c947b4ad8661c29\",\r\n \"name\" : \"城市-实体基数统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1697789566648,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/aggCity\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"ip.port=80\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 200,\\n \\\"data\\\": {\\n \\\"list\\\": [{\\n \\\"value\\\": \\\"Shanghai City\\\",\\n \\\"uniqueEntities\\\": \\\"50\\\"\\n }, {\\n \\\"value\\\": \\\"Beijing City\\\",\\n \\\"uniqueEntities\\\": \\\"41\\\"\\n }, {\\n \\\"value\\\": \\\"Hongkong\\\",\\n \\\"uniqueEntities\\\": \\\"30\\\"\\n }, {\\n \\\"value\\\": \\\"Guangzhou City\\\",\\n \\\"uniqueEntities\\\": \\\"28\\\"\\n }, {\\n \\\"value\\\": \\\"Tokyo\\\",\\n \\\"uniqueEntities\\\": \\\"28\\\"\\n }]\\n },\\n \\\"time\\\": \\\"2023-08-31 02:54:15\\\",\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT ip_admin_area as ip_admin_area, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_admin_area AS ip_admin_area FROM cn_entity_relation e JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) WHERE e.update_time >= 1677898455 AND e.update_time < 1693450455 AND notEmpty(ip_admin_area) AND dr.update_time >= 1677898455 AND dr.update_time < 1693450455 AND (dr.port = 80) ) GROUP BY ip_admin_area ORDER BY totalCount DESC limit 5&format=json&option=real-time\\\",\\n \\\"message\\\": \\\"success\\\",\\n \\\"status\\\": 200\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"data\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"list\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Array\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"value\",\r\n \"value\" : \"Shanghai City\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"uniqueEntities\",\r\n \"value\" : \"50\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n } ]\r\n } ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-08-31 02:54:15\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"originalUrl\",\r\n \"value\" : \"http://192.168.44.55:9999/?query=SELECT ip_admin_area as ip_admin_area, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_admin_area AS ip_admin_area FROM cn_entity_relation e JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) WHERE e.update_time >= 1677898455 AND e.update_time < 1693450455 AND notEmpty(ip_admin_area) AND dr.update_time >= 1677898455 AND dr.update_time < 1693450455 AND (dr.port = 80) ) GROUP BY ip_admin_area ORDER BY totalCount DESC limit 5&format=json&option=real-time\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"success\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"status\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/public/toHump\' as toHump;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\nparameter.resource = EntityExplorerService.parseExpression(parameter.resource,\"entityMetadata\");\r\n/**\r\n * 如果resource表达式中涉及联表字段,将进行联表查询。例:Whois.Domain\r\n */\r\nparameter.filter = parameter.resource;\r\nvar param = EntityExplorerService.getAssociationQueryParam(parameter.resource);\r\nvar columns = [\"dr\",\"fqdnCategory\",\"whois\",\"appCategory\"];\r\nif(ObjectUtil.isNotEmpty(param)){\r\n for (item in columns) {\r\n for (k,v in param) {\r\n parameter[k] = v;\r\n if (v.asString().contains(item)){\r\n parameter[item] = true;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT ip_admin_area AS ip_admin_area, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') AS appCount, COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') AS domainCount, COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS ipCount, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') + COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') + COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_admin_area AS ip_admin_area FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0> JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND ip_admin_area != \'\' <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> ) GROUP BY ip_admin_area ORDER BY totalCount DESC\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggCity\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var list=new ArrayList();\r\n if(ObjectUtil.isNotEmpty(aresult)){\r\n if(aresult.length > 0){\r\n for(key,value in aresult){\r\n var obj = {};\r\n obj.value = value.ip_admin_area;\r\n obj.uniqueEntities = value.totalCount;\r\n list.add(obj);\r\n }\r\n }\r\n }\r\n var data = {};\r\n data.list = list;\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT ip_admin_area as ip_admin_area, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_admin_area AS ip_admin_area FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND notEmpty(ip_admin_area) <#if dr> AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} </#if><#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter})</#if> ) GROUP BY ip_admin_area ORDER BY totalCount DESC limit 100\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggCity\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar data = {};\r\nvar list = new ArrayList();\r\nif(result.success){\r\n for(key,value in result.data){\r\n var obj = {};\r\n obj.value = value.ip_admin_area;\r\n obj.uniqueEntities = value.totalCount;\r\n list.add(obj);\r\n }\r\n}\r\ndata.list = list;\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); -INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/top/域名类别-实体基数统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"54cc297aa5274677bd874272e7843eda\",\r\n \"script\" : null,\r\n \"groupId\" : \"80392cde8e944a6e9c947b4ad8661c29\",\r\n \"name\" : \"域名类别-实体基数统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1697789585810,\r\n \"lock\" : null,\r\n \"createBy\" : \"ljy\",\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/aggDomainCategory\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 999,\\n \\\"time\\\": \\\"2023-08-29 07:57:15\\\",\\n \\\"message\\\": \\\"404 null at Row:10~10,Col:32~36\\\\n\\\\nvar galaxyResult = httpRequest.get().getBody();\\\\r\\\\n ^^^^^ \\\"\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"999\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-08-29 07:57:15\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"404 null at Row:10~10,Col:32~36\\\\n\\\\nvar galaxyResult = httpRequest.get().getBody();\\\\r\\\\n ^^^^^\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/public/toHump\' as toHump;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\nparameter.resource = EntityExplorerService.parseExpression(parameter.resource,\"entityMetadata\");\r\n/**\r\n * 如果resource表达式中涉及联表字段,将进行联表查询。例:Whois.Domain\r\n */\r\nparameter.filter = parameter.resource;\r\nvar param = EntityExplorerService.getAssociationQueryParam(parameter.resource);\r\nvar columns = [\"dr\",\"fqdnCategory\",\"whois\",\"appCategory\"];\r\nif(ObjectUtil.isNotEmpty(param)){\r\n for (item in columns) {\r\n for (k,v in param) {\r\n parameter[k] = v;\r\n if (v.asString().contains(item)){\r\n parameter[item] = true;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT domain_category_name AS domain_category_name, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') AS appCount, COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') AS domainCount, COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS ipCount, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') + COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') + COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.domain_category_name AS domain_category_name FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0> JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND domain_category_name != \'\' <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> ) GROUP BY domain_category_name ORDER BY totalCount DESC\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggTag\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var list=new ArrayList();\r\n if(ObjectUtil.isNotEmpty(aresult)){\r\n if(aresult.length > 0){\r\n for(key,value in aresult){\r\n var obj = {};\r\n obj.value = value.domain_category_name;\r\n obj.uniqueEntities = value.totalCount;\r\n list.add(obj);\r\n }\r\n }\r\n }\r\n var data = {};\r\n data.list = list;\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT domain_category_name as domain_category_name, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.domain_category_name AS domain_category_name FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND notEmpty(domain_category_name)<#if dr> AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} </#if><#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if>) GROUP BY domain_category_name ORDER BY totalCount DESC limit 100\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggTag\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar data = {};\r\nvar list = new ArrayList();\r\nif(result.success){\r\n for(key,value in result.data){\r\n var obj = {};\r\n obj.value = value.domain_category_name;\r\n obj.uniqueEntities = value.totalCount;\r\n list.add(obj);\r\n }\r\n}\r\ndata.list = list;\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); -INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/top/标签-实体基数统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"5a271e27d449466fa061d4b95a915b68\",\r\n \"script\" : null,\r\n \"groupId\" : \"80392cde8e944a6e9c947b4ad8661c29\",\r\n \"name\" : \"标签-实体基数统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1697789560764,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/aggTag\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"ip.port=80\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 200,\\n \\\"data\\\": {\\n \\\"list\\\": []\\n },\\n \\\"time\\\": \\\"2023-08-31 02:53:50\\\",\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT entity_tag as entity_tag, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, arrayJoin(e.entity_tags) AS entity_tag FROM cn_entity_relation e JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) WHERE e.update_time >= 1677898430 AND e.update_time < 1693450430 AND notEmpty(e.entity_tags) AND dr.update_time >= 1677898430 AND dr.update_time < 1693450430 AND (dr.port = 80) ) GROUP BY entity_tag ORDER BY totalCount DESC limit 5&format=json&option=real-time\\\",\\n \\\"message\\\": \\\"success\\\",\\n \\\"status\\\": 200\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"data\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"list\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Array\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-08-31 02:53:50\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"originalUrl\",\r\n \"value\" : \"http://192.168.44.55:9999/?query=SELECT entity_tag as entity_tag, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, arrayJoin(e.entity_tags) AS entity_tag FROM cn_entity_relation e JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) WHERE e.update_time >= 1677898430 AND e.update_time < 1693450430 AND notEmpty(e.entity_tags) AND dr.update_time >= 1677898430 AND dr.update_time < 1693450430 AND (dr.port = 80) ) GROUP BY entity_tag ORDER BY totalCount DESC limit 5&format=json&option=real-time\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"success\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"status\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/public/toHump\' as toHump;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\nparameter.resource = EntityExplorerService.parseExpression(parameter.resource,\"entityMetadata\");\r\n/**\r\n * 如果resource表达式中涉及联表字段,将进行联表查询。例:Whois.Domain\r\n */\r\nparameter.filter = parameter.resource;\r\nvar param = EntityExplorerService.getAssociationQueryParam(parameter.resource);\r\nvar columns = [\"dr\",\"fqdnCategory\",\"whois\",\"appCategory\"];\r\nif(ObjectUtil.isNotEmpty(param)){\r\n for (item in columns) {\r\n for (k,v in param) {\r\n parameter[k] = v;\r\n if (v.asString().contains(item)){\r\n parameter[item] = true;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT entity_tags AS entity_tags, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') AS appCount, COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') AS domainCount, COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS ipCount, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') + COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') + COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.entity_tags AS entity_tags FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois>JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory>JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0>JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND entity_tags != \'\' <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> ) GROUP BY entity_tags ORDER BY totalCount DESC\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggTag\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var list=new ArrayList();\r\n if(ObjectUtil.isNotEmpty(aresult)){\r\n if(aresult.length > 0){\r\n for(key,value in aresult){\r\n var obj = {};\r\n obj.value = value.entity_tags;\r\n obj.uniqueEntities = value.totalCount;\r\n list.add(obj);\r\n }\r\n }\r\n }\r\n var data = {};\r\n data.list = list;\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT entity_tag as entity_tag, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, arrayJoin(e.entity_tags) AS entity_tag FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND notEmpty(e.entity_tags)<#if dr> AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} </#if><#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if> ) GROUP BY entity_tag ORDER BY totalCount DESC limit 100\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggTag\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar data = {};\r\nvar list = new ArrayList();\r\nif(result.success){\r\n for(key,value in result.data){\r\n var obj = {};\r\n obj.value = value.entity_tag;\r\n obj.uniqueEntities = value.totalCount;\r\n list.add(obj);\r\n }\r\n}\r\ndata.list = list;\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); -INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/top/端口-实体基数统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"2c0346e6e37f45b6bcb1f0fb0841a1c7\",\r\n \"script\" : null,\r\n \"groupId\" : \"80392cde8e944a6e9c947b4ad8661c29\",\r\n \"name\" : \"端口-实体基数统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1697789572781,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/aggPort\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 200,\\n \\\"data\\\": {\\n \\\"list\\\": [{\\n \\\"port\\\": \\\"443\\\",\\n \\\"l7Protocol\\\": \\\"\\\",\\n \\\"uniqueEntities\\\": \\\"998\\\"\\n }, {\\n \\\"port\\\": \\\"80\\\",\\n \\\"l7Protocol\\\": \\\"\\\",\\n \\\"uniqueEntities\\\": \\\"386\\\"\\n }, {\\n \\\"port\\\": \\\"21\\\",\\n \\\"l7Protocol\\\": \\\"\\\",\\n \\\"uniqueEntities\\\": \\\"21\\\"\\n }, {\\n \\\"port\\\": \\\"7680\\\",\\n \\\"l7Protocol\\\": \\\"\\\",\\n \\\"uniqueEntities\\\": \\\"21\\\"\\n }, {\\n \\\"port\\\": \\\"3389\\\",\\n \\\"l7Protocol\\\": \\\"\\\",\\n \\\"uniqueEntities\\\": \\\"19\\\"\\n }]\\n },\\n \\\"time\\\": \\\"2023-08-31 02:54:46\\\",\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT port AS port, l7_protocol AS l7_protocol, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_admin_area AS ip_admin_area, dr.port AS port, dr.l7_protocol AS l7_protocol FROM cn_entity_relation e JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) WHERE e.update_time >= 1677898486 AND e.update_time < 1693450486) GROUP BY port,l7_protocol ORDER BY totalCount DESC limit 5&format=json&option=real-time\\\",\\n \\\"message\\\": \\\"success\\\",\\n \\\"status\\\": 200\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"data\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"list\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Array\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"port\",\r\n \"value\" : \"443\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"l7Protocol\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"uniqueEntities\",\r\n \"value\" : \"998\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n } ]\r\n } ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-08-31 02:54:46\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"originalUrl\",\r\n \"value\" : \"http://192.168.44.55:9999/?query=SELECT port AS port, l7_protocol AS l7_protocol, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_admin_area AS ip_admin_area, dr.port AS port, dr.l7_protocol AS l7_protocol FROM cn_entity_relation e JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) WHERE e.update_time >= 1677898486 AND e.update_time < 1693450486) GROUP BY port,l7_protocol ORDER BY totalCount DESC limit 5&format=json&option=real-time\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"success\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"status\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport \'@/public/toHump\' as toHump;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\nparameter.resource = EntityExplorerService.parseExpression(parameter.resource,\"entityMetadata\");\r\n/**\r\n * 如果resource表达式中涉及联表字段,将进行联表查询。例:Whois.Domain\r\n */\r\nparameter.filter = parameter.resource;\r\nvar param = EntityExplorerService.getAssociationQueryParam(parameter.resource);\r\nvar columns = [\"dr\",\"fqdnCategory\",\"whois\",\"appCategory\"];\r\nif(ObjectUtil.isNotEmpty(param)){\r\n for (item in columns) {\r\n for (k,v in param) {\r\n parameter[k] = v;\r\n if (v.asString().contains(item)){\r\n parameter[item] = true;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT port AS port, l7_protocol AS l7_protocol, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') AS appCount, COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') AS domainCount, COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS ipCount, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') + COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') + COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, dr.port AS port, dr.l7_protocol AS l7_protocol FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} <#if dr\\.port?default(\'\')?trim? length gt 0> AND ${dr\\.port}</#if>) <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> ) GROUP BY port,l7_protocol ORDER BY totalCount DESC\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggPort\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var list=new ArrayList();\r\n if(ObjectUtil.isNotEmpty(aresult)){\r\n if(aresult.length > 0){\r\n for(key,value in aresult){\r\n var obj = {};\r\n obj.port = value.port;\r\n obj.l7Protocol = value.l7_protocol;\r\n obj.uniqueEntities = value.totalCount;\r\n list.add(obj);\r\n }\r\n }\r\n }\r\n var data = {};\r\n data.list = list;\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT port AS port, l7_protocol AS l7_protocol, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_admin_area AS ip_admin_area, dr.port AS port, dr.l7_protocol AS l7_protocol FROM cn_entity_relation e JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} <#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if>) GROUP BY port,l7_protocol ORDER BY totalCount DESC limit 100\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggTag\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar data = {};\r\nvar list = new ArrayList();\r\nif(result.success){\r\n for(key,value in result.data){\r\n var obj = {};\r\n obj.port = value.port;\r\n obj.l7Protocol = value.l7_protocol;\r\n obj.uniqueEntities = value.totalCount;\r\n list.add(obj);\r\n }\r\n}\r\ndata.list = list;\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); +INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/top/IP-ASN-实体基数统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"fb874f72ba3c4c56b597beeb21e51c23\",\r\n \"script\" : null,\r\n \"groupId\" : \"80392cde8e944a6e9c947b4ad8661c29\",\r\n \"name\" : \"IP-ASN-实体基数统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1699501707614,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"ljy\",\r\n \"path\" : \"/agg-ip-asn\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"domain like \'dd%\' and has(tag,\'dd\') AND ip.port in (80) and has(tag,\'ss\')\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 200,\\n \\\"data\\\": {\\n \\\"list\\\": [\\n {\\n \\\"value\\\": \\\"4134\\\",\\n \\\"uniqueEntities\\\": \\\"47595\\\"\\n },\\n {\\n \\\"value\\\": \\\"16509\\\",\\n \\\"uniqueEntities\\\": \\\"10298\\\"\\n },\\n {\\n \\\"value\\\": \\\"20940\\\",\\n \\\"uniqueEntities\\\": \\\"8346\\\"\\n },\\n {\\n \\\"value\\\": \\\"4837\\\",\\n \\\"uniqueEntities\\\": \\\"8025\\\"\\n },\\n {\\n \\\"value\\\": \\\"2687\\\",\\n \\\"uniqueEntities\\\": \\\"5507\\\"\\n },\\n {\\n \\\"value\\\": \\\"2686\\\",\\n \\\"uniqueEntities\\\": \\\"5130\\\"\\n },\\n {\\n \\\"value\\\": \\\"14618\\\",\\n \\\"uniqueEntities\\\": \\\"4886\\\"\\n },\\n {\\n \\\"value\\\": \\\"37963\\\",\\n \\\"uniqueEntities\\\": \\\"4595\\\"\\n },\\n {\\n \\\"value\\\": \\\"21928\\\",\\n \\\"uniqueEntities\\\": \\\"3671\\\"\\n },\\n {\\n \\\"value\\\": \\\"174\\\",\\n \\\"uniqueEntities\\\": \\\"3386\\\"\\n },\\n {\\n \\\"value\\\": \\\"15169\\\",\\n \\\"uniqueEntities\\\": \\\"3284\\\"\\n },\\n {\\n \\\"value\\\": \\\"16625\\\",\\n \\\"uniqueEntities\\\": \\\"3075\\\"\\n },\\n {\\n \\\"value\\\": \\\"13335\\\",\\n \\\"uniqueEntities\\\": \\\"3025\\\"\\n },\\n {\\n \\\"value\\\": \\\"4808\\\",\\n \\\"uniqueEntities\\\": \\\"2977\\\"\\n },\\n {\\n \\\"value\\\": \\\"62605\\\",\\n \\\"uniqueEntities\\\": \\\"2921\\\"\\n },\\n {\\n \\\"value\\\": \\\"21719\\\",\\n \\\"uniqueEntities\\\": \\\"2914\\\"\\n },\\n {\\n \\\"value\\\": \\\"2907\\\",\\n \\\"uniqueEntities\\\": \\\"2762\\\"\\n },\\n {\\n \\\"value\\\": \\\"7018\\\",\\n \\\"uniqueEntities\\\": \\\"2755\\\"\\n },\\n {\\n \\\"value\\\": \\\"8075\\\",\\n \\\"uniqueEntities\\\": \\\"2702\\\"\\n },\\n {\\n \\\"value\\\": \\\"45090\\\",\\n \\\"uniqueEntities\\\": \\\"2501\\\"\\n },\\n {\\n \\\"value\\\": \\\"10430\\\",\\n \\\"uniqueEntities\\\": \\\"2216\\\"\\n },\\n {\\n \\\"value\\\": \\\"23724\\\",\\n \\\"uniqueEntities\\\": \\\"2035\\\"\\n },\\n {\\n \\\"value\\\": \\\"4812\\\",\\n \\\"uniqueEntities\\\": \\\"2020\\\"\\n },\\n {\\n \\\"value\\\": \\\"9808\\\",\\n \\\"uniqueEntities\\\": \\\"1908\\\"\\n },\\n {\\n \\\"value\\\": \\\"59118\\\",\\n \\\"uniqueEntities\\\": \\\"1653\\\"\\n },\\n {\\n \\\"value\\\": \\\"56041\\\",\\n \\\"uniqueEntities\\\": \\\"1603\\\"\\n },\\n {\\n \\\"value\\\": \\\"25888\\\",\\n \\\"uniqueEntities\\\": \\\"1551\\\"\\n },\\n {\\n \\\"value\\\": \\\"2688\\\",\\n \\\"uniqueEntities\\\": \\\"1474\\\"\\n },\\n {\\n \\\"value\\\": \\\"22612\\\",\\n \\\"uniqueEntities\\\": \\\"1471\\\"\\n },\\n {\\n \\\"value\\\": \\\"19318\\\",\\n \\\"uniqueEntities\\\": \\\"1434\\\"\\n },\\n {\\n \\\"value\\\": \\\"30396\\\",\\n \\\"uniqueEntities\\\": \\\"1413\\\"\\n },\\n {\\n \\\"value\\\": \\\"17638\\\",\\n \\\"uniqueEntities\\\": \\\"1411\\\"\\n },\\n {\\n \\\"value\\\": \\\"19133\\\",\\n \\\"uniqueEntities\\\": \\\"1379\\\"\\n },\\n {\\n \\\"value\\\": \\\"56046\\\",\\n \\\"uniqueEntities\\\": \\\"1357\\\"\\n },\\n {\\n \\\"value\\\": \\\"6507\\\",\\n \\\"uniqueEntities\\\": \\\"1314\\\"\\n },\\n {\\n \\\"value\\\": \\\"58542\\\",\\n \\\"uniqueEntities\\\": \\\"1249\\\"\\n },\\n {\\n \\\"value\\\": \\\"714\\\",\\n \\\"uniqueEntities\\\": \\\"1149\\\"\\n },\\n {\\n \\\"value\\\": \\\"19867\\\",\\n \\\"uniqueEntities\\\": \\\"1096\\\"\\n },\\n {\\n \\\"value\\\": \\\"4730\\\",\\n \\\"uniqueEntities\\\": \\\"1063\\\"\\n },\\n {\\n \\\"value\\\": \\\"132203\\\",\\n \\\"uniqueEntities\\\": \\\"900\\\"\\n },\\n {\\n \\\"value\\\": \\\"56040\\\",\\n \\\"uniqueEntities\\\": \\\"793\\\"\\n },\\n {\\n \\\"value\\\": \\\"20473\\\",\\n \\\"uniqueEntities\\\": \\\"765\\\"\\n },\\n {\\n \\\"value\\\": \\\"36444\\\",\\n \\\"uniqueEntities\\\": \\\"740\\\"\\n },\\n {\\n \\\"value\\\": \\\"26679\\\",\\n \\\"uniqueEntities\\\": \\\"736\\\"\\n },\\n {\\n \\\"value\\\": \\\"11403\\\",\\n \\\"uniqueEntities\\\": \\\"733\\\"\\n },\\n {\\n \\\"value\\\": \\\"11139\\\",\\n \\\"uniqueEntities\\\": \\\"733\\\"\\n },\\n {\\n \\\"value\\\": \\\"58540\\\",\\n \\\"uniqueEntities\\\": \\\"718\\\"\\n },\\n {\\n \\\"value\\\": \\\"3356\\\",\\n \\\"uniqueEntities\\\": \\\"716\\\"\\n },\\n {\\n \\\"value\\\": \\\"46525\\\",\\n \\\"uniqueEntities\\\": \\\"712\\\"\\n },\\n {\\n \\\"value\\\": \\\"395043\\\",\\n \\\"uniqueEntities\\\": \\\"699\\\"\\n },\\n {\\n \\\"value\\\": \\\"22363\\\",\\n \\\"uniqueEntities\\\": \\\"694\\\"\\n },\\n {\\n \\\"value\\\": \\\"136195\\\",\\n \\\"uniqueEntities\\\": \\\"694\\\"\\n },\\n {\\n \\\"value\\\": \\\"54359\\\",\\n \\\"uniqueEntities\\\": \\\"694\\\"\\n },\\n {\\n \\\"value\\\": \\\"55990\\\",\\n \\\"uniqueEntities\\\": \\\"685\\\"\\n },\\n {\\n \\\"value\\\": \\\"22878\\\",\\n \\\"uniqueEntities\\\": \\\"684\\\"\\n },\\n {\\n \\\"value\\\": \\\"33\\\",\\n \\\"uniqueEntities\\\": \\\"641\\\"\\n },\\n {\\n \\\"value\\\": \\\"2504\\\",\\n \\\"uniqueEntities\\\": \\\"605\\\"\\n },\\n {\\n \\\"value\\\": \\\"137687\\\",\\n \\\"uniqueEntities\\\": \\\"548\\\"\\n },\\n {\\n \\\"value\\\": \\\"58461\\\",\\n \\\"uniqueEntities\\\": \\\"543\\\"\\n },\\n {\\n \\\"value\\\": \\\"25956\\\",\\n \\\"uniqueEntities\\\": \\\"531\\\"\\n },\\n {\\n \\\"value\\\": \\\"46887\\\",\\n \\\"uniqueEntities\\\": \\\"509\\\"\\n },\\n {\\n \\\"value\\\": \\\"24444\\\",\\n \\\"uniqueEntities\\\": \\\"496\\\"\\n },\\n {\\n \\\"value\\\": \\\"24400\\\",\\n \\\"uniqueEntities\\\": \\\"495\\\"\\n },\\n {\\n \\\"value\\\": \\\"34164\\\",\\n \\\"uniqueEntities\\\": \\\"485\\\"\\n },\\n {\\n \\\"value\\\": \\\"14061\\\",\\n \\\"uniqueEntities\\\": \\\"469\\\"\\n },\\n {\\n \\\"value\\\": \\\"58563\\\",\\n \\\"uniqueEntities\\\": \\\"448\\\"\\n },\\n {\\n \\\"value\\\": \\\"24940\\\",\\n \\\"uniqueEntities\\\": \\\"445\\\"\\n },\\n {\\n \\\"value\\\": \\\"4847\\\",\\n \\\"uniqueEntities\\\": \\\"444\\\"\\n },\\n {\\n \\\"value\\\": \\\"58539\\\",\\n \\\"uniqueEntities\\\": \\\"443\\\"\\n },\\n {\\n \\\"value\\\": \\\"24261\\\",\\n \\\"uniqueEntities\\\": \\\"442\\\"\\n },\\n {\\n \\\"value\\\": \\\"2685\\\",\\n \\\"uniqueEntities\\\": \\\"439\\\"\\n },\\n {\\n \\\"value\\\": \\\"2129\\\",\\n \\\"uniqueEntities\\\": \\\"436\\\"\\n },\\n {\\n \\\"value\\\": \\\"16276\\\",\\n \\\"uniqueEntities\\\": \\\"435\\\"\\n },\\n {\\n \\\"value\\\": \\\"54113\\\",\\n \\\"uniqueEntities\\\": \\\"427\\\"\\n },\\n {\\n \\\"value\\\": \\\"32934\\\",\\n \\\"uniqueEntities\\\": \\\"426\\\"\\n },\\n {\\n \\\"value\\\": \\\"134760\\\",\\n \\\"uniqueEntities\\\": \\\"424\\\"\\n },\\n {\\n \\\"value\\\": \\\"38019\\\",\\n \\\"uniqueEntities\\\": \\\"410\\\"\\n },\\n {\\n \\\"value\\\": \\\"58453\\\",\\n \\\"uniqueEntities\\\": \\\"389\\\"\\n },\\n {\\n \\\"value\\\": \\\"58541\\\",\\n \\\"uniqueEntities\\\": \\\"386\\\"\\n },\\n {\\n \\\"value\\\": \\\"398669\\\",\\n \\\"uniqueEntities\\\": \\\"376\\\"\\n },\\n {\\n \\\"value\\\": \\\"398949\\\",\\n \\\"uniqueEntities\\\": \\\"376\\\"\\n },\\n {\\n \\\"value\\\": \\\"63323\\\",\\n \\\"uniqueEntities\\\": \\\"375\\\"\\n },\\n {\\n \\\"value\\\": \\\"136190\\\",\\n \\\"uniqueEntities\\\": \\\"375\\\"\\n },\\n {\\n \\\"value\\\": \\\"23005\\\",\\n \\\"uniqueEntities\\\": \\\"371\\\"\\n },\\n {\\n \\\"value\\\": \\\"24424\\\",\\n \\\"uniqueEntities\\\": \\\"369\\\"\\n },\\n {\\n \\\"value\\\": \\\"55396\\\",\\n \\\"uniqueEntities\\\": \\\"364\\\"\\n },\\n {\\n \\\"value\\\": \\\"63278\\\",\\n \\\"uniqueEntities\\\": \\\"363\\\"\\n },\\n {\\n \\\"value\\\": \\\"393716\\\",\\n \\\"uniqueEntities\\\": \\\"361\\\"\\n },\\n {\\n \\\"value\\\": \\\"136188\\\",\\n \\\"uniqueEntities\\\": \\\"361\\\"\\n },\\n {\\n \\\"value\\\": \\\"399522\\\",\\n \\\"uniqueEntities\\\": \\\"357\\\"\\n },\\n {\\n \\\"value\\\": \\\"40889\\\",\\n \\\"uniqueEntities\\\": \\\"356\\\"\\n },\\n {\\n \\\"value\\\": \\\"62782\\\",\\n \\\"uniqueEntities\\\": \\\"355\\\"\\n },\\n {\\n \\\"value\\\": \\\"36236\\\",\\n \\\"uniqueEntities\\\": \\\"353\\\"\\n },\\n {\\n \\\"value\\\": \\\"61317\\\",\\n \\\"uniqueEntities\\\": \\\"351\\\"\\n },\\n {\\n \\\"value\\\": \\\"2497\\\",\\n \\\"uniqueEntities\\\": \\\"350\\\"\\n },\\n {\\n \\\"value\\\": \\\"63037\\\",\\n \\\"uniqueEntities\\\": \\\"349\\\"\\n },\\n {\\n \\\"value\\\": \\\"2828\\\",\\n \\\"uniqueEntities\\\": \\\"348\\\"\\n },\\n {\\n \\\"value\\\": \\\"53481\\\",\\n \\\"uniqueEntities\\\": \\\"347\\\"\\n },\\n {\\n \\\"value\\\": \\\"26223\\\",\\n \\\"uniqueEntities\\\": \\\"347\\\"\\n },\\n {\\n \\\"value\\\": \\\"23650\\\",\\n \\\"uniqueEntities\\\": \\\"346\\\"\\n }\\n ]\\n },\\n \\\"time\\\": \\\"2023-11-08 06:19:38\\\",\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT ip_asn as ip_asn, COUNTIF(DISTINCT(ip),notEmpty(ip)) as count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_asn AS ip_asn FROM cn_entity_relation e WHERE e.update_time >= 1683872378 AND e.update_time < 1699424378 AND notEmpty(ip_asn) ) GROUP BY ip_asn ORDER BY count DESC limit 100&format=json&option=real-time\\\",\\n \\\"message\\\": \\\"success\\\",\\n \\\"status\\\": 200\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"status\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"code\",\r\n \"value\" : \"20000666\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"queryKey\",\r\n \"value\" : \"e8418bf2f06a27ed717cdbb65ee305ba\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"success\",\r\n \"value\" : \"true\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Boolean\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"OK\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"statistics\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"elapsed\",\r\n \"value\" : \"2\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"rows_read\",\r\n \"value\" : \"2652\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"bytes_read\",\r\n \"value\" : \"227891\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"result_size\",\r\n \"value\" : \"0\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"result_rows\",\r\n \"value\" : \"0\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }, {\r\n \"name\" : \"job\",\r\n \"value\" : \"null\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"formatType\",\r\n \"value\" : \"json\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"meta\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Array\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"name\",\r\n \"value\" : \"ip_asn\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"type\",\r\n \"value\" : \"string\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"category\",\r\n \"value\" : \"Dimension\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n } ]\r\n }, {\r\n \"name\" : \"data\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"list\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Array\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }, {\r\n \"name\" : \"originalUrl\",\r\n \"value\" : \"http://192.168.44.55:9999/?query=SELECT ip_asn as ip_asn, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_asn AS ip_asn FROM cn_entity_relation e JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) WHERE e.update_time >= 1677291537 AND e.update_time < 1692843537 AND notEmpty(ip_asn) AND dr.update_time >= 1677291537 AND dr.update_time < 1692843537 AND (e.app_category = \'param\' OR dr.port = 80 AND has(e.entity_tags, \'lll\')) ) GROUP BY ip_asn ORDER BY totalCount DESC limit 5&format=json&option=real-time\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/public/toHump\' as toHump;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/pre/entityAggHandle\' as entityAggHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\nentityAggHandle(parameter);\r\n\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT ip_asn AS ip_asn, COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_asn AS ip_asn FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0> JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE e.update_time >= $start AND e.update_time < $end AND ip_asn != \'\' <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> ) GROUP BY ip_asn ORDER BY count DESC\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggCity\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var list=new ArrayList();\r\n if(ObjectUtil.isNotEmpty(aresult)){\r\n if(aresult.length > 0){\r\n for(key,value in aresult){\r\n var obj = {};\r\n obj.value = value.ip_asn;\r\n obj.uniqueEntities = value.count;\r\n list.add(obj);\r\n }\r\n }\r\n }\r\n var data = {};\r\n data.list = list;\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT ip_asn as ip_asn, COUNTIF(DISTINCT(ip),notEmpty(ip)) as count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_asn AS ip_asn FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND notEmpty(ip_asn) <#if dr> AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} </#if><#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if> ) GROUP BY ip_asn ORDER BY count DESC limit 100\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggAsn\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar data = {};\r\nvar list = new ArrayList();\r\nif(result.success){\r\n for(key,value in result.data){\r\n var obj = {};\r\n obj.value = value.ip_asn;\r\n obj.uniqueEntities = value.count;\r\n list.add(obj);\r\n }\r\n}\r\ndata.list = list;\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); +INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/top/IP运营商-实体基数统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"41df106274164d698b55dc2a5bc53b95\",\r\n \"script\" : null,\r\n \"groupId\" : \"80392cde8e944a6e9c947b4ad8661c29\",\r\n \"name\" : \"IP运营商-实体基数统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1699501744027,\r\n \"lock\" : null,\r\n \"createBy\" : \"ljy\",\r\n \"updateBy\" : \"ljy\",\r\n \"path\" : \"/agg-ip-isp\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"domain like \'dd%\' and has(tag,\'dd\') AND ip.port in (80) and has(tag,\'ss\')\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 200,\\n \\\"data\\\": {\\n \\\"list\\\": [\\n {\\n \\\"value\\\": \\\"China Telecom\\\",\\n \\\"uniqueEntities\\\": \\\"61611\\\"\\n },\\n {\\n \\\"value\\\": \\\"AT&T\\\",\\n \\\"uniqueEntities\\\": \\\"15543\\\"\\n },\\n {\\n \\\"value\\\": \\\"Amazon.com, Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"12897\\\"\\n },\\n {\\n \\\"value\\\": \\\"China Unicom\\\",\\n \\\"uniqueEntities\\\": \\\"10541\\\"\\n },\\n {\\n \\\"value\\\": \\\"Akamai Technologies, Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"8409\\\"\\n },\\n {\\n \\\"value\\\": \\\"China Mobile\\\",\\n \\\"uniqueEntities\\\": \\\"7595\\\"\\n },\\n {\\n \\\"value\\\": \\\"Alibaba Cloud\\\",\\n \\\"uniqueEntities\\\": \\\"4867\\\"\\n },\\n {\\n \\\"value\\\": \\\"T-Mobile USA, Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"3671\\\"\\n },\\n {\\n \\\"value\\\": \\\"Cogent Communications\\\",\\n \\\"uniqueEntities\\\": \\\"3383\\\"\\n },\\n {\\n \\\"value\\\": \\\"Tencent\\\",\\n \\\"uniqueEntities\\\": \\\"3093\\\"\\n },\\n {\\n \\\"value\\\": \\\"Untangled Technology, LLC\\\",\\n \\\"uniqueEntities\\\": \\\"2922\\\"\\n },\\n {\\n \\\"value\\\": \\\"CHL\\\",\\n \\\"uniqueEntities\\\": \\\"2917\\\"\\n },\\n {\\n \\\"value\\\": \\\"for assignment to JPNIC members\\\",\\n \\\"uniqueEntities\\\": \\\"2766\\\"\\n },\\n {\\n \\\"value\\\": \\\"Google LLC\\\",\\n \\\"uniqueEntities\\\": \\\"2443\\\"\\n },\\n {\\n \\\"value\\\": \\\"Washington State K-20 Telecommunications Network\\\",\\n \\\"uniqueEntities\\\": \\\"2217\\\"\\n },\\n {\\n \\\"value\\\": \\\"Hewlett-Packard Company\\\",\\n \\\"uniqueEntities\\\": \\\"2196\\\"\\n },\\n {\\n \\\"value\\\": \\\"Microsoft Corporation\\\",\\n \\\"uniqueEntities\\\": \\\"2177\\\"\\n },\\n {\\n \\\"value\\\": \\\"Cloudflare, Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"1871\\\"\\n },\\n {\\n \\\"value\\\": \\\"NRI SecureTechnologies, Ltd.\\\",\\n \\\"uniqueEntities\\\": \\\"1654\\\"\\n },\\n {\\n \\\"value\\\": \\\"Riot Games, Inc\\\",\\n \\\"uniqueEntities\\\": \\\"1499\\\"\\n },\\n {\\n \\\"value\\\": \\\"Namecheap, Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"1471\\\"\\n },\\n {\\n \\\"value\\\": \\\"Interserver, Inc\\\",\\n \\\"uniqueEntities\\\": \\\"1435\\\"\\n },\\n {\\n \\\"value\\\": \\\"North Nova Cable Ltd.\\\",\\n \\\"uniqueEntities\\\": \\\"1415\\\"\\n },\\n {\\n \\\"value\\\": \\\"Bird Hosting Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"1380\\\"\\n },\\n {\\n \\\"value\\\": \\\"Voodoo.com, Inc\\\",\\n \\\"uniqueEntities\\\": \\\"1096\\\"\\n },\\n {\\n \\\"value\\\": \\\"Osaka University\\\",\\n \\\"uniqueEntities\\\": \\\"1063\\\"\\n },\\n {\\n \\\"value\\\": \\\"Apple Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"918\\\"\\n },\\n {\\n \\\"value\\\": \\\"The Constant Company, LLC\\\",\\n \\\"uniqueEntities\\\": \\\"761\\\"\\n },\\n {\\n \\\"value\\\": \\\"Liquid Web, L.L.C\\\",\\n \\\"uniqueEntities\\\": \\\"750\\\"\\n },\\n {\\n \\\"value\\\": \\\"Heliacal Networks\\\",\\n \\\"uniqueEntities\\\": \\\"736\\\"\\n },\\n {\\n \\\"value\\\": \\\"Cable & Wireless Dominica\\\",\\n \\\"uniqueEntities\\\": \\\"735\\\"\\n },\\n {\\n \\\"value\\\": \\\"NYI\\\",\\n \\\"uniqueEntities\\\": \\\"731\\\"\\n },\\n {\\n \\\"value\\\": \\\"Level 3 Parent, LLC\\\",\\n \\\"uniqueEntities\\\": \\\"720\\\"\\n },\\n {\\n \\\"value\\\": \\\"Rural Wave\\\",\\n \\\"uniqueEntities\\\": \\\"713\\\"\\n },\\n {\\n \\\"value\\\": \\\"TELUS Communications Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"709\\\"\\n },\\n {\\n \\\"value\\\": \\\"Entegrus Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"700\\\"\\n },\\n {\\n \\\"value\\\": \\\"HUAWEI\\\",\\n \\\"uniqueEntities\\\": \\\"697\\\"\\n },\\n {\\n \\\"value\\\": \\\"Powerhouse Management, Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"696\\\"\\n },\\n {\\n \\\"value\\\": \\\"ACENET, INC.\\\",\\n \\\"uniqueEntities\\\": \\\"684\\\"\\n },\\n {\\n \\\"value\\\": \\\"Kyoto University\\\",\\n \\\"uniqueEntities\\\": \\\"605\\\"\\n },\\n {\\n \\\"value\\\": \\\"Royal Bank of Canada\\\",\\n \\\"uniqueEntities\\\": \\\"546\\\"\\n },\\n {\\n \\\"value\\\": \\\"Alpheus Data Services, L.L.C.\\\",\\n \\\"uniqueEntities\\\": \\\"531\\\"\\n },\\n {\\n \\\"value\\\": \\\"Lightower Fiber Networks I, LLC\\\",\\n \\\"uniqueEntities\\\": \\\"509\\\"\\n },\\n {\\n \\\"value\\\": \\\"DigitalOcean, LLC\\\",\\n \\\"uniqueEntities\\\": \\\"465\\\"\\n },\\n {\\n \\\"value\\\": \\\"Verizon Business\\\",\\n \\\"uniqueEntities\\\": \\\"462\\\"\\n },\\n {\\n \\\"value\\\": \\\"China Networks Inter-Exchange\\\",\\n \\\"uniqueEntities\\\": \\\"458\\\"\\n },\\n {\\n \\\"value\\\": \\\"OVH SAS\\\",\\n \\\"uniqueEntities\\\": \\\"455\\\"\\n },\\n {\\n \\\"value\\\": \\\"Mie University\\\",\\n \\\"uniqueEntities\\\": \\\"443\\\"\\n },\\n {\\n \\\"value\\\": \\\"EntServ UK Limited\\\",\\n \\\"uniqueEntities\\\": \\\"436\\\"\\n },\\n {\\n \\\"value\\\": \\\"Hetzner Online GmbH\\\",\\n \\\"uniqueEntities\\\": \\\"388\\\"\\n },\\n {\\n \\\"value\\\": \\\"Comcast Cable Communications, LLC\\\",\\n \\\"uniqueEntities\\\": \\\"386\\\"\\n },\\n {\\n \\\"value\\\": \\\"KISS NAIL PRODUCTS, INC\\\",\\n \\\"uniqueEntities\\\": \\\"376\\\"\\n },\\n {\\n \\\"value\\\": \\\"CaptionCall\\\",\\n \\\"uniqueEntities\\\": \\\"375\\\"\\n },\\n {\\n \\\"value\\\": \\\"SWITCH, LTD\\\",\\n \\\"uniqueEntities\\\": \\\"371\\\"\\n },\\n {\\n \\\"value\\\": \\\"Beijing Guanghuan Xinwang Digital\\\",\\n \\\"uniqueEntities\\\": \\\"367\\\"\\n },\\n {\\n \\\"value\\\": \\\"NRI SecureTechnologies, Ltd\\\",\\n \\\"uniqueEntities\\\": \\\"364\\\"\\n },\\n {\\n \\\"value\\\": \\\"Carillon Information Security Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"363\\\"\\n },\\n {\\n \\\"value\\\": \\\"Intrada Technologies, Inc\\\",\\n \\\"uniqueEntities\\\": \\\"361\\\"\\n },\\n {\\n \\\"value\\\": \\\"The Producers, Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"357\\\"\\n },\\n {\\n \\\"value\\\": \\\"Greystone IT, Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"356\\\"\\n },\\n {\\n \\\"value\\\": \\\"Gazelle Communications Corp.\\\",\\n \\\"uniqueEntities\\\": \\\"355\\\"\\n },\\n {\\n \\\"value\\\": \\\"NetActuate, Inc\\\",\\n \\\"uniqueEntities\\\": \\\"354\\\"\\n },\\n {\\n \\\"value\\\": \\\"Facebook, Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"354\\\"\\n },\\n {\\n \\\"value\\\": \\\"IPXO UK LIMITED\\\",\\n \\\"uniqueEntities\\\": \\\"351\\\"\\n },\\n {\\n \\\"value\\\": \\\"Internet Initiative Japan Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"350\\\"\\n },\\n {\\n \\\"value\\\": \\\"Silver Star Communications\\\",\\n \\\"uniqueEntities\\\": \\\"349\\\"\\n },\\n {\\n \\\"value\\\": \\\"ERISCO, LLC\\\",\\n \\\"uniqueEntities\\\": \\\"349\\\"\\n },\\n {\\n \\\"value\\\": \\\"Verifi, Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"347\\\"\\n },\\n {\\n \\\"value\\\": \\\"Fastly, Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"331\\\"\\n },\\n {\\n \\\"value\\\": \\\"WIDE Project\\\",\\n \\\"uniqueEntities\\\": \\\"305\\\"\\n },\\n {\\n \\\"value\\\": \\\"ANEXIA Internetdienstleistungs GmbH\\\",\\n \\\"uniqueEntities\\\": \\\"249\\\"\\n },\\n {\\n \\\"value\\\": \\\"Bell Canada\\\",\\n \\\"uniqueEntities\\\": \\\"248\\\"\\n },\\n {\\n \\\"value\\\": \\\"NETEASE\\\",\\n \\\"uniqueEntities\\\": \\\"244\\\"\\n },\\n {\\n \\\"value\\\": \\\"Beijing Gu Xiang Information Technology Co.,Ltd.\\\",\\n \\\"uniqueEntities\\\": \\\"230\\\"\\n },\\n {\\n \\\"value\\\": \\\"PACIFIC INTERNET (S) PTE. LTD.\\\",\\n \\\"uniqueEntities\\\": \\\"230\\\"\\n },\\n {\\n \\\"value\\\": \\\"PT Aplikanusa Lintasarta\\\",\\n \\\"uniqueEntities\\\": \\\"229\\\"\\n },\\n {\\n \\\"value\\\": \\\"California Department of Technology\\\",\\n \\\"uniqueEntities\\\": \\\"229\\\"\\n },\\n {\\n \\\"value\\\": \\\"Caterpillar, Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"225\\\"\\n },\\n {\\n \\\"value\\\": \\\"MILLICOM CABLE COSTA RICA S.A.\\\",\\n \\\"uniqueEntities\\\": \\\"222\\\"\\n },\\n {\\n \\\"value\\\": \\\"British Telecommunications PLC\\\",\\n \\\"uniqueEntities\\\": \\\"222\\\"\\n },\\n {\\n \\\"value\\\": \\\"EntServ Deutschland GmbH\\\",\\n \\\"uniqueEntities\\\": \\\"222\\\"\\n },\\n {\\n \\\"value\\\": \\\"Baidu\\\",\\n \\\"uniqueEntities\\\": \\\"220\\\"\\n },\\n {\\n \\\"value\\\": \\\"A1 Hrvatska d.o.o.\\\",\\n \\\"uniqueEntities\\\": \\\"220\\\"\\n },\\n {\\n \\\"value\\\": \\\"Exatel S.A.\\\",\\n \\\"uniqueEntities\\\": \\\"219\\\"\\n },\\n {\\n \\\"value\\\": \\\"Bytedance Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"190\\\"\\n },\\n {\\n \\\"value\\\": \\\"Curry College\\\",\\n \\\"uniqueEntities\\\": \\\"189\\\"\\n },\\n {\\n \\\"value\\\": \\\"Windstream Communications LLC\\\",\\n \\\"uniqueEntities\\\": \\\"188\\\"\\n },\\n {\\n \\\"value\\\": \\\"Linode, LLC\\\",\\n \\\"uniqueEntities\\\": \\\"188\\\"\\n },\\n {\\n \\\"value\\\": \\\"Sprint\\\",\\n \\\"uniqueEntities\\\": \\\"186\\\"\\n },\\n {\\n \\\"value\\\": \\\"Estech Systems, Inc\\\",\\n \\\"uniqueEntities\\\": \\\"186\\\"\\n },\\n {\\n \\\"value\\\": \\\"Avantguard Monitoring Centers\\\",\\n \\\"uniqueEntities\\\": \\\"182\\\"\\n },\\n {\\n \\\"value\\\": \\\"Vivint, Inc\\\",\\n \\\"uniqueEntities\\\": \\\"181\\\"\\n },\\n {\\n \\\"value\\\": \\\"Affinity Credit Union 2013\\\",\\n \\\"uniqueEntities\\\": \\\"180\\\"\\n },\\n {\\n \\\"value\\\": \\\"Amount, LLC\\\",\\n \\\"uniqueEntities\\\": \\\"180\\\"\\n },\\n {\\n \\\"value\\\": \\\"FFF Enterprises, Inc\\\",\\n \\\"uniqueEntities\\\": \\\"180\\\"\\n },\\n {\\n \\\"value\\\": \\\"Commerce Technologies, Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"180\\\"\\n },\\n {\\n \\\"value\\\": \\\"Kyoto University Microcomputer Club\\\",\\n \\\"uniqueEntities\\\": \\\"176\\\"\\n },\\n {\\n \\\"value\\\": \\\"GTT Communications Inc.\\\",\\n \\\"uniqueEntities\\\": \\\"176\\\"\\n },\\n {\\n \\\"value\\\": \\\"Advanced Software Technology and Management Research Institute of KYOTO\\\",\\n \\\"uniqueEntities\\\": \\\"176\\\"\\n },\\n {\\n \\\"value\\\": \\\"Care Factor Computer Services Inc\\\",\\n \\\"uniqueEntities\\\": \\\"175\\\"\\n }\\n ]\\n },\\n \\\"time\\\": \\\"2023-11-08 06:26:40\\\",\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT ip_isp as ip_isp, COUNTIF(DISTINCT(ip),notEmpty(ip)) as count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_isp AS ip_isp FROM cn_entity_relation e WHERE e.update_time >= 1683872800 AND e.update_time < 1699424800 AND notEmpty(ip_isp) ) GROUP BY ip_isp ORDER BY count DESC limit 100&format=json&option=real-time\\\",\\n \\\"message\\\": \\\"success\\\",\\n \\\"status\\\": 200\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"999\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-08-29 07:57:57\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"404 null at Row:10~10,Col:32~36\\\\n\\\\nvar galaxyResult = httpRequest.get().getBody();\\\\r\\\\n ^^^^^\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/public/toHump\' as toHump;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/pre/entityAggHandle\' as entityAggHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\nentityAggHandle(parameter);\r\n\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT ip_isp AS ip_isp, COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_isp AS ip_isp FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0> JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND ip_isp != \'\' <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> ) GROUP BY ip_isp ORDER BY count DESC\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggTag\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var list=new ArrayList();\r\n if(ObjectUtil.isNotEmpty(aresult)){\r\n if(aresult.length > 0){\r\n for(key,value in aresult){\r\n var obj = {};\r\n obj.value = value.ip_isp;\r\n obj.uniqueEntities = value.count;\r\n list.add(obj);\r\n }\r\n }\r\n }\r\n var data = {};\r\n data.list = list;\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT ip_isp as ip_isp, COUNTIF(DISTINCT(ip),notEmpty(ip)) as count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_isp AS ip_isp FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND notEmpty(ip_isp) <#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if> ) GROUP BY ip_isp ORDER BY count DESC limit 100\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggTag\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar data = {};\r\nvar list = new ArrayList();\r\nif(result.success){\r\n for(key,value in result.data){\r\n var obj = {};\r\n obj.value = value.ip_isp;\r\n obj.uniqueEntities = value.count;\r\n list.add(obj);\r\n }\r\n}\r\ndata.list = list;\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); +INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/top/国家-实体基数统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"7c364aebd4704afdbff3f623cd0d0b4b\",\r\n \"script\" : null,\r\n \"groupId\" : \"80392cde8e944a6e9c947b4ad8661c29\",\r\n \"name\" : \"国家-实体基数统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1699501574974,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"ljy\",\r\n \"path\" : \"/aggCountry\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"domain like \'dd%\' and has(tag,\'dd\') AND ip.port in (80) and has(tag,\'ss\')\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 200,\\n \\\"data\\\": {\\n \\\"list\\\": [\\n {\\n \\\"value\\\": \\\"United States\\\",\\n \\\"uniqueEntities\\\": \\\"105526\\\"\\n },\\n {\\n \\\"value\\\": \\\"China\\\",\\n \\\"uniqueEntities\\\": \\\"71395\\\"\\n },\\n {\\n \\\"value\\\": \\\"Japan\\\",\\n \\\"uniqueEntities\\\": \\\"43432\\\"\\n },\\n {\\n \\\"value\\\": \\\"Canada\\\",\\n \\\"uniqueEntities\\\": \\\"10359\\\"\\n },\\n {\\n \\\"value\\\": \\\"Germany\\\",\\n \\\"uniqueEntities\\\": \\\"2007\\\"\\n },\\n {\\n \\\"value\\\": \\\"Singapore\\\",\\n \\\"uniqueEntities\\\": \\\"1842\\\"\\n },\\n {\\n \\\"value\\\": \\\"France\\\",\\n \\\"uniqueEntities\\\": \\\"1115\\\"\\n },\\n {\\n \\\"value\\\": \\\"Belgium\\\",\\n \\\"uniqueEntities\\\": \\\"791\\\"\\n },\\n {\\n \\\"value\\\": \\\"Antigua and Barbuda\\\",\\n \\\"uniqueEntities\\\": \\\"747\\\"\\n },\\n {\\n \\\"value\\\": \\\"United Kingdom\\\",\\n \\\"uniqueEntities\\\": \\\"559\\\"\\n },\\n {\\n \\\"value\\\": \\\"Israel\\\",\\n \\\"uniqueEntities\\\": \\\"452\\\"\\n },\\n {\\n \\\"value\\\": \\\"The Netherlands\\\",\\n \\\"uniqueEntities\\\": \\\"421\\\"\\n },\\n {\\n \\\"value\\\": \\\"Ireland\\\",\\n \\\"uniqueEntities\\\": \\\"379\\\"\\n },\\n {\\n \\\"value\\\": \\\"Russia\\\",\\n \\\"uniqueEntities\\\": \\\"349\\\"\\n },\\n {\\n \\\"value\\\": \\\"Poland\\\",\\n \\\"uniqueEntities\\\": \\\"339\\\"\\n },\\n {\\n \\\"value\\\": \\\"South Korea\\\",\\n \\\"uniqueEntities\\\": \\\"290\\\"\\n },\\n {\\n \\\"value\\\": \\\"India\\\",\\n \\\"uniqueEntities\\\": \\\"267\\\"\\n },\\n {\\n \\\"value\\\": \\\"Austria\\\",\\n \\\"uniqueEntities\\\": \\\"265\\\"\\n },\\n {\\n \\\"value\\\": \\\"Indonesia\\\",\\n \\\"uniqueEntities\\\": \\\"265\\\"\\n },\\n {\\n \\\"value\\\": \\\"Croatia\\\",\\n \\\"uniqueEntities\\\": \\\"212\\\"\\n },\\n {\\n \\\"value\\\": \\\"Brazil\\\",\\n \\\"uniqueEntities\\\": \\\"181\\\"\\n },\\n {\\n \\\"value\\\": \\\"Australia\\\",\\n \\\"uniqueEntities\\\": \\\"167\\\"\\n },\\n {\\n \\\"value\\\": \\\"Finland\\\",\\n \\\"uniqueEntities\\\": \\\"140\\\"\\n },\\n {\\n \\\"value\\\": \\\"Sweden\\\",\\n \\\"uniqueEntities\\\": \\\"139\\\"\\n },\\n {\\n \\\"value\\\": \\\"Mexico\\\",\\n \\\"uniqueEntities\\\": \\\"137\\\"\\n },\\n {\\n \\\"value\\\": \\\"Switzerland\\\",\\n \\\"uniqueEntities\\\": \\\"118\\\"\\n },\\n {\\n \\\"value\\\": \\\"Italy\\\",\\n \\\"uniqueEntities\\\": \\\"82\\\"\\n },\\n {\\n \\\"value\\\": \\\"Malaysia\\\",\\n \\\"uniqueEntities\\\": \\\"72\\\"\\n },\\n {\\n \\\"value\\\": \\\"Denmark\\\",\\n \\\"uniqueEntities\\\": \\\"70\\\"\\n },\\n {\\n \\\"value\\\": \\\"Spain\\\",\\n \\\"uniqueEntities\\\": \\\"67\\\"\\n },\\n {\\n \\\"value\\\": \\\"Romania\\\",\\n \\\"uniqueEntities\\\": \\\"48\\\"\\n },\\n {\\n \\\"value\\\": \\\"Colombia\\\",\\n \\\"uniqueEntities\\\": \\\"40\\\"\\n },\\n {\\n \\\"value\\\": \\\"Czech Republic\\\",\\n \\\"uniqueEntities\\\": \\\"39\\\"\\n },\\n {\\n \\\"value\\\": \\\"South Africa\\\",\\n \\\"uniqueEntities\\\": \\\"35\\\"\\n },\\n {\\n \\\"value\\\": \\\"Argentina\\\",\\n \\\"uniqueEntities\\\": \\\"33\\\"\\n },\\n {\\n \\\"value\\\": \\\"Thailand\\\",\\n \\\"uniqueEntities\\\": \\\"30\\\"\\n },\\n {\\n \\\"value\\\": \\\"Norway\\\",\\n \\\"uniqueEntities\\\": \\\"26\\\"\\n },\\n {\\n \\\"value\\\": \\\"United Arab Emirates\\\",\\n \\\"uniqueEntities\\\": \\\"18\\\"\\n },\\n {\\n \\\"value\\\": \\\"Bulgaria\\\",\\n \\\"uniqueEntities\\\": \\\"18\\\"\\n },\\n {\\n \\\"value\\\": \\\"Chile\\\",\\n \\\"uniqueEntities\\\": \\\"17\\\"\\n },\\n {\\n \\\"value\\\": \\\"Ukraine\\\",\\n \\\"uniqueEntities\\\": \\\"17\\\"\\n },\\n {\\n \\\"value\\\": \\\"Estonia\\\",\\n \\\"uniqueEntities\\\": \\\"16\\\"\\n },\\n {\\n \\\"value\\\": \\\"Pakistan\\\",\\n \\\"uniqueEntities\\\": \\\"14\\\"\\n },\\n {\\n \\\"value\\\": \\\"Kazakhstan\\\",\\n \\\"uniqueEntities\\\": \\\"14\\\"\\n },\\n {\\n \\\"value\\\": \\\"Viet Nam\\\",\\n \\\"uniqueEntities\\\": \\\"11\\\"\\n },\\n {\\n \\\"value\\\": \\\"Serbia\\\",\\n \\\"uniqueEntities\\\": \\\"10\\\"\\n },\\n {\\n \\\"value\\\": \\\"Lithuania\\\",\\n \\\"uniqueEntities\\\": \\\"10\\\"\\n },\\n {\\n \\\"value\\\": \\\"Luxembourg\\\",\\n \\\"uniqueEntities\\\": \\\"10\\\"\\n },\\n {\\n \\\"value\\\": \\\"Slovakia\\\",\\n \\\"uniqueEntities\\\": \\\"9\\\"\\n },\\n {\\n \\\"value\\\": \\\"Turkey\\\",\\n \\\"uniqueEntities\\\": \\\"9\\\"\\n },\\n {\\n \\\"value\\\": \\\"New Zealand\\\",\\n \\\"uniqueEntities\\\": \\\"8\\\"\\n },\\n {\\n \\\"value\\\": \\\"Hungary\\\",\\n \\\"uniqueEntities\\\": \\\"8\\\"\\n },\\n {\\n \\\"value\\\": \\\"British Virgin Islands\\\",\\n \\\"uniqueEntities\\\": \\\"7\\\"\\n },\\n {\\n \\\"value\\\": \\\"Belize\\\",\\n \\\"uniqueEntities\\\": \\\"7\\\"\\n },\\n {\\n \\\"value\\\": \\\"Philippines\\\",\\n \\\"uniqueEntities\\\": \\\"7\\\"\\n },\\n {\\n \\\"value\\\": \\\"Latvia\\\",\\n \\\"uniqueEntities\\\": \\\"5\\\"\\n },\\n {\\n \\\"value\\\": \\\"Portugal\\\",\\n \\\"uniqueEntities\\\": \\\"5\\\"\\n },\\n {\\n \\\"value\\\": \\\"Qatar\\\",\\n \\\"uniqueEntities\\\": \\\"5\\\"\\n },\\n {\\n \\\"value\\\": \\\"Slovenia\\\",\\n \\\"uniqueEntities\\\": \\\"3\\\"\\n },\\n {\\n \\\"value\\\": \\\"Moldova\\\",\\n \\\"uniqueEntities\\\": \\\"3\\\"\\n },\\n {\\n \\\"value\\\": \\\"Nigeria\\\",\\n \\\"uniqueEntities\\\": \\\"3\\\"\\n },\\n {\\n \\\"value\\\": \\\"Greece\\\",\\n \\\"uniqueEntities\\\": \\\"3\\\"\\n },\\n {\\n \\\"value\\\": \\\"Cambodia\\\",\\n \\\"uniqueEntities\\\": \\\"2\\\"\\n },\\n {\\n \\\"value\\\": \\\"Kuwait\\\",\\n \\\"uniqueEntities\\\": \\\"2\\\"\\n },\\n {\\n \\\"value\\\": \\\"Venezuela\\\",\\n \\\"uniqueEntities\\\": \\\"2\\\"\\n },\\n {\\n \\\"value\\\": \\\"Oman\\\",\\n \\\"uniqueEntities\\\": \\\"2\\\"\\n },\\n {\\n \\\"value\\\": \\\"Iceland\\\",\\n \\\"uniqueEntities\\\": \\\"2\\\"\\n },\\n {\\n \\\"value\\\": \\\"Brunei Darussalam\\\",\\n \\\"uniqueEntities\\\": \\\"2\\\"\\n },\\n {\\n \\\"value\\\": \\\"Peru\\\",\\n \\\"uniqueEntities\\\": \\\"2\\\"\\n },\\n {\\n \\\"value\\\": \\\"Cyprus\\\",\\n \\\"uniqueEntities\\\": \\\"2\\\"\\n },\\n {\\n \\\"value\\\": \\\"Costa Rica\\\",\\n \\\"uniqueEntities\\\": \\\"2\\\"\\n },\\n {\\n \\\"value\\\": \\\"Ghana\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"Kenya\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"Iraq\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"Seychelles\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"Albania\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"Guatemala\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"Uruguay\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"Ecuador\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"Bosnia and Herzegovina\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"Belarus\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"Panama\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"Jordan\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"Sri Lanka\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"The Republic of North Macedonia\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n }\\n ]\\n },\\n \\\"time\\\": \\\"2023-11-09 03:46:04\\\",\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT ip_country_region as ip_country_region, COUNTIF(DISTINCT(ip),notEmpty(ip)) as count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_country_region AS ip_country_region FROM cn_entity_relation e WHERE e.update_time >= 1683949564 AND e.update_time < 1699501564 AND notEmpty(ip_country_region)) GROUP BY ip_country_region ORDER BY count DESC limit 100&format=json&option=real-time\\\",\\n \\\"message\\\": \\\"success\\\",\\n \\\"status\\\": 200\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"999\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-08-29 07:56:57\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"404 null at Row:10~10,Col:32~36\\\\n\\\\nvar galaxyResult = httpRequest.get().getBody();\\\\r\\\\n ^^^^^\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/public/toHump\' as toHump;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/pre/entityAggHandle\' as entityAggHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\nentityAggHandle(parameter);\r\n\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT ip_country_region AS ip_country_region, COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_country_region AS ip_country_region FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0> JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND ip_country_region != \'\' <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> ) GROUP BY ip_country_region ORDER BY count DESC\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggCountry\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var list=new ArrayList();\r\n if(ObjectUtil.isNotEmpty(aresult)){\r\n if(aresult.length > 0){\r\n for(key,value in aresult){\r\n var obj = {};\r\n obj.value = value.ip_country_region;\r\n obj.uniqueEntities = value.count;\r\n list.add(obj);\r\n }\r\n }\r\n }\r\n var data = {};\r\n data.list = list;\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT ip_country_region as ip_country_region, COUNTIF(DISTINCT(ip),notEmpty(ip)) as count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_country_region AS ip_country_region FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND notEmpty(ip_country_region)<#if dr> AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} </#if><#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if>) GROUP BY ip_country_region ORDER BY count DESC limit 100\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggCountry\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar data = {};\r\nvar list = new ArrayList();\r\nif(result.success){\r\n for(key,value in result.data){\r\n var obj = {};\r\n obj.value = value.ip_country_region;\r\n obj.uniqueEntities = value.count;\r\n list.add(obj);\r\n }\r\n}\r\ndata.list = list;\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); +INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/top/城市-实体基数统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"29790a82d1b54dff811980a7167ebaca\",\r\n \"script\" : null,\r\n \"groupId\" : \"80392cde8e944a6e9c947b4ad8661c29\",\r\n \"name\" : \"城市-实体基数统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1699501234015,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"ljy\",\r\n \"path\" : \"/aggCity\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"domain like \'dd%\' and has(tag,\'dd\') AND ip.port in (80) and has(tag,\'ss\')\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : \"\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 200,\\n \\\"data\\\": {\\n \\\"list\\\": []\\n },\\n \\\"time\\\": \\\"2023-11-09 03:40:07\\\",\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT ip_admin_area as ip_admin_area, COUNTIF(DISTINCT(ip),notEmpty(ip)) as count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_admin_area AS ip_admin_area FROM cn_entity_relation e JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) WHERE e.update_time >= 1683949206 AND e.update_time < 1699501206 AND notEmpty(ip_admin_area) AND dr.update_time >= 1683949206 AND dr.update_time < 1699501206 AND (e.domain LIKE \'dd%\' AND (has(e.entity_tags, concat(\'ip.\', \'dd\')) OR has(e.entity_tags, concat(\'domain.\', \'dd\')) OR has(e.entity_tags, concat(\'app.\', \'dd\'))) AND dr.port IN (80) AND (has(e.entity_tags, concat(\'ip.\', \'ss\')) OR has(e.entity_tags, concat(\'domain.\', \'ss\')) OR has(e.entity_tags, concat(\'app.\', \'ss\')))) ) GROUP BY ip_admin_area ORDER BY count DESC limit 100&format=json&option=real-time\\\",\\n \\\"message\\\": \\\"success\\\",\\n \\\"status\\\": 200\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"data\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"list\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Array\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"value\",\r\n \"value\" : \"Shanghai City\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"uniqueEntities\",\r\n \"value\" : \"50\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n } ]\r\n } ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-08-31 02:54:15\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"originalUrl\",\r\n \"value\" : \"http://192.168.44.55:9999/?query=SELECT ip_admin_area as ip_admin_area, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_admin_area AS ip_admin_area FROM cn_entity_relation e JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) WHERE e.update_time >= 1677898455 AND e.update_time < 1693450455 AND notEmpty(ip_admin_area) AND dr.update_time >= 1677898455 AND dr.update_time < 1693450455 AND (dr.port = 80) ) GROUP BY ip_admin_area ORDER BY totalCount DESC limit 5&format=json&option=real-time\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"success\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"status\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/public/toHump\' as toHump;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/pre/entityAggHandle\' as entityAggHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\nentityAggHandle(parameter);\r\n\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT ip_admin_area AS ip_admin_area, COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_admin_area AS ip_admin_area FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0> JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND ip_admin_area != \'\' <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> ) GROUP BY ip_admin_area ORDER BY count DESC\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggCity\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var list=new ArrayList();\r\n if(ObjectUtil.isNotEmpty(aresult)){\r\n if(aresult.length > 0){\r\n for(key,value in aresult){\r\n var obj = {};\r\n obj.value = value.ip_admin_area;\r\n obj.uniqueEntities = value.count;\r\n list.add(obj);\r\n }\r\n }\r\n }\r\n var data = {};\r\n data.list = list;\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT ip_admin_area as ip_admin_area, COUNTIF(DISTINCT(ip),notEmpty(ip)) as count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_admin_area AS ip_admin_area FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND notEmpty(ip_admin_area) <#if dr> AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} </#if><#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter})</#if> ) GROUP BY ip_admin_area ORDER BY count DESC limit 100\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggCity\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar data = {};\r\nvar list = new ArrayList();\r\nif(result.success){\r\n for(key,value in result.data){\r\n var obj = {};\r\n obj.value = value.ip_admin_area;\r\n obj.uniqueEntities = value.count;\r\n list.add(obj);\r\n }\r\n}\r\ndata.list = list;\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); +INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/top/域名类别-实体基数统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"54cc297aa5274677bd874272e7843eda\",\r\n \"script\" : null,\r\n \"groupId\" : \"80392cde8e944a6e9c947b4ad8661c29\",\r\n \"name\" : \"域名类别-实体基数统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1699501618212,\r\n \"lock\" : null,\r\n \"createBy\" : \"ljy\",\r\n \"updateBy\" : \"ljy\",\r\n \"path\" : \"/aggDomainCategory\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"domain like \'dd%\' and has(tag,\'dd\') AND ip.port in (80) and has(tag,\'ss\')\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 999,\\n \\\"time\\\": \\\"2023-08-29 07:57:15\\\",\\n \\\"message\\\": \\\"404 null at Row:10~10,Col:32~36\\\\n\\\\nvar galaxyResult = httpRequest.get().getBody();\\\\r\\\\n ^^^^^ \\\"\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"999\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-08-29 07:57:15\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"404 null at Row:10~10,Col:32~36\\\\n\\\\nvar galaxyResult = httpRequest.get().getBody();\\\\r\\\\n ^^^^^\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/public/toHump\' as toHump;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/pre/entityAggHandle\' as entityAggHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\nentityAggHandle(parameter);\r\n\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT domain_category_name AS domain_category_name, COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') AS count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.domain_category_name AS domain_category_name FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0> JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND domain_category_name != \'\' <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> ) GROUP BY domain_category_name ORDER BY count DESC\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggTag\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var list=new ArrayList();\r\n if(ObjectUtil.isNotEmpty(aresult)){\r\n if(aresult.length > 0){\r\n for(key,value in aresult){\r\n var obj = {};\r\n obj.value = value.domain_category_name;\r\n obj.uniqueEntities = value.count;\r\n list.add(obj);\r\n }\r\n }\r\n }\r\n var data = {};\r\n data.list = list;\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT domain_category_name as domain_category_name, COUNTIF(DISTINCT(domain),notEmpty(domain)) as count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.domain_category_name AS domain_category_name FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND notEmpty(domain_category_name)<#if dr> AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} </#if><#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if>) GROUP BY domain_category_name ORDER BY count DESC limit 100\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggTag\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar data = {};\r\nvar list = new ArrayList();\r\nif(result.success){\r\n for(key,value in result.data){\r\n var obj = {};\r\n obj.value = value.domain_category_name;\r\n obj.uniqueEntities = value.count;\r\n list.add(obj);\r\n }\r\n}\r\ndata.list = list;\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); +INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/top/标签-实体基数统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"5a271e27d449466fa061d4b95a915b68\",\r\n \"script\" : null,\r\n \"groupId\" : \"80392cde8e944a6e9c947b4ad8661c29\",\r\n \"name\" : \"标签-实体基数统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1699501431128,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"ljy\",\r\n \"path\" : \"/aggTag\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"domain like \'dd%\' and has(tag,\'dd\') AND ip.port in (80) and has(tag,\'ss\')\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 200,\\n \\\"data\\\": {\\n \\\"list\\\": [\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"2\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"2\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"2\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"2\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"2\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"2\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"2\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"2\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"2\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"2\\\"\\n },\\n {\\n \\\"value\\\": \\\"FWDNS\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"FWDNS\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"tor\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"OPRDNS\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"tor\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"OPRDNS\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"tor\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"tor\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"tor\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"i2p\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"i2p\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"OPRDNS\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"tor\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"i2p\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"FWDNS\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"FWDNS\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"OPRDNS\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"4G\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"tor\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"OPRDNS\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"FWDNS\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n },\\n {\\n \\\"value\\\": \\\"mtproxy\\\",\\n \\\"uniqueEntities\\\": \\\"1\\\"\\n }\\n ]\\n },\\n \\\"time\\\": \\\"2023-11-09 03:43:46\\\",\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT SUBSTRING(arrayJoin(entity_tags), position(arrayJoin(entity_tags), \'.\') + 1) AS entity_tag, length(arrayDistinct(IF(has(entity_tags,concat(\'ip.\', entity_tag)) and notEmpty(ip),groupArray(ip),array()))) AS ip_count, length(arrayDistinct(IF(has(entity_tags,concat(\'app.\', entity_tag)) and notEmpty(app_name),groupArray(app_name),array()))) AS app_count, length(arrayDistinct(IF(has(entity_tags,concat(\'domain.\', entity_tag)) and notEmpty(domain),groupArray(domain),array()))) AS domain_count, plus(app_count,plus(ip_count,domain_count)) AS total_count FROM( SELECT e.update_time AS update_time, e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.entity_tags AS entity_tags FROM cn_entity_relation e WHERE e.update_time >= 1683949395 AND e.update_time < 1699501395 AND notEmpty(entity_tags) ) GROUP BY entity_tags,ip,domain,app_name HAVING total_count > 0 ORDER BY total_count DESC limit 100&format=json&option=real-time\\\",\\n \\\"message\\\": \\\"success\\\",\\n \\\"status\\\": 200\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"data\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"list\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Array\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-08-31 02:53:50\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"originalUrl\",\r\n \"value\" : \"http://192.168.44.55:9999/?query=SELECT entity_tag as entity_tag, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, arrayJoin(e.entity_tags) AS entity_tag FROM cn_entity_relation e JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) WHERE e.update_time >= 1677898430 AND e.update_time < 1693450430 AND notEmpty(e.entity_tags) AND dr.update_time >= 1677898430 AND dr.update_time < 1693450430 AND (dr.port = 80) ) GROUP BY entity_tag ORDER BY totalCount DESC limit 5&format=json&option=real-time\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"success\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"status\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/public/toHump\' as toHump;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/pre/entityAggHandle\' as entityAggHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\nentityAggHandle(parameter);\r\n\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT entity_tags AS entity_tags, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') AS appCount, COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') AS domainCount, COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS ipCount, COUNT(DISTINCT(app_name)) FILTER (WHERE app_name != \'\') + COUNT(DISTINCT(domain)) FILTER (WHERE domain != \'\') + COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.entity_tags AS entity_tags FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois>JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory>JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> <#if dr\\.port?default(\'\')?trim? length gt 0>JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND ${dr\\.port}) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND entity_tags != \'\' <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> ) GROUP BY entity_tags ORDER BY totalCount DESC\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggTag\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var list=new ArrayList();\r\n if(ObjectUtil.isNotEmpty(aresult)){\r\n if(aresult.length > 0){\r\n for(key,value in aresult){\r\n var obj = {};\r\n obj.value = value.entity_tags;\r\n obj.uniqueEntities = value.totalCount;\r\n list.add(obj);\r\n }\r\n }\r\n }\r\n var data = {};\r\n data.list = list;\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT SUBSTRING(arrayJoin(entity_tags), position(arrayJoin(entity_tags), \'.\') + 1) AS entity_tag, length(arrayDistinct(IF(has(entity_tags,concat(\'ip.\', entity_tag)) and notEmpty(ip),groupArray(ip),array()))) AS ip_count, length(arrayDistinct(IF(has(entity_tags,concat(\'app.\', entity_tag)) and notEmpty(app_name),groupArray(app_name),array()))) AS app_count, length(arrayDistinct(IF(has(entity_tags,concat(\'domain.\', entity_tag)) and notEmpty(domain),groupArray(domain),array()))) AS domain_count, plus(app_count,plus(ip_count,domain_count)) AS total_count FROM( SELECT e.update_time AS update_time, e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.entity_tags AS entity_tags FROM cn_entity_relation e <#if dr> JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} <#if dr> AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} </#if> AND notEmpty(entity_tags) <#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if> ) GROUP BY entity_tags,ip,domain,app_name HAVING total_count > 0 ORDER BY total_count DESC limit 100\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggTag\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar data = {};\r\nvar list = new ArrayList();\r\nif(result.success){\r\n for(key,value in result.data){\r\n var obj = {};\r\n obj.value = value.entity_tag;\r\n obj.uniqueEntities = value.total_count;\r\n list.add(obj);\r\n }\r\n}\r\ndata.list = list;\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); +INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/explorer/top/端口-实体基数统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"2c0346e6e37f45b6bcb1f0fb0841a1c7\",\r\n \"script\" : null,\r\n \"groupId\" : \"80392cde8e944a6e9c947b4ad8661c29\",\r\n \"name\" : \"端口-实体基数统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1699501510091,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"ljy\",\r\n \"path\" : \"/aggPort\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"resource\",\r\n \"value\" : \"domain like \'dd%\' and has(tag,\'dd\') AND ip.port in (80) and has(tag,\'ss\')\",\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 200,\\n \\\"data\\\": {\\n \\\"list\\\": [\\n {\\n \\\"port\\\": \\\"80\\\",\\n \\\"l7Protocol\\\": \\\"HTTP\\\",\\n \\\"uniqueEntities\\\": \\\"61248\\\"\\n },\\n {\\n \\\"port\\\": \\\"21\\\",\\n \\\"l7Protocol\\\": \\\"FTP\\\",\\n \\\"uniqueEntities\\\": \\\"45255\\\"\\n },\\n {\\n \\\"port\\\": \\\"179\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"32755\\\"\\n },\\n {\\n \\\"port\\\": \\\"443\\\",\\n \\\"l7Protocol\\\": \\\"HTTPS\\\",\\n \\\"uniqueEntities\\\": \\\"19968\\\"\\n },\\n {\\n \\\"port\\\": \\\"443\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"16095\\\"\\n },\\n {\\n \\\"port\\\": \\\"22\\\",\\n \\\"l7Protocol\\\": \\\"SSH\\\",\\n \\\"uniqueEntities\\\": \\\"14375\\\"\\n },\\n {\\n \\\"port\\\": \\\"3389\\\",\\n \\\"l7Protocol\\\": \\\"SSL\\\",\\n \\\"uniqueEntities\\\": \\\"14063\\\"\\n },\\n {\\n \\\"port\\\": \\\"80\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"6660\\\"\\n },\\n {\\n \\\"port\\\": \\\"443\\\",\\n \\\"l7Protocol\\\": \\\"QUIC\\\",\\n \\\"uniqueEntities\\\": \\\"4441\\\"\\n },\\n {\\n \\\"port\\\": \\\"8000\\\",\\n \\\"l7Protocol\\\": \\\"HTTP\\\",\\n \\\"uniqueEntities\\\": \\\"704\\\"\\n },\\n {\\n \\\"port\\\": \\\"8000\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"632\\\"\\n },\\n {\\n \\\"port\\\": \\\"5003\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"575\\\"\\n },\\n {\\n \\\"port\\\": \\\"25\\\",\\n \\\"l7Protocol\\\": \\\"SMTP\\\",\\n \\\"uniqueEntities\\\": \\\"552\\\"\\n },\\n {\\n \\\"port\\\": \\\"1521\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"538\\\"\\n },\\n {\\n \\\"port\\\": \\\"1494\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"526\\\"\\n },\\n {\\n \\\"port\\\": \\\"110\\\",\\n \\\"l7Protocol\\\": \\\"POP3\\\",\\n \\\"uniqueEntities\\\": \\\"492\\\"\\n },\\n {\\n \\\"port\\\": \\\"4001\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"442\\\"\\n },\\n {\\n \\\"port\\\": \\\"443\\\",\\n \\\"l7Protocol\\\": \\\"\\\",\\n \\\"uniqueEntities\\\": \\\"440\\\"\\n },\\n {\\n \\\"port\\\": \\\"8889\\\",\\n \\\"l7Protocol\\\": \\\"SSL\\\",\\n \\\"uniqueEntities\\\": \\\"422\\\"\\n },\\n {\\n \\\"port\\\": \\\"8080\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"347\\\"\\n },\\n {\\n \\\"port\\\": \\\"25\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"344\\\"\\n },\\n {\\n \\\"port\\\": \\\"8889\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"254\\\"\\n },\\n {\\n \\\"port\\\": \\\"53\\\",\\n \\\"l7Protocol\\\": \\\"DNS\\\",\\n \\\"uniqueEntities\\\": \\\"208\\\"\\n },\\n {\\n \\\"port\\\": \\\"49155\\\",\\n \\\"l7Protocol\\\": \\\"HTTP\\\",\\n \\\"uniqueEntities\\\": \\\"177\\\"\\n },\\n {\\n \\\"port\\\": \\\"49155\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"166\\\"\\n },\\n {\\n \\\"port\\\": \\\"110\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"152\\\"\\n },\\n {\\n \\\"port\\\": \\\"443\\\",\\n \\\"l7Protocol\\\": \\\"HTTP\\\",\\n \\\"uniqueEntities\\\": \\\"148\\\"\\n },\\n {\\n \\\"port\\\": \\\"80\\\",\\n \\\"l7Protocol\\\": \\\"\\\",\\n \\\"uniqueEntities\\\": \\\"145\\\"\\n },\\n {\\n \\\"port\\\": \\\"8080\\\",\\n \\\"l7Protocol\\\": \\\"HTTP\\\",\\n \\\"uniqueEntities\\\": \\\"90\\\"\\n },\\n {\\n \\\"port\\\": \\\"49156\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"84\\\"\\n },\\n {\\n \\\"port\\\": \\\"49156\\\",\\n \\\"l7Protocol\\\": \\\"SSL\\\",\\n \\\"uniqueEntities\\\": \\\"70\\\"\\n },\\n {\\n \\\"port\\\": \\\"53\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"68\\\"\\n },\\n {\\n \\\"port\\\": \\\"143\\\",\\n \\\"l7Protocol\\\": \\\"IMAP\\\",\\n \\\"uniqueEntities\\\": \\\"68\\\"\\n },\\n {\\n \\\"port\\\": \\\"22\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"68\\\"\\n },\\n {\\n \\\"port\\\": \\\"14000\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"66\\\"\\n },\\n {\\n \\\"port\\\": \\\"9082\\\",\\n \\\"l7Protocol\\\": \\\"SSL\\\",\\n \\\"uniqueEntities\\\": \\\"65\\\"\\n },\\n {\\n \\\"port\\\": \\\"7680\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"63\\\"\\n },\\n {\\n \\\"port\\\": \\\"8082\\\",\\n \\\"l7Protocol\\\": \\\"SSL\\\",\\n \\\"uniqueEntities\\\": \\\"55\\\"\\n },\\n {\\n \\\"port\\\": \\\"9082\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"53\\\"\\n },\\n {\\n \\\"port\\\": \\\"6363\\\",\\n \\\"l7Protocol\\\": \\\"SSL\\\",\\n \\\"uniqueEntities\\\": \\\"52\\\"\\n },\\n {\\n \\\"port\\\": \\\"1521\\\",\\n \\\"l7Protocol\\\": \\\"RTMP\\\",\\n \\\"uniqueEntities\\\": \\\"52\\\"\\n },\\n {\\n \\\"port\\\": \\\"35672\\\",\\n \\\"l7Protocol\\\": \\\"SSL\\\",\\n \\\"uniqueEntities\\\": \\\"51\\\"\\n },\\n {\\n \\\"port\\\": \\\"4480\\\",\\n \\\"l7Protocol\\\": \\\"HTTP\\\",\\n \\\"uniqueEntities\\\": \\\"51\\\"\\n },\\n {\\n \\\"port\\\": \\\"8082\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"49\\\"\\n },\\n {\\n \\\"port\\\": \\\"8081\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"48\\\"\\n },\\n {\\n \\\"port\\\": \\\"5938\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"46\\\"\\n },\\n {\\n \\\"port\\\": \\\"7826\\\",\\n \\\"l7Protocol\\\": \\\"SSL with ECH\\\",\\n \\\"uniqueEntities\\\": \\\"46\\\"\\n },\\n {\\n \\\"port\\\": \\\"993\\\",\\n \\\"l7Protocol\\\": \\\"IMAPS\\\",\\n \\\"uniqueEntities\\\": \\\"45\\\"\\n },\\n {\\n \\\"port\\\": \\\"21045\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"43\\\"\\n },\\n {\\n \\\"port\\\": \\\"4483\\\",\\n \\\"l7Protocol\\\": \\\"SSL\\\",\\n \\\"uniqueEntities\\\": \\\"41\\\"\\n },\\n {\\n \\\"port\\\": \\\"9083\\\",\\n \\\"l7Protocol\\\": \\\"HTTP\\\",\\n \\\"uniqueEntities\\\": \\\"41\\\"\\n },\\n {\\n \\\"port\\\": \\\"25\\\",\\n \\\"l7Protocol\\\": \\\"POP3\\\",\\n \\\"uniqueEntities\\\": \\\"40\\\"\\n },\\n {\\n \\\"port\\\": \\\"9083\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"38\\\"\\n },\\n {\\n \\\"port\\\": \\\"10443\\\",\\n \\\"l7Protocol\\\": \\\"SSL\\\",\\n \\\"uniqueEntities\\\": \\\"38\\\"\\n },\\n {\\n \\\"port\\\": \\\"33520\\\",\\n \\\"l7Protocol\\\": \\\"HTTP\\\",\\n \\\"uniqueEntities\\\": \\\"37\\\"\\n },\\n {\\n \\\"port\\\": \\\"2377\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"36\\\"\\n },\\n {\\n \\\"port\\\": \\\"993\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"36\\\"\\n },\\n {\\n \\\"port\\\": \\\"1494\\\",\\n \\\"l7Protocol\\\": \\\"RTMP\\\",\\n \\\"uniqueEntities\\\": \\\"36\\\"\\n },\\n {\\n \\\"port\\\": \\\"2377\\\",\\n \\\"l7Protocol\\\": \\\"SSL\\\",\\n \\\"uniqueEntities\\\": \\\"35\\\"\\n },\\n {\\n \\\"port\\\": \\\"4480\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"34\\\"\\n },\\n {\\n \\\"port\\\": \\\"59606\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"33\\\"\\n },\\n {\\n \\\"port\\\": \\\"19636\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"31\\\"\\n },\\n {\\n \\\"port\\\": \\\"21004\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"30\\\"\\n },\\n {\\n \\\"port\\\": \\\"19635\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"30\\\"\\n },\\n {\\n \\\"port\\\": \\\"4006\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"29\\\"\\n },\\n {\\n \\\"port\\\": \\\"21001\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"29\\\"\\n },\\n {\\n \\\"port\\\": \\\"21007\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"29\\\"\\n },\\n {\\n \\\"port\\\": \\\"9183\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"28\\\"\\n },\\n {\\n \\\"port\\\": \\\"9102\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"28\\\"\\n },\\n {\\n \\\"port\\\": \\\"9102\\\",\\n \\\"l7Protocol\\\": \\\"HTTP\\\",\\n \\\"uniqueEntities\\\": \\\"28\\\"\\n },\\n {\\n \\\"port\\\": \\\"21000\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"27\\\"\\n },\\n {\\n \\\"port\\\": \\\"5225\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"27\\\"\\n },\\n {\\n \\\"port\\\": \\\"7826\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"27\\\"\\n },\\n {\\n \\\"port\\\": \\\"21005\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"26\\\"\\n },\\n {\\n \\\"port\\\": \\\"7824\\\",\\n \\\"l7Protocol\\\": \\\"SSL\\\",\\n \\\"uniqueEntities\\\": \\\"25\\\"\\n },\\n {\\n \\\"port\\\": \\\"21002\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"25\\\"\\n },\\n {\\n \\\"port\\\": \\\"443\\\",\\n \\\"l7Protocol\\\": \\\"OPENVPN\\\",\\n \\\"uniqueEntities\\\": \\\"25\\\"\\n },\\n {\\n \\\"port\\\": \\\"9282\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"25\\\"\\n },\\n {\\n \\\"port\\\": \\\"5226\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"24\\\"\\n },\\n {\\n \\\"port\\\": \\\"4483\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"23\\\"\\n },\\n {\\n \\\"port\\\": \\\"80\\\",\\n \\\"l7Protocol\\\": \\\"HTTPS\\\",\\n \\\"uniqueEntities\\\": \\\"23\\\"\\n },\\n {\\n \\\"port\\\": \\\"7002\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"23\\\"\\n },\\n {\\n \\\"port\\\": \\\"35671\\\",\\n \\\"l7Protocol\\\": \\\"HTTP\\\",\\n \\\"uniqueEntities\\\": \\\"23\\\"\\n },\\n {\\n \\\"port\\\": \\\"21006\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"23\\\"\\n },\\n {\\n \\\"port\\\": \\\"21003\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"23\\\"\\n },\\n {\\n \\\"port\\\": \\\"19637\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"23\\\"\\n },\\n {\\n \\\"port\\\": \\\"23082\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"22\\\"\\n },\\n {\\n \\\"port\\\": \\\"8082\\\",\\n \\\"l7Protocol\\\": \\\"SSL with ECH\\\",\\n \\\"uniqueEntities\\\": \\\"22\\\"\\n },\\n {\\n \\\"port\\\": \\\"9182\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"22\\\"\\n },\\n {\\n \\\"port\\\": \\\"10443\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"22\\\"\\n },\\n {\\n \\\"port\\\": \\\"22016\\\",\\n \\\"l7Protocol\\\": \\\"HTTP\\\",\\n \\\"uniqueEntities\\\": \\\"21\\\"\\n },\\n {\\n \\\"port\\\": \\\"20913\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"21\\\"\\n },\\n {\\n \\\"port\\\": \\\"9095\\\",\\n \\\"l7Protocol\\\": \\\"HTTP\\\",\\n \\\"uniqueEntities\\\": \\\"21\\\"\\n },\\n {\\n \\\"port\\\": \\\"7003\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"21\\\"\\n },\\n {\\n \\\"port\\\": \\\"53861\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"20\\\"\\n },\\n {\\n \\\"port\\\": \\\"9095\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"19\\\"\\n },\\n {\\n \\\"port\\\": \\\"23057\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"19\\\"\\n },\\n {\\n \\\"port\\\": \\\"20919\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"19\\\"\\n },\\n {\\n \\\"port\\\": \\\"80\\\",\\n \\\"l7Protocol\\\": \\\"OPENVPN\\\",\\n \\\"uniqueEntities\\\": \\\"19\\\"\\n },\\n {\\n \\\"port\\\": \\\"23007\\\",\\n \\\"l7Protocol\\\": \\\"UNCATEGORIZED\\\",\\n \\\"uniqueEntities\\\": \\\"19\\\"\\n }\\n ]\\n },\\n \\\"time\\\": \\\"2023-11-09 03:45:01\\\",\\n \\\"originalUrl\\\": \\\"http://192.168.44.55:9999/?query=SELECT port AS port, l7_protocol AS l7_protocol, COUNTIF(DISTINCT(ip),notEmpty(ip)) as count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_admin_area AS ip_admin_area, dr.port AS port, dr.l7_protocol AS l7_protocol FROM cn_entity_relation e JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) WHERE e.update_time >= 1683949500 AND e.update_time < 1699501500 AND dr.update_time >= 1683949500 AND dr.update_time < 1699501500 ) GROUP BY port,l7_protocol ORDER BY count DESC limit 100&format=json&option=real-time\\\",\\n \\\"message\\\": \\\"success\\\",\\n \\\"status\\\": 200\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"code\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"data\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"list\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Array\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Object\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ {\r\n \"name\" : \"port\",\r\n \"value\" : \"443\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"l7Protocol\",\r\n \"value\" : \"\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"uniqueEntities\",\r\n \"value\" : \"998\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n } ]\r\n } ]\r\n }, {\r\n \"name\" : \"time\",\r\n \"value\" : \"2023-08-31 02:54:46\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"originalUrl\",\r\n \"value\" : \"http://192.168.44.55:9999/?query=SELECT port AS port, l7_protocol AS l7_protocol, COUNTIF(DISTINCT(app_name),notEmpty(app_name)) as appCount, COUNTIF(DISTINCT(domain),notEmpty(domain)) as domainCount, COUNTIF(DISTINCT(ip),notEmpty(ip)) as ipCount, plus(ipCount,plus(appCount,domainCount)) AS totalCount FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_admin_area AS ip_admin_area, dr.port AS port, dr.l7_protocol AS l7_protocol FROM cn_entity_relation e JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) WHERE e.update_time >= 1677898486 AND e.update_time < 1693450486) GROUP BY port,l7_protocol ORDER BY totalCount DESC limit 5&format=json&option=real-time\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"message\",\r\n \"value\" : \"success\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n }, {\r\n \"name\" : \"status\",\r\n \"value\" : \"200\",\r\n \"description\" : \"\",\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : \"\",\r\n \"error\" : \"\",\r\n \"expression\" : \"\",\r\n \"children\" : [ ]\r\n } ]\r\n }\r\n}\r\n================================\r\nimport cn.hutool.log.Log;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport \'@/public/toHump\' as toHump;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\nimport \'@/pre/timeHandleHalf\' as timeHandle;\r\nimport \'@/pre/entityAggHandle\' as entityAggHandle;\r\nimport \'@/public/getGalaxyResult\' as getGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"resource\":resource,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"dr\":false,\r\n \"fqdnCategory\":false,\r\n \"whois\":false,\r\n \"appCategory\":false\r\n}\r\ntimeHandle(parameter);\r\nentityAggHandle(parameter);\r\n\r\nvar isAssociationQuery = EntityExplorerService.isAssociationQuery(parameter.resource,\"entityMetadata\");\r\nif(isAssociationQuery){\r\n var sql = \"{\\\"sql\\\":\\\"SELECT port AS port, l7_protocol AS l7_protocol, COUNT(DISTINCT(ip)) FILTER (WHERE ip != \'\') AS count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, dr.port AS port, dr.l7_protocol AS l7_protocol FROM clickhouse.cyber_narrator_galaxy.cn_entity_relation e JOIN clickhouse.cyber_narrator_galaxy.cn_ip_dynamic_attribute dr ON (e.ip = dr.ip AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} <#if dr\\.port?default(\'\')?trim? length gt 0> AND ${dr\\.port}</#if>) <#if fqdnCategory> JOIN mysql.cn_api.cn_fqdn_category_built_in fqdnCategory ON (e.domain = fqdnCategory.fqdn <#if fqdnCategory\\.category_name?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_name} </#if> <#if fqdnCategory\\.category_group?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.category_group} </#if> <#if fqdnCategory\\.reputation_level?default(\'\')?trim? length gt 0> AND ${fqdnCategory\\.reputation_level}</#if>) </#if> <#if whois> JOIN mysql.cn_api.cn_fqdn_who_is_built_in whois ON (e.domain = whois.fqdn <#if whois\\.whois_domain?default(\'\')?trim? length gt 0> AND ${whois\\.whois_domain} </#if> <#if whois\\.whois_registrant_name?default(\'\')?trim? length gt 0> AND ${whois\\.whois_registrant_name}</#if>) </#if> <#if appCategory> JOIN mysql.cn_api.cn_app_category_built_in appCategory ON (e.app_name = appCategory.app_name <#if appCategory\\.app_category?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_category} </#if> <#if appCategory\\.app_subcategory?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_subcategory} </#if> <#if appCategory\\.app_risk?default(\'\')?trim? length gt 0> AND ${appCategory\\.app_risk}</#if>) </#if> WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} <#if filter?default(\'\')?trim? length gt 0> ${filter} </#if> ) GROUP BY port,l7_protocol ORDER BY count DESC\\\"}\"\r\n var aTemplate = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggPort\",sql,parameter);\r\n var ares = jsonUtil.toBean(aTemplate,HashMap.class);\r\n var log = Log.get();\r\n log.info(ares.sql);\r\n var aresult = db[\'trino\'].select(ares.sql);\r\n var list=new ArrayList();\r\n if(ObjectUtil.isNotEmpty(aresult)){\r\n if(aresult.length > 0){\r\n for(key,value in aresult){\r\n var obj = {};\r\n obj.port = value.port;\r\n obj.l7Protocol = value.l7_protocol;\r\n obj.uniqueEntities = value.count;\r\n list.add(obj);\r\n }\r\n }\r\n }\r\n var data = {};\r\n data.list = list;\r\n var url = db.select(\"select cvalue from sys_config where ckey = \'galaxy_url\'\");\r\n return R.ok(data).put(\"originalUrl\",url.cvalue+ares.sql).put(\"status\",200);\r\n}\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT port AS port, l7_protocol AS l7_protocol, COUNTIF(DISTINCT(ip),notEmpty(ip)) as count FROM( SELECT e.app_name AS app_name, e.domain AS domain, e.ip AS ip, e.update_time AS update_time, e.ip_admin_area AS ip_admin_area, dr.port AS port, dr.l7_protocol AS l7_protocol FROM cn_entity_relation e JOIN cn_ip_dynamic_attribute dr ON (e.ip = dr.ip) WHERE e.update_time >= ${startTime} AND e.update_time < ${endTime} AND dr.update_time >= ${startTime} AND dr.update_time < ${endTime} <#if filter?default(\\\'\\\')?trim? length gt 0> AND (${filter}) </#if>) GROUP BY port,l7_protocol ORDER BY count DESC limit 100\\\",\\r\\n \\\"option\\\": \\\"real-time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1EntityExplorerTopAggTag\",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 * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nvar data = {};\r\nvar list = new ArrayList();\r\nif(result.success){\r\n for(key,value in result.data){\r\n var obj = {};\r\n obj.port = value.port;\r\n obj.l7Protocol = value.l7_protocol;\r\n obj.uniqueEntities = value.count;\r\n list.add(obj);\r\n }\r\n}\r\ndata.list = list;\r\nreturn R.ok(data).put(\"originalUrl\",result.originalUrl).put(\"status\",200);'); INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/graph/', 'this is directory'); INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/graph/group.json', '{\n \"properties\" : { },\n \"id\" : \"1fc43fa8284b4b83b4db6869949ba6fc\",\n \"name\" : \"graph\",\n \"type\" : \"api\",\n \"parentId\" : \"d12747533faa48698e64aec0aae936bd\",\n \"path\" : \"/graph\",\n \"createTime\" : 1687943421947,\n \"updateTime\" : null,\n \"createBy\" : \"ljy\",\n \"updateBy\" : null,\n \"paths\" : [ ],\n \"options\" : [ ]\n}'); INSERT INTO `magic_api_file` VALUES ('/api/v1/entity/graph/relation/', 'this is directory'); @@ -713,6 +713,7 @@ INSERT INTO `magic_api_file` VALUES ('/function/preHandle/各维度类型参数� INSERT INTO `magic_api_file` VALUES ('/function/preHandle/各维度类型参数处理7.ms', '{\n \"properties\" : { },\n \"id\" : \"copy1673513927423d46862\",\n \"script\" : null,\n \"groupId\" : \"c054c13da78d46bdb768eaa42d23694b\",\n \"name\" : \"各维度类型参数处理7\",\n \"createTime\" : 1673513939666,\n \"updateTime\" : 1692861019567,\n \"lock\" : null,\n \"createBy\" : \"ljy\",\n \"updateBy\" : \"ljy\",\n \"path\" : \"/typeHandle7th\",\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.fieldName = \"arrayJoin(splitByChar(\'_\',concat(common_client_ip,\'_\',common_server_ip)))\";\r\n parameter.lad = \'ip\';\r\n}else if(parameter.type==\'countryRegion\'){\r\n parameter.fieldName = \"arrayJoin(splitByChar(\'_\',concat(client_country_region,\'_\',server_country_region)))\";\r\n parameter.lad = \'country_region\';\r\n}else if(parameter.type==\'asn\'){\r\n parameter.fieldName = \"arrayJoin(splitByChar(\'_\',concat(client_asn,\'_\',server_asn)))\";\r\n parameter.lad = \'asn\';\r\n}else if(parameter.type==\'appLabel\'){\r\n parameter.fieldName = \'common_app_label\';\r\n parameter.lad = \'app_label\';\r\n}else if(parameter.type==\'appCompany\'){\r\n parameter.fieldName = \'app_company\';\r\n parameter.lad = \'app_company\';\r\n}else if(parameter.type==\'domain\'){\r\n parameter.fieldName = \'domain\';\r\n parameter.lad = \'domain\';\r\n}else if(parameter.type==\'domainSld\'){\r\n parameter.fieldName = \'domain_sld\';\r\n parameter.lad = \'domain_sld\';\r\n}else if(parameter.type==\'l7Protocol\'){\r\n parameter.fieldName = \'common_l7_protocol\';\r\n parameter.lad = \'l7_protocol\';\r\n}else if(parameter.type==\'idcRenter\'){\r\n parameter.fieldName = \"arrayJoin(splitByChar(\'_\',concat(client_idc_renter,\'_\',server_idc_renter)))\";\r\n parameter.lad = \'idc_renter\';\r\n}else if(parameter.type==\'superAdminArea\'){\r\n parameter.fieldName = \"arrayJoin(splitByChar(\'_\',concat(client_super_admin_area,\'_\',server_super_admin_area)))\";\r\n parameter.lad = \'super_admin_area\';\r\n}else if(parameter.type==\'adminArea\'){\r\n parameter.fieldName = \"arrayJoin(splitByChar(\'_\',concat(client_admin_area,\'_\',server_admin_area)))\";\r\n parameter.lad = \'admin_area\';\r\n}else if(parameter.type==\'isp\'){\r\n parameter.fieldName = \"arrayJoin(splitByChar(\'_\',concat(client_isp,\'_\',server_isp)))\";\r\n parameter.lad = \'isp\';\r\n}else if(parameter.type==\'appSubcategory\'){\r\n parameter.fieldName = \'app_subcategory\';\r\n parameter.lad = \'app_subcategory\';\r\n}else if(parameter.type==\'domainCategoryName\'){\r\n parameter.fieldName = \'domain_category_name\';\r\n parameter.lad = \'domain_category_name\';\r\n}else if(parameter.type==\'httpHost\'){\r\n parameter.fieldName = \'http_host\';\r\n parameter.lad = \'http_host\';\r\n}else if(parameter.type==\'sslSni\'){\r\n parameter.fieldName = \'ssl_sni\';\r\n parameter.lad = \'ssl_sni\';\r\n}else if(parameter.type==\'protocolPort\'){\r\n parameter.fieldName = \"concat(common_l7_protocol,\':\',toString(common_server_port))\";\r\n parameter.lad = \'protocol_port\';\r\n}else if(parameter.type==\'clientIp\'){\r\n parameter.fieldName = \'common_client_ip\';\r\n parameter.lad = \'client_ip\';\r\n}else if(parameter.type==\'serverIp\'){\r\n parameter.fieldName = \'common_server_ip\';\r\n parameter.lad = \'server_ip\';\r\n}else if(parameter.type==\'clientCountryRegion\'){\r\n parameter.fieldName = \'client_country_region\';\r\n parameter.lad = \'client_country_region\';\r\n}else if(parameter.type==\'serverCountryRegion\'){\r\n parameter.fieldName = \'server_country_region\';\r\n parameter.lad = \'server_country_region\';\r\n}else if(parameter.type==\'clientSuperAdminArea\'){\r\n parameter.fieldName = \'client_super_admin_area\';\r\n parameter.lad = \'client_super_admin_area\';\r\n}else if(parameter.type==\'serverSuperAdminArea\'){\r\n parameter.fieldName = \'server_super_admin_area\';\r\n parameter.lad = \'server_super_admin_area\';\r\n}else if(parameter.type==\'clientAdminArea\'){\r\n parameter.fieldName = \'client_admin_area\';\r\n parameter.lad = \'client_admin_area\';\r\n}else if(parameter.type==\'serverAdminArea\'){\r\n parameter.fieldName = \'server_admin_area\';\r\n parameter.lad = \'server_admin_area\';\r\n}else if(parameter.type==\'clientIsp\'){\r\n parameter.fieldName = \'client_isp\';\r\n parameter.lad = \'client_isp\';\r\n}else if(parameter.type==\'serverIsp\'){\r\n parameter.fieldName = \'server_isp\';\r\n parameter.lad = \'server_isp\';\r\n}else if(parameter.type==\'clientIdcRenter\'){\r\n parameter.fieldName = \'client_idc_renter\';\r\n parameter.lad = \'client_idc_renter\';\r\n}else if(parameter.type==\'serverIdcRenter\'){\r\n parameter.fieldName = \'server_idc_renter\';\r\n parameter.lad = \'server_idc_renter\';\r\n}else if(parameter.type==\'clientAsn\'){\r\n parameter.fieldName = \'client_asn\';\r\n parameter.lad = \'client_asn\';\r\n}else if(parameter.type==\'serverAsn\'){\r\n parameter.fieldName = \'server_asn\';\r\n parameter.lad = \'server_asn\';\r\n}\r\n\r\nif(parameter.orderBy==\'totalBytes\'){\r\n parameter.orderBy=\'total_bytes\';\r\n}else if(parameter.orderBy==\'totalPackets\'){\r\n parameter.orderBy=\'total_packets\';\r\n}else if(parameter.orderBy==\'sessions\'){\r\n parameter.orderBy=\'sessions\';\r\n}'); 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', '{\r\n \"properties\" : { },\r\n \"id\" : \"a7f94d4fb5a7436586fc755a20c76aff\",\r\n \"script\" : null,\r\n \"groupId\" : \"c054c13da78d46bdb768eaa42d23694b\",\r\n \"name\" : \"实体基数统计处理\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1699501204941,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"ljy\",\r\n \"path\" : \"/entityAggHandle\",\r\n \"description\" : null,\r\n \"returnType\" : null,\r\n \"mappingPath\" : null,\r\n \"parameters\" : [ {\r\n \"name\" : \"parameter\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : \"java.lang.Object\",\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ]\r\n}\r\n================================\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.modules.entity.service.EntityExplorerService as EntityExplorerService;\r\n\r\nif(resource.contains(\"has(\")) {\r\n parameter.resource = EntityExplorerService.formatHasFilter(parameter.resource);\r\n}\r\nparameter.resource = EntityExplorerService.parseExpression(parameter.resource,\"entityMetadata\");\r\n/**\r\n * 如果resource表达式中涉及联表字段,将进行联表查询。例:Whois.Domain\r\n */\r\nparameter.filter = parameter.resource;\r\nvar param = EntityExplorerService.getAssociationQueryParam(parameter.resource);\r\nvar columns = [\"dr\",\"fqdnCategory\",\"whois\",\"appCategory\"];\r\nif(ObjectUtil.isNotEmpty(param)){\r\n for (item in columns) {\r\n for (k,v in param) {\r\n parameter[k] = v;\r\n if (v.asString().contains(item)){\r\n parameter[item] = true;\r\n break;\r\n }\r\n }\r\n }\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', '{\r\n \"properties\" : { },\r\n \"id\" : \"9c995d697d8048f8958eaf11d71e0748\",\r\n \"script\" : null,\r\n \"groupId\" : \"c054c13da78d46bdb768eaa42d23694b\",\r\n \"name\" : \"时间处理无转换\",\r\n \"createTime\" : 1672897818972,\r\n \"updateTime\" : 1698285405820,\r\n \"lock\" : null,\r\n \"createBy\" : \"admin\",\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/timeHandleNone\",\r\n \"description\" : null,\r\n \"returnType\" : null,\r\n \"mappingPath\" : null,\r\n \"parameters\" : [ {\r\n \"name\" : \"parameter\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : \"java.lang.Object\",\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ]\r\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\nif((parameter.endTime.asLong() - parameter.startTime.asLong())<=3600){\r\n parameter.step = 60;\r\n}else if((parameter.endTime.asLong() - parameter.startTime.asLong())<=3*3600){\r\n parameter.step = 120;\r\n}else if((parameter.endTime.asLong() - parameter.startTime.asLong())<=6*3600){\r\n parameter.step = 300;\r\n}else if((parameter.endTime.asLong() - parameter.startTime.asLong())<=24*3600){\r\n parameter.step = 600;\r\n}else if((parameter.endTime.asLong() - parameter.startTime.asLong())<=48*3600){\r\n parameter.step = 1200;\r\n}else if((parameter.endTime.asLong() - parameter.startTime.asLong())<=168*3600){\r\n parameter.step = 3600;\r\n}else if((parameter.endTime.asLong() - parameter.startTime.asLong())<=720*3600){\r\n parameter.step = 3600*6;\r\n}else if((parameter.endTime.asLong() - parameter.startTime.asLong())<=2160*3600){\r\n parameter.step = 3600*12;\r\n}else if((parameter.endTime.asLong() - parameter.startTime.asLong())<=12*30*24*3600){\r\n parameter.step = 3600*24;\r\n}\r\nparameter.timeDiff = parameter.endTime.asLong() - parameter.startTime.asLong()\r\nreturn parameter'); INSERT INTO `magic_api_file` VALUES ('/function/preHandle/时间处理有转换.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"copy1671778479626d96635\",\r\n \"script\" : null,\r\n \"groupId\" : \"c054c13da78d46bdb768eaa42d23694b\",\r\n \"name\" : \"时间处理有转换\",\r\n \"createTime\" : 1672897818975,\r\n \"updateTime\" : 1698285388501,\r\n \"lock\" : null,\r\n \"createBy\" : \"admin\",\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/timeHandle\",\r\n \"description\" : null,\r\n \"returnType\" : null,\r\n \"mappingPath\" : null,\r\n \"parameters\" : [ {\r\n \"name\" : \"parameter\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ]\r\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\nif((parameter.endTime.asLong() - parameter.startTime.asLong())<=3600){\r\n parameter.step = 60;\r\n}else if((parameter.endTime.asLong() - parameter.startTime.asLong())<=3*3600){\r\n parameter.step = 120;\r\n}else if((parameter.endTime.asLong() - parameter.startTime.asLong())<=6*3600){\r\n parameter.step = 300;\r\n}else if((parameter.endTime.asLong() - parameter.startTime.asLong())<=24*3600){\r\n parameter.step = 600;\r\n}else if((parameter.endTime.asLong() - parameter.startTime.asLong())<=48*3600){\r\n parameter.step = 1200;\r\n}else if((parameter.endTime.asLong() - parameter.startTime.asLong())<=168*3600){\r\n parameter.step = 3600;\r\n}else if((parameter.endTime.asLong() - parameter.startTime.asLong())<=720*3600){\r\n parameter.step = 3600*6;\r\n}else if((parameter.endTime.asLong() - parameter.startTime.asLong())<=2160*3600){\r\n parameter.step = 3600*12;\r\n}else if((parameter.endTime.asLong() - parameter.startTime.asLong())<=12*30*24*3600){\r\n parameter.step = 3600*24;\r\n}\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'); diff --git a/cn-admin/src/main/resources/db/R__AZ_sys_config.sql b/cn-admin/src/main/resources/db/R__AZ_sys_config.sql index 498144f..f3a4d4e 100644 --- a/cn-admin/src/main/resources/db/R__AZ_sys_config.sql +++ b/cn-admin/src/main/resources/db/R__AZ_sys_config.sql @@ -19,4 +19,4 @@ REPLACE INTO `sys_config` VALUES (null, 'delay_time', '0', 1, NULL); REPLACE INTO `sys_config` VALUES (null, 'link_info', '[{\"originalLinkId\":\"256\",\"linkId\":\"Hundredgige1\",\"direction\":\"out\",\"nextHop\":\"西安\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"257\",\"linkId\":\"Hundredgige1\",\"direction\":\"in\",\"nextHop\":\"西安\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"512\",\"linkId\":\"Hundredgige2\",\"direction\":\"out\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"513\",\"linkId\":\"Hundredgige2\",\"direction\":\"in\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"768\",\"linkId\":\"Hundredgige3\",\"direction\":\"out\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"769\",\"linkId\":\"Hundredgige3\",\"direction\":\"in\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"1024\",\"linkId\":\"Hundredgige4\",\"direction\":\"out\",\"nextHop\":\"西宁\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"1025\",\"linkId\":\"Hundredgige4\",\"direction\":\"in\",\"nextHop\":\"西宁\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"1280\",\"linkId\":\"Hundredgige5\",\"direction\":\"out\",\"nextHop\":\"西安\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"1281\",\"linkId\":\"Hundredgige5\",\"direction\":\"in\",\"nextHop\":\"西安\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"1536\",\"linkId\":\"Hundredgige6\",\"direction\":\"out\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"1537\",\"linkId\":\"Hundredgige6\",\"direction\":\"in\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"1792\",\"linkId\":\"Hundredgige7\",\"direction\":\"out\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"1793\",\"linkId\":\"Hundredgige7\",\"direction\":\"in\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"2048\",\"linkId\":\"Hundredgige8\",\"direction\":\"out\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"2049\",\"linkId\":\"Hundredgige8\",\"direction\":\"in\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"2304\",\"linkId\":\"Hundredgige9\",\"direction\":\"out\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"2305\",\"linkId\":\"Hundredgige9\",\"direction\":\"in\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"2816\",\"linkId\":\"Hundredgige10\",\"direction\":\"out\",\"nextHop\":\"西安\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"2817\",\"linkId\":\"Hundredgige10\",\"direction\":\"in\",\"nextHop\":\"西安\",\"bandwidth\":100000000000}]', 1, '链路信息'); REPLACE INTO `sys_config` VALUES (null, 'drill_down_table_config', '{\"version\":\"23.16\",\"config\":[{\"route\":\"networkOverview\",\"tables\":[{\"id\":\"networkOverview\",\"hiddenColumns\":[],\"disabledColumns\":[],\"url\":{\"curUrl\":\"/interface/overview/dimensionTrafficAnalysis\",\"cycleUrl\":\"/interface/overview/dimensionCycleTrafficAnalysis\",\"drilldownCurUrl\":\"/interface/overview/drilldown/dimensionTrafficAnalysis\",\"drilldownCycleUrl\":\"/interface/overview/drilldown/dimensionCycleTrafficAnalysis\",\"drilldownList\":\"/interface/overview/drilldown/list\"},\"isOnlyRead\":false,\"panelId\":1,\"panelIdOfThirdMenu\":13,\"tabs\":[{\"name\":\"ips\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"ips\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"ips\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"ips\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"ips\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"countries\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"countries\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"countries\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"countries\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"countries\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"asns\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"asns\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"asns\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"asns\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"asns\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"apps\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"apps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"apps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"apps\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"apps\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"providers\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"providers\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"providers\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"providers\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"providers\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"domains\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"domains\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"domains\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"domains\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"domains\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"secondLevelDomains\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"secondLevelDomains\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"secondLevelDomains\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"secondLevelDomains\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"secondLevelDomains\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"protocols\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"protocols\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"protocols\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"protocols\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"regions\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"regions\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"regions\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"regions\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"cities\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"cities\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"cities\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"cities\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"isps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"isps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"isps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"isps\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"applicationCategories\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"applicationCategories\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"applicationCategories\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"applicationCategories\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"domainCategories\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"domainCategories\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"domainCategories\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"domainCategories\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"protocolPorts\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"protocolPorts\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"protocolPorts\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"protocolPorts\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientIps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"clientIps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"clientIps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"clientIps\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverIps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"serverIps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"serverIps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"serverIps\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientCountries\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"clientCountries\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"clientCountries\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"clientCountries\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverCountries\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"serverCountries\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"serverCountries\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"serverCountries\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientRegions\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"clientRegions\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"clientRegions\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"clientRegions\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverRegions\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"serverRegions\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"serverRegions\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"serverRegions\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientCities\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"clientCities\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"clientCities\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"clientCities\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverCities\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"serverCities\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"serverCities\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"serverCities\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientIsps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"clientIsps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"clientIsps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"clientIsps\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverIsps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"serverIsps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"serverIsps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"serverIsps\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientAsns\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"clientAsns\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"clientAsns\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"clientAsns\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverAsns\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"serverAsns\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"serverAsns\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"serverAsns\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]}]}],\"tabs\":[{\"name\":\"ips\",\"i18n\":\"network.ips\",\"prop\":\"ip\"},{\"name\":\"countries\",\"i18n\":\"network.countries\",\"prop\":\"countryRegion\"},{\"name\":\"asns\",\"i18n\":\"network.asns\",\"prop\":\"asn\"},{\"name\":\"apps\",\"i18n\":\"network.applications\",\"prop\":\"appLabel\"},{\"name\":\"providers\",\"i18n\":\"network.providers\",\"prop\":\"appCompany\"},{\"name\":\"domains\",\"i18n\":\"network.domains\",\"prop\":\"domain\"},{\"name\":\"secondLevelDomains\",\"i18n\":\"network.secondLevelDomains\",\"prop\":\"domainSld\"},{\"name\":\"protocols\",\"i18n\":\"network.protocols\",\"prop\":\"l7Protocol\"},{\"name\":\"regions\",\"i18n\":\"network.regions\",\"prop\":\"superAdminArea\"},{\"name\":\"cities\",\"i18n\":\"network.cities\",\"prop\":\"adminArea\"},{\"name\":\"isps\",\"i18n\":\"network.isps\",\"prop\":\"isp\"},{\"name\":\"applicationCategories\",\"i18n\":\"network.applicationCategories\",\"prop\":\"appSubcategory\"},{\"name\":\"domainCategories\",\"i18n\":\"network.domainCategories\",\"prop\":\"domainCategoryName\"},{\"name\":\"hosts\",\"i18n\":\"network.hosts\",\"prop\":\"httpHost\"},{\"name\":\"protocolPorts\",\"i18n\":\"network.protocolPorts\",\"prop\":\"protocolPort\"},{\"name\":\"clientIps\",\"i18n\":\"network.clientIps\",\"prop\":\"clientIp\"},{\"name\":\"serverIps\",\"i18n\":\"network.serverIps\",\"prop\":\"serverIp\"},{\"name\":\"clientCountries\",\"i18n\":\"network.clientCountries\",\"prop\":\"clientCountryRegion\"},{\"name\":\"serverCountries\",\"i18n\":\"network.serverCountries\",\"prop\":\"serverCountryRegion\"},{\"name\":\"clientRegions\",\"i18n\":\"network.clientRegions\",\"prop\":\"clientSuperAdminArea\"},{\"name\":\"serverRegions\",\"i18n\":\"network.serverRegions\",\"prop\":\"serverSuperAdminArea\"},{\"name\":\"clientCities\",\"i18n\":\"network.clientCities\",\"prop\":\"clientAdminArea\"},{\"name\":\"serverCities\",\"i18n\":\"network.serverCities\",\"prop\":\"serverAdminArea\"},{\"name\":\"clientIsps\",\"i18n\":\"network.clientIsps\",\"prop\":\"clientIsp\"},{\"name\":\"serverIsps\",\"i18n\":\"network.serverIsps\",\"prop\":\"serverIsp\"},{\"name\":\"clientAsns\",\"i18n\":\"network.clientAsns\",\"prop\":\"clientAsn\"},{\"name\":\"serverAsns\",\"i18n\":\"network.serverAsns\",\"prop\":\"serverAsn\"}],\"columns\":[{\"name\":\"total\",\"i18n\":\"network.total\",\"prop\":\"total\",\"columnType\":\"chainRatio\"},{\"name\":\"inbound\",\"i18n\":\"network.inbound\",\"prop\":\"inbound\",\"columnType\":\"normal\"},{\"name\":\"outbound\",\"i18n\":\"network.outbound\",\"prop\":\"outbound\",\"columnType\":\"normal\"},{\"name\":\"internal\",\"i18n\":\"network.internal\",\"prop\":\"internal\",\"columnType\":\"normal\"},{\"name\":\"through\",\"i18n\":\"network.through\",\"prop\":\"through\",\"columnType\":\"normal\"},{\"name\":\"ips\",\"i18n\":\"network.ip\",\"prop\":\"ip\",\"columnType\":\"dillDown\"},{\"name\":\"countries\",\"i18n\":\"network.country\",\"prop\":\"countryRegion\",\"columnType\":\"dillDown\"},{\"name\":\"asns\",\"i18n\":\"network.asn\",\"prop\":\"asn\",\"columnType\":\"dillDown\"},{\"name\":\"apps\",\"i18n\":\"network.application\",\"prop\":\"appLabel\",\"columnType\":\"dillDown\"},{\"name\":\"providers\",\"i18n\":\"network.provider\",\"prop\":\"appCompany\",\"columnType\":\"dillDown\"},{\"name\":\"domains\",\"i18n\":\"network.domain\",\"prop\":\"domain\",\"columnType\":\"dillDown\"},{\"name\":\"secondLevelDomains\",\"i18n\":\"network.secondLevelDomain\",\"prop\":\"domainSld\",\"columnType\":\"dillDown\"},{\"name\":\"protocols\",\"i18n\":\"network.protocol\",\"prop\":\"l7Protocol\",\"columnType\":\"dillDown\"},{\"name\":\"regions\",\"i18n\":\"network.region\",\"prop\":\"superAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"cities\",\"i18n\":\"network.city\",\"prop\":\"adminArea\",\"columnType\":\"dillDown\"},{\"name\":\"isps\",\"i18n\":\"network.isp\",\"prop\":\"isp\",\"columnType\":\"dillDown\"},{\"name\":\"applicationCategories\",\"i18n\":\"network.applicationCategory\",\"prop\":\"appSubcategory\",\"columnType\":\"dillDown\"},{\"name\":\"domainCategories\",\"i18n\":\"network.domainCategory\",\"prop\":\"domainCategoryName\",\"columnType\":\"dillDown\"},{\"name\":\"hosts\",\"i18n\":\"network.host\",\"prop\":\"httpHost\",\"columnType\":\"dillDown\"},{\"name\":\"protocolPorts\",\"i18n\":\"network.protocolPort\",\"prop\":\"protocolPort\",\"columnType\":\"dillDown\"},{\"name\":\"clientIps\",\"i18n\":\"network.clientIp\",\"prop\":\"clientIp\",\"columnType\":\"dillDown\"},{\"name\":\"serverIps\",\"i18n\":\"network.serverIp\",\"prop\":\"serverIp\",\"columnType\":\"dillDown\"},{\"name\":\"clientCountries\",\"i18n\":\"network.clientCountry\",\"prop\":\"clientCountryRegion\",\"columnType\":\"dillDown\"},{\"name\":\"serverCountries\",\"i18n\":\"network.serverCountry\",\"prop\":\"serverCountryRegion\",\"columnType\":\"dillDown\"},{\"name\":\"clientRegions\",\"i18n\":\"network.clientRegion\",\"prop\":\"clientSuperAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"serverRegions\",\"i18n\":\"network.serverRegion\",\"prop\":\"serverSuperAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"clientCities\",\"i18n\":\"network.clientCity\",\"prop\":\"clientAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"serverCities\",\"i18n\":\"network.serverCity\",\"prop\":\"serverAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"clientIsps\",\"i18n\":\"network.clientIsp\",\"prop\":\"clientIsp\",\"columnType\":\"dillDown\"},{\"name\":\"serverIsps\",\"i18n\":\"network.serverIsp\",\"prop\":\"serverIsp\",\"columnType\":\"dillDown\"},{\"name\":\"clientAsns\",\"i18n\":\"network.clientAsn\",\"prop\":\"clientAsn\",\"columnType\":\"dillDown\"},{\"name\":\"serverAsns\",\"i18n\":\"network.serverAsn\",\"prop\":\"serverAsn\",\"columnType\":\"dillDown\"}]},{\"route\":\"networkAppPerformance\",\"tables\":[{\"id\":\"networkAppPerformance\",\"hiddenColumns\":[\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"disabledColumns\":[],\"url\":{\"curUrl\":\"/interface/application/performance/overview/dimensionTrafficAnalysis\",\"cycleUrl\":\"/interface/application/performance/overview/dimensionCycleTrafficAnalysis\",\"drilldownCurUrl\":\"/interface/application/performance/overview/drilldown/dimensionTrafficAnalysis\",\"drilldownCycleUrl\":\"/interface/application/performance/overview/drilldown/dimensionCycleTrafficAnalysis\",\"drilldownList\":\"/interface/overview/drilldown/list\"},\"hasMetricSearch\":false,\"isOnlyRead\":false,\"panelId\":2,\"panelIdOfThirdMenu\":12,\"showUnit\":true,\"tabs\":[{\"name\":\"ips\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":8,\"columns\":[\"ips\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"ips\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"countries\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"countries\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"countries\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"asns\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"asns\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"asns\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"apps\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":10,\"columns\":[\"apps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"apps\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"providers\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"providers\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"providers\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"domains\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":9,\"columns\":[\"domains\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"domains\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"secondLevelDomains\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":9,\"columns\":[\"secondLevelDomains\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"secondLevelDomains\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"protocols\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"protocols\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"regions\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"regions\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"cities\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"cities\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"isps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"isps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"applicationCategories\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"applicationCategories\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"domainCategories\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"domainCategories\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"protocolPorts\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"protocolPorts\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientIps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":8,\"columns\":[\"clientIps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverIps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":8,\"columns\":[\"serverIps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientCountries\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"clientCountries\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverCountries\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"serverCountries\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientRegions\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"clientRegions\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverRegions\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"serverRegions\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientCities\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"clientCities\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverCities\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"serverCities\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientIsps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"clientIsps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverIsps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"serverIsps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientAsns\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"clientAsns\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverAsns\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"serverAsns\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]}]}],\"tabs\":[{\"name\":\"ips\",\"i18n\":\"network.ips\",\"prop\":\"ip\"},{\"name\":\"countries\",\"i18n\":\"network.countries\",\"prop\":\"countryRegion\"},{\"name\":\"asns\",\"i18n\":\"network.asns\",\"prop\":\"asn\"},{\"name\":\"apps\",\"i18n\":\"network.applications\",\"prop\":\"appLabel\"},{\"name\":\"providers\",\"i18n\":\"network.providers\",\"prop\":\"appCompany\"},{\"name\":\"domains\",\"i18n\":\"network.domains\",\"prop\":\"domain\"},{\"name\":\"secondLevelDomains\",\"i18n\":\"network.secondLevelDomains\",\"prop\":\"domainSld\"},{\"name\":\"protocols\",\"i18n\":\"network.protocols\",\"prop\":\"l7Protocol\"},{\"name\":\"regions\",\"i18n\":\"network.regions\",\"prop\":\"superAdminArea\"},{\"name\":\"cities\",\"i18n\":\"network.cities\",\"prop\":\"adminArea\"},{\"name\":\"isps\",\"i18n\":\"network.isps\",\"prop\":\"isp\"},{\"name\":\"applicationCategories\",\"i18n\":\"network.applicationCategories\",\"prop\":\"appSubcategory\"},{\"name\":\"domainCategories\",\"i18n\":\"network.domainCategories\",\"prop\":\"domainCategoryName\"},{\"name\":\"hosts\",\"i18n\":\"network.hosts\",\"prop\":\"httpHost\"},{\"name\":\"protocolPorts\",\"i18n\":\"network.protocolPorts\",\"prop\":\"protocolPort\"},{\"name\":\"clientIps\",\"i18n\":\"network.clientIps\",\"prop\":\"clientIp\"},{\"name\":\"serverIps\",\"i18n\":\"network.serverIps\",\"prop\":\"serverIp\"},{\"name\":\"clientCountries\",\"i18n\":\"network.clientCountries\",\"prop\":\"clientCountryRegion\"},{\"name\":\"serverCountries\",\"i18n\":\"network.serverCountries\",\"prop\":\"serverCountryRegion\"},{\"name\":\"clientRegions\",\"i18n\":\"network.clientRegions\",\"prop\":\"clientSuperAdminArea\"},{\"name\":\"serverRegions\",\"i18n\":\"network.serverRegions\",\"prop\":\"serverSuperAdminArea\"},{\"name\":\"clientCities\",\"i18n\":\"network.clientCities\",\"prop\":\"clientAdminArea\"},{\"name\":\"serverCities\",\"i18n\":\"network.serverCities\",\"prop\":\"serverAdminArea\"},{\"name\":\"clientIsps\",\"i18n\":\"network.clientIsps\",\"prop\":\"clientIsp\"},{\"name\":\"serverIsps\",\"i18n\":\"network.serverIsps\",\"prop\":\"serverIsp\"},{\"name\":\"clientAsns\",\"i18n\":\"network.clientAsns\",\"prop\":\"clientAsn\"},{\"name\":\"serverAsns\",\"i18n\":\"network.serverAsns\",\"prop\":\"serverAsn\"}],\"columns\":[{\"name\":\"score\",\"i18n\":\"network.score\",\"prop\":\"score\",\"columnType\":\"normal\"},{\"name\":\"through\",\"i18n\":\"networkAppPerformance.throughput\",\"prop\":\"totalBytes\",\"columnType\":\"chainRatio\",\"unit\":\"byte\"},{\"name\":\"tcpConEstLatency\",\"i18n\":\"networkAppPerformance.tcpConnectionEstablishLatency\",\"prop\":\"tcpConEstLatency\",\"columnType\":\"chainRatio\",\"unit\":\"time\"},{\"name\":\"packetLoss\",\"i18n\":\"networkAppPerformance.packetLoss\",\"prop\":\"packetLoss\",\"columnType\":\"chainRatio\",\"unit\":\"percent\"},{\"name\":\"packetRetrans\",\"i18n\":\"networkAppPerformance.packetRetrans\",\"prop\":\"packetRetrans\",\"columnType\":\"chainRatio\",\"unit\":\"percent\"},{\"name\":\"sslResponseLatency\",\"i18n\":\"networkAppPerformance.sslResponseLatency\",\"prop\":\"sslResponseLatency\",\"columnType\":\"chainRatio\",\"unit\":\"time\"},{\"name\":\"httpResponseLatency\",\"i18n\":\"networkAppPerformance.httpResponseLatency\",\"prop\":\"httpResponseLatency\",\"columnType\":\"chainRatio\",\"unit\":\"time\"},{\"name\":\"ips\",\"i18n\":\"network.ip\",\"prop\":\"ip\",\"columnType\":\"dillDown\"},{\"name\":\"countries\",\"i18n\":\"network.country\",\"prop\":\"countryRegion\",\"columnType\":\"dillDown\"},{\"name\":\"asns\",\"i18n\":\"network.asn\",\"prop\":\"asn\",\"columnType\":\"dillDown\"},{\"name\":\"apps\",\"i18n\":\"network.application\",\"prop\":\"appLabel\",\"columnType\":\"dillDown\"},{\"name\":\"providers\",\"i18n\":\"network.provider\",\"prop\":\"appCompany\",\"columnType\":\"dillDown\"},{\"name\":\"domains\",\"i18n\":\"network.domain\",\"prop\":\"domain\",\"columnType\":\"dillDown\"},{\"name\":\"secondLevelDomains\",\"i18n\":\"network.secondLevelDomain\",\"prop\":\"domainSld\",\"columnType\":\"dillDown\"},{\"name\":\"protocols\",\"i18n\":\"network.protocol\",\"prop\":\"l7Protocol\",\"columnType\":\"dillDown\"},{\"name\":\"regions\",\"i18n\":\"network.region\",\"prop\":\"superAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"cities\",\"i18n\":\"network.city\",\"prop\":\"adminArea\",\"columnType\":\"dillDown\"},{\"name\":\"isps\",\"i18n\":\"network.isp\",\"prop\":\"isp\",\"columnType\":\"dillDown\"},{\"name\":\"applicationCategories\",\"i18n\":\"network.applicationCategory\",\"prop\":\"appSubcategory\",\"columnType\":\"dillDown\"},{\"name\":\"domainCategories\",\"i18n\":\"network.domainCategory\",\"prop\":\"domainCategoryName\",\"columnType\":\"dillDown\"},{\"name\":\"hosts\",\"i18n\":\"network.host\",\"prop\":\"httpHost\",\"columnType\":\"dillDown\"},{\"name\":\"protocolPorts\",\"i18n\":\"network.protocolPort\",\"prop\":\"protocolPort\",\"columnType\":\"dillDown\"},{\"name\":\"clientIps\",\"i18n\":\"network.clientIp\",\"prop\":\"clientIp\",\"columnType\":\"dillDown\"},{\"name\":\"serverIps\",\"i18n\":\"network.serverIp\",\"prop\":\"serverIp\",\"columnType\":\"dillDown\"},{\"name\":\"clientCountries\",\"i18n\":\"network.clientCountry\",\"prop\":\"clientCountryRegion\",\"columnType\":\"dillDown\"},{\"name\":\"serverCountries\",\"i18n\":\"network.serverCountry\",\"prop\":\"serverCountryRegion\",\"columnType\":\"dillDown\"},{\"name\":\"clientRegions\",\"i18n\":\"network.clientRegion\",\"prop\":\"clientSuperAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"serverRegions\",\"i18n\":\"network.serverRegion\",\"prop\":\"serverSuperAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"clientCities\",\"i18n\":\"network.clientCity\",\"prop\":\"clientAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"serverCities\",\"i18n\":\"network.serverCity\",\"prop\":\"serverAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"clientIsps\",\"i18n\":\"network.clientIsp\",\"prop\":\"clientIsp\",\"columnType\":\"dillDown\"},{\"name\":\"serverIsps\",\"i18n\":\"network.serverIsp\",\"prop\":\"serverIsp\",\"columnType\":\"dillDown\"},{\"name\":\"clientAsns\",\"i18n\":\"network.clientAsn\",\"prop\":\"clientAsn\",\"columnType\":\"dillDown\"},{\"name\":\"serverAsns\",\"i18n\":\"network.serverAsn\",\"prop\":\"serverAsn\",\"columnType\":\"dillDown\"}]},{\"route\":\"dnsServiceInsights\",\"tables\":[{\"id\":\"dnsServiceInsights\",\"hiddenColumns\":[],\"disabledColumns\":[],\"url\":{\"curUrl\":\"/interface/dns/overview/dimensionAnalysis\",\"cycleUrl\":\"/interface/dns/overview/dimensionCycleAnalysis\",\"drilldownCurUrl\":\"/interface/dns/overview/drilldown/dimensionAnalysis\",\"drilldownCycleUrl\":\"/interface/dns/overview/drilldown/dimensionCycleAnalysis\",\"drilldownList\":\"/interface/dns/overview/drilldown/list\"},\"hasMetricSearch\":false,\"isOnlyRead\":false,\"panelId\":3,\"panelIdOfThirdMenu\":17,\"showUnit\":true,\"tabs\":[{\"name\":\"dnsServer\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"dnsServer\",\"queries\",\"queriesFromIE\",\"responseTime\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[],\"disabledDrilldownTabs\":[]},{\"name\":\"countries\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"countries\",\"queries\",\"queriesFromIE\",\"responseTime\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"countries\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"disabledDrilldownTabs\":[\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"]},{\"name\":\"cities\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"cities\",\"queries\",\"queriesFromIE\",\"responseTime\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"cities\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"disabledDrilldownTabs\":[\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"]},{\"name\":\"isps\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"isps\",\"queries\",\"queriesFromIE\",\"responseTime\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"isps\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"disabledDrilldownTabs\":[\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"]},{\"name\":\"roles\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"roles\",\"queries\",\"queriesFromIE\",\"responseTime\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"disabledDrilldownTabs\":[\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"]},{\"name\":\"qnames\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"qnames\",\"queries\",\"queriesFromIE\",\"responseTime\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"qnames\"],\"disabledDrilldownTabs\":[]},{\"name\":\"slds\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"slds\",\"queries\",\"queriesFromIE\",\"responseTime\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"slds\"],\"disabledDrilldownTabs\":[]},{\"name\":\"tlds\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"tlds\",\"queries\",\"queriesFromIE\",\"responseTime\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"tlds\"],\"disabledDrilldownTabs\":[]},{\"name\":\"qtypes\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"qtypes\",\"queries\",\"queriesFromIE\",\"responseTime\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"qtypes\",\"a\",\"aaaa\",\"cnames\"],\"disabledDrilldownTabs\":[\"a\",\"aaaa\",\"cnames\"]},{\"name\":\"rcodes\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"rcodes\",\"queries\",\"queriesFromIE\",\"responseTime\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"disabledDrilldownTabs\":[\"a\",\"aaaa\",\"cnames\"]},{\"name\":\"a\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"a\",\"queries\",\"queriesFromIE\",\"responseTime\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"disabledDrilldownTabs\":[\"qtypes\",\"rcodes\",\"aaaa\",\"cnames\"]},{\"name\":\"aaaa\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"aaaa\",\"queries\",\"queriesFromIE\",\"responseTime\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"disabledDrilldownTabs\":[\"qtypes\",\"rcodes\",\"a\",\"cnames\"]},{\"name\":\"cnames\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"cnames\",\"queries\",\"queriesFromIE\",\"responseTime\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"disabledDrilldownTabs\":[\"qtypes\",\"rcodes\",\"a\",\"aaaa\"]}]}],\"tabs\":[{\"name\":\"dnsServer\",\"i18n\":\"dns.dnsServer\",\"prop\":\"dnsServer\"},{\"name\":\"countries\",\"i18n\":\"network.countries\",\"prop\":\"countryRegion\"},{\"name\":\"cities\",\"i18n\":\"network.cities\",\"prop\":\"adminArea\"},{\"name\":\"isps\",\"i18n\":\"dns.dnsServerIsps\",\"prop\":\"dnsServerIsp\"},{\"name\":\"roles\",\"i18n\":\"dns.dnsServerRoles\",\"prop\":\"dnsServerRole\"},{\"name\":\"qnames\",\"i18n\":\"QNames\",\"prop\":\"qname\"},{\"name\":\"slds\",\"i18n\":\"SLDs\",\"prop\":\"sld\"},{\"name\":\"tlds\",\"i18n\":\"TLDs\",\"prop\":\"tld\"},{\"name\":\"qtypes\",\"i18n\":\"QTypes\",\"prop\":\"qtype\"},{\"name\":\"rcodes\",\"i18n\":\"RCodes\",\"prop\":\"rcode\"},{\"name\":\"a\",\"i18n\":\"A\",\"prop\":\"a\"},{\"name\":\"aaaa\",\"i18n\":\"AAAA\",\"prop\":\"aaaa\"},{\"name\":\"cnames\",\"i18n\":\"CNames\",\"prop\":\"cname\"}],\"columns\":[{\"name\":\"queries\",\"i18n\":\"dns.queries\",\"prop\":\"queryRate\",\"columnType\":\"chainRatio\",\"unit\":\"qps\"},{\"name\":\"queriesFromIE\",\"i18n\":\"dns.queriesFromIE\",\"prop\":\"totalInExNum\",\"columnType\":\"percent\"},{\"name\":\"responseTime\",\"i18n\":\"dns.dnsResponseTime\",\"prop\":\"dnsResponseLatencyAvg\",\"columnType\":\"normal\",\"unit\":\"time\"},{\"name\":\"throughput\",\"i18n\":\"overall.throughput\",\"prop\":\"totalBytes\",\"columnType\":\"normal\",\"unit\":\"byte\"},{\"name\":\"dnsServer\",\"i18n\":\"dns.dnsServer\",\"prop\":\"dnsServer\",\"columnType\":\"dillDown\"},{\"name\":\"countries\",\"i18n\":\"network.country\",\"prop\":\"countryRegion\",\"columnType\":\"dillDown\"},{\"name\":\"cities\",\"i18n\":\"network.city\",\"prop\":\"adminArea\",\"columnType\":\"dillDown\"},{\"name\":\"isps\",\"i18n\":\"dns.dnsServerIsp\",\"prop\":\"dnsServerIsp\",\"columnType\":\"dillDown\"},{\"name\":\"roles\",\"i18n\":\"dns.dnsServerRole\",\"prop\":\"dnsServerRole\",\"columnType\":\"dillDown\"},{\"name\":\"qnames\",\"i18n\":\"QName\",\"prop\":\"qname\",\"columnType\":\"dillDown\"},{\"name\":\"slds\",\"i18n\":\"SLD\",\"prop\":\"sld\",\"columnType\":\"dillDown\"},{\"name\":\"tlds\",\"i18n\":\"TLD\",\"prop\":\"tld\",\"columnType\":\"dillDown\"},{\"name\":\"qtypes\",\"i18n\":\"QType\",\"prop\":\"qtype\",\"columnType\":\"dillDown\"},{\"name\":\"rcodes\",\"i18n\":\"RCode\",\"prop\":\"rcode\",\"columnType\":\"dillDown\"},{\"name\":\"a\",\"i18n\":\"A\",\"prop\":\"a\",\"columnType\":\"dillDown\"},{\"name\":\"aaaa\",\"i18n\":\"AAAA\",\"prop\":\"aaaa\",\"columnType\":\"dillDown\"},{\"name\":\"cnames\",\"i18n\":\"CName\",\"prop\":\"cname\",\"columnType\":\"dillDown\"}]},{\"route\":\"linkMonitor\",\"tables\":[{\"id\":\"linkMonitor\",\"hiddenColumns\":[\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"disabledColumns\":[],\"url\":{\"curUrl\":\"/interface/link/overview/drilldown/dimension/analysis\",\"cycleUrl\":\"/interface/link/overview/drilldown/dimension/cycleAnalysis\",\"drilldownCurUrl\":\"/interface/link/overview/drilldown/dimension/analysis\",\"drilldownCycleUrl\":\"/interface/link/overview/drilldown/dimension/cycleAnalysis\",\"drilldownList\":\"\"},\"hasMetricSearch\":false,\"isOnlyRead\":true,\"panelId\":4,\"panelIdOfThirdMenu\":15,\"showUnit\":true,\"tabs\":[{\"name\":\"ips\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"ips\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"ips\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"countries\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"countries\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"countries\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"asns\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"asns\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"asns\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"apps\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"apps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"apps\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"providers\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"providers\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"providers\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"domains\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"domains\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"domains\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"secondLevelDomains\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"secondLevelDomains\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"secondLevelDomains\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"protocols\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"protocols\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"regions\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"regions\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"cities\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"cities\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"isps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"isps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"applicationCategories\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"applicationCategories\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"domainCategories\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"domainCategories\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"protocolPorts\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"protocolPorts\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientIps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"clientIps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverIps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"serverIps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientCountries\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"clientCountries\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverCountries\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"serverCountries\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientRegions\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"clientRegions\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverRegions\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"serverRegions\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientCities\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"clientCities\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverCities\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"serverCities\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientIsps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"clientIsps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverIsps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"serverIsps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientAsns\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"clientAsns\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverAsns\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"serverAsns\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientRegions\",\"serverRegions\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]}]}],\"tabs\":[{\"name\":\"ips\",\"i18n\":\"network.ips\",\"prop\":\"ip\"},{\"name\":\"countries\",\"i18n\":\"network.countries\",\"prop\":\"countryRegion\"},{\"name\":\"asns\",\"i18n\":\"network.asns\",\"prop\":\"asn\"},{\"name\":\"apps\",\"i18n\":\"network.applications\",\"prop\":\"appLabel\"},{\"name\":\"providers\",\"i18n\":\"network.providers\",\"prop\":\"appCompany\"},{\"name\":\"domains\",\"i18n\":\"network.domains\",\"prop\":\"domain\"},{\"name\":\"secondLevelDomains\",\"i18n\":\"network.secondLevelDomains\",\"prop\":\"domainSld\"},{\"name\":\"protocols\",\"i18n\":\"network.protocols\",\"prop\":\"l7Protocol\"},{\"name\":\"regions\",\"i18n\":\"network.regions\",\"prop\":\"superAdminArea\"},{\"name\":\"cities\",\"i18n\":\"network.cities\",\"prop\":\"adminArea\"},{\"name\":\"isps\",\"i18n\":\"network.isps\",\"prop\":\"isp\"},{\"name\":\"applicationCategories\",\"i18n\":\"network.applicationCategories\",\"prop\":\"appSubcategory\"},{\"name\":\"domainCategories\",\"i18n\":\"network.domainCategories\",\"prop\":\"domainCategoryName\"},{\"name\":\"hosts\",\"i18n\":\"network.hosts\",\"prop\":\"httpHost\"},{\"name\":\"protocolPorts\",\"i18n\":\"network.protocolPorts\",\"prop\":\"protocolPort\"},{\"name\":\"clientIps\",\"i18n\":\"network.clientIps\",\"prop\":\"clientIp\"},{\"name\":\"serverIps\",\"i18n\":\"network.serverIps\",\"prop\":\"serverIp\"},{\"name\":\"clientCountries\",\"i18n\":\"network.clientCountries\",\"prop\":\"clientCountryRegion\"},{\"name\":\"serverCountries\",\"i18n\":\"network.serverCountries\",\"prop\":\"serverCountryRegion\"},{\"name\":\"clientRegions\",\"i18n\":\"network.clientRegions\",\"prop\":\"clientSuperAdminArea\"},{\"name\":\"serverRegions\",\"i18n\":\"network.serverRegions\",\"prop\":\"serverSuperAdminArea\"},{\"name\":\"clientCities\",\"i18n\":\"network.clientCities\",\"prop\":\"clientAdminArea\"},{\"name\":\"serverCities\",\"i18n\":\"network.serverCities\",\"prop\":\"serverAdminArea\"},{\"name\":\"clientIsps\",\"i18n\":\"network.clientIsps\",\"prop\":\"clientIsp\"},{\"name\":\"serverIsps\",\"i18n\":\"network.serverIsps\",\"prop\":\"serverIsp\"},{\"name\":\"clientAsns\",\"i18n\":\"network.clientAsns\",\"prop\":\"clientAsn\"},{\"name\":\"serverAsns\",\"i18n\":\"network.serverAsns\",\"prop\":\"serverAsn\"}],\"columns\":[{\"name\":\"score\",\"i18n\":\"network.score\",\"prop\":\"score\",\"columnType\":\"normal\"},{\"name\":\"through\",\"i18n\":\"networkAppPerformance.throughput\",\"prop\":\"totalBytes\",\"columnType\":\"chainRatio\",\"unit\":\"byte\"},{\"name\":\"tcpConEstLatency\",\"i18n\":\"networkAppPerformance.tcpConnectionEstablishLatency\",\"prop\":\"tcpConEstLatency\",\"columnType\":\"chainRatio\",\"unit\":\"time\"},{\"name\":\"packetLoss\",\"i18n\":\"networkAppPerformance.packetLoss\",\"prop\":\"packetLoss\",\"columnType\":\"chainRatio\",\"unit\":\"percent\"},{\"name\":\"packetRetrans\",\"i18n\":\"networkAppPerformance.packetRetrans\",\"prop\":\"packetRetrans\",\"columnType\":\"chainRatio\",\"unit\":\"percent\"},{\"name\":\"sslResponseLatency\",\"i18n\":\"networkAppPerformance.sslResponseLatency\",\"prop\":\"sslResponseLatency\",\"columnType\":\"chainRatio\",\"unit\":\"time\"},{\"name\":\"httpResponseLatency\",\"i18n\":\"networkAppPerformance.httpResponseLatency\",\"prop\":\"httpResponseLatency\",\"columnType\":\"chainRatio\",\"unit\":\"time\"},{\"name\":\"ips\",\"i18n\":\"network.ip\",\"prop\":\"ip\",\"columnType\":\"dillDown\"},{\"name\":\"countries\",\"i18n\":\"network.country\",\"prop\":\"countryRegion\",\"columnType\":\"dillDown\"},{\"name\":\"asns\",\"i18n\":\"network.asn\",\"prop\":\"asn\",\"columnType\":\"dillDown\"},{\"name\":\"apps\",\"i18n\":\"network.application\",\"prop\":\"appLabel\",\"columnType\":\"dillDown\"},{\"name\":\"providers\",\"i18n\":\"network.provider\",\"prop\":\"appCompany\",\"columnType\":\"dillDown\"},{\"name\":\"domains\",\"i18n\":\"network.domain\",\"prop\":\"domain\",\"columnType\":\"dillDown\"},{\"name\":\"secondLevelDomains\",\"i18n\":\"network.secondLevelDomain\",\"prop\":\"domainSld\",\"columnType\":\"dillDown\"},{\"name\":\"protocols\",\"i18n\":\"network.protocol\",\"prop\":\"l7Protocol\",\"columnType\":\"dillDown\"},{\"name\":\"regions\",\"i18n\":\"network.region\",\"prop\":\"superAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"cities\",\"i18n\":\"network.city\",\"prop\":\"adminArea\",\"columnType\":\"dillDown\"},{\"name\":\"isps\",\"i18n\":\"network.isp\",\"prop\":\"isp\",\"columnType\":\"dillDown\"},{\"name\":\"applicationCategories\",\"i18n\":\"network.applicationCategory\",\"prop\":\"appSubcategory\",\"columnType\":\"dillDown\"},{\"name\":\"domainCategories\",\"i18n\":\"network.domainCategory\",\"prop\":\"domainCategoryName\",\"columnType\":\"dillDown\"},{\"name\":\"hosts\",\"i18n\":\"network.host\",\"prop\":\"httpHost\",\"columnType\":\"dillDown\"},{\"name\":\"protocolPorts\",\"i18n\":\"network.protocolPort\",\"prop\":\"protocolPort\",\"columnType\":\"dillDown\"},{\"name\":\"clientIps\",\"i18n\":\"network.clientIp\",\"prop\":\"clientIp\",\"columnType\":\"dillDown\"},{\"name\":\"serverIps\",\"i18n\":\"network.serverIp\",\"prop\":\"serverIp\",\"columnType\":\"dillDown\"},{\"name\":\"clientCountries\",\"i18n\":\"network.clientCountry\",\"prop\":\"clientCountryRegion\",\"columnType\":\"dillDown\"},{\"name\":\"serverCountries\",\"i18n\":\"network.serverCountry\",\"prop\":\"serverCountryRegion\",\"columnType\":\"dillDown\"},{\"name\":\"clientRegions\",\"i18n\":\"network.clientRegion\",\"prop\":\"clientSuperAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"serverRegions\",\"i18n\":\"network.serverRegion\",\"prop\":\"serverSuperAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"clientCities\",\"i18n\":\"network.clientCity\",\"prop\":\"clientAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"serverCities\",\"i18n\":\"network.serverCity\",\"prop\":\"serverAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"clientIsps\",\"i18n\":\"network.clientIsp\",\"prop\":\"clientIsp\",\"columnType\":\"dillDown\"},{\"name\":\"serverIsps\",\"i18n\":\"network.serverIsp\",\"prop\":\"serverIsp\",\"columnType\":\"dillDown\"},{\"name\":\"clientAsns\",\"i18n\":\"network.clientAsn\",\"prop\":\"clientAsn\",\"columnType\":\"dillDown\"},{\"name\":\"serverAsns\",\"i18n\":\"network.serverAsn\",\"prop\":\"serverAsn\",\"columnType\":\"dillDown\"}]}]}', 1, '下钻table配置'); REPLACE INTO `sys_config` VALUES (null, 'knowledge_import_config_json', '{\"cn_app_tag_user_defined\":{\"headers\":\"app_name,tag_value,is_valid\",\"validateColumn\":\"app_name\",\"infos\":[{\"name\":\"tag_value\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"app_name\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"is_valid\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":2}]},\"cn_domain_tag_user_defined\":{\"headers\":\"tag_value,domain,is_valid\",\"validateColumn\":\"domain\",\"infos\":[{\"name\":\"tag_value\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"domain\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"is_valid\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":2}]},\"cn_ip_tag_user_defined\":{\"headers\":\"tag_value,addr_format,ip1,ip2,is_valid\",\"validateColumn\":\"addr_format,ip1,ip2\",\"infos\":[{\"name\":\"tag_value\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"addr_format\",\"checkType\":\"none\",\"validateVal\":[\"Single\",\"Range\",\"CIDR\"],\"index\":1},{\"name\":\"ip1\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"ip2\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"is_valid\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":4}]},\"cn_psiphon3_ip\":{\"headers\":\"addr_format,ip1,ip2,type,method,confidence,confidence_level,is_valid\",\"validateColumn\":\"addr_format,ip1,ip2\",\"infos\":[{\"name\":\"addr_format\",\"checkType\":\"none\",\"validateVal\":[\"Single\",\"Range\",\"CIDR\"],\"index\":0},{\"name\":\"ip1\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"ip2\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"type\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":3},{\"name\":\"method\",\"checkType\":\"none\",\"validateVal\":[\"passive_ml\",\"passive_sig\",\"acitve_probe\",\"third_api\"],\"index\":4},{\"name\":\"confidence\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"100\"],\"index\":5},{\"name\":\"confidence_level\",\"checkType\":\"none\",\"validateVal\":[\"confirmed\",\"suspect\",\"tentative\"],\"index\":6},{\"name\":\"is_valid\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":7}]},\"cn_ioc_darkweb\":{\"headers\":\"ioc_value,ioc_type,node_type,ipv6,isp,asn,operating_system,country,city,latitude,longtitude,tor_fingerprint,tor_dir_port,tor_or_port,tor_flags,tor_version,tor_nickname,tor_exit_policy,i2p_hash,i2p_method,i2p_version,i2p_is_floodfill,i2p_bandwidth,i2p_is_hidden,i2p_is_reachable,i2p_publish_time,mtproxy_port,mtproxy_secret,obfs4_port,obfs4_fingerprint,obfs4_cert,obfs4_iat_mode,snowflake_port,first_appear_time,last_appear_time\",\"validateColumn\":\"ioc_value,ioc_type\",\"infos\":[{\"name\":\"ioc_value\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"ioc_type\",\"checkType\":\"none\",\"validateVal\":[\"ip\",\"domain\"],\"index\":1},{\"name\":\"node_type\",\"checkType\":\"none\",\"validateVal\":[\"tor\",\"i2p\",\"mtproxy\",\"obfs4\",\"snowflake\",\"generalbridge\"],\"index\":2},{\"name\":\"ipv6\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"isp\",\"checkType\":\"none\",\"validateVal\":[],\"index\":4},{\"name\":\"asn\",\"checkType\":\"none\",\"validateVal\":[],\"index\":5},{\"name\":\"operating_system\",\"checkType\":\"none\",\"validateVal\":[],\"index\":6},{\"name\":\"country\",\"checkType\":\"none\",\"validateVal\":[],\"index\":7},{\"name\":\"city\",\"checkType\":\"none\",\"validateVal\":[],\"index\":8},{\"name\":\"latitude\",\"checkType\":\"none\",\"validateVal\":[],\"index\":9},{\"name\":\"longtitude\",\"checkType\":\"none\",\"validateVal\":[],\"index\":10},{\"name\":\"tor_fingerprint\",\"checkType\":\"none\",\"validateVal\":[],\"index\":11},{\"name\":\"tor_dir_port\",\"checkType\":\"none\",\"validateVal\":[],\"index\":12},{\"name\":\"tor_or_port\",\"checkType\":\"none\",\"validateVal\":[],\"index\":13},{\"name\":\"tor_flags\",\"checkType\":\"none\",\"validateVal\":[],\"index\":14},{\"name\":\"tor_version\",\"checkType\":\"none\",\"validateVal\":[],\"index\":15},{\"name\":\"tor_nickname\",\"checkType\":\"none\",\"validateVal\":[],\"index\":16},{\"name\":\"tor_exit_policy\",\"checkType\":\"none\",\"validateVal\":[],\"index\":17},{\"name\":\"i2p_hash\",\"checkType\":\"none\",\"validateVal\":[],\"index\":18},{\"name\":\"i2p_method\",\"checkType\":\"none\",\"validateVal\":[],\"index\":19},{\"name\":\"i2p_version\",\"checkType\":\"none\",\"validateVal\":[],\"index\":20},{\"name\":\"i2p_is_floodfill\",\"checkType\":\"none\",\"validateVal\":[],\"index\":21},{\"name\":\"i2p_bandwidth\",\"checkType\":\"none\",\"validateVal\":[],\"index\":22},{\"name\":\"i2p_is_hidden\",\"checkType\":\"none\",\"validateVal\":[],\"index\":23},{\"name\":\"i2p_is_reachable\",\"checkType\":\"none\",\"validateVal\":[],\"index\":24},{\"name\":\"i2p_publish_time\",\"checkType\":\"none\",\"validateVal\":[],\"index\":25},{\"name\":\"mtproxy_port\",\"checkType\":\"none\",\"validateVal\":[],\"index\":26},{\"name\":\"mtproxy_secret\",\"checkType\":\"none\",\"validateVal\":[],\"index\":27},{\"name\":\"obfs4_port\",\"checkType\":\"none\",\"validateVal\":[],\"index\":28},{\"name\":\"obfs4_fingerprint\",\"checkType\":\"none\",\"validateVal\":[],\"index\":29},{\"name\":\"obfs4_cert\",\"checkType\":\"none\",\"validateVal\":[],\"index\":30},{\"name\":\"obfs4_iat_mode\",\"checkType\":\"none\",\"validateVal\":[],\"index\":31},{\"name\":\"snowflake_port\",\"checkType\":\"none\",\"validateVal\":[],\"index\":32},{\"name\":\"first_appear_time\",\"checkType\":\"none\",\"validateVal\":[],\"index\":33},{\"name\":\"last_appear_time\",\"checkType\":\"none\",\"validateVal\":[],\"index\":34}]},\"cn_ioc_malware\":{\"headers\":\"ioc_value,ioc_type,threat_type,malware_name,malware_alias,mitre_attack_description,mitre_attack_platforms,mitre_attack_techniques,mitre_attack_groups,confidence_level,reference,source,first_report_time,last_seen_time\",\"validateColumn\":\"ioc_value,ioc_type\",\"infos\":[{\"name\":\"ioc_value\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"ioc_type\",\"checkType\":\"none\",\"validateVal\":[\"ip\",\"domain\",\"url\"],\"index\":1},{\"name\":\"threat_type\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"malware_name\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"malware_alias\",\"checkType\":\"none\",\"validateVal\":[],\"index\":4},{\"name\":\"mitre_attack_description\",\"checkType\":\"none\",\"validateVal\":[],\"index\":5},{\"name\":\"mitre_attack_platforms\",\"checkType\":\"none\",\"validateVal\":[],\"index\":6},{\"name\":\"mitre_attack_techniques\",\"checkType\":\"none\",\"validateVal\":[],\"index\":7},{\"name\":\"mitre_attack_groups\",\"checkType\":\"none\",\"validateVal\":[],\"index\":8},{\"name\":\"confidence_level\",\"checkType\":\"none\",\"validateVal\":[],\"index\":9},{\"name\":\"reference\",\"checkType\":\"none\",\"validateVal\":[],\"index\":10},{\"name\":\"source\",\"checkType\":\"none\",\"validateVal\":[],\"index\":11},{\"name\":\"first_report_time\",\"checkType\":\"none\",\"validateVal\":[],\"index\":12},{\"name\":\"last_seen_time\",\"checkType\":\"none\",\"validateVal\":[],\"index\":13}]},\"cn_app_category_built_in\":{\"headers\":\"app_name,app_id,app_category,app_subcategory,app_risk,app_description,app_longname,app_technology,app_is_protocol,app_company,app_company_category,is_valid\",\"validateColumn\":\"app_name\",\"infos\":[{\"name\":\"app_name\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"app_id\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"app_category\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"app_subcategory\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"app_risk\",\"checkType\":\"none\",\"validateVal\":[],\"index\":4},{\"name\":\"app_description\",\"checkType\":\"none\",\"validateVal\":[],\"index\":5},{\"name\":\"app_longname\",\"checkType\":\"none\",\"validateVal\":[],\"index\":6},{\"name\":\"app_technology\",\"checkType\":\"none\",\"validateVal\":[],\"index\":7},{\"name\":\"app_is_protocol\",\"checkType\":\"none\",\"validateVal\":[],\"index\":8},{\"name\":\"app_company\",\"checkType\":\"none\",\"validateVal\":[],\"index\":9},{\"name\":\"app_company_category\",\"checkType\":\"none\",\"validateVal\":[],\"index\":10},{\"name\":\"is_valid\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":11}]},\"cn_fqdn_icp_built_in\":{\"headers\":\"fqdn,source,query_success,is_accessible,status_code,match_pattern,icp_owner,icp_company_name,icp_company_type,icp_main_page,icp_site_license,icp_site_name,icp_verify_time\",\"validateColumn\":\"fqdn\",\"infos\":[{\"name\":\"fqdn\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"source\",\"checkType\":\"none\",\"validateVal\":[\"chinaz\"],\"index\":1},{\"name\":\"query_success\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"is_accessible\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"status_code\",\"checkType\":\"none\",\"validateVal\":[],\"index\":4},{\"name\":\"match_pattern\",\"checkType\":\"none\",\"validateVal\":[],\"index\":5},{\"name\":\"icp_owner\",\"checkType\":\"none\",\"validateVal\":[],\"index\":6},{\"name\":\"icp_company_name\",\"checkType\":\"none\",\"validateVal\":[],\"index\":7},{\"name\":\"icp_company_type\",\"checkType\":\"none\",\"validateVal\":[],\"index\":8},{\"name\":\"icp_main_page\",\"checkType\":\"none\",\"validateVal\":[],\"index\":9},{\"name\":\"icp_site_license\",\"checkType\":\"none\",\"validateVal\":[],\"index\":10},{\"name\":\"icp_site_name\",\"checkType\":\"none\",\"validateVal\":[],\"index\":11},{\"name\":\"icp_verify_time\",\"checkType\":\"none\",\"validateVal\":[],\"index\":12}]},\"cn_fqdn_who_is_built_in\":{\"headers\":\"fqdn,source,query_success,status_code,match_pattern,whois_domain,whois_update_date,whois_create_date,whois_expire_date,whois_email,whois_ns,whois_registrar_name,whois_registrant_org,whois_registrant_name,whois_registrant_street,whois_registrant_city,whois_registrant_state,whois_registrant_postcode,whois_registrant_country,whois_registrant_phone\",\"validateColumn\":\"fqdn\",\"infos\":[{\"name\":\"fqdn\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"source\",\"checkType\":\"none\",\"validateVal\":[\"chinaz\",\"brightcloud\"],\"index\":1},{\"name\":\"query_success\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"status_code\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"match_pattern\",\"checkType\":\"none\",\"validateVal\":[\"1\",\"2\"],\"index\":4},{\"name\":\"whois_domain\",\"checkType\":\"none\",\"validateVal\":[],\"index\":5},{\"name\":\"whois_update_date\",\"checkType\":\"none\",\"validateVal\":[],\"index\":6},{\"name\":\"whois_create_date\",\"checkType\":\"none\",\"validateVal\":[],\"index\":7},{\"name\":\"whois_expire_date\",\"checkType\":\"none\",\"validateVal\":[],\"index\":8},{\"name\":\"whois_email\",\"checkType\":\"none\",\"validateVal\":[],\"index\":9},{\"name\":\"whois_ns\",\"checkType\":\"none\",\"validateVal\":[],\"index\":10},{\"name\":\"whois_registrar_name\",\"checkType\":\"none\",\"validateVal\":[],\"index\":11},{\"name\":\"whois_registrant_org\",\"checkType\":\"none\",\"validateVal\":[],\"index\":12},{\"name\":\"whois_registrant_name\",\"checkType\":\"none\",\"validateVal\":[],\"index\":13},{\"name\":\"whois_registrant_street\",\"checkType\":\"none\",\"validateVal\":[],\"index\":14},{\"name\":\"whois_registrant_city\",\"checkType\":\"none\",\"validateVal\":[],\"index\":15},{\"name\":\"whois_registrant_state\",\"checkType\":\"none\",\"validateVal\":[],\"index\":16},{\"name\":\"whois_registrant_postcode\",\"checkType\":\"none\",\"validateVal\":[],\"index\":17},{\"name\":\"whois_registrant_country\",\"checkType\":\"none\",\"validateVal\":[],\"index\":18},{\"name\":\"whois_registrant_phone\",\"checkType\":\"none\",\"validateVal\":[],\"index\":19}]},\"cn_fqdn_category_built_in\":{\"headers\":\"fqdn,source,query_success,match_pattern,reputation_score,reputation_level,category_id,category_name,category_group,category_conf,is_a1_cat,status_code,submit_user\",\"validateColumn\":\"fqdn\",\"infos\":[{\"name\":\"fqdn\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"source\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"query_success\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"match_pattern\",\"checkType\":\"none\",\"validateVal\":[\"1\",\"2\"],\"index\":3},{\"name\":\"reputation_score\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"100\"],\"index\":4},{\"name\":\"reputation_level\",\"checkType\":\"none\",\"validateVal\":[],\"index\":5},{\"name\":\"category_id\",\"checkType\":\"none\",\"validateVal\":[],\"index\":6},{\"name\":\"category_name\",\"checkType\":\"none\",\"validateVal\":[],\"index\":7},{\"name\":\"category_group\",\"checkType\":\"none\",\"validateVal\":[],\"index\":8},{\"name\":\"category_conf\",\"checkType\":\"none\",\"validateVal\":[],\"index\":9},{\"name\":\"is_a1_cat\",\"checkType\":\"none\",\"validateVal\":[],\"index\":10},{\"name\":\"status_code\",\"checkType\":\"none\",\"validateVal\":[],\"index\":11},{\"name\":\"submit_user\",\"checkType\":\"none\",\"validateVal\":[],\"index\":12}]},\"cn_ip_location_built_in\":{\"headers\":\"addr_type,start_ip,end_ip,minip,maxip,continent,areacode,country,province,city,lngwgs,latwgs,owner,isp,asnumber,timezone,is_valid\",\"validateColumn\":\"minip,maxip\",\"infos\":[{\"name\":\"addr_type\",\"checkType\":\"none\",\"validateVal\":[\"4\",\"6\"],\"index\":0},{\"name\":\"start_ip\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"end_ip\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"minip\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"maxip\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"continent\",\"checkType\":\"none\",\"validateVal\":[],\"index\":4},{\"name\":\"areacode\",\"checkType\":\"none\",\"validateVal\":[],\"index\":5},{\"name\":\"country\",\"checkType\":\"none\",\"validateVal\":[],\"index\":6},{\"name\":\"province\",\"checkType\":\"none\",\"validateVal\":[],\"index\":7},{\"name\":\"city\",\"checkType\":\"none\",\"validateVal\":[],\"index\":8},{\"name\":\"lngwgs\",\"checkType\":\"none\",\"validateVal\":[],\"index\":9},{\"name\":\"latwgs\",\"checkType\":\"none\",\"validateVal\":[],\"index\":10},{\"name\":\"owner\",\"checkType\":\"none\",\"validateVal\":[],\"index\":11},{\"name\":\"isp\",\"checkType\":\"none\",\"validateVal\":[],\"index\":12},{\"name\":\"asnumber\",\"checkType\":\"none\",\"validateVal\":[],\"index\":13},{\"name\":\"timezone\",\"checkType\":\"none\",\"validateVal\":[],\"index\":14},{\"name\":\"is_valid\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":15}]},\"cn_ip_asn_built_in\":{\"headers\":\"addr_type,addr_format,ip1,ip2,asn,organization,is_valid\",\"validateColumn\":\"addr_format,ip1,ip2\",\"infos\":[{\"name\":\"addr_type\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"ip1\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"ip2\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"asn\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"organization\",\"checkType\":\"none\",\"validateVal\":[],\"index\":4},{\"name\":\"is_valid\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":5},{\"name\":\"addr_format\",\"checkType\":\"none\",\"validateVal\":[],\"index\":6}]},\"cn_idc_renter_built_in\":{\"headers\":\"addr_format,ip1,ip2,idc_renter\",\"validateColumn\":\"addr_format,ip1,ip2\",\"infos\":[{\"name\":\"addr_format\",\"checkType\":\"none\",\"validateVal\":[\"Single\",\"Range\",\"CIDR\"],\"index\":0},{\"name\":\"ip1\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"ip2\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"idc_renter\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3}]},\"cn_internal_ip_built_in\":{\"headers\":\"addr_format,ip1,ip2\",\"validateColumn\":\"addr_format,ip1,ip2\",\"infos\":[{\"name\":\"addr_format\",\"checkType\":\"none\",\"validateVal\":[\"Single\",\"Range\",\"CIDR\"],\"index\":0},{\"name\":\"ip1\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"ip2\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2}]},\"cn_link_direction_built_in\":{\"headers\":\"interface_name,direction,peer_province,peer_city,link_id,bandwidth\",\"validateColumn\":\"link_id\",\"infos\":[{\"name\":\"interface_name\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"direction\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\",\"2\"],\"index\":1},{\"name\":\"bandwidth\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"peer_province\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"peer_city\",\"checkType\":\"none\",\"validateVal\":[],\"index\":4},{\"name\":\"link_id\",\"checkType\":\"none\",\"validateVal\":[],\"index\":5}]},\"cn_dns_server_info_built_in\":{\"headers\":\"ip_addr,location_country,location_province,location_region,asn,dns_server_role,orgnization,operation_system,dns_software,dnssec_support,dot_support,doh_support,root_mirror_locations\",\"validateColumn\":\"ip_addr\",\"infos\":[{\"name\":\"ip_addr\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"location_country\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"location_province\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"location_region\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"asn\",\"checkType\":\"none\",\"validateVal\":[],\"index\":4},{\"name\":\"dns_server_role\",\"checkType\":\"none\",\"validateVal\":[\"RTDNS\",\"TLDNS\",\"OPRDNS\",\"ADNS\",\"FWDNS\"],\"index\":5},{\"name\":\"orgnization\",\"checkType\":\"none\",\"validateVal\":[],\"index\":6},{\"name\":\"operation_system\",\"checkType\":\"none\",\"validateVal\":[],\"index\":7},{\"name\":\"dns_software\",\"checkType\":\"none\",\"validateVal\":[],\"index\":8},{\"name\":\"dnssec_support\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":9},{\"name\":\"dot_support\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":10},{\"name\":\"doh_support\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":11},{\"name\":\"root_mirror_locations\",\"checkType\":\"none\",\"validateVal\":[],\"index\":12}]}}', 1, NULL); -REPLACE INTO `sys_config` VALUES (null, 'schema_explore', '{ \"functions\": { \"operator\": [ { \"name\": \"=\", \"label\": \"=\", \"function\": \"expr = value\" }, { \"name\": \"!=\", \"label\": \"!=\", \"function\": \"expr != value\" }, { \"name\": \">\", \"label\": \">\", \"function\": \"expr > value\" }, { \"name\": \"<\", \"label\": \"<\", \"function\": \"expr < value\" }, { \"name\": \">=\", \"label\": \">=\", \"function\": \"expr >= value\" }, { \"name\": \"<=\", \"label\": \"<=\", \"function\": \"expr <= value\" }, { \"name\": \"in\", \"label\": \"IN\", \"function\": \"expr in (values)\" }, { \"name\": \"not in\", \"label\": \"NOT IN\", \"function\": \"expr not in (values)\" }, { \"name\": \"like\", \"label\": \"LIKE\", \"function\": \"expr like value\" }, { \"name\": \"not like\", \"label\": \"NOT LIKE\", \"function\": \"expr not like value\" }, { \"name\": \"notEmpty\", \"label\": \"NOT EMPTY\", \"function\": \"notEmpty(expr)\" }, { \"name\": \"empty\", \"label\": \"EMPTY\", \"function\": \"empty(expr)\" }, { \"name\": \"has\", \"label\": \"HAS\", \"function\": \"has(expr, value)\" } ] }, \"references\": { \"operator\": [ { \"type\": \"int\", \"functions\": \"=,!=,>,<,>=,<=,in,not in\" }, { \"type\": \"string\", \"functions\": \"=,!=,in,not in,like,not like,notEmpty,empty\" }, { \"type\": \"array\", \"functions\": \"has,notEmpty,empty\" } ] }, \"entityMetadata\": { \"searchColumns\": [ { \"name\": \"ip\", \"label\": \"ip\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"type\": \"ip\", \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"domain\", \"label\": \"domain\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"type\": \"domain\", \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"app_name\", \"label\": \"app\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"ip_country_region\", \"label\": \"ip.country\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in\" } } }, { \"name\": \"ip_super_admin_area\", \"label\": \"ip.region\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in\" } } }, { \"name\": \"ip_admin_area\", \"label\": \"ip.city\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in\" } } }, { \"name\": \"ip_asn\", \"label\": \"ip.asn\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in\" } } }, { \"name\": \"ip_isp\", \"label\": \"ip.isp\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in\" } } }, { \"name\": \"domain_category_name\", \"label\": \"domain.category\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in\" } } }, { \"name\": \"app_category\", \"label\": \"app.category\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in\" } } }, { \"name\": \"entity_tags\", \"label\": \"tag\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": { \"type\": \"array\", \"items\": \"string\" }, \"doc\": { \"constraints\": { \"operator_functions\": \"has\" } } }, { \"name\": \"port\", \"label\": \"ip.port\", \"connector\": { \"alias\": \"dr\", \"table\": \"cn_ip_dynamic_attribute\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"int\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in\" } } }, { \"name\": \"l7_protocol\", \"label\": \"ip.protocol\", \"connector\": { \"alias\": \"dr\", \"table\": \"cn_ip_dynamic_attribute\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in\" } } } ] }, \"securityEventMetadata\": { \"searchColumns\": [ { \"name\": \"event_type\", \"label\": \"eventType\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"event_name\", \"label\": \"eventName\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"severity\", \"label\": \"severity\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"offender_ip\", \"label\": \"offenderIP\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"victim_ip\", \"label\": \"victimIP\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"domain\", \"label\": \"domain\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"app\", \"label\": \"app\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"status\", \"label\": \"status\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } } ] } }', 1, NULL); +REPLACE INTO `sys_config` VALUES (null, 'schema_explore', '{ \"functions\": { \"operator\": [ { \"name\": \"=\", \"label\": \"=\", \"function\": \"expr = value\" }, { \"name\": \"!=\", \"label\": \"!=\", \"function\": \"expr != value\" }, { \"name\": \">\", \"label\": \">\", \"function\": \"expr > value\" }, { \"name\": \"<\", \"label\": \"<\", \"function\": \"expr < value\" }, { \"name\": \">=\", \"label\": \">=\", \"function\": \"expr >= value\" }, { \"name\": \"<=\", \"label\": \"<=\", \"function\": \"expr <= value\" }, { \"name\": \"in\", \"label\": \"IN\", \"function\": \"expr in (values)\" }, { \"name\": \"not in\", \"label\": \"NOT IN\", \"function\": \"expr not in (values)\" }, { \"name\": \"like\", \"label\": \"LIKE\", \"function\": \"expr like value\" }, { \"name\": \"not like\", \"label\": \"NOT LIKE\", \"function\": \"expr not like value\" }, { \"name\": \"notEmpty\", \"label\": \"NOT EMPTY\", \"function\": \"notEmpty(expr)\" }, { \"name\": \"empty\", \"label\": \"EMPTY\", \"function\": \"empty(expr)\" }, { \"name\": \"has\", \"label\": \"HAS\", \"function\": \"has(expr, value)\" } ] }, \"references\": { \"operator\": [ { \"type\": \"int\", \"functions\": \"=,!=,>,<,>=,<=,in,not in\" }, { \"type\": \"string\", \"functions\": \"=,!=,in,not in,like,not like,notEmpty,empty\" }, { \"type\": \"array\", \"functions\": \"has,notEmpty,empty\" } ] }, \"entityMetadata\": { \"searchColumns\": [ { \"name\": \"ip\", \"label\": \"ip\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"ip\", \"type\": \"ip\", \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"domain\", \"label\": \"domain\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"domain\", \"type\": \"domain\", \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"app_name\", \"label\": \"app\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"app\", \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"ip_country_region\", \"label\": \"ip.country\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"ip\", \"operator_functions\": \"=,in\" } } }, { \"name\": \"ip_super_admin_area\", \"label\": \"ip.region\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"ip\", \"operator_functions\": \"=,in\" } } }, { \"name\": \"ip_admin_area\", \"label\": \"ip.city\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"ip\", \"operator_functions\": \"=,in\" } } }, { \"name\": \"ip_asn\", \"label\": \"ip.asn\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"ip\", \"operator_functions\": \"=,in\" } } }, { \"name\": \"ip_isp\", \"label\": \"ip.isp\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"ip\", \"operator_functions\": \"=,in\" } } }, { \"name\": \"domain_category_name\", \"label\": \"domain.category\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"domain\", \"operator_functions\": \"=,in\" } } }, { \"name\": \"app_category\", \"label\": \"app.category\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"app\", \"operator_functions\": \"=,in\" } } }, { \"name\": \"entity_tags\", \"label\": \"tag\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": { \"type\": \"array\", \"items\": \"string\" }, \"doc\": { \"constraints\": { \"primay\": \"ip,app,domain\", \"operator_functions\": \"has\" } } }, { \"name\": \"port\", \"label\": \"ip.port\", \"connector\": { \"alias\": \"dr\", \"table\": \"cn_ip_dynamic_attribute\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"int\", \"doc\": { \"constraints\": { \"primay\": \"ip\", \"operator_functions\": \"=,in\" } } }, { \"name\": \"l7_protocol\", \"label\": \"ip.protocol\", \"connector\": { \"alias\": \"dr\", \"table\": \"cn_ip_dynamic_attribute\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"ip\", \"operator_functions\": \"=,in\" } } } ] }, \"securityEventMetadata\": { \"searchColumns\": [ { \"name\": \"event_type\", \"label\": \"eventType\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"event_name\", \"label\": \"eventName\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"severity\", \"label\": \"severity\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"offender_ip\", \"label\": \"offenderIP\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"victim_ip\", \"label\": \"victimIP\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"domain\", \"label\": \"domain\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"app\", \"label\": \"app\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"status\", \"label\": \"status\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } } ] } }', 1, NULL); diff --git a/cn-admin/src/test/resources/db/SysConfig.sql b/cn-admin/src/test/resources/db/SysConfig.sql index 2fae69f..c251868 100644 --- a/cn-admin/src/test/resources/db/SysConfig.sql +++ b/cn-admin/src/test/resources/db/SysConfig.sql @@ -33,5 +33,5 @@ INSERT INTO `sys_config` VALUES (30, 'delay_time', '0', 1, NULL); INSERT INTO `sys_config` VALUES (31, 'link_info', '[{\"originalLinkId\":\"256\",\"linkId\":\"Hundredgige1\",\"direction\":\"out\",\"nextHop\":\"西安\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"257\",\"linkId\":\"Hundredgige1\",\"direction\":\"in\",\"nextHop\":\"西安\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"512\",\"linkId\":\"Hundredgige2\",\"direction\":\"out\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"513\",\"linkId\":\"Hundredgige2\",\"direction\":\"in\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"768\",\"linkId\":\"Hundredgige3\",\"direction\":\"out\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"769\",\"linkId\":\"Hundredgige3\",\"direction\":\"in\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"1024\",\"linkId\":\"Hundredgige4\",\"direction\":\"out\",\"nextHop\":\"西宁\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"1025\",\"linkId\":\"Hundredgige4\",\"direction\":\"in\",\"nextHop\":\"西宁\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"1280\",\"linkId\":\"Hundredgige5\",\"direction\":\"out\",\"nextHop\":\"西安\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"1281\",\"linkId\":\"Hundredgige5\",\"direction\":\"in\",\"nextHop\":\"西安\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"1536\",\"linkId\":\"Hundredgige6\",\"direction\":\"out\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"1537\",\"linkId\":\"Hundredgige6\",\"direction\":\"in\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"1792\",\"linkId\":\"Hundredgige7\",\"direction\":\"out\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"1793\",\"linkId\":\"Hundredgige7\",\"direction\":\"in\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"2048\",\"linkId\":\"Hundredgige8\",\"direction\":\"out\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"2049\",\"linkId\":\"Hundredgige8\",\"direction\":\"in\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"2304\",\"linkId\":\"Hundredgige9\",\"direction\":\"out\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"2305\",\"linkId\":\"Hundredgige9\",\"direction\":\"in\",\"nextHop\":\"太原\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"2816\",\"linkId\":\"Hundredgige10\",\"direction\":\"out\",\"nextHop\":\"西安\",\"bandwidth\":100000000000},\r\n{\"originalLinkId\":\"2817\",\"linkId\":\"Hundredgige10\",\"direction\":\"in\",\"nextHop\":\"西安\",\"bandwidth\":100000000000}]', 1, '链路信息'); INSERT INTO `sys_config` VALUES (32, 'drill_down_table_config', '{\"version\":\"23.58\",\"config\":[{\"route\":\"networkOverview\",\"tables\":[{\"id\":\"networkOverview\",\"hiddenColumns\":[],\"disabledColumns\":[],\"url\":{\"curUrl\":\"/interface/overview/dimensionTrafficAnalysis\",\"cycleUrl\":\"/interface/overview/dimensionCycleTrafficAnalysis\",\"drilldownCurUrl\":\"/interface/overview/drilldown/dimensionTrafficAnalysis\",\"drilldownCycleUrl\":\"/interface/overview/drilldown/dimensionCycleTrafficAnalysis\",\"drilldownList\":\"/interface/overview/drilldown/list\"},\"isOnlyRead\":false,\"panelId\":1,\"panelIdOfThirdMenu\":13,\"tabs\":[{\"name\":\"ips\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"ips\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"ips\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"ips\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"ips\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"countries\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"countries\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"countries\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"countries\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"countries\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"asns\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"asns\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"asns\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"asns\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"asns\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"apps\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"apps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"apps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"apps\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"apps\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"providers\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"providers\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"providers\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"providers\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"providers\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"domains\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"domains\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"domains\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"domains\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"domains\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"secondLevelDomains\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"secondLevelDomains\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"secondLevelDomains\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"secondLevelDomains\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"secondLevelDomains\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"protocols\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"protocols\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"protocols\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"protocols\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"regions\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"regions\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"regions\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"regions\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"cities\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"cities\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"cities\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"cities\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"isps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"isps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"isps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"isps\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"applicationCategories\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"applicationCategories\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"applicationCategories\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"applicationCategories\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"domainCategories\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"domainCategories\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"domainCategories\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"domainCategories\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"protocolPorts\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"protocolPorts\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"protocolPorts\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"protocolPorts\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientIps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"clientIps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"clientIps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"clientIps\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverIps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"serverIps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"serverIps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"serverIps\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientCountries\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"clientCountries\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"clientCountries\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"clientCountries\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverCountries\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"serverCountries\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"serverCountries\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"serverCountries\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientProvinces\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"clientProvinces\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"clientProvinces\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"clientProvinces\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverProvinces\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"serverProvinces\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"serverProvinces\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"serverProvinces\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientCities\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"clientCities\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"clientCities\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"clientCities\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverCities\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"serverCities\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"serverCities\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"serverCities\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientIsps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"clientIsps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"clientIsps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"clientIsps\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverIsps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"serverIsps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"serverIsps\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"serverIsps\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientAsns\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"clientAsns\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"clientAsns\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"clientAsns\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverAsns\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":13,\"hasMetricSearch\":true,\"metrics\":[{\"name\":\"Bits/s\",\"columns\":[\"serverAsns\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Packets/s\",\"columns\":[\"serverAsns\",\"total\",\"inbound\",\"outbound\",\"internal\",\"through\"]},{\"name\":\"Sessions/s\",\"columns\":[\"serverAsns\",\"total\"]}],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]}]}],\"tabs\":[{\"name\":\"ips\",\"i18n\":\"network.ips\",\"prop\":\"ip\"},{\"name\":\"countries\",\"i18n\":\"network.countries\",\"prop\":\"countryRegion\"},{\"name\":\"asns\",\"i18n\":\"network.asns\",\"prop\":\"asn\"},{\"name\":\"apps\",\"i18n\":\"network.applications\",\"prop\":\"appLabel\"},{\"name\":\"providers\",\"i18n\":\"network.providers\",\"prop\":\"appCompany\"},{\"name\":\"domains\",\"i18n\":\"network.domains\",\"prop\":\"domain\"},{\"name\":\"secondLevelDomains\",\"i18n\":\"network.secondLevelDomains\",\"prop\":\"domainSld\"},{\"name\":\"protocols\",\"i18n\":\"network.protocols\",\"prop\":\"l7Protocol\"},{\"name\":\"regions\",\"i18n\":\"network.regions\",\"prop\":\"superAdminArea\"},{\"name\":\"cities\",\"i18n\":\"network.cities\",\"prop\":\"adminArea\"},{\"name\":\"isps\",\"i18n\":\"network.isps\",\"prop\":\"isp\"},{\"name\":\"applicationCategories\",\"i18n\":\"network.applicationCategories\",\"prop\":\"appSubcategory\"},{\"name\":\"domainCategories\",\"i18n\":\"network.domainCategories\",\"prop\":\"domainCategoryName\"},{\"name\":\"hosts\",\"i18n\":\"network.hosts\",\"prop\":\"httpHost\"},{\"name\":\"protocolPorts\",\"i18n\":\"network.protocolPorts\",\"prop\":\"protocolPort\"},{\"name\":\"clientIps\",\"i18n\":\"network.clientIps\",\"prop\":\"clientIp\"},{\"name\":\"serverIps\",\"i18n\":\"network.serverIps\",\"prop\":\"serverIp\"},{\"name\":\"clientCountries\",\"i18n\":\"network.clientCountries\",\"prop\":\"clientCountryRegion\"},{\"name\":\"serverCountries\",\"i18n\":\"network.serverCountries\",\"prop\":\"serverCountryRegion\"},{\"name\":\"clientProvinces\",\"i18n\":\"network.clientProvinces\",\"prop\":\"clientSuperAdminArea\"},{\"name\":\"serverProvinces\",\"i18n\":\"network.serverProvinces\",\"prop\":\"serverSuperAdminArea\"},{\"name\":\"clientCities\",\"i18n\":\"network.clientCities\",\"prop\":\"clientAdminArea\"},{\"name\":\"serverCities\",\"i18n\":\"network.serverCities\",\"prop\":\"serverAdminArea\"},{\"name\":\"clientIsps\",\"i18n\":\"network.clientIsps\",\"prop\":\"clientIsp\"},{\"name\":\"serverIsps\",\"i18n\":\"network.serverIsps\",\"prop\":\"serverIsp\"},{\"name\":\"clientAsns\",\"i18n\":\"network.clientAsns\",\"prop\":\"clientAsn\"},{\"name\":\"serverAsns\",\"i18n\":\"network.serverAsns\",\"prop\":\"serverAsn\"}],\"columns\":[{\"name\":\"total\",\"i18n\":\"network.total\",\"prop\":\"total\",\"columnType\":\"chainRatio\"},{\"name\":\"inbound\",\"i18n\":\"network.inbound\",\"prop\":\"inbound\",\"columnType\":\"normal\"},{\"name\":\"outbound\",\"i18n\":\"network.outbound\",\"prop\":\"outbound\",\"columnType\":\"normal\"},{\"name\":\"internal\",\"i18n\":\"network.internal\",\"prop\":\"internal\",\"columnType\":\"normal\"},{\"name\":\"through\",\"i18n\":\"network.through\",\"prop\":\"through\",\"columnType\":\"normal\"},{\"name\":\"ips\",\"i18n\":\"network.ip\",\"prop\":\"ip\",\"columnType\":\"dillDown\"},{\"name\":\"countries\",\"i18n\":\"network.country\",\"prop\":\"countryRegion\",\"columnType\":\"dillDown\"},{\"name\":\"asns\",\"i18n\":\"network.asn\",\"prop\":\"asn\",\"columnType\":\"dillDown\"},{\"name\":\"apps\",\"i18n\":\"network.application\",\"prop\":\"appLabel\",\"columnType\":\"dillDown\"},{\"name\":\"providers\",\"i18n\":\"network.provider\",\"prop\":\"appCompany\",\"columnType\":\"dillDown\"},{\"name\":\"domains\",\"i18n\":\"network.domain\",\"prop\":\"domain\",\"columnType\":\"dillDown\"},{\"name\":\"secondLevelDomains\",\"i18n\":\"network.secondLevelDomain\",\"prop\":\"domainSld\",\"columnType\":\"dillDown\"},{\"name\":\"protocols\",\"i18n\":\"network.protocol\",\"prop\":\"l7Protocol\",\"columnType\":\"dillDown\"},{\"name\":\"regions\",\"i18n\":\"network.region\",\"prop\":\"superAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"cities\",\"i18n\":\"network.city\",\"prop\":\"adminArea\",\"columnType\":\"dillDown\"},{\"name\":\"isps\",\"i18n\":\"network.isp\",\"prop\":\"isp\",\"columnType\":\"dillDown\"},{\"name\":\"applicationCategories\",\"i18n\":\"network.applicationCategory\",\"prop\":\"appSubcategory\",\"columnType\":\"dillDown\"},{\"name\":\"domainCategories\",\"i18n\":\"network.domainCategory\",\"prop\":\"domainCategoryName\",\"columnType\":\"dillDown\"},{\"name\":\"hosts\",\"i18n\":\"network.host\",\"prop\":\"httpHost\",\"columnType\":\"dillDown\"},{\"name\":\"protocolPorts\",\"i18n\":\"network.protocolPort\",\"prop\":\"protocolPort\",\"columnType\":\"dillDown\"},{\"name\":\"clientIps\",\"i18n\":\"network.clientIp\",\"prop\":\"clientIp\",\"columnType\":\"dillDown\"},{\"name\":\"serverIps\",\"i18n\":\"network.serverIp\",\"prop\":\"serverIp\",\"columnType\":\"dillDown\"},{\"name\":\"clientCountries\",\"i18n\":\"network.clientCountry\",\"prop\":\"clientCountryRegion\",\"columnType\":\"dillDown\"},{\"name\":\"serverCountries\",\"i18n\":\"network.serverCountry\",\"prop\":\"serverCountryRegion\",\"columnType\":\"dillDown\"},{\"name\":\"clientProvinces\",\"i18n\":\"network.clientProvince\",\"prop\":\"clientSuperAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"serverProvinces\",\"i18n\":\"network.serverProvince\",\"prop\":\"serverSuperAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"clientCities\",\"i18n\":\"network.clientCity\",\"prop\":\"clientAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"serverCities\",\"i18n\":\"network.serverCity\",\"prop\":\"serverAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"clientIsps\",\"i18n\":\"network.clientIsp\",\"prop\":\"clientIsp\",\"columnType\":\"dillDown\"},{\"name\":\"serverIsps\",\"i18n\":\"network.serverIsp\",\"prop\":\"serverIsp\",\"columnType\":\"dillDown\"},{\"name\":\"clientAsns\",\"i18n\":\"network.clientAsn\",\"prop\":\"clientAsn\",\"columnType\":\"dillDown\"},{\"name\":\"serverAsns\",\"i18n\":\"network.serverAsn\",\"prop\":\"serverAsn\",\"columnType\":\"dillDown\"}]},{\"route\":\"networkAppPerformance\",\"tables\":[{\"id\":\"networkAppPerformance\",\"hiddenColumns\":[\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"disabledColumns\":[],\"url\":{\"curUrl\":\"/interface/application/performance/overview/dimensionTrafficAnalysis\",\"cycleUrl\":\"/interface/application/performance/overview/dimensionCycleTrafficAnalysis\",\"drilldownCurUrl\":\"/interface/application/performance/overview/drilldown/dimensionTrafficAnalysis\",\"drilldownCycleUrl\":\"/interface/application/performance/overview/drilldown/dimensionCycleTrafficAnalysis\",\"drilldownList\":\"/interface/overview/drilldown/list\"},\"hasMetricSearch\":false,\"isOnlyRead\":false,\"panelId\":2,\"panelIdOfThirdMenu\":12,\"showUnit\":true,\"tabs\":[{\"name\":\"ips\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":8,\"columns\":[\"ips\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"ips\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"countries\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"countries\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"countries\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"asns\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"asns\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"asns\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"apps\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":10,\"columns\":[\"apps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"apps\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"providers\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"providers\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"providers\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"domains\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":9,\"columns\":[\"domains\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"domains\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"secondLevelDomains\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":9,\"columns\":[\"secondLevelDomains\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"secondLevelDomains\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"protocols\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"protocols\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"regions\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"regions\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"cities\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"cities\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"isps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"isps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"applicationCategories\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"applicationCategories\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"domainCategories\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"domainCategories\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"protocolPorts\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"protocolPorts\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientIps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":8,\"columns\":[\"clientIps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverIps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":8,\"columns\":[\"serverIps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientCountries\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"clientCountries\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverCountries\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"serverCountries\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientProvinces\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"clientProvinces\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverProvinces\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"serverProvinces\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientCities\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"clientCities\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverCities\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"serverCities\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientIsps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"clientIsps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverIsps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"serverIsps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientAsns\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"clientAsns\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverAsns\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":11,\"columns\":[\"serverAsns\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]}]}],\"tabs\":[{\"name\":\"ips\",\"i18n\":\"network.ips\",\"prop\":\"ip\"},{\"name\":\"countries\",\"i18n\":\"network.countries\",\"prop\":\"countryRegion\"},{\"name\":\"asns\",\"i18n\":\"network.asns\",\"prop\":\"asn\"},{\"name\":\"apps\",\"i18n\":\"network.applications\",\"prop\":\"appLabel\"},{\"name\":\"providers\",\"i18n\":\"network.providers\",\"prop\":\"appCompany\"},{\"name\":\"domains\",\"i18n\":\"network.domains\",\"prop\":\"domain\"},{\"name\":\"secondLevelDomains\",\"i18n\":\"network.secondLevelDomains\",\"prop\":\"domainSld\"},{\"name\":\"protocols\",\"i18n\":\"network.protocols\",\"prop\":\"l7Protocol\"},{\"name\":\"regions\",\"i18n\":\"network.regions\",\"prop\":\"superAdminArea\"},{\"name\":\"cities\",\"i18n\":\"network.cities\",\"prop\":\"adminArea\"},{\"name\":\"isps\",\"i18n\":\"network.isps\",\"prop\":\"isp\"},{\"name\":\"applicationCategories\",\"i18n\":\"network.applicationCategories\",\"prop\":\"appSubcategory\"},{\"name\":\"domainCategories\",\"i18n\":\"network.domainCategories\",\"prop\":\"domainCategoryName\"},{\"name\":\"hosts\",\"i18n\":\"network.hosts\",\"prop\":\"httpHost\"},{\"name\":\"protocolPorts\",\"i18n\":\"network.protocolPorts\",\"prop\":\"protocolPort\"},{\"name\":\"clientIps\",\"i18n\":\"network.clientIps\",\"prop\":\"clientIp\"},{\"name\":\"serverIps\",\"i18n\":\"network.serverIps\",\"prop\":\"serverIp\"},{\"name\":\"clientCountries\",\"i18n\":\"network.clientCountries\",\"prop\":\"clientCountryRegion\"},{\"name\":\"serverCountries\",\"i18n\":\"network.serverCountries\",\"prop\":\"serverCountryRegion\"},{\"name\":\"clientProvinces\",\"i18n\":\"network.clientProvinces\",\"prop\":\"clientSuperAdminArea\"},{\"name\":\"serverProvinces\",\"i18n\":\"network.serverProvinces\",\"prop\":\"serverSuperAdminArea\"},{\"name\":\"clientCities\",\"i18n\":\"network.clientCities\",\"prop\":\"clientAdminArea\"},{\"name\":\"serverCities\",\"i18n\":\"network.serverCities\",\"prop\":\"serverAdminArea\"},{\"name\":\"clientIsps\",\"i18n\":\"network.clientIsps\",\"prop\":\"clientIsp\"},{\"name\":\"serverIsps\",\"i18n\":\"network.serverIsps\",\"prop\":\"serverIsp\"},{\"name\":\"clientAsns\",\"i18n\":\"network.clientAsns\",\"prop\":\"clientAsn\"},{\"name\":\"serverAsns\",\"i18n\":\"network.serverAsns\",\"prop\":\"serverAsn\"}],\"columns\":[{\"name\":\"score\",\"i18n\":\"network.score\",\"prop\":\"score\",\"columnType\":\"normal\"},{\"name\":\"through\",\"i18n\":\"networkAppPerformance.throughput\",\"prop\":\"totalBytes\",\"columnType\":\"chainRatio\",\"unit\":\"byte\"},{\"name\":\"tcpConEstLatency\",\"i18n\":\"networkAppPerformance.tcpConnectionEstablishLatency\",\"prop\":\"tcpConEstLatency\",\"columnType\":\"chainRatio\",\"unit\":\"time\"},{\"name\":\"packetLoss\",\"i18n\":\"networkAppPerformance.packetLoss\",\"prop\":\"packetLoss\",\"columnType\":\"chainRatio\",\"unit\":\"percent\"},{\"name\":\"packetRetrans\",\"i18n\":\"networkAppPerformance.packetRetrans\",\"prop\":\"packetRetrans\",\"columnType\":\"chainRatio\",\"unit\":\"percent\"},{\"name\":\"sslResponseLatency\",\"i18n\":\"networkAppPerformance.sslResponseLatency\",\"prop\":\"sslResponseLatency\",\"columnType\":\"chainRatio\",\"unit\":\"time\"},{\"name\":\"httpResponseLatency\",\"i18n\":\"networkAppPerformance.httpResponseLatency\",\"prop\":\"httpResponseLatency\",\"columnType\":\"chainRatio\",\"unit\":\"time\"},{\"name\":\"ips\",\"i18n\":\"network.ip\",\"prop\":\"ip\",\"columnType\":\"dillDown\"},{\"name\":\"countries\",\"i18n\":\"network.country\",\"prop\":\"countryRegion\",\"columnType\":\"dillDown\"},{\"name\":\"asns\",\"i18n\":\"network.asn\",\"prop\":\"asn\",\"columnType\":\"dillDown\"},{\"name\":\"apps\",\"i18n\":\"network.application\",\"prop\":\"appLabel\",\"columnType\":\"dillDown\"},{\"name\":\"providers\",\"i18n\":\"network.provider\",\"prop\":\"appCompany\",\"columnType\":\"dillDown\"},{\"name\":\"domains\",\"i18n\":\"network.domain\",\"prop\":\"domain\",\"columnType\":\"dillDown\"},{\"name\":\"secondLevelDomains\",\"i18n\":\"network.secondLevelDomain\",\"prop\":\"domainSld\",\"columnType\":\"dillDown\"},{\"name\":\"protocols\",\"i18n\":\"network.protocol\",\"prop\":\"l7Protocol\",\"columnType\":\"dillDown\"},{\"name\":\"regions\",\"i18n\":\"network.region\",\"prop\":\"superAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"cities\",\"i18n\":\"network.city\",\"prop\":\"adminArea\",\"columnType\":\"dillDown\"},{\"name\":\"isps\",\"i18n\":\"network.isp\",\"prop\":\"isp\",\"columnType\":\"dillDown\"},{\"name\":\"applicationCategories\",\"i18n\":\"network.applicationCategory\",\"prop\":\"appSubcategory\",\"columnType\":\"dillDown\"},{\"name\":\"domainCategories\",\"i18n\":\"network.domainCategory\",\"prop\":\"domainCategoryName\",\"columnType\":\"dillDown\"},{\"name\":\"hosts\",\"i18n\":\"network.host\",\"prop\":\"httpHost\",\"columnType\":\"dillDown\"},{\"name\":\"protocolPorts\",\"i18n\":\"network.protocolPort\",\"prop\":\"protocolPort\",\"columnType\":\"dillDown\"},{\"name\":\"clientIps\",\"i18n\":\"network.clientIp\",\"prop\":\"clientIp\",\"columnType\":\"dillDown\"},{\"name\":\"serverIps\",\"i18n\":\"network.serverIp\",\"prop\":\"serverIp\",\"columnType\":\"dillDown\"},{\"name\":\"clientCountries\",\"i18n\":\"network.clientCountry\",\"prop\":\"clientCountryRegion\",\"columnType\":\"dillDown\"},{\"name\":\"serverCountries\",\"i18n\":\"network.serverCountry\",\"prop\":\"serverCountryRegion\",\"columnType\":\"dillDown\"},{\"name\":\"clientProvinces\",\"i18n\":\"network.clientProvince\",\"prop\":\"clientSuperAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"serverProvinces\",\"i18n\":\"network.serverProvince\",\"prop\":\"serverSuperAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"clientCities\",\"i18n\":\"network.clientCity\",\"prop\":\"clientAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"serverCities\",\"i18n\":\"network.serverCity\",\"prop\":\"serverAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"clientIsps\",\"i18n\":\"network.clientIsp\",\"prop\":\"clientIsp\",\"columnType\":\"dillDown\"},{\"name\":\"serverIsps\",\"i18n\":\"network.serverIsp\",\"prop\":\"serverIsp\",\"columnType\":\"dillDown\"},{\"name\":\"clientAsns\",\"i18n\":\"network.clientAsn\",\"prop\":\"clientAsn\",\"columnType\":\"dillDown\"},{\"name\":\"serverAsns\",\"i18n\":\"network.serverAsn\",\"prop\":\"serverAsn\",\"columnType\":\"dillDown\"}]},{\"route\":\"dnsServiceInsights\",\"tables\":[{\"id\":\"dnsServiceInsights\",\"hiddenColumns\":[],\"disabledColumns\":[],\"url\":{\"curUrl\":\"/interface/dns/overview/dimensionAnalysis\",\"cycleUrl\":\"/interface/dns/overview/dimensionCycleAnalysis\",\"drilldownCurUrl\":\"/interface/dns/overview/drilldown/dimensionAnalysis\",\"drilldownCycleUrl\":\"/interface/dns/overview/drilldown/dimensionCycleAnalysis\",\"drilldownList\":\"/interface/dns/overview/drilldown/list\"},\"hasMetricSearch\":false,\"isOnlyRead\":false,\"panelId\":3,\"panelIdOfThirdMenu\":17,\"showUnit\":true,\"tabs\":[{\"name\":\"dnsServer\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"dnsServer\",\"queries\",\"queriesFromIE\",\"responseTime\",\"throughput\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[],\"disabledDrilldownTabs\":[]},{\"name\":\"countries\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"countries\",\"queries\",\"queriesFromIE\",\"responseTime\",\"throughput\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"countries\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"disabledDrilldownTabs\":[\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"]},{\"name\":\"cities\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"cities\",\"queries\",\"queriesFromIE\",\"responseTime\",\"throughput\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"cities\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"disabledDrilldownTabs\":[\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"]},{\"name\":\"isps\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"isps\",\"queries\",\"queriesFromIE\",\"responseTime\",\"throughput\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"isps\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"disabledDrilldownTabs\":[\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"]},{\"name\":\"roles\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"roles\",\"queries\",\"queriesFromIE\",\"responseTime\",\"throughput\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"disabledDrilldownTabs\":[\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"]},{\"name\":\"qnames\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"qnames\",\"queries\",\"queriesFromIE\",\"responseTime\",\"throughput\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"qnames\"],\"disabledDrilldownTabs\":[]},{\"name\":\"slds\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"slds\",\"queries\",\"queriesFromIE\",\"responseTime\",\"throughput\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"slds\"],\"disabledDrilldownTabs\":[]},{\"name\":\"tlds\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"tlds\",\"queries\",\"queriesFromIE\",\"responseTime\",\"throughput\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"tlds\"],\"disabledDrilldownTabs\":[]},{\"name\":\"qtypes\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"qtypes\",\"queries\",\"queriesFromIE\",\"responseTime\",\"throughput\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"qtypes\",\"a\",\"aaaa\",\"cnames\"],\"disabledDrilldownTabs\":[\"a\",\"aaaa\",\"cnames\"]},{\"name\":\"rcodes\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"rcodes\",\"queries\",\"queriesFromIE\",\"responseTime\",\"throughput\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"disabledDrilldownTabs\":[\"a\",\"aaaa\",\"cnames\"]},{\"name\":\"a\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"a\",\"queries\",\"queriesFromIE\",\"responseTime\",\"throughput\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"disabledDrilldownTabs\":[\"qtypes\",\"rcodes\",\"aaaa\",\"cnames\"]},{\"name\":\"aaaa\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"aaaa\",\"queries\",\"queriesFromIE\",\"responseTime\",\"throughput\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"disabledDrilldownTabs\":[\"qtypes\",\"rcodes\",\"a\",\"cnames\"]},{\"name\":\"cnames\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":16,\"columns\":[\"cnames\",\"queries\",\"queriesFromIE\",\"responseTime\",\"throughput\"],\"drilldownTabs\":[\"dnsServer\",\"countries\",\"cities\",\"isps\",\"roles\",\"qnames\",\"slds\",\"tlds\",\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"hiddenDrilldownTabs\":[\"qtypes\",\"rcodes\",\"a\",\"aaaa\",\"cnames\"],\"disabledDrilldownTabs\":[\"qtypes\",\"rcodes\",\"a\",\"aaaa\"]}]}],\"tabs\":[{\"name\":\"dnsServer\",\"i18n\":\"dns.dnsServer\",\"prop\":\"dnsServer\"},{\"name\":\"countries\",\"i18n\":\"network.countries\",\"prop\":\"countryRegion\"},{\"name\":\"cities\",\"i18n\":\"network.cities\",\"prop\":\"adminArea\"},{\"name\":\"isps\",\"i18n\":\"dns.dnsServerIsps\",\"prop\":\"dnsServerIsp\"},{\"name\":\"roles\",\"i18n\":\"dns.dnsServerRoles\",\"prop\":\"dnsServerRole\"},{\"name\":\"qnames\",\"i18n\":\"QNames\",\"prop\":\"qname\"},{\"name\":\"slds\",\"i18n\":\"SLDs\",\"prop\":\"sld\"},{\"name\":\"tlds\",\"i18n\":\"TLDs\",\"prop\":\"tld\"},{\"name\":\"qtypes\",\"i18n\":\"QTypes\",\"prop\":\"qtype\"},{\"name\":\"rcodes\",\"i18n\":\"RCodes\",\"prop\":\"rcode\"},{\"name\":\"a\",\"i18n\":\"A\",\"prop\":\"a\"},{\"name\":\"aaaa\",\"i18n\":\"AAAA\",\"prop\":\"aaaa\"},{\"name\":\"cnames\",\"i18n\":\"CNames\",\"prop\":\"cname\"}],\"columns\":[{\"name\":\"queries\",\"i18n\":\"dns.queries\",\"prop\":\"queryRate\",\"columnType\":\"chainRatio\",\"unit\":\"qps\"},{\"name\":\"queriesFromIE\",\"i18n\":\"dns.queriesFromIE\",\"prop\":\"totalInExNum\",\"columnType\":\"percent\"},{\"name\":\"responseTime\",\"i18n\":\"dns.dnsResponseTime\",\"prop\":\"dnsResponseLatencyAvg\",\"columnType\":\"normal\",\"unit\":\"time\"},{\"name\":\"throughput\",\"i18n\":\"overall.throughput\",\"prop\":\"totalBytes\",\"columnType\":\"normal\",\"unit\":\"byte\"},{\"name\":\"dnsServer\",\"i18n\":\"dns.dnsServer\",\"prop\":\"dnsServer\",\"columnType\":\"dillDown\"},{\"name\":\"countries\",\"i18n\":\"network.country\",\"prop\":\"countryRegion\",\"columnType\":\"dillDown\"},{\"name\":\"cities\",\"i18n\":\"network.city\",\"prop\":\"adminArea\",\"columnType\":\"dillDown\"},{\"name\":\"isps\",\"i18n\":\"dns.dnsServerIsp\",\"prop\":\"dnsServerIsp\",\"columnType\":\"dillDown\"},{\"name\":\"roles\",\"i18n\":\"dns.dnsServerRole\",\"prop\":\"dnsServerRole\",\"columnType\":\"dillDown\"},{\"name\":\"qnames\",\"i18n\":\"QName\",\"prop\":\"qname\",\"columnType\":\"dillDown\"},{\"name\":\"slds\",\"i18n\":\"SLD\",\"prop\":\"sld\",\"columnType\":\"dillDown\"},{\"name\":\"tlds\",\"i18n\":\"TLD\",\"prop\":\"tld\",\"columnType\":\"dillDown\"},{\"name\":\"qtypes\",\"i18n\":\"QType\",\"prop\":\"qtype\",\"columnType\":\"dillDown\"},{\"name\":\"rcodes\",\"i18n\":\"RCode\",\"prop\":\"rcode\",\"columnType\":\"dillDown\"},{\"name\":\"a\",\"i18n\":\"A\",\"prop\":\"a\",\"columnType\":\"dillDown\"},{\"name\":\"aaaa\",\"i18n\":\"AAAA\",\"prop\":\"aaaa\",\"columnType\":\"dillDown\"},{\"name\":\"cnames\",\"i18n\":\"CName\",\"prop\":\"cname\",\"columnType\":\"dillDown\"}]},{\"route\":\"linkMonitor\",\"tables\":[{\"id\":\"linkMonitor\",\"hiddenColumns\":[\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"disabledColumns\":[],\"url\":{\"curUrl\":\"/interface/link/overview/drilldown/dimension/analysis\",\"cycleUrl\":\"/interface/link/overview/drilldown/dimension/cycleAnalysis\",\"drilldownCurUrl\":\"/interface/link/overview/drilldown/dimension/analysis\",\"drilldownCycleUrl\":\"/interface/link/overview/drilldown/dimension/cycleAnalysis\",\"drilldownList\":\"\"},\"hasMetricSearch\":false,\"isOnlyRead\":true,\"panelId\":4,\"panelIdOfThirdMenu\":15,\"showUnit\":true,\"tabs\":[{\"name\":\"ips\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"ips\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"ips\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"countries\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"countries\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"countries\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"asns\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"asns\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"asns\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"apps\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"apps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"apps\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"providers\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"providers\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"providers\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"domains\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"domains\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"domains\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"secondLevelDomains\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"secondLevelDomains\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"secondLevelDomains\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"protocols\",\"show\":true,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"protocols\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"regions\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"regions\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"cities\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"cities\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"isps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"isps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"applicationCategories\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"applicationCategories\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"domainCategories\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"domainCategories\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"protocolPorts\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"protocolPorts\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientIps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"clientIps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverIps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"serverIps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientCountries\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"clientCountries\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverCountries\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"serverCountries\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientProvinces\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"clientProvinces\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverProvinces\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"serverProvinces\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientCities\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"clientCities\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverCities\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"serverCities\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientIsps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"clientIsps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverIsps\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"serverIsps\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"clientAsns\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"clientAsns\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]},{\"name\":\"serverAsns\",\"show\":false,\"enable\":true,\"panelIdOfFourthMenu\":15,\"columns\":[\"serverAsns\",\"score\",\"through\",\"tcpConEstLatency\",\"packetLoss\",\"packetRetrans\",\"sslResponseLatency\",\"httpResponseLatency\"],\"drilldownTabs\":[\"ips\",\"countries\",\"asns\",\"apps\",\"providers\",\"domains\",\"secondLevelDomains\",\"protocols\",\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"hiddenDrilldownTabs\":[\"regions\",\"cities\",\"isps\",\"applicationCategories\",\"domainCategories\",\"protocolPorts\",\"clientIps\",\"serverIps\",\"clientCountries\",\"serverCountries\",\"clientProvinces\",\"serverProvinces\",\"clientCities\",\"serverCities\",\"clientIsps\",\"serverIsps\",\"clientAsns\",\"serverAsns\"],\"disabledDrilldownTabs\":[]}]}],\"tabs\":[{\"name\":\"ips\",\"i18n\":\"network.ips\",\"prop\":\"ip\"},{\"name\":\"countries\",\"i18n\":\"network.countries\",\"prop\":\"country\"},{\"name\":\"asns\",\"i18n\":\"network.asns\",\"prop\":\"asn\"},{\"name\":\"apps\",\"i18n\":\"network.applications\",\"prop\":\"appLabel\"},{\"name\":\"providers\",\"i18n\":\"network.providers\",\"prop\":\"appCompany\"},{\"name\":\"domains\",\"i18n\":\"network.domains\",\"prop\":\"domain\"},{\"name\":\"secondLevelDomains\",\"i18n\":\"network.secondLevelDomains\",\"prop\":\"domainSld\"},{\"name\":\"protocols\",\"i18n\":\"network.protocols\",\"prop\":\"l7Protocol\"},{\"name\":\"regions\",\"i18n\":\"network.regions\",\"prop\":\"superAdminArea\"},{\"name\":\"cities\",\"i18n\":\"network.cities\",\"prop\":\"city\"},{\"name\":\"isps\",\"i18n\":\"network.isps\",\"prop\":\"isp\"},{\"name\":\"applicationCategories\",\"i18n\":\"network.applicationCategories\",\"prop\":\"appSubcategory\"},{\"name\":\"domainCategories\",\"i18n\":\"network.domainCategories\",\"prop\":\"domainCategoryName\"},{\"name\":\"hosts\",\"i18n\":\"network.hosts\",\"prop\":\"httpHost\"},{\"name\":\"protocolPorts\",\"i18n\":\"network.protocolPorts\",\"prop\":\"protocolPort\"},{\"name\":\"clientIps\",\"i18n\":\"network.clientIps\",\"prop\":\"clientIp\"},{\"name\":\"serverIps\",\"i18n\":\"network.serverIps\",\"prop\":\"serverIp\"},{\"name\":\"clientCountries\",\"i18n\":\"network.clientCountries\",\"prop\":\"clientCountry\"},{\"name\":\"serverCountries\",\"i18n\":\"network.serverCountries\",\"prop\":\"serverCountry\"},{\"name\":\"clientProvinces\",\"i18n\":\"network.clientProvinces\",\"prop\":\"clientProvince\"},{\"name\":\"serverProvinces\",\"i18n\":\"network.serverProvinces\",\"prop\":\"serverProvince\"},{\"name\":\"clientCities\",\"i18n\":\"network.clientCities\",\"prop\":\"clientCity\"},{\"name\":\"serverCities\",\"i18n\":\"network.serverCities\",\"prop\":\"serverCity\"},{\"name\":\"clientIsps\",\"i18n\":\"network.clientIsps\",\"prop\":\"clientIsp\"},{\"name\":\"serverIsps\",\"i18n\":\"network.serverIsps\",\"prop\":\"serverIsp\"},{\"name\":\"clientAsns\",\"i18n\":\"network.clientAsns\",\"prop\":\"clientAsn\"},{\"name\":\"serverAsns\",\"i18n\":\"network.serverAsns\",\"prop\":\"serverAsn\"}],\"columns\":[{\"name\":\"score\",\"i18n\":\"network.score\",\"prop\":\"score\",\"columnType\":\"normal\"},{\"name\":\"through\",\"i18n\":\"networkAppPerformance.throughput\",\"prop\":\"totalBytes\",\"columnType\":\"chainRatio\",\"unit\":\"byte\"},{\"name\":\"tcpConEstLatency\",\"i18n\":\"networkAppPerformance.tcpConnectionEstablishLatency\",\"prop\":\"tcpConEstLatency\",\"columnType\":\"chainRatio\",\"unit\":\"time\"},{\"name\":\"packetLoss\",\"i18n\":\"networkAppPerformance.packetLoss\",\"prop\":\"packetLoss\",\"columnType\":\"chainRatio\",\"unit\":\"percent\"},{\"name\":\"packetRetrans\",\"i18n\":\"networkAppPerformance.packetRetrans\",\"prop\":\"packetRetrans\",\"columnType\":\"chainRatio\",\"unit\":\"percent\"},{\"name\":\"sslResponseLatency\",\"i18n\":\"networkAppPerformance.sslResponseLatency\",\"prop\":\"sslResponseLatency\",\"columnType\":\"chainRatio\",\"unit\":\"time\"},{\"name\":\"httpResponseLatency\",\"i18n\":\"networkAppPerformance.httpResponseLatency\",\"prop\":\"httpResponseLatency\",\"columnType\":\"chainRatio\",\"unit\":\"time\"},{\"name\":\"ips\",\"i18n\":\"network.ip\",\"prop\":\"ip\",\"columnType\":\"dillDown\"},{\"name\":\"countries\",\"i18n\":\"network.country\",\"prop\":\"country\",\"columnType\":\"dillDown\"},{\"name\":\"asns\",\"i18n\":\"network.asn\",\"prop\":\"asn\",\"columnType\":\"dillDown\"},{\"name\":\"apps\",\"i18n\":\"network.application\",\"prop\":\"appLabel\",\"columnType\":\"dillDown\"},{\"name\":\"providers\",\"i18n\":\"network.provider\",\"prop\":\"appCompany\",\"columnType\":\"dillDown\"},{\"name\":\"domains\",\"i18n\":\"network.domain\",\"prop\":\"domain\",\"columnType\":\"dillDown\"},{\"name\":\"secondLevelDomains\",\"i18n\":\"network.secondLevelDomain\",\"prop\":\"domainSld\",\"columnType\":\"dillDown\"},{\"name\":\"protocols\",\"i18n\":\"network.protocol\",\"prop\":\"l7Protocol\",\"columnType\":\"dillDown\"},{\"name\":\"regions\",\"i18n\":\"network.region\",\"prop\":\"superAdminArea\",\"columnType\":\"dillDown\"},{\"name\":\"cities\",\"i18n\":\"network.city\",\"prop\":\"city\",\"columnType\":\"dillDown\"},{\"name\":\"isps\",\"i18n\":\"network.isp\",\"prop\":\"isp\",\"columnType\":\"dillDown\"},{\"name\":\"applicationCategories\",\"i18n\":\"network.applicationCategory\",\"prop\":\"appSubcategory\",\"columnType\":\"dillDown\"},{\"name\":\"domainCategories\",\"i18n\":\"network.domainCategory\",\"prop\":\"domainCategoryName\",\"columnType\":\"dillDown\"},{\"name\":\"hosts\",\"i18n\":\"network.host\",\"prop\":\"httpHost\",\"columnType\":\"dillDown\"},{\"name\":\"protocolPorts\",\"i18n\":\"network.protocolPort\",\"prop\":\"protocolPort\",\"columnType\":\"dillDown\"},{\"name\":\"clientIps\",\"i18n\":\"network.clientIp\",\"prop\":\"clientIp\",\"columnType\":\"dillDown\"},{\"name\":\"serverIps\",\"i18n\":\"network.serverIp\",\"prop\":\"serverIp\",\"columnType\":\"dillDown\"},{\"name\":\"clientCountries\",\"i18n\":\"network.clientCountry\",\"prop\":\"clientCountry\",\"columnType\":\"dillDown\"},{\"name\":\"serverCountries\",\"i18n\":\"network.serverCountry\",\"prop\":\"serverCountry\",\"columnType\":\"dillDown\"},{\"name\":\"clientProvinces\",\"i18n\":\"network.clientProvince\",\"prop\":\"clientProvince\",\"columnType\":\"dillDown\"},{\"name\":\"serverProvinces\",\"i18n\":\"network.serverProvince\",\"prop\":\"serverProvince\",\"columnType\":\"dillDown\"},{\"name\":\"clientCities\",\"i18n\":\"network.clientCity\",\"prop\":\"clientCity\",\"columnType\":\"dillDown\"},{\"name\":\"serverCities\",\"i18n\":\"network.serverCity\",\"prop\":\"serverCity\",\"columnType\":\"dillDown\"},{\"name\":\"clientIsps\",\"i18n\":\"network.clientIsp\",\"prop\":\"clientIsp\",\"columnType\":\"dillDown\"},{\"name\":\"serverIsps\",\"i18n\":\"network.serverIsp\",\"prop\":\"serverIsp\",\"columnType\":\"dillDown\"},{\"name\":\"clientAsns\",\"i18n\":\"network.clientAsn\",\"prop\":\"clientAsn\",\"columnType\":\"dillDown\"},{\"name\":\"serverAsns\",\"i18n\":\"network.serverAsn\",\"prop\":\"serverAsn\",\"columnType\":\"dillDown\"}]}]}', 1, '下钻table配置'); INSERT INTO `sys_config` VALUES (33, 'knowledge_import_config_json', '{\"cn_app_tag_user_defined\":{\"headers\":\"app_name,tag_value,is_valid\",\"validateColumn\":\"app_name\",\"infos\":[{\"name\":\"tag_value\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"app_name\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"is_valid\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":2}]},\"cn_domain_tag_user_defined\":{\"headers\":\"tag_value,domain,is_valid\",\"validateColumn\":\"domain\",\"infos\":[{\"name\":\"tag_value\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"domain\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"is_valid\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":2}]},\"cn_ip_tag_user_defined\":{\"headers\":\"tag_value,addr_format,ip1,ip2,is_valid\",\"validateColumn\":\"addr_format,ip1,ip2\",\"infos\":[{\"name\":\"tag_value\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"addr_format\",\"checkType\":\"none\",\"validateVal\":[\"Single\",\"Range\",\"CIDR\"],\"index\":1},{\"name\":\"ip1\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"ip2\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"is_valid\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":4}]},\"cn_psiphon3_ip\":{\"headers\":\"addr_format,ip1,ip2,type,method,confidence,confidence_level,is_valid\",\"validateColumn\":\"addr_format,ip1,ip2\",\"infos\":[{\"name\":\"addr_format\",\"checkType\":\"none\",\"validateVal\":[\"Single\",\"Range\",\"CIDR\"],\"index\":0},{\"name\":\"ip1\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"ip2\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"type\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":3},{\"name\":\"method\",\"checkType\":\"none\",\"validateVal\":[\"passive_ml\",\"passive_sig\",\"acitve_probe\",\"third_api\"],\"index\":4},{\"name\":\"confidence\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"100\"],\"index\":5},{\"name\":\"confidence_level\",\"checkType\":\"none\",\"validateVal\":[\"confirmed\",\"suspect\",\"tentative\"],\"index\":6},{\"name\":\"is_valid\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":7}]},\"cn_ioc_darkweb\":{\"headers\":\"ioc_value,ioc_type,node_type,ipv6,isp,asn,operating_system,country,city,latitude,longtitude,tor_fingerprint,tor_dir_port,tor_or_port,tor_flags,tor_version,tor_nickname,tor_exit_policy,i2p_hash,i2p_method,i2p_version,i2p_is_floodfill,i2p_bandwidth,i2p_is_hidden,i2p_is_reachable,i2p_publish_time,mtproxy_port,mtproxy_secret,obfs4_port,obfs4_fingerprint,obfs4_cert,obfs4_iat_mode,snowflake_port,first_appear_time,last_appear_time\",\"validateColumn\":\"ioc_value,ioc_type\",\"infos\":[{\"name\":\"ioc_value\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"ioc_type\",\"checkType\":\"none\",\"validateVal\":[\"ip\",\"domain\"],\"index\":1},{\"name\":\"node_type\",\"checkType\":\"none\",\"validateVal\":[\"tor\",\"i2p\",\"mtproxy\",\"obfs4\",\"snowflake\",\"generalbridge\"],\"index\":2},{\"name\":\"ipv6\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"isp\",\"checkType\":\"none\",\"validateVal\":[],\"index\":4},{\"name\":\"asn\",\"checkType\":\"none\",\"validateVal\":[],\"index\":5},{\"name\":\"operating_system\",\"checkType\":\"none\",\"validateVal\":[],\"index\":6},{\"name\":\"country\",\"checkType\":\"none\",\"validateVal\":[],\"index\":7},{\"name\":\"city\",\"checkType\":\"none\",\"validateVal\":[],\"index\":8},{\"name\":\"latitude\",\"checkType\":\"none\",\"validateVal\":[],\"index\":9},{\"name\":\"longtitude\",\"checkType\":\"none\",\"validateVal\":[],\"index\":10},{\"name\":\"tor_fingerprint\",\"checkType\":\"none\",\"validateVal\":[],\"index\":11},{\"name\":\"tor_dir_port\",\"checkType\":\"none\",\"validateVal\":[],\"index\":12},{\"name\":\"tor_or_port\",\"checkType\":\"none\",\"validateVal\":[],\"index\":13},{\"name\":\"tor_flags\",\"checkType\":\"none\",\"validateVal\":[],\"index\":14},{\"name\":\"tor_version\",\"checkType\":\"none\",\"validateVal\":[],\"index\":15},{\"name\":\"tor_nickname\",\"checkType\":\"none\",\"validateVal\":[],\"index\":16},{\"name\":\"tor_exit_policy\",\"checkType\":\"none\",\"validateVal\":[],\"index\":17},{\"name\":\"i2p_hash\",\"checkType\":\"none\",\"validateVal\":[],\"index\":18},{\"name\":\"i2p_method\",\"checkType\":\"none\",\"validateVal\":[],\"index\":19},{\"name\":\"i2p_version\",\"checkType\":\"none\",\"validateVal\":[],\"index\":20},{\"name\":\"i2p_is_floodfill\",\"checkType\":\"none\",\"validateVal\":[],\"index\":21},{\"name\":\"i2p_bandwidth\",\"checkType\":\"none\",\"validateVal\":[],\"index\":22},{\"name\":\"i2p_is_hidden\",\"checkType\":\"none\",\"validateVal\":[],\"index\":23},{\"name\":\"i2p_is_reachable\",\"checkType\":\"none\",\"validateVal\":[],\"index\":24},{\"name\":\"i2p_publish_time\",\"checkType\":\"none\",\"validateVal\":[],\"index\":25},{\"name\":\"mtproxy_port\",\"checkType\":\"none\",\"validateVal\":[],\"index\":26},{\"name\":\"mtproxy_secret\",\"checkType\":\"none\",\"validateVal\":[],\"index\":27},{\"name\":\"obfs4_port\",\"checkType\":\"none\",\"validateVal\":[],\"index\":28},{\"name\":\"obfs4_fingerprint\",\"checkType\":\"none\",\"validateVal\":[],\"index\":29},{\"name\":\"obfs4_cert\",\"checkType\":\"none\",\"validateVal\":[],\"index\":30},{\"name\":\"obfs4_iat_mode\",\"checkType\":\"none\",\"validateVal\":[],\"index\":31},{\"name\":\"snowflake_port\",\"checkType\":\"none\",\"validateVal\":[],\"index\":32},{\"name\":\"first_appear_time\",\"checkType\":\"none\",\"validateVal\":[],\"index\":33},{\"name\":\"last_appear_time\",\"checkType\":\"none\",\"validateVal\":[],\"index\":34}]},\"cn_ioc_malware\":{\"headers\":\"ioc_value,ioc_type,threat_type,malware_name,malware_alias,mitre_attack_description,mitre_attack_platforms,mitre_attack_techniques,mitre_attack_groups,confidence_level,reference,source,first_report_time,last_seen_time\",\"validateColumn\":\"ioc_value,ioc_type\",\"infos\":[{\"name\":\"ioc_value\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"ioc_type\",\"checkType\":\"none\",\"validateVal\":[\"ip\",\"domain\",\"url\"],\"index\":1},{\"name\":\"threat_type\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"malware_name\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"malware_alias\",\"checkType\":\"none\",\"validateVal\":[],\"index\":4},{\"name\":\"mitre_attack_description\",\"checkType\":\"none\",\"validateVal\":[],\"index\":5},{\"name\":\"mitre_attack_platforms\",\"checkType\":\"none\",\"validateVal\":[],\"index\":6},{\"name\":\"mitre_attack_techniques\",\"checkType\":\"none\",\"validateVal\":[],\"index\":7},{\"name\":\"mitre_attack_groups\",\"checkType\":\"none\",\"validateVal\":[],\"index\":8},{\"name\":\"confidence_level\",\"checkType\":\"none\",\"validateVal\":[],\"index\":9},{\"name\":\"reference\",\"checkType\":\"none\",\"validateVal\":[],\"index\":10},{\"name\":\"source\",\"checkType\":\"none\",\"validateVal\":[],\"index\":11},{\"name\":\"first_report_time\",\"checkType\":\"none\",\"validateVal\":[],\"index\":12},{\"name\":\"last_seen_time\",\"checkType\":\"none\",\"validateVal\":[],\"index\":13}]},\"cn_app_category_built_in\":{\"headers\":\"app_name,app_id,app_category,app_subcategory,app_risk,app_description,app_longname,app_technology,app_is_protocol,app_company,app_company_category,is_valid\",\"validateColumn\":\"app_name\",\"infos\":[{\"name\":\"app_name\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"app_id\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"app_category\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"app_subcategory\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"app_risk\",\"checkType\":\"none\",\"validateVal\":[],\"index\":4},{\"name\":\"app_description\",\"checkType\":\"none\",\"validateVal\":[],\"index\":5},{\"name\":\"app_longname\",\"checkType\":\"none\",\"validateVal\":[],\"index\":6},{\"name\":\"app_technology\",\"checkType\":\"none\",\"validateVal\":[],\"index\":7},{\"name\":\"app_is_protocol\",\"checkType\":\"none\",\"validateVal\":[],\"index\":8},{\"name\":\"app_company\",\"checkType\":\"none\",\"validateVal\":[],\"index\":9},{\"name\":\"app_company_category\",\"checkType\":\"none\",\"validateVal\":[],\"index\":10},{\"name\":\"is_valid\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":11}]},\"cn_fqdn_icp_built_in\":{\"headers\":\"fqdn,source,query_success,is_accessible,status_code,match_pattern,icp_owner,icp_company_name,icp_company_type,icp_main_page,icp_site_license,icp_site_name,icp_verify_time\",\"validateColumn\":\"fqdn\",\"infos\":[{\"name\":\"fqdn\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"source\",\"checkType\":\"none\",\"validateVal\":[\"chinaz\"],\"index\":1},{\"name\":\"query_success\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"is_accessible\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"status_code\",\"checkType\":\"none\",\"validateVal\":[],\"index\":4},{\"name\":\"match_pattern\",\"checkType\":\"none\",\"validateVal\":[],\"index\":5},{\"name\":\"icp_owner\",\"checkType\":\"none\",\"validateVal\":[],\"index\":6},{\"name\":\"icp_company_name\",\"checkType\":\"none\",\"validateVal\":[],\"index\":7},{\"name\":\"icp_company_type\",\"checkType\":\"none\",\"validateVal\":[],\"index\":8},{\"name\":\"icp_main_page\",\"checkType\":\"none\",\"validateVal\":[],\"index\":9},{\"name\":\"icp_site_license\",\"checkType\":\"none\",\"validateVal\":[],\"index\":10},{\"name\":\"icp_site_name\",\"checkType\":\"none\",\"validateVal\":[],\"index\":11},{\"name\":\"icp_verify_time\",\"checkType\":\"none\",\"validateVal\":[],\"index\":12}]},\"cn_fqdn_who_is_built_in\":{\"headers\":\"fqdn,source,query_success,status_code,match_pattern,whois_domain,whois_update_date,whois_create_date,whois_expire_date,whois_email,whois_ns,whois_registrar_name,whois_registrant_org,whois_registrant_name,whois_registrant_street,whois_registrant_city,whois_registrant_state,whois_registrant_postcode,whois_registrant_country,whois_registrant_phone\",\"validateColumn\":\"fqdn\",\"infos\":[{\"name\":\"fqdn\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"source\",\"checkType\":\"none\",\"validateVal\":[\"chinaz\",\"brightcloud\"],\"index\":1},{\"name\":\"query_success\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"status_code\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"match_pattern\",\"checkType\":\"none\",\"validateVal\":[\"1\",\"2\"],\"index\":4},{\"name\":\"whois_domain\",\"checkType\":\"none\",\"validateVal\":[],\"index\":5},{\"name\":\"whois_update_date\",\"checkType\":\"none\",\"validateVal\":[],\"index\":6},{\"name\":\"whois_create_date\",\"checkType\":\"none\",\"validateVal\":[],\"index\":7},{\"name\":\"whois_expire_date\",\"checkType\":\"none\",\"validateVal\":[],\"index\":8},{\"name\":\"whois_email\",\"checkType\":\"none\",\"validateVal\":[],\"index\":9},{\"name\":\"whois_ns\",\"checkType\":\"none\",\"validateVal\":[],\"index\":10},{\"name\":\"whois_registrar_name\",\"checkType\":\"none\",\"validateVal\":[],\"index\":11},{\"name\":\"whois_registrant_org\",\"checkType\":\"none\",\"validateVal\":[],\"index\":12},{\"name\":\"whois_registrant_name\",\"checkType\":\"none\",\"validateVal\":[],\"index\":13},{\"name\":\"whois_registrant_street\",\"checkType\":\"none\",\"validateVal\":[],\"index\":14},{\"name\":\"whois_registrant_city\",\"checkType\":\"none\",\"validateVal\":[],\"index\":15},{\"name\":\"whois_registrant_state\",\"checkType\":\"none\",\"validateVal\":[],\"index\":16},{\"name\":\"whois_registrant_postcode\",\"checkType\":\"none\",\"validateVal\":[],\"index\":17},{\"name\":\"whois_registrant_country\",\"checkType\":\"none\",\"validateVal\":[],\"index\":18},{\"name\":\"whois_registrant_phone\",\"checkType\":\"none\",\"validateVal\":[],\"index\":19}]},\"cn_fqdn_category_built_in\":{\"headers\":\"fqdn,source,query_success,match_pattern,reputation_score,reputation_level,category_id,category_name,category_group,category_conf,is_a1_cat,status_code,submit_user\",\"validateColumn\":\"fqdn\",\"infos\":[{\"name\":\"fqdn\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"source\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"query_success\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"match_pattern\",\"checkType\":\"none\",\"validateVal\":[\"1\",\"2\"],\"index\":3},{\"name\":\"reputation_score\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"100\"],\"index\":4},{\"name\":\"reputation_level\",\"checkType\":\"none\",\"validateVal\":[],\"index\":5},{\"name\":\"category_id\",\"checkType\":\"none\",\"validateVal\":[],\"index\":6},{\"name\":\"category_name\",\"checkType\":\"none\",\"validateVal\":[],\"index\":7},{\"name\":\"category_group\",\"checkType\":\"none\",\"validateVal\":[],\"index\":8},{\"name\":\"category_conf\",\"checkType\":\"none\",\"validateVal\":[],\"index\":9},{\"name\":\"is_a1_cat\",\"checkType\":\"none\",\"validateVal\":[],\"index\":10},{\"name\":\"status_code\",\"checkType\":\"none\",\"validateVal\":[],\"index\":11},{\"name\":\"submit_user\",\"checkType\":\"none\",\"validateVal\":[],\"index\":12}]},\"cn_ip_location_built_in\":{\"headers\":\"addr_type,start_ip,end_ip,minip,maxip,continent,areacode,country,province,city,lngwgs,latwgs,owner,isp,asnumber,timezone,is_valid\",\"validateColumn\":\"minip,maxip\",\"infos\":[{\"name\":\"addr_type\",\"checkType\":\"none\",\"validateVal\":[\"4\",\"6\"],\"index\":0},{\"name\":\"start_ip\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"end_ip\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"minip\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"maxip\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"continent\",\"checkType\":\"none\",\"validateVal\":[],\"index\":4},{\"name\":\"areacode\",\"checkType\":\"none\",\"validateVal\":[],\"index\":5},{\"name\":\"country\",\"checkType\":\"none\",\"validateVal\":[],\"index\":6},{\"name\":\"province\",\"checkType\":\"none\",\"validateVal\":[],\"index\":7},{\"name\":\"city\",\"checkType\":\"none\",\"validateVal\":[],\"index\":8},{\"name\":\"lngwgs\",\"checkType\":\"none\",\"validateVal\":[],\"index\":9},{\"name\":\"latwgs\",\"checkType\":\"none\",\"validateVal\":[],\"index\":10},{\"name\":\"owner\",\"checkType\":\"none\",\"validateVal\":[],\"index\":11},{\"name\":\"isp\",\"checkType\":\"none\",\"validateVal\":[],\"index\":12},{\"name\":\"asnumber\",\"checkType\":\"none\",\"validateVal\":[],\"index\":13},{\"name\":\"timezone\",\"checkType\":\"none\",\"validateVal\":[],\"index\":14},{\"name\":\"is_valid\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":15}]},\"cn_ip_asn_built_in\":{\"headers\":\"addr_type,addr_format,ip1,ip2,asn,organization,is_valid\",\"validateColumn\":\"addr_format,ip1,ip2\",\"infos\":[{\"name\":\"addr_type\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"ip1\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"ip2\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"asn\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"organization\",\"checkType\":\"none\",\"validateVal\":[],\"index\":4},{\"name\":\"is_valid\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":5},{\"name\":\"addr_format\",\"checkType\":\"none\",\"validateVal\":[],\"index\":6}]},\"cn_idc_renter_built_in\":{\"headers\":\"addr_format,ip1,ip2,idc_renter\",\"validateColumn\":\"addr_format,ip1,ip2\",\"infos\":[{\"name\":\"addr_format\",\"checkType\":\"none\",\"validateVal\":[\"Single\",\"Range\",\"CIDR\"],\"index\":0},{\"name\":\"ip1\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"ip2\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"idc_renter\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3}]},\"cn_internal_ip_built_in\":{\"headers\":\"addr_format,ip1,ip2\",\"validateColumn\":\"addr_format,ip1,ip2\",\"infos\":[{\"name\":\"addr_format\",\"checkType\":\"none\",\"validateVal\":[\"Single\",\"Range\",\"CIDR\"],\"index\":0},{\"name\":\"ip1\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"ip2\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2}]},\"cn_link_direction_built_in\":{\"headers\":\"interface_name,direction,peer_province,peer_city,link_id,bandwidth\",\"validateColumn\":\"link_id\",\"infos\":[{\"name\":\"interface_name\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"direction\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\",\"2\"],\"index\":1},{\"name\":\"bandwidth\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"peer_province\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"peer_city\",\"checkType\":\"none\",\"validateVal\":[],\"index\":4},{\"name\":\"link_id\",\"checkType\":\"none\",\"validateVal\":[],\"index\":5}]},\"cn_dns_server_info_built_in\":{\"headers\":\"ip_addr,location_country,location_province,location_region,asn,dns_server_role,orgnization,operation_system,dns_software,dnssec_support,dot_support,doh_support,root_mirror_locations\",\"validateColumn\":\"ip_addr\",\"infos\":[{\"name\":\"ip_addr\",\"checkType\":\"none\",\"validateVal\":[],\"index\":0},{\"name\":\"location_country\",\"checkType\":\"none\",\"validateVal\":[],\"index\":1},{\"name\":\"location_province\",\"checkType\":\"none\",\"validateVal\":[],\"index\":2},{\"name\":\"location_region\",\"checkType\":\"none\",\"validateVal\":[],\"index\":3},{\"name\":\"asn\",\"checkType\":\"none\",\"validateVal\":[],\"index\":4},{\"name\":\"dns_server_role\",\"checkType\":\"none\",\"validateVal\":[\"RTDNS\",\"TLDNS\",\"OPRDNS\",\"ADNS\",\"FWDNS\"],\"index\":5},{\"name\":\"orgnization\",\"checkType\":\"none\",\"validateVal\":[],\"index\":6},{\"name\":\"operation_system\",\"checkType\":\"none\",\"validateVal\":[],\"index\":7},{\"name\":\"dns_software\",\"checkType\":\"none\",\"validateVal\":[],\"index\":8},{\"name\":\"dnssec_support\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":9},{\"name\":\"dot_support\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":10},{\"name\":\"doh_support\",\"checkType\":\"none\",\"validateVal\":[\"0\",\"1\"],\"index\":11},{\"name\":\"root_mirror_locations\",\"checkType\":\"none\",\"validateVal\":[],\"index\":12}]}}', 1, NULL); -INSERT INTO `sys_config` VALUES (34, 'schema_explore', '{ \"functions\": { \"operator\": [ { \"name\": \"=\", \"label\": \"=\", \"function\": \"expr = value\" }, { \"name\": \"!=\", \"label\": \"!=\", \"function\": \"expr != value\" }, { \"name\": \">\", \"label\": \">\", \"function\": \"expr > value\" }, { \"name\": \"<\", \"label\": \"<\", \"function\": \"expr < value\" }, { \"name\": \">=\", \"label\": \">=\", \"function\": \"expr >= value\" }, { \"name\": \"<=\", \"label\": \"<=\", \"function\": \"expr <= value\" }, { \"name\": \"in\", \"label\": \"IN\", \"function\": \"expr in (values)\" }, { \"name\": \"not in\", \"label\": \"NOT IN\", \"function\": \"expr not in (values)\" }, { \"name\": \"like\", \"label\": \"LIKE\", \"function\": \"expr like value\" }, { \"name\": \"not like\", \"label\": \"NOT LIKE\", \"function\": \"expr not like value\" }, { \"name\": \"notEmpty\", \"label\": \"NOT EMPTY\", \"function\": \"notEmpty(expr)\" }, { \"name\": \"empty\", \"label\": \"EMPTY\", \"function\": \"empty(expr)\" }, { \"name\": \"has\", \"label\": \"HAS\", \"function\": \"has(expr, value)\" } ] }, \"references\": { \"operator\": [ { \"type\": \"int\", \"functions\": \"=,!=,>,<,>=,<=,in,not in\" }, { \"type\": \"string\", \"functions\": \"=,!=,in,not in,like,not like,notEmpty,empty\" }, { \"type\": \"array\", \"functions\": \"has,notEmpty,empty\" } ] }, \"entityMetadata\": { \"searchColumns\": [ { \"name\": \"ip\", \"label\": \"ip\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"type\": \"ip\", \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"domain\", \"label\": \"domain\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"type\": \"domain\", \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"app_name\", \"label\": \"app\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"ip_country_region\", \"label\": \"ip.country\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in\" } } }, { \"name\": \"ip_super_admin_area\", \"label\": \"ip.region\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in\" } } }, { \"name\": \"ip_admin_area\", \"label\": \"ip.city\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in\" } } }, { \"name\": \"ip_asn\", \"label\": \"ip.asn\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in\" } } }, { \"name\": \"ip_isp\", \"label\": \"ip.isp\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in\" } } }, { \"name\": \"domain_category_name\", \"label\": \"domain.category\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in\" } } }, { \"name\": \"app_category\", \"label\": \"app.category\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in\" } } }, { \"name\": \"entity_tags\", \"label\": \"tag\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": { \"type\": \"array\", \"items\": \"string\" }, \"doc\": { \"constraints\": { \"operator_functions\": \"has\" } } }, { \"name\": \"port\", \"label\": \"ip.port\", \"connector\": { \"alias\": \"dr\", \"table\": \"cn_ip_dynamic_attribute\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"int\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in\" } } }, { \"name\": \"l7_protocol\", \"label\": \"ip.protocol\", \"connector\": { \"alias\": \"dr\", \"table\": \"cn_ip_dynamic_attribute\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in\" } } } ] }, \"securityEventMetadata\": { \"searchColumns\": [ { \"name\": \"event_type\", \"label\": \"eventType\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"event_name\", \"label\": \"eventName\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"severity\", \"label\": \"severity\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"offender_ip\", \"label\": \"offenderIP\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"victim_ip\", \"label\": \"victimIP\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"domain\", \"label\": \"domain\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"app\", \"label\": \"app\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"status\", \"label\": \"status\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } } ] } }', 1, NULL); +INSERT INTO `sys_config` VALUES (34, 'schema_explore', '{ \"functions\": { \"operator\": [ { \"name\": \"=\", \"label\": \"=\", \"function\": \"expr = value\" }, { \"name\": \"!=\", \"label\": \"!=\", \"function\": \"expr != value\" }, { \"name\": \">\", \"label\": \">\", \"function\": \"expr > value\" }, { \"name\": \"<\", \"label\": \"<\", \"function\": \"expr < value\" }, { \"name\": \">=\", \"label\": \">=\", \"function\": \"expr >= value\" }, { \"name\": \"<=\", \"label\": \"<=\", \"function\": \"expr <= value\" }, { \"name\": \"in\", \"label\": \"IN\", \"function\": \"expr in (values)\" }, { \"name\": \"not in\", \"label\": \"NOT IN\", \"function\": \"expr not in (values)\" }, { \"name\": \"like\", \"label\": \"LIKE\", \"function\": \"expr like value\" }, { \"name\": \"not like\", \"label\": \"NOT LIKE\", \"function\": \"expr not like value\" }, { \"name\": \"notEmpty\", \"label\": \"NOT EMPTY\", \"function\": \"notEmpty(expr)\" }, { \"name\": \"empty\", \"label\": \"EMPTY\", \"function\": \"empty(expr)\" }, { \"name\": \"has\", \"label\": \"HAS\", \"function\": \"has(expr, value)\" } ] }, \"references\": { \"operator\": [ { \"type\": \"int\", \"functions\": \"=,!=,>,<,>=,<=,in,not in\" }, { \"type\": \"string\", \"functions\": \"=,!=,in,not in,like,not like,notEmpty,empty\" }, { \"type\": \"array\", \"functions\": \"has,notEmpty,empty\" } ] }, \"entityMetadata\": { \"searchColumns\": [ { \"name\": \"ip\", \"label\": \"ip\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"ip\", \"type\": \"ip\", \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"domain\", \"label\": \"domain\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"domain\", \"type\": \"domain\", \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"app_name\", \"label\": \"app\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"app\", \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"ip_country_region\", \"label\": \"ip.country\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"ip\", \"operator_functions\": \"=,in\" } } }, { \"name\": \"ip_super_admin_area\", \"label\": \"ip.region\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"ip\", \"operator_functions\": \"=,in\" } } }, { \"name\": \"ip_admin_area\", \"label\": \"ip.city\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"ip\", \"operator_functions\": \"=,in\" } } }, { \"name\": \"ip_asn\", \"label\": \"ip.asn\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"ip\", \"operator_functions\": \"=,in\" } } }, { \"name\": \"ip_isp\", \"label\": \"ip.isp\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"ip\", \"operator_functions\": \"=,in\" } } }, { \"name\": \"domain_category_name\", \"label\": \"domain.category\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"domain\", \"operator_functions\": \"=,in\" } } }, { \"name\": \"app_category\", \"label\": \"app.category\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"app\", \"operator_functions\": \"=,in\" } } }, { \"name\": \"entity_tags\", \"label\": \"tag\", \"connector\": { \"alias\": \"e\", \"table\": \"cn_entity_relation\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": { \"type\": \"array\", \"items\": \"string\" }, \"doc\": { \"constraints\": { \"primay\": \"ip,app,domain\", \"operator_functions\": \"has\" } } }, { \"name\": \"port\", \"label\": \"ip.port\", \"connector\": { \"alias\": \"dr\", \"table\": \"cn_ip_dynamic_attribute\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"int\", \"doc\": { \"constraints\": { \"primay\": \"ip\", \"operator_functions\": \"=,in\" } } }, { \"name\": \"l7_protocol\", \"label\": \"ip.protocol\", \"connector\": { \"alias\": \"dr\", \"table\": \"cn_ip_dynamic_attribute\", \"schema\": \"cyber_narrator_galaxy\", \"catalog\": \"clickhouse\" }, \"type\": \"string\", \"doc\": { \"constraints\": { \"primay\": \"ip\", \"operator_functions\": \"=,in\" } } } ] }, \"securityEventMetadata\": { \"searchColumns\": [ { \"name\": \"event_type\", \"label\": \"eventType\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"event_name\", \"label\": \"eventName\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"severity\", \"label\": \"severity\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"offender_ip\", \"label\": \"offenderIP\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"victim_ip\", \"label\": \"victimIP\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"domain\", \"label\": \"domain\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"app\", \"label\": \"app\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } }, { \"name\": \"status\", \"label\": \"status\", \"type\": \"string\", \"doc\": { \"constraints\": { \"operator_functions\": \"=,in,like\" } } } ] } }', 1, NULL); INSERT INTO `sys_config` VALUES (35, 'schedule_task', '{\"config\":{\"url\":\"http://192.168.44.55:8181\",\"userName\":\"admin\",\"pin\":\"4666ab71b2df52b241b4dd7c7713448c\"},\"jobIdMapping\":[{\"knowledgeId\":10,\"jobId\":109}]}', 1, '调度任务配置');
\ No newline at end of file |
