Skip to content

Commit d6faee8

Browse files
committed
feat(monitor): add tcp out traffic and udp in traffic statistics
1 parent 54b0395 commit d6faee8

2 files changed

Lines changed: 44 additions & 0 deletions

File tree

framework/src/main/java/org/tron/core/net/service/statistics/TronStatsManager.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,19 @@ private void work() {
6363
Metrics.histogramObserve(MetricKeys.Histogram.TCP_BYTES,
6464
stats.getTcpInSize() - TCP_TRAFFIC_IN,
6565
MetricLabels.Histogram.TRAFFIC_IN);
66+
6667
MetricsUtil.meterMark(MetricsKey.NET_TCP_OUT_TRAFFIC,
6768
stats.getTcpOutSize() - TCP_TRAFFIC_OUT);
69+
Metrics.histogramObserve(MetricKeys.Histogram.TCP_BYTES,
70+
stats.getTcpOutSize() - TCP_TRAFFIC_OUT,
71+
MetricLabels.Histogram.TRAFFIC_OUT);
72+
73+
MetricsUtil.meterMark(MetricsKey.NET_UDP_IN_TRAFFIC,
74+
stats.getUdpInSize() - UDP_TRAFFIC_IN);
6875
Metrics.histogramObserve(MetricKeys.Histogram.UDP_BYTES,
6976
stats.getUdpInSize() - UDP_TRAFFIC_IN,
7077
MetricLabels.Histogram.TRAFFIC_IN);
78+
7179
MetricsUtil.meterMark(MetricsKey.NET_UDP_OUT_TRAFFIC,
7280
stats.getUdpOutSize() - UDP_TRAFFIC_OUT);
7381
Metrics.histogramObserve(MetricKeys.Histogram.UDP_BYTES,

framework/src/test/java/org/tron/core/net/services/TronStatsManagerTest.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.tron.core.net.services;
22

3+
import java.lang.reflect.Field;
4+
import java.lang.reflect.Method;
35
import java.net.InetAddress;
46
import java.net.InetSocketAddress;
57

@@ -24,4 +26,38 @@ public void testOnDisconnect() {
2426
Assert.assertEquals(Protocol.ReasonCode.UNKNOWN, statistics.getDisconnectReason());
2527
}
2628

29+
@Test
30+
public void testWork() throws Exception {
31+
TronStatsManager manager = new TronStatsManager();
32+
Field field1 = manager.getClass().getDeclaredField("TCP_TRAFFIC_IN");
33+
field1.setAccessible(true);
34+
field1.set(manager, 1L);
35+
36+
Field field2 = manager.getClass().getDeclaredField("TCP_TRAFFIC_OUT");
37+
field2.setAccessible(true);
38+
field2.set(manager, 1L);
39+
40+
Field field3 = manager.getClass().getDeclaredField("UDP_TRAFFIC_IN");
41+
field3.setAccessible(true);
42+
field3.set(manager, 1L);
43+
44+
Field field4 = manager.getClass().getDeclaredField("UDP_TRAFFIC_OUT");
45+
field4.setAccessible(true);
46+
field4.set(manager, 1L);
47+
48+
Assert.assertEquals(field1.get(manager), 1L);
49+
Assert.assertEquals(field2.get(manager), 1L);
50+
Assert.assertEquals(field3.get(manager), 1L);
51+
Assert.assertEquals(field4.get(manager), 1L);
52+
53+
Method method = manager.getClass().getDeclaredMethod("work");
54+
method.setAccessible(true);
55+
method.invoke(manager);
56+
57+
Assert.assertEquals(field1.get(manager), 0L);
58+
Assert.assertEquals(field2.get(manager), 0L);
59+
Assert.assertEquals(field3.get(manager), 0L);
60+
Assert.assertEquals(field4.get(manager), 0L);
61+
}
62+
2763
}

0 commit comments

Comments
 (0)