This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
The following commit(s) were added to refs/heads/master by this push:
new ce3d69e7c [SCB-2813]fix net meter not correct (#4093)
ce3d69e7c is described below
commit ce3d69e7c3020953845c0eb909b51d5445f5d733
Author: liubao68 <[email protected]>
AuthorDate: Tue Dec 5 20:13:48 2023 +0800
[SCB-2813]fix net meter not correct (#4093)
---
.../metrics/core/meter/os/net/InterfaceUsage.java | 2 +-
.../metrics/core/publish/PublishModelFactory.java | 3 +-
.../metrics/core/meter/os/TestNetMeter.java | 33 +++++++++++++++++++++-
3 files changed, 35 insertions(+), 3 deletions(-)
diff --git
a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/net/InterfaceUsage.java
b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/net/InterfaceUsage.java
index e5b30fa73..b3d40a1bb 100644
---
a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/net/InterfaceUsage.java
+++
b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/net/InterfaceUsage.java
@@ -42,7 +42,7 @@ public class InterfaceUsage {
public InterfaceUsage(MeterRegistry meterRegistry, String name, Tags tags,
String interfaceName) {
this.interfaceName = interfaceName;
- tags = tags.and(Tag.of(INTERFACE, name));
+ tags = tags.and(Tag.of(INTERFACE, interfaceName));
// recv/Bps
receive = new NetStat(0);
diff --git
a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/PublishModelFactory.java
b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/PublishModelFactory.java
index 5baa2917e..7fb9ad43c 100644
---
a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/PublishModelFactory.java
+++
b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/PublishModelFactory.java
@@ -66,7 +66,8 @@ public class PublishModelFactory {
groupConfig.addGroup(OsMeter.OS_NAME,
OsMeter.OS_TYPE,
- new DefaultTagFinder(NetMeter.INTERFACE, true));
+ new DefaultTagFinder(NetMeter.INTERFACE, true),
+ new DefaultTagFinder(NetMeter.STATISTIC, true));
groupConfig.addGroup(VertxMetersInitializer.VERTX_ENDPOINTS,
VertxMetersInitializer.ENDPOINTS_TYPE,
diff --git
a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/meter/os/TestNetMeter.java
b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/meter/os/TestNetMeter.java
index c81aaba8d..721ca1062 100644
---
a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/meter/os/TestNetMeter.java
+++
b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/meter/os/TestNetMeter.java
@@ -16,6 +16,9 @@
*/
package org.apache.servicecomb.metrics.core.meter.os;
+import static org.apache.servicecomb.metrics.core.meter.os.OsMeter.OS_TYPE;
+import static org.apache.servicecomb.metrics.core.meter.os.OsMeter.OS_TYPE_NET;
+
import java.io.File;
import java.nio.charset.Charset;
import java.util.ArrayList;
@@ -23,7 +26,9 @@ import java.util.List;
import java.util.Map;
import org.apache.commons.io.FileUtils;
+import org.apache.servicecomb.foundation.metrics.publish.DefaultTagFinder;
import
org.apache.servicecomb.foundation.metrics.publish.MeasurementGroupConfig;
+import org.apache.servicecomb.foundation.metrics.publish.MeasurementNode;
import org.apache.servicecomb.foundation.metrics.publish.MeasurementTree;
import org.apache.servicecomb.metrics.core.meter.os.net.InterfaceUsage;
import org.junit.Test;
@@ -50,10 +55,12 @@ public class TestNetMeter {
}
};
MeterRegistry meterRegistry = new SimpleMeterRegistry();
- NetMeter netMeter = new NetMeter(meterRegistry, "net", Tags.empty());
+ NetMeter netMeter = new NetMeter(meterRegistry, "os", Tags.of(OS_TYPE,
OS_TYPE_NET));
list.remove(2);
list.add("eth0: 1 1 0 0 0 0 0 1 1 1
1 0 0 0 0 0");
netMeter.refreshNet(1);
+
+
Map<String, InterfaceUsage> meterInterfaceInfoMap =
netMeter.getInterfaceUsageMap();
Assertions.assertTrue(meterInterfaceInfoMap.containsKey("eth0"));
@@ -79,6 +86,30 @@ public class TestNetMeter {
Assertions.assertEquals(1L, eth0.getPacketsSend().getLastValue());
Assertions.assertEquals(1, eth0.getPacketsSend().getRate(), 0.0);
Assertions.assertEquals(9, eth0.getPacketsSend().getIndex());
+
+ // measurement tree test
+ MeasurementGroupConfig group = new MeasurementGroupConfig();
+ group.addGroup(OsMeter.OS_NAME,
+ OS_TYPE,
+ new DefaultTagFinder(NetMeter.INTERFACE, true),
+ new DefaultTagFinder(NetMeter.STATISTIC, true));
+
+ MeasurementTree tree = new MeasurementTree();
+ tree.from(meterRegistry.getMeters().iterator(), group);
+ MeasurementNode osNode = tree.findChild(OsMeter.OS_NAME);
+ MeasurementNode netNode = osNode.findChild(OS_TYPE_NET);
+ Assertions.assertEquals(1, netNode.getChildren().size());
+ for (MeasurementNode interfaceNode : netNode.getChildren().values()) {
+ double sendRate =
interfaceNode.findChild(NetMeter.TAG_SEND.getValue()).summary();
+ double sendPacketsRate =
interfaceNode.findChild(NetMeter.TAG_PACKETS_SEND.getValue()).summary();
+ double receiveRate =
interfaceNode.findChild(NetMeter.TAG_RECEIVE.getValue()).summary();
+ double receivePacketsRate =
interfaceNode.findChild(NetMeter.TAG_PACKETS_RECEIVE.getValue()).summary();
+ Assertions.assertEquals(1, sendRate, 0);
+ Assertions.assertEquals(1, sendPacketsRate, 0);
+ Assertions.assertEquals(1, receiveRate, 0);
+ Assertions.assertEquals(1, receivePacketsRate, 0);
+ }
+
}