提交 3773c468 编写于 作者: P pengys5

Merge branch 'master' into feature/cluster

......@@ -111,10 +111,9 @@ public class JVMMetricsServiceHandler extends JVMMetricsServiceGrpc.JVMMetricsSe
memoryPools.forEach(memoryPool -> {
MemoryPoolMetricDataDefine.MemoryPoolMetric memoryPoolMetric = new MemoryPoolMetricDataDefine.MemoryPoolMetric();
memoryPoolMetric.setId(timeBucket + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + memoryPool.getIsHeap() + Const.ID_SPLIT + String.valueOf(memoryPool.getType().getNumber()));
memoryPoolMetric.setId(timeBucket + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + String.valueOf(memoryPool.getType().getNumber()));
memoryPoolMetric.setInstanceId(instanceId);
memoryPoolMetric.setPoolType(memoryPool.getType().getNumber());
memoryPoolMetric.setHeap(memoryPool.getIsHeap());
memoryPoolMetric.setInit(memoryPool.getInit());
memoryPoolMetric.setMax(memoryPool.getMax());
memoryPoolMetric.setUsed(memoryPool.getUsed());
......
......@@ -4,11 +4,11 @@ import java.util.HashMap;
import java.util.Map;
import org.elasticsearch.action.index.IndexRequestBuilder;
import org.elasticsearch.action.update.UpdateRequestBuilder;
import org.skywalking.apm.collector.core.stream.Data;
import org.skywalking.apm.collector.storage.define.DataDefine;
import org.skywalking.apm.collector.storage.define.jvm.MemoryPoolMetricTable;
import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO;
import org.skywalking.apm.collector.stream.worker.impl.dao.IPersistenceDAO;
import org.skywalking.apm.collector.core.stream.Data;
import org.skywalking.apm.collector.storage.define.DataDefine;
/**
* @author pengys5
......@@ -23,7 +23,6 @@ public class MemoryPoolMetricEsDAO extends EsDAO implements IMemoryPoolMetricDAO
Map<String, Object> source = new HashMap<>();
source.put(MemoryPoolMetricTable.COLUMN_INSTANCE_ID, data.getDataInteger(0));
source.put(MemoryPoolMetricTable.COLUMN_POOL_TYPE, data.getDataInteger(1));
source.put(MemoryPoolMetricTable.COLUMN_IS_HEAP, data.getDataBoolean(0));
source.put(MemoryPoolMetricTable.COLUMN_INIT, data.getDataLong(0));
source.put(MemoryPoolMetricTable.COLUMN_MAX, data.getDataLong(1));
source.put(MemoryPoolMetricTable.COLUMN_USED, data.getDataLong(2));
......
package org.skywalking.apm.collector.agentjvm.worker.memorypool.define;
import org.skywalking.apm.collector.storage.define.jvm.MemoryPoolMetricTable;
import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchColumnDefine;
import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchTableDefine;
import org.skywalking.apm.collector.storage.define.jvm.MemoryPoolMetricTable;
/**
* @author pengys5
......@@ -28,7 +28,6 @@ public class MemoryPoolMetricEsTableDefine extends ElasticSearchTableDefine {
@Override public void initialize() {
addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COLUMN_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COLUMN_POOL_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COLUMN_IS_HEAP, ElasticSearchColumnDefine.Type.Boolean.name()));
addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COLUMN_INIT, ElasticSearchColumnDefine.Type.Long.name()));
addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COLUMN_MAX, ElasticSearchColumnDefine.Type.Long.name()));
addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COLUMN_USED, ElasticSearchColumnDefine.Type.Long.name()));
......
package org.skywalking.apm.collector.agentjvm.worker.memorypool.define;
import org.skywalking.apm.collector.storage.define.jvm.MemoryPoolMetricTable;
import org.skywalking.apm.collector.storage.h2.define.H2ColumnDefine;
import org.skywalking.apm.collector.storage.h2.define.H2TableDefine;
import org.skywalking.apm.collector.storage.define.jvm.MemoryPoolMetricTable;
/**
* @author pengys5
......@@ -17,7 +17,6 @@ public class MemoryPoolMetricH2TableDefine extends H2TableDefine {
addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_POOL_TYPE, H2ColumnDefine.Type.Int.name()));
addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_IS_HEAP, H2ColumnDefine.Type.Boolean.name()));
addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_INIT, H2ColumnDefine.Type.Bigint.name()));
addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_MAX, H2ColumnDefine.Type.Bigint.name()));
addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_USED, H2ColumnDefine.Type.Bigint.name()));
......
......@@ -100,7 +100,6 @@ public class JVMMetricsServiceHandlerTestCase {
private static MemoryPool.Builder buildMemoryPoolMetric(PoolType poolType, boolean isHeap) {
MemoryPool.Builder builder = MemoryPool.newBuilder();
builder.setType(poolType);
builder.setIsHeap(isHeap);
builder.setInit(20);
builder.setMax(100);
builder.setUsed(50);
......
package org.skywalking.apm.collector.storage.define.jvm;
import org.skywalking.apm.collector.core.framework.UnexpectedException;
import org.skywalking.apm.collector.remote.grpc.proto.RemoteData;
import org.skywalking.apm.collector.storage.define.Attribute;
import org.skywalking.apm.collector.storage.define.AttributeType;
import org.skywalking.apm.collector.core.stream.Data;
import org.skywalking.apm.collector.storage.define.DataDefine;
import org.skywalking.apm.collector.core.stream.Transform;
import org.skywalking.apm.collector.core.stream.operate.CoverOperation;
import org.skywalking.apm.collector.core.stream.operate.NonOperation;
import org.skywalking.apm.collector.remote.grpc.proto.RemoteData;
import org.skywalking.apm.collector.storage.define.Attribute;
import org.skywalking.apm.collector.storage.define.AttributeType;
import org.skywalking.apm.collector.storage.define.DataDefine;
/**
* @author pengys5
......@@ -16,19 +16,18 @@ import org.skywalking.apm.collector.core.stream.operate.NonOperation;
public class MemoryPoolMetricDataDefine extends DataDefine {
@Override protected int initialCapacity() {
return 9;
return 8;
}
@Override protected void attributeDefine() {
addAttribute(0, new Attribute(MemoryPoolMetricTable.COLUMN_ID, AttributeType.STRING, new NonOperation()));
addAttribute(1, new Attribute(MemoryPoolMetricTable.COLUMN_INSTANCE_ID, AttributeType.INTEGER, new CoverOperation()));
addAttribute(2, new Attribute(MemoryPoolMetricTable.COLUMN_POOL_TYPE, AttributeType.INTEGER, new CoverOperation()));
addAttribute(3, new Attribute(MemoryPoolMetricTable.COLUMN_IS_HEAP, AttributeType.BOOLEAN, new CoverOperation()));
addAttribute(4, new Attribute(MemoryPoolMetricTable.COLUMN_INIT, AttributeType.LONG, new CoverOperation()));
addAttribute(5, new Attribute(MemoryPoolMetricTable.COLUMN_MAX, AttributeType.LONG, new CoverOperation()));
addAttribute(6, new Attribute(MemoryPoolMetricTable.COLUMN_USED, AttributeType.LONG, new CoverOperation()));
addAttribute(7, new Attribute(MemoryPoolMetricTable.COLUMN_COMMITTED, AttributeType.LONG, new CoverOperation()));
addAttribute(8, new Attribute(MemoryPoolMetricTable.COLUMN_TIME_BUCKET, AttributeType.LONG, new CoverOperation()));
addAttribute(3, new Attribute(MemoryPoolMetricTable.COLUMN_INIT, AttributeType.LONG, new CoverOperation()));
addAttribute(4, new Attribute(MemoryPoolMetricTable.COLUMN_MAX, AttributeType.LONG, new CoverOperation()));
addAttribute(5, new Attribute(MemoryPoolMetricTable.COLUMN_USED, AttributeType.LONG, new CoverOperation()));
addAttribute(6, new Attribute(MemoryPoolMetricTable.COLUMN_COMMITTED, AttributeType.LONG, new CoverOperation()));
addAttribute(7, new Attribute(MemoryPoolMetricTable.COLUMN_TIME_BUCKET, AttributeType.LONG, new CoverOperation()));
}
@Override public Object deserialize(RemoteData remoteData) {
......@@ -43,19 +42,17 @@ public class MemoryPoolMetricDataDefine extends DataDefine {
private String id;
private int instanceId;
private int poolType;
private boolean isHeap;
private long init;
private long max;
private long used;
private long committed;
private long timeBucket;
public MemoryPoolMetric(String id, int instanceId, int poolType, boolean isHeap, long init, long max,
public MemoryPoolMetric(String id, int instanceId, int poolType, long init, long max,
long used, long committed, long timeBucket) {
this.id = id;
this.instanceId = instanceId;
this.poolType = poolType;
this.isHeap = isHeap;
this.init = init;
this.max = max;
this.used = used;
......@@ -72,7 +69,6 @@ public class MemoryPoolMetricDataDefine extends DataDefine {
data.setDataString(0, this.id);
data.setDataInteger(0, this.instanceId);
data.setDataInteger(1, this.poolType);
data.setDataBoolean(0, this.isHeap);
data.setDataLong(0, this.init);
data.setDataLong(1, this.max);
data.setDataLong(2, this.used);
......@@ -85,7 +81,6 @@ public class MemoryPoolMetricDataDefine extends DataDefine {
this.id = data.getDataString(0);
this.instanceId = data.getDataInteger(0);
this.poolType = data.getDataInteger(1);
this.isHeap = data.getDataBoolean(0);
this.init = data.getDataLong(0);
this.max = data.getDataLong(1);
this.used = data.getDataLong(2);
......@@ -106,10 +101,6 @@ public class MemoryPoolMetricDataDefine extends DataDefine {
this.poolType = poolType;
}
public void setHeap(boolean heap) {
isHeap = heap;
}
public void setInit(long init) {
this.init = init;
}
......
......@@ -9,7 +9,6 @@ public class MemoryPoolMetricTable extends CommonTable {
public static final String TABLE = "memory_pool_metric";
public static final String COLUMN_INSTANCE_ID = "instance_id";
public static final String COLUMN_POOL_TYPE = "pool_type";
public static final String COLUMN_IS_HEAP = "is_heap";
public static final String COLUMN_INIT = "init";
public static final String COLUMN_MAX = "max";
public static final String COLUMN_USED = "used";
......
......@@ -6,7 +6,7 @@ import com.google.gson.JsonObject;
* @author pengys5
*/
public interface IMemoryPoolMetricDAO {
JsonObject getMetric(int instanceId, long timeBucket, boolean isHeap, int poolType);
JsonObject getMetric(int instanceId, long timeBucket, int poolType);
JsonObject getMetric(int instanceId, long startTimeBucket, long endTimeBucket, boolean isHeap, int poolType);
JsonObject getMetric(int instanceId, long startTimeBucket, long endTimeBucket, int poolType);
}
......@@ -16,8 +16,8 @@ import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO;
*/
public class MemoryPoolMetricEsDAO extends EsDAO implements IMemoryPoolMetricDAO {
@Override public JsonObject getMetric(int instanceId, long timeBucket, boolean isHeap, int poolType) {
String id = timeBucket + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + isHeap + Const.ID_SPLIT + poolType;
@Override public JsonObject getMetric(int instanceId, long timeBucket, int poolType) {
String id = timeBucket + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + poolType;
GetResponse getResponse = getClient().prepareGet(MemoryPoolMetricTable.TABLE, id).get();
JsonObject metric = new JsonObject();
......@@ -33,14 +33,13 @@ public class MemoryPoolMetricEsDAO extends EsDAO implements IMemoryPoolMetricDAO
return metric;
}
@Override public JsonObject getMetric(int instanceId, long startTimeBucket, long endTimeBucket, boolean isHeap,
int poolType) {
@Override public JsonObject getMetric(int instanceId, long startTimeBucket, long endTimeBucket, int poolType) {
MultiGetRequestBuilder prepareMultiGet = getClient().prepareMultiGet();
long timeBucket = startTimeBucket;
do {
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;
String id = timeBucket + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + poolType;
prepareMultiGet.add(MemoryPoolMetricTable.TABLE, MemoryPoolMetricTable.TABLE_TYPE, id);
}
while (timeBucket <= endTimeBucket);
......
......@@ -30,11 +30,10 @@ public class InstanceJVMService {
IInstanceDAO instanceDAO = (IInstanceDAO)DAOContainer.INSTANCE.get(IInstanceDAO.class.getName());
InstanceDataDefine.Instance instance = instanceDAO.getInstance(instanceId);
if (ObjectUtils.isEmpty(instance)) {
throw new UnexpectedException("instance id: " + instance + " not exist.");
throw new UnexpectedException("instance id: " + instanceId + " not exist.");
}
JsonObject response = gson.fromJson(instance.getOsInfo(), JsonObject.class);
return response;
return gson.fromJson(instance.getOsInfo(), JsonObject.class);
}
public JsonObject getInstanceJvmMetric(int instanceId, Set<String> metricTypes, long timeBucket) {
......@@ -58,36 +57,21 @@ public class InstanceJVMService {
} else if (metricType.toLowerCase().equals(MetricType.nonheapmemory.name())) {
IMemoryMetricDAO memoryMetricDAO = (IMemoryMetricDAO)DAOContainer.INSTANCE.get(IMemoryMetricDAO.class.getName());
metrics.add(MetricType.nonheapmemory.name(), memoryMetricDAO.getMetric(instanceId, timeBucket, false));
} else if (metricType.toLowerCase().equals(MetricType.heappermgen.name())) {
} else if (metricType.toLowerCase().equals(MetricType.permgen.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.heappermgen.name(), memoryPoolMetricDAO.getMetric(instanceId, timeBucket, true, PoolType.PERMGEN_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.heapmetaspace.name())) {
metrics.add(MetricType.permgen.name(), memoryPoolMetricDAO.getMetric(instanceId, timeBucket, PoolType.PERMGEN_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.metaspace.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.heapmetaspace.name(), memoryPoolMetricDAO.getMetric(instanceId, timeBucket, true, PoolType.METASPACE_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.heapnewgen.name())) {
metrics.add(MetricType.metaspace.name(), memoryPoolMetricDAO.getMetric(instanceId, timeBucket, PoolType.METASPACE_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.newgen.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.heapnewgen.name(), memoryPoolMetricDAO.getMetric(instanceId, timeBucket, true, PoolType.NEWGEN_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.heapoldgen.name())) {
metrics.add(MetricType.newgen.name(), memoryPoolMetricDAO.getMetric(instanceId, timeBucket, PoolType.NEWGEN_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.oldgen.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.heapoldgen.name(), memoryPoolMetricDAO.getMetric(instanceId, timeBucket, true, PoolType.OLDGEN_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.heapsurvivor.name())) {
metrics.add(MetricType.oldgen.name(), memoryPoolMetricDAO.getMetric(instanceId, timeBucket, PoolType.OLDGEN_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.survivor.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.heapsurvivor.name(), memoryPoolMetricDAO.getMetric(instanceId, timeBucket, true, PoolType.SURVIVOR_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.nonheappermgen.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.nonheappermgen.name(), memoryPoolMetricDAO.getMetric(instanceId, timeBucket, false, PoolType.PERMGEN_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.nonheapmetaspace.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.nonheapmetaspace.name(), memoryPoolMetricDAO.getMetric(instanceId, timeBucket, false, PoolType.METASPACE_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.nonheapnewgen.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.nonheapnewgen.name(), memoryPoolMetricDAO.getMetric(instanceId, timeBucket, false, PoolType.NEWGEN_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.nonheapoldgen.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.nonheapnewgen.name(), memoryPoolMetricDAO.getMetric(instanceId, timeBucket, false, PoolType.OLDGEN_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.nonheapsurvivor.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.nonheapsurvivor.name(), memoryPoolMetricDAO.getMetric(instanceId, timeBucket, false, PoolType.OLDGEN_USAGE_VALUE));
metrics.add(MetricType.survivor.name(), memoryPoolMetricDAO.getMetric(instanceId, timeBucket, PoolType.SURVIVOR_USAGE_VALUE));
} else {
throw new UnexpectedException("unexpected metric type");
}
......@@ -117,36 +101,21 @@ public class InstanceJVMService {
} else if (metricType.toLowerCase().equals(MetricType.nonheapmemory.name())) {
IMemoryMetricDAO memoryMetricDAO = (IMemoryMetricDAO)DAOContainer.INSTANCE.get(IMemoryMetricDAO.class.getName());
metrics.add(MetricType.nonheapmemory.name(), memoryMetricDAO.getMetric(instanceId, startTimeBucket, endTimeBucket, false));
} else if (metricType.toLowerCase().equals(MetricType.heappermgen.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.heappermgen.name(), memoryPoolMetricDAO.getMetric(instanceId, startTimeBucket, endTimeBucket, true, PoolType.PERMGEN_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.heapmetaspace.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.heapmetaspace.name(), memoryPoolMetricDAO.getMetric(instanceId, startTimeBucket, endTimeBucket, true, PoolType.METASPACE_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.heapnewgen.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.heapnewgen.name(), memoryPoolMetricDAO.getMetric(instanceId, startTimeBucket, endTimeBucket, true, PoolType.NEWGEN_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.heapoldgen.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.heapoldgen.name(), memoryPoolMetricDAO.getMetric(instanceId, startTimeBucket, endTimeBucket, true, PoolType.OLDGEN_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.heapsurvivor.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.heapsurvivor.name(), memoryPoolMetricDAO.getMetric(instanceId, startTimeBucket, endTimeBucket, true, PoolType.SURVIVOR_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.nonheappermgen.name())) {
} else if (metricType.toLowerCase().equals(MetricType.permgen.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.nonheappermgen.name(), memoryPoolMetricDAO.getMetric(instanceId, startTimeBucket, endTimeBucket, false, PoolType.PERMGEN_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.nonheapmetaspace.name())) {
metrics.add(MetricType.permgen.name(), memoryPoolMetricDAO.getMetric(instanceId, startTimeBucket, endTimeBucket, PoolType.PERMGEN_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.metaspace.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.nonheapmetaspace.name(), memoryPoolMetricDAO.getMetric(instanceId, startTimeBucket, endTimeBucket, false, PoolType.METASPACE_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.nonheapnewgen.name())) {
metrics.add(MetricType.metaspace.name(), memoryPoolMetricDAO.getMetric(instanceId, startTimeBucket, endTimeBucket, PoolType.METASPACE_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.newgen.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.nonheapnewgen.name(), memoryPoolMetricDAO.getMetric(instanceId, startTimeBucket, endTimeBucket, false, PoolType.NEWGEN_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.nonheapoldgen.name())) {
metrics.add(MetricType.newgen.name(), memoryPoolMetricDAO.getMetric(instanceId, startTimeBucket, endTimeBucket, PoolType.NEWGEN_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.oldgen.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.nonheapnewgen.name(), memoryPoolMetricDAO.getMetric(instanceId, startTimeBucket, endTimeBucket, false, PoolType.OLDGEN_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.nonheapsurvivor.name())) {
metrics.add(MetricType.oldgen.name(), memoryPoolMetricDAO.getMetric(instanceId, startTimeBucket, endTimeBucket, PoolType.OLDGEN_USAGE_VALUE));
} else if (metricType.toLowerCase().equals(MetricType.survivor.name())) {
IMemoryPoolMetricDAO memoryPoolMetricDAO = (IMemoryPoolMetricDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName());
metrics.add(MetricType.nonheapsurvivor.name(), memoryPoolMetricDAO.getMetric(instanceId, startTimeBucket, endTimeBucket, false, PoolType.OLDGEN_USAGE_VALUE));
metrics.add(MetricType.survivor.name(), memoryPoolMetricDAO.getMetric(instanceId, startTimeBucket, endTimeBucket, PoolType.SURVIVOR_USAGE_VALUE));
} else {
throw new UnexpectedException("unexpected metric type");
}
......@@ -156,8 +125,7 @@ public class InstanceJVMService {
}
public enum MetricType {
cpu, gc, tps, resptime, heapmemory, heappermgen, heapmetaspace, heapnewgen,
heapoldgen, heapsurvivor, nonheapmemory, nonheappermgen, nonheapmetaspace,
nonheapnewgen, nonheapoldgen, nonheapsurvivor
cpu, gc, tps, resptime, heapmemory, nonheapmemory, permgen, metaspace, newgen,
oldgen, survivor
}
}
......@@ -37,11 +37,10 @@ message Memory {
message MemoryPool {
PoolType type = 1;
bool isHeap = 2;
int64 init = 3;
int64 max = 4;
int64 used = 5;
int64 commited = 6;
int64 init = 2;
int64 max = 3;
int64 used = 4;
int64 commited = 5;
}
enum PoolType {
......
......@@ -24,7 +24,10 @@ public enum GCProvider {
break;
}
}
this.metricAccessor = new UnknowGC();
if (metricAccessor == null) {
this.metricAccessor = new UnknowGC();
}
}
public List<GC> getGCList() {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册