diff options
| author | lijinyang <[email protected]> | 2022-11-07 17:07:43 +0800 |
|---|---|---|
| committer | lijinyang <[email protected]> | 2022-11-07 17:07:43 +0800 |
| commit | 46b48e32a24986ba49d047464c4e74e407aceb39 (patch) | |
| tree | 08d65d0b09575e5109defa3d9986eb67eb8a329f | |
| parent | 38a3399ad5af073f0a814e7b59af398a494794b3 (diff) | |
fix:NPM 流量统计曲线去p95保留小数方法22.10-rc2
| -rw-r--r-- | cn-admin/src/main/resources/db/R__AZ_galaxy_proxy.sql | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/cn-admin/src/main/resources/db/R__AZ_galaxy_proxy.sql b/cn-admin/src/main/resources/db/R__AZ_galaxy_proxy.sql index 44adb76..04e28bb 100644 --- a/cn-admin/src/main/resources/db/R__AZ_galaxy_proxy.sql +++ b/cn-admin/src/main/resources/db/R__AZ_galaxy_proxy.sql @@ -542,7 +542,7 @@ INSERT INTO `galaxy_proxy` VALUES (544, 'applicationPerformanceOverviewDrilldown INSERT INTO `galaxy_proxy` VALUES (545, 'applicationPerformanceOverviewDrilldownDimensionClientLocationsProvinceTcpLostlenPercent', '/application/performance/overview/drilldown/dimension/clientLocations/province/tcpLostlenPercent', 'v1', 'GET', '/', '{\r\n \"query\":\"SELECT country AS country, province AS province, city AS city, ROUND(AVG(tcp_lostlen_ratio), 4) AS tcp_lostlen_percent FROM session_record_cn WHERE stat_time >= ${parameter.startTime} AND stat_time < ${parameter.endTime} AND isNotNull(tcp_lostlen_ratio) AND country = \'${parameter.country}\' AND province = \'${parameter.province}\' AND city IN (<#list parameter.params?split(\",\") as level><#if !level_has_next>\'${level}\'<#else>\'${level}\',</#if></#list>) AND side = \'client\' AND ${parameter.dimension} = \'${parameter.typeVal}\' GROUP BY country,province,city ORDER BY tcp_lostlen_percent DESC\",\r\n \"option\": \"real-time\",\r\n \"format\": \"json\"\r\n}', '{}', 'if (!parameter.endTime) {\r\n parameter.endTime = parseInt(+new Date()/1000);\r\n}\r\nif (!parameter.startTime) {\r\n parameter.startTime = parameter.endTime - 60 * 60;\r\n}\r\n\r\nparameter.timeDiff = parameter.endTime - parameter.startTime\r\n\r\nif(parameter.type==\'ip\'){\r\n parameter.dimension = \'common_server_ip\';\r\n}else if(parameter.type==\'appLabel\'){\r\n parameter.dimension = \'common_app_label\';\r\n}else if(parameter.type==\'domain\'){\r\n parameter.dimension = \'domain\';\r\n}', 'function toHump(name) {\r\n return name.replace(/\\_(\\w)/g, function(all, letter){\r\n return letter.toUpperCase();\r\n });\r\n }\r\n if(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(var i in o.result){\r\n var pojo = o.result[i];\r\n var tempObj= {};\r\n for (var key in pojo){\r\n var tempKey = toHump(key);\r\n tempObj[tempKey] = pojo[key];\r\n }\r\n o.result[i] = tempObj;\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 }', '2022-08-09 11:20:19', '2022-08-09 11:20:22', 1, ''); INSERT INTO `galaxy_proxy` VALUES (546, 'applicationPerformanceOverviewDrilldownDimensionClientLocationsProvincePacketRetransPercent', '/application/performance/overview/drilldown/dimension/clientLocations/province/packetRetransPercent', 'v1', 'GET', '/', '{\r\n \"query\":\"SELECT country AS country, province AS province, city AS city, ROUND(AVG(pkt_retrans_ratio), 4) AS pkt_retrans_ratio FROM session_record_cn WHERE stat_time >= ${parameter.startTime} AND stat_time < ${parameter.endTime} AND isNotNull(pkt_retrans_ratio) AND country = \'${parameter.country}\' AND province = \'${parameter.province}\' AND city IN (<#list parameter.params?split(\",\") as level><#if !level_has_next>\'${level}\'<#else>\'${level}\',</#if></#list>) AND side = \'client\' AND ${parameter.dimension} = \'${parameter.typeVal}\' GROUP BY country,province,city ORDER BY pkt_retrans_ratio DESC\",\r\n \"option\": \"real-time\",\r\n \"format\": \"json\"\r\n}', '{}', 'if (!parameter.endTime) {\r\n parameter.endTime = parseInt(+new Date()/1000);\r\n}\r\nif (!parameter.startTime) {\r\n parameter.startTime = parameter.endTime - 60 * 60;\r\n}\r\n\r\nparameter.timeDiff = parameter.endTime - parameter.startTime\r\n\r\nif(parameter.type==\'ip\'){\r\n parameter.dimension = \'common_server_ip\';\r\n}else if(parameter.type==\'appLabel\'){\r\n parameter.dimension = \'common_app_label\';\r\n}else if(parameter.type==\'domain\'){\r\n parameter.dimension = \'domain\';\r\n}', 'function toHump(name) {\r\n return name.replace(/\\_(\\w)/g, function(all, letter){\r\n return letter.toUpperCase();\r\n });\r\n }\r\n if(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(var i in o.result){\r\n var pojo = o.result[i];\r\n var tempObj= {};\r\n for (var key in pojo){\r\n var tempKey = toHump(key);\r\n tempObj[tempKey] = pojo[key];\r\n }\r\n o.result[i] = tempObj;\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 }', '2022-08-09 11:20:19', '2022-08-09 11:20:22', 1, ''); INSERT INTO `galaxy_proxy` VALUES (547, 'applicationPerformanceOverviewDrilldownDimensionRecentEvents', '/application/performance/overview/drilldown/dimension/recentEvents', 'v1', 'GET', '/', '{\r\n \"query\":\"SELECT event_severity AS event_severity, event_type AS event_type, start_time AS start_time FROM performance_event WHERE start_time >= ${parameter.startTime} AND start_time < ${parameter.endTime} AND ${parameter.dimension} = \'${parameter.param}\' ORDER BY start_time DESC\",\r\n \"option\": \"real-time\",\r\n \"format\": \"json\"\r\n}', '{}', 'if (!parameter.endTime) {\r\n parameter.endTime = parseInt(+new Date()/1000);\r\n}\r\nif (!parameter.startTime) {\r\n parameter.startTime = parameter.endTime - 60 * 60;\r\n}\r\n\r\nparameter.timeDiff = parameter.endTime - parameter.startTime\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}', 'function toHump(name) {\r\n return name.replace(/\\_(\\w)/g, function(all, letter){\r\n return letter.toUpperCase();\r\n });\r\n }\r\n if(result.success){\r\n var o={};\r\n o.resultType=\"table\";\r\n o.result=result.data;\r\n if(o.result.length > 0){\r\n for(var i in o.result){\r\n var pojo = o.result[i];\r\n var tempObj= {};\r\n for (var key in pojo){\r\n var tempKey = toHump(key);\r\n tempObj[tempKey] = pojo[key];\r\n }\r\n o.result[i] = tempObj;\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 }', '2022-08-09 11:20:19', '2022-08-09 11:20:22', 1, ''); -INSERT INTO `galaxy_proxy` VALUES (548, 'applicationPerformanceOverviewDrilldownDrilldownDimensionTrafficGraph', '/application/performance/overview/drilldown/drilldown/dimension/trafficGraph', 'v1', 'GET', '/', '{\r\n \"query\":\"SELECT TIME_FLOOR_WITH_FILL(stat_time,\'PT${parameter.step}S\',\'zero\') AS stat_time, ${parameter.dimension} AS ${parameter.label}, SUM(common_c2s_byte_num + common_s2c_byte_num) AS bytes_total, SUM(traffic_inbound_byte) AS inbound_bytes, SUM(traffic_outbound_byte) AS outbound_bytes, SUM(traffic_internal_byte) AS internal_bytes, SUM(traffic_through_byte) AS through_bytes, SUM(common_c2s_pkt_num + common_s2c_pkt_num) AS packets_total, SUM(traffic_inbound_pkt) AS inbound_packets, SUM(traffic_outbound_pkt) AS outbound_packets, SUM(traffic_internal_pkt) AS internal_packets, SUM(traffic_through_pkt) AS through_packets, SUM(common_sessions) AS sessions, IFNULL(ROUND(AVG(avg_establish_latency_ms), 4),0) AS establish_latency_ms_avg, IFNULL(ROUND(AVG(avg_http_response_latency_ms), 4),0) AS http_response_latency_avg, IFNULL(ROUND(AVG(avg_ssl_con_latency_ms), 4),0) AS ssl_con_latency_avg, IFNULL(ROUND(AVG(tcp_lostlen_ratio), 4),0) AS tcp_lostlen_percent_avg, IFNULL(ROUND(AVG(pkt_retrans_ratio), 4),0) AS pkt_retrans_percent_avg FROM ${parameter.tableName} WHERE stat_time >= ${parameter.startTime} AND stat_time < ${parameter.endTime} AND (${parameter.q}) GROUP BY stat_time,${parameter.label} ORDER BY stat_time ASC\",\r\n \"option\": \"real-time\",\r\n \"format\": \"json\"\r\n}', '{}', 'if (!parameter.endTime) {\r\n parameter.endTime = parseInt(+new Date()/1000);\r\n}\r\nif (!parameter.startTime) {\r\n parameter.startTime = parameter.endTime - 60 * 60;\r\n}\r\n\r\nparameter.timeDiff = parameter.endTime - parameter.startTime\r\nparameter.step = (parameter.endTime-parameter.startTime)/100;\r\nparameter.step = parameter.step>=30?parameter.step:30;\r\nif(parameter.type==\'ip\'){\r\n parameter.tableName = \'metric_ip\';\r\n parameter.dimension = \'ip\';\r\n parameter.label = \'ip\';\r\n}else if(parameter.type==\'country\'){\r\n parameter.tableName = \'metric_region\';\r\n parameter.dimension = \'country\';\r\n parameter.label = \'country\';\r\n}else if(parameter.type==\'asn\'){\r\n parameter.tableName = \'metric_asn\';\r\n parameter.dimension = \'asn\';\r\n parameter.label = \'asn\';\r\n}else if(parameter.type==\'appLabel\'){\r\n parameter.tableName = \'metric_application\';\r\n parameter.dimension = \'common_app_label\';\r\n parameter.label = \'app_label\';\r\n}else if(parameter.type==\'appCompany\'){\r\n parameter.tableName = \'metric_application\';\r\n parameter.dimension = \'app_company\';\r\n parameter.label = \'app_company\';\r\n}else if(parameter.type==\'domain\'){\r\n parameter.tableName = \'metric_domain\';\r\n parameter.dimension = \'domain\';\r\n parameter.label = \'domain\';\r\n}else if(parameter.type==\'l7Protocol\'){\r\n parameter.tableName = \'metric_protocol\';\r\n parameter.dimension = \'common_l7_protocol\';\r\n parameter.label = \'l7_protocol\';\r\n}else if(parameter.type==\'idcRenter\'){\r\n parameter.tableName = \'metric_idc_renter\';\r\n parameter.dimension = \'idc_renter\';\r\n parameter.label = \'idc_renter\';\r\n}else if(parameter.type==\'province\'){\r\n parameter.tableName = \'metric_region\';\r\n parameter.dimension = \'province\';\r\n parameter.label = \'province\';\r\n}else if(parameter.type==\'city\'){\r\n parameter.tableName = \'metric_region\';\r\n parameter.dimension = \'city\';\r\n parameter.label = \'city\';\r\n}else if(parameter.type==\'isp\'){\r\n parameter.tableName = \'metric_asn\';\r\n parameter.dimension = \'isp\';\r\n parameter.label = \'isp\';\r\n}else if(parameter.type==\'appSubcategory\'){\r\n parameter.tableName = \'metric_application\';\r\n parameter.dimension = \'app_subcategory\';\r\n parameter.label = \'app_subcategory\';\r\n}else if(parameter.type==\'domainCategoryName\'){\r\n parameter.tableName = \'metric_domain\';\r\n parameter.dimension = \'domain_category_name\';\r\n parameter.label = \'domain_category_name\';\r\n}else if(parameter.type==\'httpHost\'){\r\n parameter.tableName = \'metric_http_host\';\r\n parameter.dimension = \'http_host\';\r\n parameter.label = \'http_host\';\r\n}else if(parameter.type==\'sslSni\'){\r\n parameter.tableName = \'metric_ssl_sni\';\r\n parameter.dimension = \'ssl_sni\';\r\n parameter.label = \'ssl_sni\';\r\n}else if(parameter.type==\'protocolPort\'){\r\n parameter.tableName = \'metric_protocol\';\r\n parameter.dimension = \"concat(common_l7_protocol,\':\',toString(common_server_port))\";\r\n parameter.label = \'protocol_port\';\r\n}', 'function f(a,b) {\r\n return (a - b);\r\n}\r\n\r\nfunction getPercentile(list, p){\r\n var n = list.length;\r\n list.sort(f);\r\n var px = p*(n-1);\r\n var i = Math.floor(px);\r\n var g = px - i;\r\n if(g==0){\r\n return list[i];\r\n }else{\r\n return (1-g)*list[i]+g*list[i+1];\r\n }\r\n}\r\n\r\nfunction toHump(name) {\r\n return name.replace(/\\_(\\w)/g, function(all, letter){\r\n return letter.toUpperCase();\r\n });\r\n}\r\n\r\nfunction sortByStatTime(a,b){ \r\n return a.granularity - b.granularity;\r\n}\r\n\r\nif(result.success){\r\n var o = {};\r\n o.resultType=\"object\";\r\n var old = new java.util.ArrayList();\r\n var list = result.data;\r\n var newList = new java.util.ArrayList();\r\n for(var i in list){\r\n newList.add(list[i]);\r\n }\r\n if(list.length > 0){\r\n for(var i in list){\r\n var pojo = list[i];\r\n var tempObj= {};\r\n for (var key in pojo){\r\nif(key.indexOf(\"stat_time\") != -1){\r\n tempObj[\'statTime\'] = pojo[key]\r\n }else if(key.indexOf(\"bytes_total\") != -1){\r\n tempObj[\'totalBitsRate\'] = (pojo[key] / parameter.step).toFixed(2) * 8\r\n }else if(key.indexOf(\"packets_total\") != -1){\r\n tempObj[\'totalPacketsRate\'] = (pojo[key] / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"inbound_bytes\") != -1){\r\n tempObj[\'inboundBitsRate\'] = (pojo[key] / parameter.step).toFixed(2) * 8\r\n }else if(key.indexOf(\"inbound_packets\") != -1){\r\n tempObj[\'inboundPacketsRate\'] = (pojo[key] / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"outbound_bytes\") != -1){\r\n tempObj[\'outboundBitsRate\'] = (pojo[key] / parameter.step).toFixed(2) * 8\r\n }else if(key.indexOf(\"outbound_packets\") != -1){\r\n tempObj[\'outboundPacketsRate\'] = (pojo[key] / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"internal_bytes\") != -1){\r\n tempObj[\'internalBitsRate\'] = (pojo[key] / parameter.step).toFixed(2) * 8\r\n }else if(key.indexOf(\"internal_packets\") != -1){\r\n tempObj[\'internalPacketsRate\'] = (pojo[key] / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"through_bytes\") != -1){\r\n tempObj[\'throughBitsRate\'] = (pojo[key] / parameter.step).toFixed(2) * 8\r\n }else if(key.indexOf(\"through_packets\") != -1){\r\n tempObj[\'throughPacketsRate\'] = (pojo[key] / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"sessions\") != -1){\r\n tempObj[\'totalSessionsRate\'] = (pojo[key] / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"establish_latency_ms_avg\") != -1){\r\n tempObj[\'establishLatencyMsAvg\'] = pojo[key]\r\n }else if(key.indexOf(\"http_response_latency_avg\") != -1){\r\n tempObj[\'httpResponseLatencyAvg\'] = pojo[key]\r\n }else if(key.indexOf(\"ssl_con_latency_avg\") != -1){\r\n tempObj[\'sslConLatencyAvg\'] = pojo[key]\r\n }else if(key.indexOf(\"tcp_lostlen_percent_avg\") != -1){\r\n tempObj[\'tcpLostlenPercentAvg\'] = pojo[key]\r\n }else if(key.indexOf(\"pkt_retrans_percent_avg\") != -1){\r\n tempObj[\'pktRetransPercentAvg\'] = pojo[key]\r\n }\r\n }\r\n list[i] = tempObj;\r\n list[i].statTime = list[i].statTime;\r\n }\r\n var bytes = [];\r\n var packets = [];\r\n var sessions = [];\r\n var establishLatencyMs = [];\r\n var httpResponseLatency = [];\r\n var sslConLatency = [];\r\n var tcpLostlenPercent = [];\r\n var pktRetransPercent = [];\r\n for(var key in list[0]){\r\n if(key.indexOf(\"Bits\") != -1){\r\n bytes.push(key);\r\n } else if(key.indexOf(\"Packets\") != -1){\r\n packets.push(key);\r\n } else if(key.indexOf(\"Sessions\") != -1){\r\n sessions.push(key);\r\n } else if(key.indexOf(\"establishLatencyMsAvg\") != -1){\r\n establishLatencyMs.push(key);\r\n } else if(key.indexOf(\"httpResponseLatencyAvg\") != -1){\r\n httpResponseLatency.push(key);\r\n } else if(key.indexOf(\"sslConLatencyAvg\") != -1){\r\n sslConLatency.push(key);\r\n } else if(key.indexOf(\"tcpLostlenPercentAvg\") != -1){\r\n tcpLostlenPercent.push(key);\r\n } else if(key.indexOf(\"pktRetransPercentAvg\") != -1){\r\n pktRetransPercent.push(key);\r\n }\r\n }\r\n var map = new java.util.HashMap();\r\n map.put(\"totalBitsRate\",\"bytes_total\");\r\n map.put(\"totalPacketsRate\",\"packets_total\");\r\n map.put(\"inboundBitsRate\",\"inbound_bytes\");\r\n map.put(\"inboundPacketsRate\",\"inbound_packets\");\r\n map.put(\"outboundBitsRate\",\"outbound_bytes\");\r\n map.put(\"outboundPacketsRate\",\"outbound_packets\");\r\n map.put(\"internalBitsRate\",\"internal_bytes\");\r\n map.put(\"internalPacketsRate\",\"internal_packets\");\r\n map.put(\"throughBitsRate\",\"through_bytes\");\r\n map.put(\"throughPacketsRate\",\"through_packets\");\r\n map.put(\"totalSessionsRate\",\"sessions\");\r\n map.put(\"establishLatencyMsAvg\",\"establish_latency_ms_avg\");\r\n map.put(\"httpResponseLatencyAvg\",\"http_response_latency_avg\");\r\n map.put(\"sslConLatencyAvg\",\"ssl_con_latency_avg\");\r\n map.put(\"tcpLostlenPercentAvg\",\"tcp_lostlen_percent_avg\");\r\n map.put(\"pktRetransPercentAvg\",\"pkt_retrans_percent_avg\");\r\n var type = {};\r\n type.bytes = bytes;\r\n type.packets = packets;\r\n type.sessions = sessions;\r\n type.establishLatencyMs = establishLatencyMs;\r\n type.httpResponseLatency = httpResponseLatency;\r\n type.sslConLatency = sslConLatency;\r\n type.tcpLostlenPercent = tcpLostlenPercent;\r\n type.pktRetransPercent = pktRetransPercent;\r\n for(var key in type){\r\n var obj = {};\r\n obj.type = key;\r\n var typeKey = type[key];\r\n for(var m in typeKey){\r\n var zong = {};\r\n var analysis = {};\r\n var values = new java.util.ArrayList();\r\n list.sort(sortByStatTime);\r\n var sumValue = 0;\r\n for(var j in list){\r\n var pojo = list[j];\r\n var tempArray = new java.util.ArrayList();\r\n tempArray.add(pojo[\"statTime\"]);\r\n tempArray.add(pojo[typeKey[m]] + \"\");\r\n values.add(tempArray);\r\n }\r\n for(var i in newList){\r\n var pojo = newList[i];\r\n var field = map.get(typeKey[m]);\r\n var value = Number(pojo[field]);\r\n sumValue += value;\r\n }\r\n if(typeKey[m].indexOf(\"Avg\") == -1){\r\n analysis.avg = (sumValue/parameter.timeDiff).toFixed(2);\r\n } else {\r\n analysis.avg = (sumValue/list.length).toFixed(2);\r\n }\r\n if(key==\"bytes\"){\r\n analysis.avg = analysis.avg * 8;\r\n }\r\n analysis.avg=analysis.avg+\"\";\r\n \r\n var plist = [];\r\n for(var i=0; i<values.length; i++){\r\n plist.push(values[i][1]);\r\n }\r\n plist.sort(f);\r\n analysis.max = plist[plist.length-1]+\"\";\r\n analysis.min = plist[0]+\"\";\r\n analysis.p95 = getPercentile(plist, 0.95).toFixed(4)+\"\";\r\n \r\n \r\n zong.values = values;\r\n zong.analysis = analysis;\r\n \r\n obj[typeKey[m]] = zong;\r\n }\r\n old.add(obj);\r\n }\r\n var len = old[0][\"totalBitsRate\"][\"values\"].length;\r\n for(var a in old){\r\n if(old[a].type == \'bytes\' || old[a].type == \'packets\'){\r\n var other = {};\r\n var analysis = {};\r\n var values = new java.util.ArrayList();\r\n var sumValue = 0;\r\n for(var i=0; i<len; i++){\r\n var sum = 0;\r\n var tempArray = new java.util.ArrayList();\r\n for(var b in old[a]){\r\n if(b != \'type\'){\r\n if(b.indexOf(\"total\") != -1){\r\n sum += Number(old[a][b][\"values\"][i][1]);\r\n } else {\r\n sum -= Number(old[a][b][\"values\"][i][1]);\r\n }\r\n sum = sum>0?sum:0;\r\n }\r\n }\r\n tempArray.add(old[0][\"totalBitsRate\"][\"values\"][i][0]);\r\n tempArray.add(sum.toFixed(2));\r\n values.add(tempArray);\r\n sumValue += Number(sum);\r\n }\r\n analysis.avg = Math.round((sumValue / len)*100)/100 + \"\";\r\n \r\n var plist = [];\r\n for(var i=0; i<values.length; i++){\r\n plist.push(values[i][1]);\r\n }\r\n plist.sort(f);\r\n analysis.max = plist[plist.length-1]+\"\";\r\n analysis.min = plist[0]+\"\";\r\n analysis.p95 = getPercentile(plist, 0.95).toFixed(4)+\"\";\r\n \r\n other.values = values;\r\n other.analysis = analysis;\r\n old[a].other = other;\r\n }\r\n }\r\n }\r\n \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}', '2022-08-09 11:20:19', '2022-08-09 11:20:22', 1, ''); +INSERT INTO `galaxy_proxy` VALUES (548, 'applicationPerformanceOverviewDrilldownDrilldownDimensionTrafficGraph', '/application/performance/overview/drilldown/drilldown/dimension/trafficGraph', 'v1', 'GET', '/', '{\r\n \"query\":\"SELECT TIME_FLOOR_WITH_FILL(stat_time,\'PT${parameter.step}S\',\'zero\') AS stat_time, ${parameter.dimension} AS ${parameter.label}, SUM(common_c2s_byte_num + common_s2c_byte_num) AS bytes_total, SUM(traffic_inbound_byte) AS inbound_bytes, SUM(traffic_outbound_byte) AS outbound_bytes, SUM(traffic_internal_byte) AS internal_bytes, SUM(traffic_through_byte) AS through_bytes, SUM(common_c2s_pkt_num + common_s2c_pkt_num) AS packets_total, SUM(traffic_inbound_pkt) AS inbound_packets, SUM(traffic_outbound_pkt) AS outbound_packets, SUM(traffic_internal_pkt) AS internal_packets, SUM(traffic_through_pkt) AS through_packets, SUM(common_sessions) AS sessions, IFNULL(ROUND(AVG(avg_establish_latency_ms), 4),0) AS establish_latency_ms_avg, IFNULL(ROUND(AVG(avg_http_response_latency_ms), 4),0) AS http_response_latency_avg, IFNULL(ROUND(AVG(avg_ssl_con_latency_ms), 4),0) AS ssl_con_latency_avg, IFNULL(ROUND(AVG(tcp_lostlen_ratio), 4),0) AS tcp_lostlen_percent_avg, IFNULL(ROUND(AVG(pkt_retrans_ratio), 4),0) AS pkt_retrans_percent_avg FROM ${parameter.tableName} WHERE stat_time >= ${parameter.startTime} AND stat_time < ${parameter.endTime} AND (${parameter.q}) GROUP BY stat_time,${parameter.label} ORDER BY stat_time ASC\",\r\n \"option\": \"real-time\",\r\n \"format\": \"json\"\r\n}', '{}', 'if (!parameter.endTime) {\r\n parameter.endTime = parseInt(+new Date()/1000);\r\n}\r\nif (!parameter.startTime) {\r\n parameter.startTime = parameter.endTime - 60 * 60;\r\n}\r\n\r\nparameter.timeDiff = parameter.endTime - parameter.startTime\r\nparameter.step = (parameter.endTime-parameter.startTime)/100;\r\nparameter.step = parameter.step>=30?parameter.step:30;\r\nif(parameter.type==\'ip\'){\r\n parameter.tableName = \'metric_ip\';\r\n parameter.dimension = \'ip\';\r\n parameter.label = \'ip\';\r\n}else if(parameter.type==\'country\'){\r\n parameter.tableName = \'metric_region\';\r\n parameter.dimension = \'country\';\r\n parameter.label = \'country\';\r\n}else if(parameter.type==\'asn\'){\r\n parameter.tableName = \'metric_asn\';\r\n parameter.dimension = \'asn\';\r\n parameter.label = \'asn\';\r\n}else if(parameter.type==\'appLabel\'){\r\n parameter.tableName = \'metric_application\';\r\n parameter.dimension = \'common_app_label\';\r\n parameter.label = \'app_label\';\r\n}else if(parameter.type==\'appCompany\'){\r\n parameter.tableName = \'metric_application\';\r\n parameter.dimension = \'app_company\';\r\n parameter.label = \'app_company\';\r\n}else if(parameter.type==\'domain\'){\r\n parameter.tableName = \'metric_domain\';\r\n parameter.dimension = \'domain\';\r\n parameter.label = \'domain\';\r\n}else if(parameter.type==\'l7Protocol\'){\r\n parameter.tableName = \'metric_protocol\';\r\n parameter.dimension = \'common_l7_protocol\';\r\n parameter.label = \'l7_protocol\';\r\n}else if(parameter.type==\'idcRenter\'){\r\n parameter.tableName = \'metric_idc_renter\';\r\n parameter.dimension = \'idc_renter\';\r\n parameter.label = \'idc_renter\';\r\n}else if(parameter.type==\'province\'){\r\n parameter.tableName = \'metric_region\';\r\n parameter.dimension = \'province\';\r\n parameter.label = \'province\';\r\n}else if(parameter.type==\'city\'){\r\n parameter.tableName = \'metric_region\';\r\n parameter.dimension = \'city\';\r\n parameter.label = \'city\';\r\n}else if(parameter.type==\'isp\'){\r\n parameter.tableName = \'metric_asn\';\r\n parameter.dimension = \'isp\';\r\n parameter.label = \'isp\';\r\n}else if(parameter.type==\'appSubcategory\'){\r\n parameter.tableName = \'metric_application\';\r\n parameter.dimension = \'app_subcategory\';\r\n parameter.label = \'app_subcategory\';\r\n}else if(parameter.type==\'domainCategoryName\'){\r\n parameter.tableName = \'metric_domain\';\r\n parameter.dimension = \'domain_category_name\';\r\n parameter.label = \'domain_category_name\';\r\n}else if(parameter.type==\'httpHost\'){\r\n parameter.tableName = \'metric_http_host\';\r\n parameter.dimension = \'http_host\';\r\n parameter.label = \'http_host\';\r\n}else if(parameter.type==\'sslSni\'){\r\n parameter.tableName = \'metric_ssl_sni\';\r\n parameter.dimension = \'ssl_sni\';\r\n parameter.label = \'ssl_sni\';\r\n}else if(parameter.type==\'protocolPort\'){\r\n parameter.tableName = \'metric_protocol\';\r\n parameter.dimension = \"concat(common_l7_protocol,\':\',toString(common_server_port))\";\r\n parameter.label = \'protocol_port\';\r\n}', 'function f(a,b) {\r\n return (a - b);\r\n}\r\n\r\nfunction getPercentile(list, p){\r\n var n = list.length;\r\n list.sort(f);\r\n var px = p*(n-1);\r\n var i = Math.floor(px);\r\n var g = px - i;\r\n if(g==0){\r\n return list[i];\r\n }else{\r\n return (1-g)*list[i]+g*list[i+1];\r\n }\r\n}\r\n\r\nfunction toHump(name) {\r\n return name.replace(/\\_(\\w)/g, function(all, letter){\r\n return letter.toUpperCase();\r\n });\r\n}\r\n\r\nfunction sortByStatTime(a,b){ \r\n return a.granularity - b.granularity;\r\n}\r\n\r\nif(result.success){\r\n var o = {};\r\n o.resultType=\"object\";\r\n var old = new java.util.ArrayList();\r\n var list = result.data;\r\n var newList = new java.util.ArrayList();\r\n for(var i in list){\r\n newList.add(list[i]);\r\n }\r\n if(list.length > 0){\r\n for(var i in list){\r\n var pojo = list[i];\r\n var tempObj= {};\r\n for (var key in pojo){\r\nif(key.indexOf(\"stat_time\") != -1){\r\n tempObj[\'statTime\'] = pojo[key]\r\n }else if(key.indexOf(\"bytes_total\") != -1){\r\n tempObj[\'totalBitsRate\'] = (pojo[key] / parameter.step).toFixed(2) * 8\r\n }else if(key.indexOf(\"packets_total\") != -1){\r\n tempObj[\'totalPacketsRate\'] = (pojo[key] / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"inbound_bytes\") != -1){\r\n tempObj[\'inboundBitsRate\'] = (pojo[key] / parameter.step).toFixed(2) * 8\r\n }else if(key.indexOf(\"inbound_packets\") != -1){\r\n tempObj[\'inboundPacketsRate\'] = (pojo[key] / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"outbound_bytes\") != -1){\r\n tempObj[\'outboundBitsRate\'] = (pojo[key] / parameter.step).toFixed(2) * 8\r\n }else if(key.indexOf(\"outbound_packets\") != -1){\r\n tempObj[\'outboundPacketsRate\'] = (pojo[key] / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"internal_bytes\") != -1){\r\n tempObj[\'internalBitsRate\'] = (pojo[key] / parameter.step).toFixed(2) * 8\r\n }else if(key.indexOf(\"internal_packets\") != -1){\r\n tempObj[\'internalPacketsRate\'] = (pojo[key] / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"through_bytes\") != -1){\r\n tempObj[\'throughBitsRate\'] = (pojo[key] / parameter.step).toFixed(2) * 8\r\n }else if(key.indexOf(\"through_packets\") != -1){\r\n tempObj[\'throughPacketsRate\'] = (pojo[key] / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"sessions\") != -1){\r\n tempObj[\'totalSessionsRate\'] = (pojo[key] / parameter.step).toFixed(2)\r\n }else if(key.indexOf(\"establish_latency_ms_avg\") != -1){\r\n tempObj[\'establishLatencyMsAvg\'] = pojo[key]\r\n }else if(key.indexOf(\"http_response_latency_avg\") != -1){\r\n tempObj[\'httpResponseLatencyAvg\'] = pojo[key]\r\n }else if(key.indexOf(\"ssl_con_latency_avg\") != -1){\r\n tempObj[\'sslConLatencyAvg\'] = pojo[key]\r\n }else if(key.indexOf(\"tcp_lostlen_percent_avg\") != -1){\r\n tempObj[\'tcpLostlenPercentAvg\'] = pojo[key]\r\n }else if(key.indexOf(\"pkt_retrans_percent_avg\") != -1){\r\n tempObj[\'pktRetransPercentAvg\'] = pojo[key]\r\n }\r\n }\r\n list[i] = tempObj;\r\n list[i].statTime = list[i].statTime;\r\n }\r\n var bytes = [];\r\n var packets = [];\r\n var sessions = [];\r\n var establishLatencyMs = [];\r\n var httpResponseLatency = [];\r\n var sslConLatency = [];\r\n var tcpLostlenPercent = [];\r\n var pktRetransPercent = [];\r\n for(var key in list[0]){\r\n if(key.indexOf(\"Bits\") != -1){\r\n bytes.push(key);\r\n } else if(key.indexOf(\"Packets\") != -1){\r\n packets.push(key);\r\n } else if(key.indexOf(\"Sessions\") != -1){\r\n sessions.push(key);\r\n } else if(key.indexOf(\"establishLatencyMsAvg\") != -1){\r\n establishLatencyMs.push(key);\r\n } else if(key.indexOf(\"httpResponseLatencyAvg\") != -1){\r\n httpResponseLatency.push(key);\r\n } else if(key.indexOf(\"sslConLatencyAvg\") != -1){\r\n sslConLatency.push(key);\r\n } else if(key.indexOf(\"tcpLostlenPercentAvg\") != -1){\r\n tcpLostlenPercent.push(key);\r\n } else if(key.indexOf(\"pktRetransPercentAvg\") != -1){\r\n pktRetransPercent.push(key);\r\n }\r\n }\r\n var map = new java.util.HashMap();\r\n map.put(\"totalBitsRate\",\"bytes_total\");\r\n map.put(\"totalPacketsRate\",\"packets_total\");\r\n map.put(\"inboundBitsRate\",\"inbound_bytes\");\r\n map.put(\"inboundPacketsRate\",\"inbound_packets\");\r\n map.put(\"outboundBitsRate\",\"outbound_bytes\");\r\n map.put(\"outboundPacketsRate\",\"outbound_packets\");\r\n map.put(\"internalBitsRate\",\"internal_bytes\");\r\n map.put(\"internalPacketsRate\",\"internal_packets\");\r\n map.put(\"throughBitsRate\",\"through_bytes\");\r\n map.put(\"throughPacketsRate\",\"through_packets\");\r\n map.put(\"totalSessionsRate\",\"sessions\");\r\n map.put(\"establishLatencyMsAvg\",\"establish_latency_ms_avg\");\r\n map.put(\"httpResponseLatencyAvg\",\"http_response_latency_avg\");\r\n map.put(\"sslConLatencyAvg\",\"ssl_con_latency_avg\");\r\n map.put(\"tcpLostlenPercentAvg\",\"tcp_lostlen_percent_avg\");\r\n map.put(\"pktRetransPercentAvg\",\"pkt_retrans_percent_avg\");\r\n var type = {};\r\n type.bytes = bytes;\r\n type.packets = packets;\r\n type.sessions = sessions;\r\n type.establishLatencyMs = establishLatencyMs;\r\n type.httpResponseLatency = httpResponseLatency;\r\n type.sslConLatency = sslConLatency;\r\n type.tcpLostlenPercent = tcpLostlenPercent;\r\n type.pktRetransPercent = pktRetransPercent;\r\n for(var key in type){\r\n var obj = {};\r\n obj.type = key;\r\n var typeKey = type[key];\r\n for(var m in typeKey){\r\n var zong = {};\r\n var analysis = {};\r\n var values = new java.util.ArrayList();\r\n list.sort(sortByStatTime);\r\n var sumValue = 0;\r\n for(var j in list){\r\n var pojo = list[j];\r\n var tempArray = new java.util.ArrayList();\r\n tempArray.add(pojo[\"statTime\"]);\r\n tempArray.add(pojo[typeKey[m]] + \"\");\r\n values.add(tempArray);\r\n }\r\n for(var i in newList){\r\n var pojo = newList[i];\r\n var field = map.get(typeKey[m]);\r\n var value = Number(pojo[field]);\r\n sumValue += value;\r\n }\r\n if(typeKey[m].indexOf(\"Avg\") == -1){\r\n analysis.avg = (sumValue/parameter.timeDiff).toFixed(2);\r\n } else {\r\n analysis.avg = (sumValue/list.length).toFixed(2);\r\n }\r\n if(key==\"bytes\"){\r\n analysis.avg = analysis.avg * 8;\r\n }\r\n analysis.avg=analysis.avg+\"\";\r\n \r\n var plist = [];\r\n for(var i=0; i<values.length; i++){\r\n plist.push(values[i][1]);\r\n }\r\n plist.sort(f);\r\n analysis.max = plist[plist.length-1]+\"\";\r\n analysis.min = plist[0]+\"\";\r\n analysis.p95 = getPercentile(plist, 0.95)+\"\";\r\n \r\n \r\n zong.values = values;\r\n zong.analysis = analysis;\r\n \r\n obj[typeKey[m]] = zong;\r\n }\r\n old.add(obj);\r\n }\r\n var len = old[0][\"totalBitsRate\"][\"values\"].length;\r\n for(var a in old){\r\n if(old[a].type == \'bytes\' || old[a].type == \'packets\'){\r\n var other = {};\r\n var analysis = {};\r\n var values = new java.util.ArrayList();\r\n var sumValue = 0;\r\n for(var i=0; i<len; i++){\r\n var sum = 0;\r\n var tempArray = new java.util.ArrayList();\r\n for(var b in old[a]){\r\n if(b != \'type\'){\r\n if(b.indexOf(\"total\") != -1){\r\n sum += Number(old[a][b][\"values\"][i][1]);\r\n } else {\r\n sum -= Number(old[a][b][\"values\"][i][1]);\r\n }\r\n sum = sum>0?sum:0;\r\n }\r\n }\r\n tempArray.add(old[0][\"totalBitsRate\"][\"values\"][i][0]);\r\n tempArray.add(sum.toFixed(2));\r\n values.add(tempArray);\r\n sumValue += Number(sum);\r\n }\r\n analysis.avg = Math.round((sumValue / len)*100)/100 + \"\";\r\n \r\n var plist = [];\r\n for(var i=0; i<values.length; i++){\r\n plist.push(values[i][1]);\r\n }\r\n plist.sort(f);\r\n analysis.max = plist[plist.length-1]+\"\";\r\n analysis.min = plist[0]+\"\";\r\n analysis.p95 = getPercentile(plist, 0.95)+\"\";\r\n \r\n other.values = values;\r\n other.analysis = analysis;\r\n old[a].other = other;\r\n }\r\n }\r\n }\r\n \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}', '2022-08-09 11:20:19', '2022-08-09 11:20:22', 1, ''); INSERT INTO `galaxy_proxy` VALUES (549, 'applicationPerformanceOverviewDrilldownDimensionTrafficAnalysis', '/application/performance/overview/drilldown/dimensionTrafficAnalysis', 'v1', 'GET', '/', '{\r\n \"query\":\"SELECT ${parameter.label} AS ${parameter.label}, SUM(bytes_total) AS total_bytes, SUM(packets_total) AS total_packets, SUM(sessions) AS sessions, SUM(inbound_bytes) AS inbound_bytes, SUM(inbound_packets) AS inbound_packets, SUM(outbound_bytes) AS outbound_bytes, SUM(outbound_packets) AS outbound_packets, SUM(internal_bytes) AS internal_bytes, SUM(internal_packets) AS internal_packets, SUM(external_bytes) AS through_bytes, SUM(external_packets) AS through_packets FROM ( SELECT ${parameter.dimension} as ${parameter.label}, SUM(common_s2c_byte_num + common_c2s_byte_num) AS bytes_total, SUM(common_s2c_pkt_num + common_c2s_pkt_num) AS packets_total, SUM(common_sessions) AS sessions, IF(client_zone = \'internal\' AND server_zone = \'external\' , SUM(common_s2c_byte_num), IF(client_zone = \'external\' AND server_zone = \'internal\', SUM(common_c2s_byte_num), 0)) AS inbound_bytes, IF(client_zone = \'internal\' AND server_zone = \'external\' , SUM(common_s2c_pkt_num), IF(client_zone = \'external\' AND server_zone = \'internal\', SUM(common_c2s_pkt_num), 0)) AS inbound_packets, IF(client_zone = \'external\' AND server_zone = \'internal\' , SUM(common_s2c_byte_num), IF(client_zone = \'internal\' AND server_zone = \'external\', SUM(common_c2s_byte_num), 0)) AS outbound_bytes, IF(client_zone = \'external\' AND server_zone = \'internal\' , SUM(common_s2c_pkt_num), IF(client_zone = \'internal\' AND server_zone = \'external\', SUM(common_c2s_pkt_num), 0)) AS outbound_packets, IF(client_zone = \'internal\' AND server_zone = \'internal\' , SUM(common_s2c_byte_num + common_c2s_byte_num),0) AS internal_bytes, IF(client_zone = \'internal\' AND server_zone = \'internal\' , SUM(common_s2c_pkt_num + common_c2s_pkt_num), 0) AS internal_packets, IF(client_zone = \'external\' AND server_zone = \'external\' , SUM(common_s2c_byte_num + common_c2s_byte_num),0) AS external_bytes, IF(client_zone = \'external\' AND server_zone = \'external\' , SUM(common_s2c_pkt_num + common_c2s_pkt_num), 0) AS external_packets FROM session_record_cn WHERE common_recv_time >= ${parameter.startTime} AND common_recv_time < ${parameter.endTime} AND notEmpty(${parameter.label}) <#if parameter.q?default(\'\')?trim? length gt 0> AND (${parameter.q}) </#if> GROUP BY ${parameter.label},client_zone,server_zone ) GROUP BY ${parameter.label} <#if parameter.orderBy?default(\'\')?trim? length gt 0> ORDER BY ${parameter.orderBy} desc <#else> ORDER BY total_bytes desc </#if> <#if parameter.limit?default(\'\')?trim? length gt 0> LIMIT ${parameter.limit} </#if>\",\r\n \"option\": \"real-time\",\r\n \"format\": \"json\"\r\n}', '{}', 'if (!parameter.endTime) {\r\n parameter.endTime = parseInt(+new Date()/1000);\r\n}\r\nif (!parameter.startTime) {\r\n parameter.startTime = parameter.endTime - 60 * 60;\r\n}\r\n\r\nparameter.timeDiff = parameter.endTime - parameter.startTime\r\n\r\nif(parameter.type==\'ip\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(common_client_ip,\'_\',common_server_ip)))\";\r\n parameter.label = \'ip\';\r\n}else if(parameter.type==\'country\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(client_country,\'_\',server_country)))\";\r\n parameter.label = \'country\';\r\n}else if(parameter.type==\'asn\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(client_asn,\'_\',server_asn)))\";\r\n parameter.label = \'asn\';\r\n}else if(parameter.type==\'appLabel\'){\r\n parameter.dimension = \'common_app_label\';\r\n parameter.label = \'app_label\';\r\n}else if(parameter.type==\'appCompany\'){\r\n parameter.dimension = \'app_company\';\r\n parameter.label = \'app_company\';\r\n}else if(parameter.type==\'domain\'){\r\n parameter.dimension = \'domain\';\r\n parameter.label = \'domain\';\r\n}else if(parameter.type==\'l7Protocol\'){\r\n parameter.dimension = \'common_l7_protocol\';\r\n parameter.label = \'l7_protocol\';\r\n}else if(parameter.type==\'idcRenter\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(client_idc_renter,\'_\',server_idc_renter)))\";\r\n parameter.label = \'idc_renter\';\r\n}else if(parameter.type==\'province\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(client_province,\'_\',server_province)))\";\r\n parameter.label = \'province\';\r\n}else if(parameter.type==\'city\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(client_region,\'_\',server_region)))\";\r\n parameter.label = \'city\';\r\n}else if(parameter.type==\'isp\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(client_isp,\'_\',server_isp)))\";\r\n parameter.label = \'isp\';\r\n}else if(parameter.type==\'appSubcategory\'){\r\n parameter.dimension = \'app_subcategory\';\r\n parameter.label = \'app_subcategory\';\r\n}else if(parameter.type==\'domainCategoryName\'){\r\n parameter.dimension = \'domain_category_name\';\r\n parameter.label = \'domain_category_name\';\r\n}else if(parameter.type==\'httpHost\'){\r\n parameter.dimension = \'http_host\';\r\n parameter.label = \'http_host\';\r\n}else if(parameter.type==\'sslSni\'){\r\n parameter.dimension = \'ssl_sni\';\r\n parameter.label = \'ssl_sni\';\r\n}else if(parameter.type==\'protocolPort\'){\r\n parameter.dimension = \"concat(common_l7_protocol,\':\',toString(common_server_port))\";\r\n parameter.label = \'protocol_port\';\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}', '\r\nfunction toHump(name) {\r\n return name.replace(/\\_(\\w)/g, function(all, letter){\r\n return letter.toUpperCase();\r\n });\r\n}\r\n\r\nif(result.success){\r\n var o={};\r\n o.resultType=\"table\";\r\n o.result=result.data;\r\n if(o.result.length > 0){\r\n for(var i in o.result){\r\n var pojo = o.result[i];\r\n var tempObj = {};\r\n for (var key in pojo){ \r\n var tempKey = toHump(key);\r\n tempObj[tempKey] = pojo[key];\r\n if(key.indexOf(\"total_bytes\") != -1){\r\n tempObj[\'totalBitsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2) * 8\r\n }else if(key.indexOf(\"total_packets\") != -1){\r\n tempObj[\'totalPacketsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2)\r\n }else if(key.indexOf(\"total_sessions\") != -1){\r\n tempObj[\'totalSessionsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2)\r\n }else if(key.indexOf(\"inbound_bytes\") != -1){\r\n tempObj[\'inboundBitsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2) * 8\r\n }else if(key.indexOf(\"inbound_packets\") != -1){\r\n tempObj[\'inboundPacketsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2)\r\n }else if(key.indexOf(\"outbound_bytes\") != -1){\r\n tempObj[\'outboundBitsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2) * 8\r\n }else if(key.indexOf(\"outbound_packets\") != -1){\r\n tempObj[\'outboundPacketsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2)\r\n }else if(key.indexOf(\"internal_bytes\") != -1){\r\n tempObj[\'internalBitsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2) * 8\r\n }else if(key.indexOf(\"internal_packets\") != -1){\r\n tempObj[\'internalPacketsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2)\r\n }else if(key.indexOf(\"through_bytes\") != -1){\r\n tempObj[\'throughBitsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2) * 8\r\n }else if(key.indexOf(\"through_packets\") != -1){\r\n tempObj[\'throughPacketsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2)\r\n }else if(key.indexOf(\"sessions\") != -1){\r\n tempObj[\'sessionsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2)\r\n }\r\n }\r\n o.result[i] = tempObj;\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}', '2022-08-03 19:56:02', '2022-08-03 19:56:09', 1, ''); INSERT INTO `galaxy_proxy` VALUES (550, 'applicationPerformanceOverviewDrilldownDimensionCycleTrafficAnalysis', '/application/performance/overview/drilldown/dimensionCycleTrafficAnalysis', 'v1', 'GET', '/', '{\r\n \"query\":\"SELECT ${parameter.label} AS ${parameter.label}, SUM(bytes_total) AS total_bytes, SUM(packets_total) AS total_packets, SUM(sessions) AS sessions, SUM(inbound_bytes) AS inbound_bytes, SUM(inbound_packets) AS inbound_packets, SUM(outbound_bytes) AS outbound_bytes, SUM(outbound_packets) AS outbound_packets, SUM(internal_bytes) AS internal_bytes, SUM(internal_packets) AS internal_packets, SUM(external_bytes) AS through_bytes, SUM(external_packets) AS through_packets FROM ( SELECT ${parameter.dimension} as ${parameter.label}, SUM(common_s2c_byte_num + common_c2s_byte_num) AS bytes_total, SUM(common_s2c_pkt_num + common_c2s_pkt_num) AS packets_total, SUM(common_sessions) AS sessions, IF(client_zone = \'internal\' AND server_zone = \'external\' , SUM(common_s2c_byte_num), IF(client_zone = \'external\' AND server_zone = \'internal\', SUM(common_c2s_byte_num), 0)) AS inbound_bytes, IF(client_zone = \'internal\' AND server_zone = \'external\' , SUM(common_s2c_pkt_num), IF(client_zone = \'external\' AND server_zone = \'internal\', SUM(common_c2s_pkt_num), 0)) AS inbound_packets, IF(client_zone = \'external\' AND server_zone = \'internal\' , SUM(common_s2c_byte_num), IF(client_zone = \'internal\' AND server_zone = \'external\', SUM(common_c2s_byte_num), 0)) AS outbound_bytes, IF(client_zone = \'external\' AND server_zone = \'internal\' , SUM(common_s2c_pkt_num), IF(client_zone = \'internal\' AND server_zone = \'external\', SUM(common_c2s_pkt_num), 0)) AS outbound_packets, IF(client_zone = \'internal\' AND server_zone = \'internal\' , SUM(common_s2c_byte_num + common_c2s_byte_num),0) AS internal_bytes, IF(client_zone = \'internal\' AND server_zone = \'internal\' , SUM(common_s2c_pkt_num + common_c2s_pkt_num), 0) AS internal_packets, IF(client_zone = \'external\' AND server_zone = \'external\' , SUM(common_s2c_byte_num + common_c2s_byte_num),0) AS external_bytes, IF(client_zone = \'external\' AND server_zone = \'external\' , SUM(common_s2c_pkt_num + common_c2s_pkt_num), 0) AS external_packets FROM session_record_cn WHERE common_recv_time >= ${parameter.startTime}-${parameter.timeDiff} AND common_recv_time < ${parameter.endTime}-${parameter.timeDiff} AND ${parameter.label} IN (<#list parameter.params?split(\",\") as level><#if !level_has_next>\'${level}\'<#else>\'${level}\',</#if></#list>) <#if parameter.q?default(\'\')?trim? length gt 0> AND (${parameter.q}) </#if> GROUP BY ${parameter.label},client_zone,server_zone ) GROUP BY ${parameter.label} <#if parameter.orderBy?default(\'\')?trim? length gt 0> ORDER BY ${parameter.orderBy} desc <#else> ORDER BY total_bytes desc </#if> <#if parameter.limit?default(\'\')?trim? length gt 0> LIMIT ${parameter.limit} </#if>\",\r\n \"option\": \"real-time\",\r\n \"format\": \"json\"\r\n}', '{}', 'if (!parameter.endTime) {\r\n parameter.endTime = parseInt(+new Date()/1000);\r\n}\r\nif (!parameter.startTime) {\r\n parameter.startTime = parameter.endTime - 60 * 60;\r\n}\r\n\r\nparameter.timeDiff = parameter.endTime - parameter.startTime\r\n\r\nif(parameter.type==\'ip\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(common_client_ip,\'_\',common_server_ip)))\";\r\n parameter.label = \'ip\';\r\n}else if(parameter.type==\'country\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(client_country,\'_\',server_country)))\";\r\n parameter.label = \'country\';\r\n}else if(parameter.type==\'asn\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(client_asn,\'_\',server_asn)))\";\r\n parameter.label = \'asn\';\r\n}else if(parameter.type==\'appLabel\'){\r\n parameter.dimension = \'common_app_label\';\r\n parameter.label = \'app_label\';\r\n}else if(parameter.type==\'appCompany\'){\r\n parameter.dimension = \'app_company\';\r\n parameter.label = \'app_company\';\r\n}else if(parameter.type==\'domain\'){\r\n parameter.dimension = \'domain\';\r\n parameter.label = \'domain\';\r\n}else if(parameter.type==\'l7Protocol\'){\r\n parameter.dimension = \'common_l7_protocol\';\r\n parameter.label = \'l7_protocol\';\r\n}else if(parameter.type==\'idcRenter\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(client_idc_renter,\'_\',server_idc_renter)))\";\r\n parameter.label = \'idc_renter\';\r\n}else if(parameter.type==\'province\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(client_province,\'_\',server_province)))\";\r\n parameter.label = \'province\';\r\n}else if(parameter.type==\'city\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(client_region,\'_\',server_region)))\";\r\n parameter.label = \'city\';\r\n}else if(parameter.type==\'isp\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(client_isp,\'_\',server_isp)))\";\r\n parameter.label = \'isp\';\r\n}else if(parameter.type==\'appSubcategory\'){\r\n parameter.dimension = \'app_subcategory\';\r\n parameter.label = \'app_subcategory\';\r\n}else if(parameter.type==\'domainCategoryName\'){\r\n parameter.dimension = \'domain_category_name\';\r\n parameter.label = \'domain_category_name\';\r\n}else if(parameter.type==\'httpHost\'){\r\n parameter.dimension = \'http_host\';\r\n parameter.label = \'http_host\';\r\n}else if(parameter.type==\'sslSni\'){\r\n parameter.dimension = \'ssl_sni\';\r\n parameter.label = \'ssl_sni\';\r\n}else if(parameter.type==\'protocolPort\'){\r\n parameter.dimension = \"concat(common_l7_protocol,\':\',toString(common_server_port))\";\r\n parameter.label = \'protocol_port\';\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}', '\r\nfunction toHump(name) {\r\n return name.replace(/\\_(\\w)/g, function(all, letter){\r\n return letter.toUpperCase();\r\n });\r\n}\r\n\r\nif(result.success){\r\n var o={};\r\n o.resultType=\"table\";\r\n o.result=result.data;\r\n if(o.result.length > 0){\r\n for(var i in o.result){\r\n var pojo = o.result[i];\r\n var tempObj = {};\r\n for (var key in pojo){ \r\n var tempKey = toHump(key);\r\n tempObj[tempKey] = pojo[key];\r\n if(key.indexOf(\"total_bytes\") != -1){\r\n tempObj[\'totalBitsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2) * 8\r\n }else if(key.indexOf(\"total_packets\") != -1){\r\n tempObj[\'totalPacketsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2)\r\n }else if(key.indexOf(\"total_sessions\") != -1){\r\n tempObj[\'totalSessionsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2)\r\n }else if(key.indexOf(\"inbound_bytes\") != -1){\r\n tempObj[\'inboundBitsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2) * 8\r\n }else if(key.indexOf(\"inbound_packets\") != -1){\r\n tempObj[\'inboundPacketsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2)\r\n }else if(key.indexOf(\"outbound_bytes\") != -1){\r\n tempObj[\'outboundBitsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2) * 8\r\n }else if(key.indexOf(\"outbound_packets\") != -1){\r\n tempObj[\'outboundPacketsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2)\r\n }else if(key.indexOf(\"internal_bytes\") != -1){\r\n tempObj[\'internalBitsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2) * 8\r\n }else if(key.indexOf(\"internal_packets\") != -1){\r\n tempObj[\'internalPacketsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2)\r\n }else if(key.indexOf(\"through_bytes\") != -1){\r\n tempObj[\'throughBitsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2) * 8\r\n }else if(key.indexOf(\"through_packets\") != -1){\r\n tempObj[\'throughPacketsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2)\r\n }else if(key.indexOf(\"sessions\") != -1){\r\n tempObj[\'sessionsRate\'] = (pojo[key] / parameter.timeDiff).toFixed(2)\r\n }\r\n }\r\n o.result[i] = tempObj;\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}', '2022-08-03 22:35:23', '2022-08-03 22:35:25', 1, ''); INSERT INTO `galaxy_proxy` VALUES (551, 'applicationPerformanceOverviewDrilldownDimensionCycleDimensionTcpSessionDelay', '/application/performance/overview/drilldown/dimensionTcpSessionDelay', 'v1', 'GET', '/', '{\r\n \"query\":\"<#if parameter.cycle?default(\'\')?trim? length gt 0 && parameter.cycle ==\'1\'> SELECT ${parameter.dimension} as ${parameter.label}, ROUND(AVG(common_establish_latency_ms)) AS establish_latency_ms, ROUND(SUM(common_c2s_tcp_lostlen + common_s2c_tcp_lostlen)/SUM(common_c2s_byte_num + common_s2c_byte_num + common_c2s_tcp_lostlen + common_s2c_tcp_lostlen),4) AS tcp_lostlen_percent, ROUND(SUM(common_c2s_pkt_retrans + common_s2c_pkt_retrans)/ SUM(common_c2s_pkt_num + common_s2c_pkt_num),4) AS pkt_retrans_percent FROM session_record_cn WHERE common_recv_time >= ${parameter.startTime}-${parameter.timeDiff} AND common_recv_time < ${parameter.endTime}-${parameter.timeDiff} AND common_l4_protocol IN (\'IPv4_TCP\', \'IPv6_TCP\') AND ${parameter.label} IN (<#list parameter.params?split(\",\") as level><#if !level_has_next>\'${level}\'<#else>\'${level}\',</#if></#list>)<#if parameter.q?default(\'\')?trim? length gt 0> AND (${parameter.q}) </#if> GROUP BY ${parameter.label} <#else> SELECT ${parameter.dimension} as ${parameter.label}, ROUND(AVG(common_establish_latency_ms)) AS establish_latency_ms, ROUND(SUM(common_c2s_tcp_lostlen + common_s2c_tcp_lostlen)/SUM(common_c2s_byte_num + common_s2c_byte_num + common_c2s_tcp_lostlen + common_s2c_tcp_lostlen),4) AS tcp_lostlen_percent, ROUND(SUM(common_c2s_pkt_retrans + common_s2c_pkt_retrans)/ SUM(common_c2s_pkt_num + common_s2c_pkt_num),4) AS pkt_retrans_percent FROM session_record_cn WHERE common_recv_time >= ${parameter.startTime} AND common_recv_time < ${parameter.endTime} AND common_l4_protocol IN (\'IPv4_TCP\', \'IPv6_TCP\') AND ${parameter.label} IN (<#list parameter.params?split(\",\") as level><#if !level_has_next>\'${level}\'<#else>\'${level}\',</#if></#list>) <#if parameter.q?default(\'\')?trim? length gt 0> AND (${parameter.q}) </#if> GROUP BY ${parameter.label} </#if>\",\r\n \"option\": \"real-time\",\r\n \"format\": \"json\"\r\n}', '{}', 'if (!parameter.endTime) {\r\n parameter.endTime = parseInt(+new Date()/1000);\r\n}\r\nif (!parameter.startTime) {\r\n parameter.startTime = parameter.endTime - 60 * 60;\r\n}\r\n\r\nparameter.timeDiff = parameter.endTime - parameter.startTime\r\n\r\nif(parameter.type==\'ip\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(common_client_ip,\'_\',common_server_ip)))\";\r\n parameter.label = \'ip\';\r\n}else if(parameter.type==\'country\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(client_country,\'_\',server_country)))\";\r\n parameter.label = \'country\';\r\n}else if(parameter.type==\'asn\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(client_asn,\'_\',server_asn)))\";\r\n parameter.label = \'asn\';\r\n}else if(parameter.type==\'appLabel\'){\r\n parameter.dimension = \'common_app_label\';\r\n parameter.label = \'app_label\';\r\n}else if(parameter.type==\'appCompany\'){\r\n parameter.dimension = \'app_company\';\r\n parameter.label = \'app_company\';\r\n}else if(parameter.type==\'domain\'){\r\n parameter.dimension = \'domain\';\r\n parameter.label = \'domain\';\r\n}else if(parameter.type==\'l7Protocol\'){\r\n parameter.dimension = \'common_l7_protocol\';\r\n parameter.label = \'l7_protocol\';\r\n}else if(parameter.type==\'idcRenter\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(client_idc_renter,\'_\',server_idc_renter)))\";\r\n parameter.label = \'idc_renter\';\r\n}else if(parameter.type==\'province\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(client_province,\'_\',server_province)))\";\r\n parameter.label = \'province\';\r\n}else if(parameter.type==\'city\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(client_region,\'_\',server_region)))\";\r\n parameter.label = \'city\';\r\n}else if(parameter.type==\'isp\'){\r\n parameter.dimension = \"arrayJoin(splitByChar(\'_\',concat(client_isp,\'_\',server_isp)))\";\r\n parameter.label = \'isp\';\r\n}else if(parameter.type==\'appSubcategory\'){\r\n parameter.dimension = \'app_subcategory\';\r\n parameter.label = \'app_subcategory\';\r\n}else if(parameter.type==\'domainCategoryName\'){\r\n parameter.dimension = \'domain_category_name\';\r\n parameter.label = \'domain_category_name\';\r\n}else if(parameter.type==\'httpHost\'){\r\n parameter.dimension = \'http_host\';\r\n parameter.label = \'http_host\';\r\n}else if(parameter.type==\'sslSni\'){\r\n parameter.dimension = \'ssl_sni\';\r\n parameter.label = \'ssl_sni\';\r\n}else if(parameter.type==\'protocolPort\'){\r\n parameter.dimension = \"concat(common_l7_protocol,\':\',toString(common_server_port))\";\r\n parameter.label = \'protocol_port\';\r\n}\r\n\r\nif(parameter.orderBy==\'bytesTotal\'){\r\n parameter.orderBy=\'bytes_total\';\r\n}else if(parameter.orderBy==\'packetsTotal\'){\r\n parameter.orderBy=\'packets_total\';\r\n}else if(parameter.orderBy==\'sessions\'){\r\n parameter.orderBy=\'sessions\';\r\n}', ' function toHump(name) {\r\n return name.replace(/\\_(\\w)/g, function(all, letter){\r\n return letter.toUpperCase();\r\n });\r\n}\r\n\r\nif(result.success){\r\n var o={};\r\n o.resultType=\"table\";\r\n o.result=result.data;\r\n if(o.result.length > 0){\r\n for(var i in o.result){\r\n var pojo = o.result[i];\r\n var tempObj = {};\r\n for (var key in pojo){ \r\n var tempKey = toHump(key);\r\n tempObj[tempKey] = pojo[key];\r\n }\r\n o.result[i] = tempObj;\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}', '2022-08-04 11:20:19', '2022-08-04 11:20:22', 1, ''); |
