fix time bucket issue
This commit is contained in:
parent
cf4430a254
commit
6d46e85a6f
|
|
@ -43,7 +43,7 @@ public class ServiceNameRegisterSerialWorker extends AbstractLocalAsyncWorker {
|
|||
if (serviceId == 0) {
|
||||
int min = dao.getMinServiceId();
|
||||
if (min == 0) {
|
||||
ServiceNameDataDefine.ServiceName noneServiceName = new ServiceNameDataDefine.ServiceName("1", Const.NONE_SERVICE_Name, 0, Const.NONE_SERVICE_ID);
|
||||
ServiceNameDataDefine.ServiceName noneServiceName = new ServiceNameDataDefine.ServiceName("1", Const.NONE_SERVICE_NAME, 0, Const.NONE_SERVICE_ID);
|
||||
dao.save(noneServiceName);
|
||||
|
||||
serviceName.setServiceId(-1);
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ public class Const {
|
|||
public static final String ID_SPLIT = "_";
|
||||
public static final int USER_ID = 1;
|
||||
public static final int NONE_SERVICE_ID = 1;
|
||||
public static final String NONE_SERVICE_Name = "None";
|
||||
public static final String NONE_SERVICE_NAME = "None";
|
||||
public static final String USER_CODE = "User";
|
||||
public static final String SEGMENT_SPAN_SPLIT = "S";
|
||||
public static final String UNKNOWN = "Unknown";
|
||||
|
|
|
|||
|
|
@ -88,6 +88,17 @@ public enum TimeBucketUtils {
|
|||
}
|
||||
}
|
||||
|
||||
public long addSecondForSecondTimeBucket(String timeBucketType, long timeBucket, int second) {
|
||||
if (!TimeBucketType.SECOND.name().equals(timeBucketType)) {
|
||||
throw new UnexpectedException("time bucket type must be second ");
|
||||
}
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTimeInMillis(changeTimeBucket2TimeStamp(timeBucketType, timeBucket));
|
||||
calendar.add(Calendar.SECOND, second);
|
||||
|
||||
return getSecondTimeBucket(calendar.getTimeInMillis());
|
||||
}
|
||||
|
||||
public enum TimeBucketType {
|
||||
SECOND, MINUTE, HOUR, DAY
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import org.elasticsearch.action.get.MultiGetItemResponse;
|
|||
import org.elasticsearch.action.get.MultiGetRequestBuilder;
|
||||
import org.elasticsearch.action.get.MultiGetResponse;
|
||||
import org.skywalking.apm.collector.core.util.Const;
|
||||
import org.skywalking.apm.collector.core.util.TimeBucketUtils;
|
||||
import org.skywalking.apm.collector.storage.define.jvm.CpuMetricTable;
|
||||
import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO;
|
||||
|
||||
|
|
@ -27,13 +28,13 @@ public class CpuMetricEsDAO extends EsDAO implements ICpuMetricDAO {
|
|||
@Override public JsonArray getMetric(int instanceId, long startTimeBucket, long endTimeBucket) {
|
||||
MultiGetRequestBuilder prepareMultiGet = getClient().prepareMultiGet();
|
||||
|
||||
int i = 0;
|
||||
long timeBucket = startTimeBucket;
|
||||
do {
|
||||
String id = (startTimeBucket + i) + Const.ID_SPLIT + instanceId;
|
||||
timeBucket = TimeBucketUtils.INSTANCE.addSecondForSecondTimeBucket(TimeBucketUtils.TimeBucketType.SECOND.name(), timeBucket, 1);
|
||||
String id = timeBucket + Const.ID_SPLIT + instanceId;
|
||||
prepareMultiGet.add(CpuMetricTable.TABLE, CpuMetricTable.TABLE_TYPE, id);
|
||||
i++;
|
||||
}
|
||||
while (startTimeBucket + i <= endTimeBucket);
|
||||
while (timeBucket <= endTimeBucket);
|
||||
|
||||
JsonArray metrics = new JsonArray();
|
||||
MultiGetResponse multiGetResponse = prepareMultiGet.get();
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import org.elasticsearch.search.aggregations.AggregationBuilders;
|
|||
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
|
||||
import org.elasticsearch.search.aggregations.metrics.sum.Sum;
|
||||
import org.skywalking.apm.collector.core.util.Const;
|
||||
import org.skywalking.apm.collector.core.util.TimeBucketUtils;
|
||||
import org.skywalking.apm.collector.storage.define.jvm.GCMetricTable;
|
||||
import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO;
|
||||
import org.skywalking.apm.network.proto.GCPhrase;
|
||||
|
|
@ -89,13 +90,13 @@ public class GCMetricEsDAO extends EsDAO implements IGCMetricDAO {
|
|||
JsonObject response = new JsonObject();
|
||||
|
||||
MultiGetRequestBuilder youngPrepareMultiGet = getClient().prepareMultiGet();
|
||||
int i = 0;
|
||||
long timeBucket = startTimeBucket;
|
||||
do {
|
||||
String youngId = (startTimeBucket + i) + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + GCPhrase.NEW_VALUE;
|
||||
timeBucket = TimeBucketUtils.INSTANCE.addSecondForSecondTimeBucket(TimeBucketUtils.TimeBucketType.SECOND.name(), timeBucket, 1);
|
||||
String youngId = timeBucket + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + GCPhrase.NEW_VALUE;
|
||||
youngPrepareMultiGet.add(GCMetricTable.TABLE, GCMetricTable.TABLE_TYPE, youngId);
|
||||
i++;
|
||||
}
|
||||
while (startTimeBucket + i <= endTimeBucket);
|
||||
while (timeBucket <= endTimeBucket);
|
||||
|
||||
JsonArray youngArray = new JsonArray();
|
||||
MultiGetResponse multiGetResponse = youngPrepareMultiGet.get();
|
||||
|
|
@ -109,13 +110,13 @@ public class GCMetricEsDAO extends EsDAO implements IGCMetricDAO {
|
|||
response.add("ygc", youngArray);
|
||||
|
||||
MultiGetRequestBuilder oldPrepareMultiGet = getClient().prepareMultiGet();
|
||||
i = 0;
|
||||
timeBucket = startTimeBucket;
|
||||
do {
|
||||
String oldId = (startTimeBucket + i) + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + GCPhrase.OLD_VALUE;
|
||||
timeBucket = TimeBucketUtils.INSTANCE.addSecondForSecondTimeBucket(TimeBucketUtils.TimeBucketType.SECOND.name(), timeBucket, 1);
|
||||
String oldId = timeBucket + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + GCPhrase.OLD_VALUE;
|
||||
oldPrepareMultiGet.add(GCMetricTable.TABLE, GCMetricTable.TABLE_TYPE, oldId);
|
||||
i++;
|
||||
}
|
||||
while (startTimeBucket + i <= endTimeBucket);
|
||||
while (timeBucket <= endTimeBucket);
|
||||
|
||||
JsonArray oldArray = new JsonArray();
|
||||
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ import org.elasticsearch.search.aggregations.AggregationBuilders;
|
|||
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
|
||||
import org.elasticsearch.search.aggregations.metrics.sum.Sum;
|
||||
import org.skywalking.apm.collector.core.util.Const;
|
||||
import org.skywalking.apm.collector.core.util.TimeBucketUtils;
|
||||
import org.skywalking.apm.collector.storage.define.instance.InstPerformanceTable;
|
||||
import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO;
|
||||
|
||||
|
|
@ -80,13 +81,13 @@ public class InstPerformanceEsDAO extends EsDAO implements IInstPerformanceDAO {
|
|||
@Override public JsonArray getTpsMetric(int instanceId, long startTimeBucket, long endTimeBucket) {
|
||||
MultiGetRequestBuilder prepareMultiGet = getClient().prepareMultiGet();
|
||||
|
||||
int i = 0;
|
||||
long timeBucket = startTimeBucket;
|
||||
do {
|
||||
String id = (startTimeBucket + i) + Const.ID_SPLIT + instanceId;
|
||||
String id = timeBucket + Const.ID_SPLIT + instanceId;
|
||||
prepareMultiGet.add(InstPerformanceTable.TABLE, InstPerformanceTable.TABLE_TYPE, id);
|
||||
i++;
|
||||
timeBucket = TimeBucketUtils.INSTANCE.addSecondForSecondTimeBucket(TimeBucketUtils.TimeBucketType.SECOND.name(), timeBucket, 1);
|
||||
}
|
||||
while (startTimeBucket + i <= endTimeBucket);
|
||||
while (timeBucket <= endTimeBucket);
|
||||
|
||||
JsonArray metrics = new JsonArray();
|
||||
MultiGetResponse multiGetResponse = prepareMultiGet.get();
|
||||
|
|
@ -116,12 +117,14 @@ public class InstPerformanceEsDAO extends EsDAO implements IInstPerformanceDAO {
|
|||
MultiGetRequestBuilder prepareMultiGet = getClient().prepareMultiGet();
|
||||
|
||||
int i = 0;
|
||||
long timeBucket;
|
||||
do {
|
||||
String id = (startTimeBucket + i) + Const.ID_SPLIT + instanceId;
|
||||
timeBucket = TimeBucketUtils.INSTANCE.addSecondForSecondTimeBucket(TimeBucketUtils.TimeBucketType.SECOND.name(), startTimeBucket, i);
|
||||
String id = timeBucket + Const.ID_SPLIT + instanceId;
|
||||
prepareMultiGet.add(InstPerformanceTable.TABLE, InstPerformanceTable.TABLE_TYPE, id);
|
||||
i++;
|
||||
}
|
||||
while (startTimeBucket + i <= endTimeBucket);
|
||||
while (timeBucket <= endTimeBucket);
|
||||
|
||||
JsonArray metrics = new JsonArray();
|
||||
MultiGetResponse multiGetResponse = prepareMultiGet.get();
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import org.elasticsearch.action.get.MultiGetItemResponse;
|
|||
import org.elasticsearch.action.get.MultiGetRequestBuilder;
|
||||
import org.elasticsearch.action.get.MultiGetResponse;
|
||||
import org.skywalking.apm.collector.core.util.Const;
|
||||
import org.skywalking.apm.collector.core.util.TimeBucketUtils;
|
||||
import org.skywalking.apm.collector.storage.define.jvm.MemoryMetricTable;
|
||||
import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO;
|
||||
|
||||
|
|
@ -36,22 +37,25 @@ public class MemoryMetricEsDAO extends EsDAO implements IMemoryMetricDAO {
|
|||
MultiGetRequestBuilder prepareMultiGet = getClient().prepareMultiGet();
|
||||
|
||||
int i = 0;
|
||||
long timeBucket = startTimeBucket;
|
||||
do {
|
||||
String id = (startTimeBucket + i) + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + isHeap;
|
||||
timeBucket = TimeBucketUtils.INSTANCE.addSecondForSecondTimeBucket(TimeBucketUtils.TimeBucketType.SECOND.name(), timeBucket, 1);
|
||||
String id = timeBucket + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + isHeap;
|
||||
prepareMultiGet.add(MemoryMetricTable.TABLE, MemoryMetricTable.TABLE_TYPE, id);
|
||||
i++;
|
||||
}
|
||||
while (startTimeBucket + i <= endTimeBucket);
|
||||
while (timeBucket <= endTimeBucket);
|
||||
|
||||
JsonObject metric = new JsonObject();
|
||||
JsonArray usedMetric = new JsonArray();
|
||||
MultiGetResponse multiGetResponse = prepareMultiGet.get();
|
||||
for (MultiGetItemResponse response : multiGetResponse.getResponses()) {
|
||||
if (response.getResponse().isExists()) {
|
||||
metric.addProperty("max", ((Number)response.getResponse().getSource().get(MemoryMetricTable.COLUMN_MAX)).intValue());
|
||||
metric.addProperty("init", ((Number)response.getResponse().getSource().get(MemoryMetricTable.COLUMN_INIT)).intValue());
|
||||
usedMetric.add(((Number)response.getResponse().getSource().get(MemoryMetricTable.COLUMN_USED)).intValue());
|
||||
metric.addProperty("max", ((Number)response.getResponse().getSource().get(MemoryMetricTable.COLUMN_MAX)).longValue());
|
||||
metric.addProperty("init", ((Number)response.getResponse().getSource().get(MemoryMetricTable.COLUMN_INIT)).longValue());
|
||||
usedMetric.add(((Number)response.getResponse().getSource().get(MemoryMetricTable.COLUMN_USED)).longValue());
|
||||
} else {
|
||||
metric.addProperty("max", 0);
|
||||
metric.addProperty("init",0);
|
||||
usedMetric.add(0);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import org.elasticsearch.action.get.MultiGetItemResponse;
|
|||
import org.elasticsearch.action.get.MultiGetRequestBuilder;
|
||||
import org.elasticsearch.action.get.MultiGetResponse;
|
||||
import org.skywalking.apm.collector.core.util.Const;
|
||||
import org.skywalking.apm.collector.core.util.TimeBucketUtils;
|
||||
import org.skywalking.apm.collector.storage.define.jvm.MemoryPoolMetricTable;
|
||||
import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO;
|
||||
|
||||
|
|
@ -36,23 +37,25 @@ public class MemoryPoolMetricEsDAO extends EsDAO implements IMemoryPoolMetricDAO
|
|||
int poolType) {
|
||||
MultiGetRequestBuilder prepareMultiGet = getClient().prepareMultiGet();
|
||||
|
||||
int i = 0;
|
||||
long timeBucket = startTimeBucket;
|
||||
do {
|
||||
String id = (startTimeBucket + i) + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + isHeap + Const.ID_SPLIT + poolType;
|
||||
timeBucket = TimeBucketUtils.INSTANCE.addSecondForSecondTimeBucket(TimeBucketUtils.TimeBucketType.SECOND.name(), timeBucket, 1);
|
||||
String id = timeBucket + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + isHeap + Const.ID_SPLIT + poolType;
|
||||
prepareMultiGet.add(MemoryPoolMetricTable.TABLE, MemoryPoolMetricTable.TABLE_TYPE, id);
|
||||
i++;
|
||||
}
|
||||
while (startTimeBucket + i <= endTimeBucket);
|
||||
while (timeBucket <= endTimeBucket);
|
||||
|
||||
JsonObject metric = new JsonObject();
|
||||
JsonArray usedMetric = new JsonArray();
|
||||
MultiGetResponse multiGetResponse = prepareMultiGet.get();
|
||||
for (MultiGetItemResponse response : multiGetResponse.getResponses()) {
|
||||
if (response.getResponse().isExists()) {
|
||||
metric.addProperty("max", ((Number)response.getResponse().getSource().get(MemoryPoolMetricTable.COLUMN_MAX)).intValue());
|
||||
metric.addProperty("init", ((Number)response.getResponse().getSource().get(MemoryPoolMetricTable.COLUMN_INIT)).intValue());
|
||||
usedMetric.add(((Number)response.getResponse().getSource().get(MemoryPoolMetricTable.COLUMN_USED)).intValue());
|
||||
metric.addProperty("max", ((Number)response.getResponse().getSource().get(MemoryPoolMetricTable.COLUMN_MAX)).longValue());
|
||||
metric.addProperty("init", ((Number)response.getResponse().getSource().get(MemoryPoolMetricTable.COLUMN_INIT)).longValue());
|
||||
usedMetric.add(((Number)response.getResponse().getSource().get(MemoryPoolMetricTable.COLUMN_USED)).longValue());
|
||||
} else {
|
||||
metric.addProperty("max", 0);
|
||||
metric.addProperty("init", 0);
|
||||
usedMetric.add(0);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue