This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch real-metric-script
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git
The following commit(s) were added to refs/heads/real-metric-script by this
push:
new 78b7d38 Support cpm and new indicators.
78b7d38 is described below
commit 78b7d38a052d46732f94e9f10797c42283644f09
Author: Wu Sheng <[email protected]>
AuthorDate: Sun Sep 16 23:18:52 2018 +0800
Support cpm and new indicators.
---
.../EndpointRelationCpmIndicator.java | 11 +++-
.../generated/service/ServiceCpmIndicator.java | 11 +++-
.../ServiceInstanceCpmIndicator.java | 11 +++-
.../ServiceRelationClientCpmIndicator.java | 11 +++-
.../ServiceRelationServerCpmIndicator.java | 11 +++-
.../core/analysis/indicator/CPMIndicator.java | 8 +--
.../server/core/analysis/indicator/Indicator.java | 60 +++++++++++++++++-----
7 files changed, 96 insertions(+), 27 deletions(-)
diff --git
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/endpointrelation/EndpointRelationCpmIndicator.java
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/endpointrelation/EndpointRelationCpmIndicator.java
index 0b9e95a..be083fc 100644
---
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/endpointrelation/EndpointRelationCpmIndicator.java
+++
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/endpointrelation/EndpointRelationCpmIndicator.java
@@ -90,7 +90,8 @@ public class EndpointRelationCpmIndicator extends
CPMIndicator implements AlarmS
remoteBuilder.setDataStrings(0, getEntityId());
remoteBuilder.setDataLongs(0, getValue());
- remoteBuilder.setDataLongs(1, getTimeBucket());
+ remoteBuilder.setDataLongs(1, getTotal());
+ remoteBuilder.setDataLongs(2, getTimeBucket());
remoteBuilder.setDataIntegers(0, getServiceId());
@@ -105,7 +106,8 @@ public class EndpointRelationCpmIndicator extends
CPMIndicator implements AlarmS
setEntityId(remoteData.getDataStrings(0));
setValue(remoteData.getDataLongs(0));
- setTimeBucket(remoteData.getDataLongs(1));
+ setTotal(remoteData.getDataLongs(1));
+ setTimeBucket(remoteData.getDataLongs(2));
setServiceId(remoteData.getDataIntegers(0));
@@ -130,6 +132,7 @@ public class EndpointRelationCpmIndicator extends
CPMIndicator implements AlarmS
indicator.setServiceInstanceId(this.getServiceInstanceId());
indicator.setChildServiceInstanceId(this.getChildServiceInstanceId());
indicator.setValue(this.getValue());
+ indicator.setTotal(this.getTotal());
indicator.setTimeBucket(this.getTimeBucket());
return indicator;
}
@@ -144,6 +147,7 @@ public class EndpointRelationCpmIndicator extends
CPMIndicator implements AlarmS
indicator.setServiceInstanceId(this.getServiceInstanceId());
indicator.setChildServiceInstanceId(this.getChildServiceInstanceId());
indicator.setValue(this.getValue());
+ indicator.setTotal(this.getTotal());
indicator.setTimeBucket(this.getTimeBucket());
return indicator;
}
@@ -158,6 +162,7 @@ public class EndpointRelationCpmIndicator extends
CPMIndicator implements AlarmS
indicator.setServiceInstanceId(this.getServiceInstanceId());
indicator.setChildServiceInstanceId(this.getChildServiceInstanceId());
indicator.setValue(this.getValue());
+ indicator.setTotal(this.getTotal());
indicator.setTimeBucket(this.getTimeBucket());
return indicator;
}
@@ -172,6 +177,7 @@ public class EndpointRelationCpmIndicator extends
CPMIndicator implements AlarmS
map.put("service_instance_id", storageData.getServiceInstanceId());
map.put("child_service_instance_id",
storageData.getChildServiceInstanceId());
map.put("value", storageData.getValue());
+ map.put("total", storageData.getTotal());
map.put("time_bucket", storageData.getTimeBucket());
return map;
}
@@ -184,6 +190,7 @@ public class EndpointRelationCpmIndicator extends
CPMIndicator implements AlarmS
indicator.setServiceInstanceId(((Number)dbMap.get("service_instance_id")).intValue());
indicator.setChildServiceInstanceId(((Number)dbMap.get("child_service_instance_id")).intValue());
indicator.setValue(((Number)dbMap.get("value")).longValue());
+ indicator.setTotal(((Number)dbMap.get("total")).longValue());
indicator.setTimeBucket(((Number)dbMap.get("time_bucket")).longValue());
return indicator;
}
diff --git
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/service/ServiceCpmIndicator.java
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/service/ServiceCpmIndicator.java
index d43da1c..c0619e1 100644
---
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/service/ServiceCpmIndicator.java
+++
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/service/ServiceCpmIndicator.java
@@ -86,7 +86,8 @@ public class ServiceCpmIndicator extends CPMIndicator
implements AlarmSupported
remoteBuilder.setDataStrings(0, getEntityId());
remoteBuilder.setDataLongs(0, getValue());
- remoteBuilder.setDataLongs(1, getTimeBucket());
+ remoteBuilder.setDataLongs(1, getTotal());
+ remoteBuilder.setDataLongs(2, getTimeBucket());
@@ -97,7 +98,8 @@ public class ServiceCpmIndicator extends CPMIndicator
implements AlarmSupported
setEntityId(remoteData.getDataStrings(0));
setValue(remoteData.getDataLongs(0));
- setTimeBucket(remoteData.getDataLongs(1));
+ setTotal(remoteData.getDataLongs(1));
+ setTimeBucket(remoteData.getDataLongs(2));
@@ -114,6 +116,7 @@ public class ServiceCpmIndicator extends CPMIndicator
implements AlarmSupported
indicator.setTimeBucket(toTimeBucketInHour());
indicator.setEntityId(this.getEntityId());
indicator.setValue(this.getValue());
+ indicator.setTotal(this.getTotal());
indicator.setTimeBucket(this.getTimeBucket());
return indicator;
}
@@ -124,6 +127,7 @@ public class ServiceCpmIndicator extends CPMIndicator
implements AlarmSupported
indicator.setTimeBucket(toTimeBucketInDay());
indicator.setEntityId(this.getEntityId());
indicator.setValue(this.getValue());
+ indicator.setTotal(this.getTotal());
indicator.setTimeBucket(this.getTimeBucket());
return indicator;
}
@@ -134,6 +138,7 @@ public class ServiceCpmIndicator extends CPMIndicator
implements AlarmSupported
indicator.setTimeBucket(toTimeBucketInMonth());
indicator.setEntityId(this.getEntityId());
indicator.setValue(this.getValue());
+ indicator.setTotal(this.getTotal());
indicator.setTimeBucket(this.getTimeBucket());
return indicator;
}
@@ -144,6 +149,7 @@ public class ServiceCpmIndicator extends CPMIndicator
implements AlarmSupported
Map<String, Object> map = new HashMap<>();
map.put("entity_id", storageData.getEntityId());
map.put("value", storageData.getValue());
+ map.put("total", storageData.getTotal());
map.put("time_bucket", storageData.getTimeBucket());
return map;
}
@@ -152,6 +158,7 @@ public class ServiceCpmIndicator extends CPMIndicator
implements AlarmSupported
ServiceCpmIndicator indicator = new ServiceCpmIndicator();
indicator.setEntityId((String)dbMap.get("entity_id"));
indicator.setValue(((Number)dbMap.get("value")).longValue());
+ indicator.setTotal(((Number)dbMap.get("total")).longValue());
indicator.setTimeBucket(((Number)dbMap.get("time_bucket")).longValue());
return indicator;
}
diff --git
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/serviceinstance/ServiceInstanceCpmIndicator.java
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/serviceinstance/ServiceInstanceCpmIndicator.java
index 5203199..0949ea0 100644
---
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/serviceinstance/ServiceInstanceCpmIndicator.java
+++
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/serviceinstance/ServiceInstanceCpmIndicator.java
@@ -87,7 +87,8 @@ public class ServiceInstanceCpmIndicator extends CPMIndicator
implements AlarmSu
remoteBuilder.setDataStrings(0, getEntityId());
remoteBuilder.setDataLongs(0, getValue());
- remoteBuilder.setDataLongs(1, getTimeBucket());
+ remoteBuilder.setDataLongs(1, getTotal());
+ remoteBuilder.setDataLongs(2, getTimeBucket());
remoteBuilder.setDataIntegers(0, getServiceId());
@@ -99,7 +100,8 @@ public class ServiceInstanceCpmIndicator extends
CPMIndicator implements AlarmSu
setEntityId(remoteData.getDataStrings(0));
setValue(remoteData.getDataLongs(0));
- setTimeBucket(remoteData.getDataLongs(1));
+ setTotal(remoteData.getDataLongs(1));
+ setTimeBucket(remoteData.getDataLongs(2));
setServiceId(remoteData.getDataIntegers(0));
@@ -118,6 +120,7 @@ public class ServiceInstanceCpmIndicator extends
CPMIndicator implements AlarmSu
indicator.setEntityId(this.getEntityId());
indicator.setServiceId(this.getServiceId());
indicator.setValue(this.getValue());
+ indicator.setTotal(this.getTotal());
indicator.setTimeBucket(this.getTimeBucket());
return indicator;
}
@@ -129,6 +132,7 @@ public class ServiceInstanceCpmIndicator extends
CPMIndicator implements AlarmSu
indicator.setEntityId(this.getEntityId());
indicator.setServiceId(this.getServiceId());
indicator.setValue(this.getValue());
+ indicator.setTotal(this.getTotal());
indicator.setTimeBucket(this.getTimeBucket());
return indicator;
}
@@ -140,6 +144,7 @@ public class ServiceInstanceCpmIndicator extends
CPMIndicator implements AlarmSu
indicator.setEntityId(this.getEntityId());
indicator.setServiceId(this.getServiceId());
indicator.setValue(this.getValue());
+ indicator.setTotal(this.getTotal());
indicator.setTimeBucket(this.getTimeBucket());
return indicator;
}
@@ -151,6 +156,7 @@ public class ServiceInstanceCpmIndicator extends
CPMIndicator implements AlarmSu
map.put("entity_id", storageData.getEntityId());
map.put("service_id", storageData.getServiceId());
map.put("value", storageData.getValue());
+ map.put("total", storageData.getTotal());
map.put("time_bucket", storageData.getTimeBucket());
return map;
}
@@ -160,6 +166,7 @@ public class ServiceInstanceCpmIndicator extends
CPMIndicator implements AlarmSu
indicator.setEntityId((String)dbMap.get("entity_id"));
indicator.setServiceId(((Number)dbMap.get("service_id")).intValue());
indicator.setValue(((Number)dbMap.get("value")).longValue());
+ indicator.setTotal(((Number)dbMap.get("total")).longValue());
indicator.setTimeBucket(((Number)dbMap.get("time_bucket")).longValue());
return indicator;
}
diff --git
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/servicerelation/ServiceRelationClientCpmIndicator.java
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/servicerelation/ServiceRelationClientCpmIndicator.java
index e583f42..281e936 100644
---
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/servicerelation/ServiceRelationClientCpmIndicator.java
+++
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/servicerelation/ServiceRelationClientCpmIndicator.java
@@ -86,7 +86,8 @@ public class ServiceRelationClientCpmIndicator extends
CPMIndicator implements A
remoteBuilder.setDataStrings(0, getEntityId());
remoteBuilder.setDataLongs(0, getValue());
- remoteBuilder.setDataLongs(1, getTimeBucket());
+ remoteBuilder.setDataLongs(1, getTotal());
+ remoteBuilder.setDataLongs(2, getTimeBucket());
@@ -97,7 +98,8 @@ public class ServiceRelationClientCpmIndicator extends
CPMIndicator implements A
setEntityId(remoteData.getDataStrings(0));
setValue(remoteData.getDataLongs(0));
- setTimeBucket(remoteData.getDataLongs(1));
+ setTotal(remoteData.getDataLongs(1));
+ setTimeBucket(remoteData.getDataLongs(2));
@@ -114,6 +116,7 @@ public class ServiceRelationClientCpmIndicator extends
CPMIndicator implements A
indicator.setTimeBucket(toTimeBucketInHour());
indicator.setEntityId(this.getEntityId());
indicator.setValue(this.getValue());
+ indicator.setTotal(this.getTotal());
indicator.setTimeBucket(this.getTimeBucket());
return indicator;
}
@@ -124,6 +127,7 @@ public class ServiceRelationClientCpmIndicator extends
CPMIndicator implements A
indicator.setTimeBucket(toTimeBucketInDay());
indicator.setEntityId(this.getEntityId());
indicator.setValue(this.getValue());
+ indicator.setTotal(this.getTotal());
indicator.setTimeBucket(this.getTimeBucket());
return indicator;
}
@@ -134,6 +138,7 @@ public class ServiceRelationClientCpmIndicator extends
CPMIndicator implements A
indicator.setTimeBucket(toTimeBucketInMonth());
indicator.setEntityId(this.getEntityId());
indicator.setValue(this.getValue());
+ indicator.setTotal(this.getTotal());
indicator.setTimeBucket(this.getTimeBucket());
return indicator;
}
@@ -144,6 +149,7 @@ public class ServiceRelationClientCpmIndicator extends
CPMIndicator implements A
Map<String, Object> map = new HashMap<>();
map.put("source_service_id", storageData.getEntityId());
map.put("value", storageData.getValue());
+ map.put("total", storageData.getTotal());
map.put("time_bucket", storageData.getTimeBucket());
return map;
}
@@ -152,6 +158,7 @@ public class ServiceRelationClientCpmIndicator extends
CPMIndicator implements A
ServiceRelationClientCpmIndicator indicator = new
ServiceRelationClientCpmIndicator();
indicator.setEntityId((String)dbMap.get("source_service_id"));
indicator.setValue(((Number)dbMap.get("value")).longValue());
+ indicator.setTotal(((Number)dbMap.get("total")).longValue());
indicator.setTimeBucket(((Number)dbMap.get("time_bucket")).longValue());
return indicator;
}
diff --git
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/servicerelation/ServiceRelationServerCpmIndicator.java
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/servicerelation/ServiceRelationServerCpmIndicator.java
index 20b2a2d..17763ab 100644
---
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/servicerelation/ServiceRelationServerCpmIndicator.java
+++
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/generated/servicerelation/ServiceRelationServerCpmIndicator.java
@@ -86,7 +86,8 @@ public class ServiceRelationServerCpmIndicator extends
CPMIndicator implements A
remoteBuilder.setDataStrings(0, getEntityId());
remoteBuilder.setDataLongs(0, getValue());
- remoteBuilder.setDataLongs(1, getTimeBucket());
+ remoteBuilder.setDataLongs(1, getTotal());
+ remoteBuilder.setDataLongs(2, getTimeBucket());
@@ -97,7 +98,8 @@ public class ServiceRelationServerCpmIndicator extends
CPMIndicator implements A
setEntityId(remoteData.getDataStrings(0));
setValue(remoteData.getDataLongs(0));
- setTimeBucket(remoteData.getDataLongs(1));
+ setTotal(remoteData.getDataLongs(1));
+ setTimeBucket(remoteData.getDataLongs(2));
@@ -114,6 +116,7 @@ public class ServiceRelationServerCpmIndicator extends
CPMIndicator implements A
indicator.setTimeBucket(toTimeBucketInHour());
indicator.setEntityId(this.getEntityId());
indicator.setValue(this.getValue());
+ indicator.setTotal(this.getTotal());
indicator.setTimeBucket(this.getTimeBucket());
return indicator;
}
@@ -124,6 +127,7 @@ public class ServiceRelationServerCpmIndicator extends
CPMIndicator implements A
indicator.setTimeBucket(toTimeBucketInDay());
indicator.setEntityId(this.getEntityId());
indicator.setValue(this.getValue());
+ indicator.setTotal(this.getTotal());
indicator.setTimeBucket(this.getTimeBucket());
return indicator;
}
@@ -134,6 +138,7 @@ public class ServiceRelationServerCpmIndicator extends
CPMIndicator implements A
indicator.setTimeBucket(toTimeBucketInMonth());
indicator.setEntityId(this.getEntityId());
indicator.setValue(this.getValue());
+ indicator.setTotal(this.getTotal());
indicator.setTimeBucket(this.getTimeBucket());
return indicator;
}
@@ -144,6 +149,7 @@ public class ServiceRelationServerCpmIndicator extends
CPMIndicator implements A
Map<String, Object> map = new HashMap<>();
map.put("source_service_id", storageData.getEntityId());
map.put("value", storageData.getValue());
+ map.put("total", storageData.getTotal());
map.put("time_bucket", storageData.getTimeBucket());
return map;
}
@@ -152,6 +158,7 @@ public class ServiceRelationServerCpmIndicator extends
CPMIndicator implements A
ServiceRelationServerCpmIndicator indicator = new
ServiceRelationServerCpmIndicator();
indicator.setEntityId((String)dbMap.get("source_service_id"));
indicator.setValue(((Number)dbMap.get("value")).longValue());
+ indicator.setTotal(((Number)dbMap.get("total")).longValue());
indicator.setTimeBucket(((Number)dbMap.get("time_bucket")).longValue());
return indicator;
}
diff --git
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/CPMIndicator.java
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/CPMIndicator.java
index 8032f77..5b20370 100644
---
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/CPMIndicator.java
+++
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/CPMIndicator.java
@@ -32,21 +32,23 @@ import
org.apache.skywalking.oap.server.core.storage.annotation.Column;
public abstract class CPMIndicator extends Indicator implements
LongValueHolder {
protected static final String VALUE = "value";
+ protected static final String TOTAL = "total";
@Getter @Setter @Column(columnName = VALUE) private long value;
+ @Getter @Setter @Column(columnName = TOTAL) private long total;
@Entrance
public final void combine(@ConstOne long count) {
- this.value += count;
+ this.total += count;
}
@Override public final void combine(Indicator indicator) {
CPMIndicator countIndicator = (CPMIndicator)indicator;
- combine(countIndicator.value);
+ combine(countIndicator.total);
}
@Override public void calculate() {
-
+ this.value = total / getDurationInMinute();
}
@Override public long getValue() {
diff --git
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/Indicator.java
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/Indicator.java
index 097a8ad..235d2a1 100644
---
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/Indicator.java
+++
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/indicator/Indicator.java
@@ -23,11 +23,14 @@ import lombok.Setter;
import org.apache.skywalking.oap.server.core.remote.data.StreamData;
import org.apache.skywalking.oap.server.core.storage.StorageData;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
+import org.joda.time.format.DateTimeFormat;
+import org.joda.time.format.DateTimeFormatter;
/**
* @author peng-yongsheng
*/
public abstract class Indicator extends StreamData implements StorageData {
+ private static DateTimeFormatter TIME_BUCKET_MONTH_FORMATTER =
DateTimeFormat.forPattern("yyyyMM");
public static final String TIME_BUCKET = "time_bucket";
public static final String ENTITY_ID = "entity_id";
@@ -47,15 +50,7 @@ public abstract class Indicator extends StreamData
implements StorageData {
public abstract Indicator toMonth();
public long toTimeBucketInHour() {
- /**
- * timeBucket in minute
- * 201809120511
- * min
- * 100000000000
- * max
- * 999999999999
- */
- if (timeBucket < 999999999999L && timeBucket > 100000000000L) {
+ if (isMinuteBucket()) {
return timeBucket / 100;
} else {
throw new IllegalStateException("Current time bucket is not in
minute dimensionality");
@@ -63,9 +58,9 @@ public abstract class Indicator extends StreamData implements
StorageData {
}
public long toTimeBucketInDay() {
- if (timeBucket < 999999999999L && timeBucket > 100000000000L) {
+ if (isMinuteBucket()) {
return timeBucket / 10000;
- } else if (timeBucket < 9999999999L && timeBucket > 1000000000L) {
+ } else if (isHourBucket()) {
return timeBucket / 100;
} else {
throw new IllegalStateException("Current time bucket is not in
minute dimensionality");
@@ -73,14 +68,51 @@ public abstract class Indicator extends StreamData
implements StorageData {
}
public long toTimeBucketInMonth() {
- if (timeBucket < 999999999999L && timeBucket > 100000000000L) {
+ if (isMinuteBucket()) {
return timeBucket / 1000000;
- } else if (timeBucket < 9999999999L && timeBucket > 1000000000L) {
+ } else if (isHourBucket()) {
return timeBucket / 10000;
- } else if (timeBucket < 99999999L && timeBucket > 10000000L) {
+ } else if (isDayBucket()) {
return timeBucket / 100;
} else {
throw new IllegalStateException("Current time bucket is not in
minute dimensionality");
}
}
+
+ /**
+ * Always get the duration for this time bucket in minute.
+ *
+ * @return minutes.
+ */
+ protected long getDurationInMinute() {
+ if (isMinuteBucket()) {
+ return 1;
+ } else if (isHourBucket()) {
+ return 60;
+ } else if (isDayBucket()) {
+ return 24 * 60;
+ } else {
+ /**
+ * In month time bucket status.
+ * Usually after {@link #toTimeBucketInMonth()} called.
+ */
+ int dayOfMonth =
TIME_BUCKET_MONTH_FORMATTER.parseLocalDate(timeBucket + "").getDayOfMonth();
+ return dayOfMonth * 24 * 60;
+ }
+ }
+
+ /**
+ * timeBucket in minute 201809120511 min 100000000000 max 999999999999
+ */
+ private boolean isMinuteBucket() {
+ return timeBucket < 999999999999L && timeBucket > 100000000000L;
+ }
+
+ private boolean isHourBucket() {
+ return timeBucket < 9999999999L && timeBucket > 1000000000L;
+ }
+
+ private boolean isDayBucket() {
+ return timeBucket < 99999999L && timeBucket > 10000000L;
+ }
}