You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2018/12/05 08:10:33 UTC
[servicecomb-java-chassis] 04/04: [SCB-1044]add current process CPU
rate and net packets in the metrics: fix details
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
commit 6c1df294382f12bbea3c87f4143fb40fe6f9f532
Author: heyile <25...@qq.com>
AuthorDate: Tue Dec 4 22:44:35 2018 +0800
[SCB-1044]add current process CPU rate and net packets in the metrics: fix details
---
.../apache/servicecomb/metrics/core/meter/os/CpuMeter.java | 14 ++------------
.../apache/servicecomb/metrics/core/meter/os/NetMeter.java | 9 +++------
.../servicecomb/metrics/core/meter/os/cpu/OsCpuUsage.java | 2 --
.../metrics/core/meter/os/net/InterfaceUsage.java | 7 +++++++
.../servicecomb/metrics/core/meter/os/net/NetStat.java | 1 -
.../metrics/core/publish/DefaultLogPublisher.java | 4 ++--
.../metrics/core/publish/TestDefaultLogPublisher.java | 4 ++--
7 files changed, 16 insertions(+), 25 deletions(-)
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/CpuMeter.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/CpuMeter.java
index 4a64715..6edcf1b 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/CpuMeter.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/CpuMeter.java
@@ -21,18 +21,11 @@ import java.util.List;
import org.apache.servicecomb.metrics.core.meter.os.cpu.OsCpuUsage;
import org.apache.servicecomb.metrics.core.meter.os.cpu.ProcessCpuUsage;
-import com.google.common.annotations.VisibleForTesting;
-import com.netflix.spectator.api.BasicTag;
import com.netflix.spectator.api.Id;
import com.netflix.spectator.api.Measurement;
-import com.netflix.spectator.api.Tag;
public class CpuMeter {
- public static final Tag TAG_All = new BasicTag(OsMeter.OS_TYPE, OsMeter.OS_TYPE_ALL_CPU);
-
- public static final Tag TAG_CURRENT = new BasicTag(OsMeter.OS_TYPE, OsMeter.OS_TYPE_PROCESS_CPU);
-
// read from /proc/stat
private OsCpuUsage allCpuUsage;
@@ -40,8 +33,8 @@ public class CpuMeter {
private ProcessCpuUsage processCpuUsage;
public CpuMeter(Id id) {
- allCpuUsage = new OsCpuUsage(id.withTag(TAG_All));
- processCpuUsage = new ProcessCpuUsage(id.withTag(TAG_CURRENT));
+ allCpuUsage = new OsCpuUsage(id.withTag(OsMeter.OS_TYPE, OsMeter.OS_TYPE_ALL_CPU));
+ processCpuUsage = new ProcessCpuUsage(id.withTag(OsMeter.OS_TYPE, OsMeter.OS_TYPE_PROCESS_CPU));
//must refresh all first
update();
@@ -55,19 +48,16 @@ public class CpuMeter {
measurements.add(new Measurement(processCpuUsage.getId(), msNow, processCpuUsage.getUsage()));
}
- @VisibleForTesting
public void update() {
allCpuUsage.update();
processCpuUsage.setPeriodTotalTime(allCpuUsage.getPeriodTotalTime());
processCpuUsage.update();
}
- @VisibleForTesting
public OsCpuUsage getAllCpuUsage() {
return allCpuUsage;
}
- @VisibleForTesting
public ProcessCpuUsage getProcessCpuUsage() {
return processCpuUsage;
}
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/NetMeter.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/NetMeter.java
index acfe1c7..e6fa13e 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/NetMeter.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/NetMeter.java
@@ -31,7 +31,6 @@ import org.apache.servicecomb.metrics.core.meter.os.net.NetStat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.annotations.VisibleForTesting;
import com.netflix.spectator.api.BasicTag;
import com.netflix.spectator.api.Id;
import com.netflix.spectator.api.Measurement;
@@ -68,10 +67,9 @@ public class NetMeter {
public void calcMeasurements(List<Measurement> measurements, long msNow, long secondInterval) {
refreshNet(secondInterval);
- interfaceUsageMap.values().stream()
- .flatMap(interfaceUsage -> interfaceUsage.getNetStats().stream())
- .map(netStat -> new Measurement(netStat.getId(), msNow, netStat.getRate()))
- .forEach(measurements::add);
+ interfaceUsageMap.values().forEach(interfaceUsage -> {
+ interfaceUsage.calcMeasurements(measurements, msNow);
+ });
}
@@ -114,7 +112,6 @@ public class NetMeter {
}
}
- @VisibleForTesting
public Map<String, InterfaceUsage> getInterfaceUsageMap() {
return interfaceUsageMap;
}
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/cpu/OsCpuUsage.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/cpu/OsCpuUsage.java
index aa9de7e..48b9a8c 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/cpu/OsCpuUsage.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/cpu/OsCpuUsage.java
@@ -16,7 +16,6 @@
*/
package org.apache.servicecomb.metrics.core.meter.os.cpu;
-import com.google.common.annotations.VisibleForTesting;
import com.netflix.spectator.api.Id;
/*
@@ -61,7 +60,6 @@ public class OsCpuUsage extends AbstractCpuUsage {
return currentTotalTime - Long.parseLong(stats[4]);
}
- @VisibleForTesting
public long getLastTotalTime() {
return lastTotalTime;
}
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 d6f1ac7..1fa8a7b 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
@@ -26,6 +26,7 @@ import java.util.ArrayList;
import java.util.List;
import com.netflix.spectator.api.Id;
+import com.netflix.spectator.api.Measurement;
public class InterfaceUsage {
private final String name;
@@ -50,6 +51,12 @@ public class InterfaceUsage {
netStats.add(new NetStat(id.withTag(TAG_PACKETS_SEND), 9));
}
+ public void calcMeasurements(List<Measurement> measurements, long msNow) {
+ netStats.forEach(netStat -> {
+ measurements.add(new Measurement(netStat.getId(), msNow, netStat.getRate()));
+ });
+ }
+
public void update(String interfaceData, long secondInterval) {
String[] netInfo = interfaceData.trim().split("\\s+");
netStats.forEach(netStat -> netStat.update(netInfo, secondInterval));
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/net/NetStat.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/net/NetStat.java
index ed6bbe0..f80a908 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/net/NetStat.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/meter/os/net/NetStat.java
@@ -29,7 +29,6 @@ public class NetStat {
// Bps/pps
private double rate;
-
public NetStat(Id id, int index) {
this.id = id;
this.index = index;
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultLogPublisher.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultLogPublisher.java
index 10635b6..7b3b488 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultLogPublisher.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/DefaultLogPublisher.java
@@ -140,7 +140,7 @@ public class DefaultLogPublisher implements MetricsInitializer {
}
appendLine(sb, " net:");
- appendLine(sb, " send(Bps) recv(Bps) send(pps) recv(pps) interface");
+ appendLine(sb, " send(Bps) recv(Bps) send(pps) recv(pps) interface");
StringBuilder tmpSb = new StringBuilder();
for (MeasurementNode interfaceNode : netNode.getChildren().values()) {
@@ -152,7 +152,7 @@ public class DefaultLogPublisher implements MetricsInitializer {
continue;
}
- appendLine(tmpSb, " %-12s %-12s %-12s %-14s %s",
+ appendLine(tmpSb, " %-12s %-12s %-12s %-12s %s",
NetUtils.humanReadableBytes((long) sendRate),
NetUtils.humanReadableBytes((long) receiveRate),
NetUtils.humanReadableBytes((long) sendPacketsRate),
diff --git a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/publish/TestDefaultLogPublisher.java b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/publish/TestDefaultLogPublisher.java
index 20d743c..81f29dc 100644
--- a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/publish/TestDefaultLogPublisher.java
+++ b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/publish/TestDefaultLogPublisher.java
@@ -240,8 +240,8 @@ public class TestDefaultLogPublisher {
+ " cpu:\n"
+ " all: 100.00% process: 100.00%\n"
+ " net:\n"
- + " send(Bps) recv(Bps) send(pps) recv(pps) interface\n"
- + " 1 1 1 1 eth0\n"
+ + " send(Bps) recv(Bps) send(pps) recv(pps) interface\n"
+ + " 1 1 1 1 eth0\n"
+ "vertx:\n"
+ " instances:\n"
+ " name eventLoopContext-created\n"