summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwangwei <[email protected]>2020-09-08 14:59:31 +0800
committerwangwei <[email protected]>2020-09-08 14:59:31 +0800
commit49a0244f98ffb4b25b67d9d1eb7a093450672a83 (patch)
treeb8c2fe4e6b2033c697d6566c235d0c8476bd4fe7
parent624fd0721b78f2d9401acaeafd0de9bd6de970f5 (diff)
fix(liveChart): 输出fragmentation_packets与sequence_gap_lose指标
-rw-r--r--galaxy-data-engine/src/main/java/com/mesalab/engine/service/impl/NetworkServiceImpl.java26
1 files changed, 23 insertions, 3 deletions
diff --git a/galaxy-data-engine/src/main/java/com/mesalab/engine/service/impl/NetworkServiceImpl.java b/galaxy-data-engine/src/main/java/com/mesalab/engine/service/impl/NetworkServiceImpl.java
index 299dd9f..a14c850 100644
--- a/galaxy-data-engine/src/main/java/com/mesalab/engine/service/impl/NetworkServiceImpl.java
+++ b/galaxy-data-engine/src/main/java/com/mesalab/engine/service/impl/NetworkServiceImpl.java
@@ -99,14 +99,18 @@ public class NetworkServiceImpl implements NetworkService {
if (!statData.isEmpty()) {
data.putAll(statData.get(0));
}
- if (statData.size() >= 2) {
+ if (statData.size() >= 4) {
data.put("current_sessions", statData.get(1).get("total_bytes"));
+ data.put("totalBytesTcp", statData.get(2).get("total_bytes"));
+ data.put("totalPackageTcpUdp", statData.get(3).get("total_bytes"));
}
if (!summaryData.isEmpty()) {
data.putAll(summaryData.get(0));
}
long uniqClientIp = Long.parseLong(String.valueOf(data.get("uniq_client_ip") == null ? 0 : data.get("uniq_client_ip")));
long totalSessions = Long.parseLong(String.valueOf(data.get("total_sessions") == null ? 0 : data.get("total_sessions")));
+ long totalBytesTcp = Long.parseLong(String.valueOf(data.get("totalBytesTcp") == null ? 0 : data.get("totalBytesTcp")));
+ long totalPackageTcpUdp = Long.parseLong(String.valueOf(data.get("totalPackageTcpUdp") == null ? 0 : data.get("totalPackageTcpUdp")));
long currentSessions = Long.parseLong(String.valueOf(data.get("current_sessions") == null ? 0 : data.get("current_sessions")));
long dataRate = Long.parseLong(String.valueOf(data.get("data_rate") == null ? 0 : data.get("data_rate")));
long totalBytes = Long.parseLong(String.valueOf(data.get("total_bytes") == null ? 0 : data.get("total_bytes")));
@@ -114,6 +118,10 @@ public class NetworkServiceImpl implements NetworkService {
double totalUncategorizedPercent = totalBytes == 0 ? 0 : totalUncategorizedBytes * 1.0 / totalBytes;
long oneSidedConnections = Long.parseLong(String.valueOf(data.get("one_sided_connections") == null ? 0 : data.get("one_sided_connections")));
double oneSidedPercent = totalBytes == 0 ? 0 : oneSidedConnections * 1.0 / totalSessions;
+ long sequenceGapLossBytes = Long.parseLong(String.valueOf(data.get("sequence_gap_loss_bytes") == null ? 0 : data.get("sequence_gap_loss_bytes")));
+ double sequenceGapLossBytesPercent = totalBytesTcp == 0 ? 0 : sequenceGapLossBytes * 1.0 / totalBytesTcp;
+ long fragmentationPackets = Long.parseLong(String.valueOf(data.get("fragmentation_packets") == null ? 0 : data.get("fragmentation_packets")));
+ double fragmentationPacketsPercent = totalPackageTcpUdp == 0 ? 0 : fragmentationPackets * 1.0 / totalPackageTcpUdp;
List result = new ArrayList<>();
Map resultMap = new LinkedHashMap<>();
@@ -126,6 +134,10 @@ public class NetworkServiceImpl implements NetworkService {
resultMap.put("total_uncategorized_percent", Double.parseDouble(String.format("%.4f", totalUncategorizedPercent)));
resultMap.put("one_sided_connections", oneSidedConnections);
resultMap.put("one_sided_percent", Double.parseDouble(String.format("%.4f", oneSidedPercent)));
+ resultMap.put("sequence_gap_loss_bytes", sequenceGapLossBytes);
+ resultMap.put("sequence_gap_loss_percent", Double.parseDouble(String.format("%.4f", sequenceGapLossBytesPercent)));
+ resultMap.put("fragmentation_packets", fragmentationPackets);
+ resultMap.put("fragmentation_percent", Double.parseDouble(String.format("%.4f", fragmentationPacketsPercent)));
result.add(resultMap);
Map statistics = (Map) summaryDataResult.get("statistics");
@@ -184,8 +196,14 @@ public class NetworkServiceImpl implements NetworkService {
"( SELECT SUM(sessions), 0, 0 " +
"FROM traffic_protocol_stat_log " +
"WHERE __time >= TIMESTAMP '%s' AND __time < TIMESTAMP '%s' " +
- "AND LENGTH(protocol_id) = LENGTH(REPLACE(protocol_id,'/','')) GROUP BY __time ORDER BY __time DESC LIMIT 1 )",
+ "AND LENGTH(protocol_id) = LENGTH(REPLACE(protocol_id,'/','')) GROUP BY __time ORDER BY __time DESC LIMIT 1 ) " +
+ "UNION ALL " +
+ "( SELECT SUM(c2s_byte_num + s2c_byte_num),0 ,0 FROM traffic_protocol_stat_log WHERE (__time >= TIMESTAMP '%s' AND __time < TIMESTAMP '%s') AND (protocol_id = 'ETHERNET/IPv4/TCP' OR protocol_id = 'ETHERNET/IPv6/TCP') LIMIT 1) " +
+ "UNION ALL " +
+ "( SELECT SUM(c2s_pkt_num + s2c_pkt_num),0 ,0 FROM traffic_protocol_stat_log WHERE (__time >= TIMESTAMP '%s' AND __time < TIMESTAMP '%s') AND (protocol_id = 'ETHERNET/IPv4/TCP' OR protocol_id = 'ETHERNET/IPv6/TCP' OR protocol_id = 'ETHERNET/IPv4/UDP' OR protocol_id = 'ETHERNET/IPv6/UDP') LIMIT 1) ",
queryParam.getIntervals().getEndTime(), queryParam.getIntervals().getStartTime(), queryParam.getIntervals().getStartTime(), queryParam.getIntervals().getEndTime(),
+ queryParam.getIntervals().getStartTime(), queryParam.getIntervals().getEndTime(),
+ queryParam.getIntervals().getStartTime(), queryParam.getIntervals().getEndTime(),
queryParam.getIntervals().getStartTime(), queryParam.getIntervals().getEndTime());
}
@@ -213,7 +231,9 @@ public class NetworkServiceImpl implements NetworkService {
private String generateOverviewSummarySql(QueryParam queryParam) {
return String.format("SELECT APPROX_COUNT_DISTINCT_DS_HLL(ip_object) AS uniq_client_ip, " +
"SUM(one_sided_connections) AS one_sided_connections, " +
- "SUM(uncategorized_bytes) AS total_uncategorized_bytes " +
+ "SUM(uncategorized_bytes) AS total_uncategorized_bytes, " +
+ "SUM(fragmentation_packets) AS fragmentation_packets, " +
+ "SUM(sequence_gap_loss) AS sequence_gap_loss_bytes " +
"FROM %s " +
"WHERE __time >= TIMESTAMP '%s' " +
"AND __time < TIMESTAMP '%s' LIMIT 1 ",