From a798bb64986d6be8704393889ecf9d609276c08c Mon Sep 17 00:00:00 2001 From: pengys5 <8082209@qq.com> Date: Wed, 9 Aug 2017 23:47:20 +0800 Subject: [PATCH 1/9] Add cpu metric record persistence, but not test. --- .../grpc/AgentStreamGRPCModuleDefine.java | 2 + .../handler/JVMMetricsServiceHandler.java | 56 ++++++++++ .../cpu/CpuMetricPersistenceWorker.java | 71 ++++++++++++ .../jvmmetric/cpu/dao/CpuMetricEsDAO.java | 34 ++++++ .../jvmmetric/cpu/dao/CpuMetricH2DAO.java | 9 ++ .../jvmmetric/cpu/dao/ICpuMetricDAO.java | 7 ++ .../cpu/define/CpuMetricDataDefine.java | 102 ++++++++++++++++++ .../cpu/define/CpuMetricEsTableDefine.java | 32 ++++++ .../cpu/define/CpuMetricH2TableDefine.java | 21 ++++ .../jvmmetric/cpu/define/CpuMetricTable.java | 12 +++ .../worker/util/TimeBucketUtils.java | 8 ++ .../resources/META-INF/defines/es_dao.define | 3 +- .../resources/META-INF/defines/h2_dao.define | 3 +- .../defines/local_worker_provider.define | 2 + .../resources/META-INF/defines/storage.define | 5 +- .../util/TimeBucketUtilsTestCase.java | 47 ++++++++ .../define/ElasticSearchColumnDefine.java | 2 +- .../storage/h2/define/H2ColumnDefine.java | 2 +- .../worker/impl/data/AttributeType.java | 2 +- .../stream/worker/impl/data/Data.java | 24 ++--- .../stream/worker/impl/data/DataDefine.java | 16 +-- .../stream/worker/impl/data/Operation.java | 2 +- .../impl/data/operate/AddOperation.java | 2 +- .../impl/data/operate/CoverOperation.java | 2 +- .../impl/data/operate/NonOperation.java | 2 +- .../src/main/proto/RemoteCommonService.proto | 4 +- 26 files changed, 440 insertions(+), 32 deletions(-) create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/CpuMetricPersistenceWorker.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/CpuMetricEsDAO.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/CpuMetricH2DAO.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/ICpuMetricDAO.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricDataDefine.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricEsTableDefine.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricH2TableDefine.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricTable.java create mode 100644 apm-collector/apm-collector-agentstream/src/test/java/org/skywalking/apm/collector/agentstream/util/TimeBucketUtilsTestCase.java diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCModuleDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCModuleDefine.java index 1cc1bdfad3b3..4e190caeda84 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCModuleDefine.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCModuleDefine.java @@ -4,6 +4,7 @@ import java.util.List; import org.skywalking.apm.collector.agentstream.AgentStreamModuleDefine; import org.skywalking.apm.collector.agentstream.AgentStreamModuleGroupDefine; +import org.skywalking.apm.collector.agentstream.grpc.handler.JVMMetricsServiceHandler; import org.skywalking.apm.collector.agentstream.grpc.handler.TraceSegmentServiceHandler; import org.skywalking.apm.collector.core.cluster.ClusterDataListener; import org.skywalking.apm.collector.core.framework.Handler; @@ -46,6 +47,7 @@ public class AgentStreamGRPCModuleDefine extends AgentStreamModuleDefine { @Override public List handlerList() { List handlers = new LinkedList<>(); handlers.add(new TraceSegmentServiceHandler()); + handlers.add(new JVMMetricsServiceHandler()); return handlers; } } diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java new file mode 100644 index 000000000000..f7f895cedaf3 --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java @@ -0,0 +1,56 @@ +package org.skywalking.apm.collector.agentstream.grpc.handler; + +import io.grpc.stub.StreamObserver; +import org.skywalking.apm.collector.agentstream.worker.Const; +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.CpuMetricPersistenceWorker; +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define.CpuMetricDataDefine; +import org.skywalking.apm.collector.agentstream.worker.util.TimeBucketUtils; +import org.skywalking.apm.collector.core.framework.CollectorContextHelper; +import org.skywalking.apm.collector.server.grpc.GRPCHandler; +import org.skywalking.apm.collector.stream.StreamModuleContext; +import org.skywalking.apm.collector.stream.StreamModuleGroupDefine; +import org.skywalking.apm.collector.stream.worker.WorkerInvokeException; +import org.skywalking.apm.collector.stream.worker.WorkerNotFoundException; +import org.skywalking.apm.network.proto.CPU; +import org.skywalking.apm.network.proto.Downstream; +import org.skywalking.apm.network.proto.JVMMetrics; +import org.skywalking.apm.network.proto.JVMMetricsServiceGrpc; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author pengys5 + */ +public class JVMMetricsServiceHandler extends JVMMetricsServiceGrpc.JVMMetricsServiceImplBase implements GRPCHandler { + + private final Logger logger = LoggerFactory.getLogger(JVMMetricsServiceHandler.class); + + @Override public void collect(JVMMetrics request, StreamObserver responseObserver) { + int applicationInstanceId = request.getApplicationInstanceId(); + logger.debug("receive the jvm metric from application instance, id: {}", applicationInstanceId); + + StreamModuleContext context = (StreamModuleContext)CollectorContextHelper.INSTANCE.getContext(StreamModuleGroupDefine.GROUP_NAME); + request.getMetricsList().forEach(metric -> { + long time = TimeBucketUtils.INSTANCE.getSecondTimeBucket(metric.getTime()); + sendToCpuMetricPersistenceWorker(context, applicationInstanceId, time, metric.getCpu()); + }); + + responseObserver.onNext(Downstream.newBuilder().build()); + responseObserver.onCompleted(); + } + + private void sendToCpuMetricPersistenceWorker(StreamModuleContext context, int applicationInstanceId, + long timeBucket, CPU cpu) { + CpuMetricDataDefine.CpuMetric cpuMetric = new CpuMetricDataDefine.CpuMetric(); + cpuMetric.setId(timeBucket + Const.ID_SPLIT + applicationInstanceId); + cpuMetric.setApplicationInstanceId(applicationInstanceId); + cpuMetric.setUsagePercent(cpu.getUsagePercent()); + cpuMetric.setTimeBucket(timeBucket); + try { + logger.debug("send to cpu metric persistence worker, id: {}", cpuMetric.getId()); + context.getClusterWorkerContext().lookup(CpuMetricPersistenceWorker.WorkerRole.INSTANCE).tell(cpuMetric.toData()); + } catch (WorkerInvokeException | WorkerNotFoundException e) { + logger.error(e.getMessage(), e); + } + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/CpuMetricPersistenceWorker.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/CpuMetricPersistenceWorker.java new file mode 100644 index 000000000000..02b8eeb2e13c --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/CpuMetricPersistenceWorker.java @@ -0,0 +1,71 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu; + +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao.ICpuMetricDAO; +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define.CpuMetricDataDefine; +import org.skywalking.apm.collector.storage.dao.DAOContainer; +import org.skywalking.apm.collector.stream.worker.AbstractLocalAsyncWorkerProvider; +import org.skywalking.apm.collector.stream.worker.ClusterWorkerContext; +import org.skywalking.apm.collector.stream.worker.ProviderNotFoundException; +import org.skywalking.apm.collector.stream.worker.Role; +import org.skywalking.apm.collector.stream.worker.impl.PersistenceWorker; +import org.skywalking.apm.collector.stream.worker.impl.dao.IPersistenceDAO; +import org.skywalking.apm.collector.stream.worker.impl.data.DataDefine; +import org.skywalking.apm.collector.stream.worker.selector.HashCodeSelector; +import org.skywalking.apm.collector.stream.worker.selector.WorkerSelector; + +/** + * @author pengys5 + */ +public class CpuMetricPersistenceWorker extends PersistenceWorker { + + public CpuMetricPersistenceWorker(Role role, ClusterWorkerContext clusterContext) { + super(role, clusterContext); + } + + @Override public void preStart() throws ProviderNotFoundException { + super.preStart(); + } + + @Override protected boolean needMergeDBData() { + return false; + } + + @Override protected IPersistenceDAO persistenceDAO() { + return (IPersistenceDAO)DAOContainer.INSTANCE.get(ICpuMetricDAO.class.getName()); + } + + public static class Factory extends AbstractLocalAsyncWorkerProvider { + @Override + public Role role() { + return WorkerRole.INSTANCE; + } + + @Override + public CpuMetricPersistenceWorker workerInstance(ClusterWorkerContext clusterContext) { + return new CpuMetricPersistenceWorker(role(), clusterContext); + } + + @Override + public int queueSize() { + return 1024; + } + } + + public enum WorkerRole implements Role { + INSTANCE; + + @Override + public String roleName() { + return CpuMetricPersistenceWorker.class.getSimpleName(); + } + + @Override + public WorkerSelector workerSelector() { + return new HashCodeSelector(); + } + + @Override public DataDefine dataDefine() { + return new CpuMetricDataDefine(); + } + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/CpuMetricEsDAO.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/CpuMetricEsDAO.java new file mode 100644 index 000000000000..e1c7982f3cc6 --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/CpuMetricEsDAO.java @@ -0,0 +1,34 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao; + +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.agentstream.worker.jvmmetric.cpu.define.CpuMetricTable; +import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO; +import org.skywalking.apm.collector.stream.worker.impl.dao.IPersistenceDAO; +import org.skywalking.apm.collector.stream.worker.impl.data.Data; +import org.skywalking.apm.collector.stream.worker.impl.data.DataDefine; + +/** + * @author pengys5 + */ +public class CpuMetricEsDAO extends EsDAO implements ICpuMetricDAO, IPersistenceDAO { + + @Override public Data get(String id, DataDefine dataDefine) { + return null; + } + + @Override public IndexRequestBuilder prepareBatchInsert(Data data) { + Map source = new HashMap<>(); + source.put(CpuMetricTable.COLUMN_APPLICATION_INSTANCE_ID, data.getDataInteger(0)); + source.put(CpuMetricTable.COLUMN_USAGE_PERCENT, data.getDataDouble(0)); + source.put(CpuMetricTable.COLUMN_TIME_BUCKET, data.getDataLong(0)); + + return getClient().prepareIndex(CpuMetricTable.TABLE, data.getDataString(0)).setSource(source); + } + + @Override public UpdateRequestBuilder prepareBatchUpdate(Data data) { + return null; + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/CpuMetricH2DAO.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/CpuMetricH2DAO.java new file mode 100644 index 000000000000..a4cec0a62835 --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/CpuMetricH2DAO.java @@ -0,0 +1,9 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao; + +import org.skywalking.apm.collector.storage.h2.dao.H2DAO; + +/** + * @author pengys5 + */ +public class CpuMetricH2DAO extends H2DAO implements ICpuMetricDAO { +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/ICpuMetricDAO.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/ICpuMetricDAO.java new file mode 100644 index 000000000000..8569314adda9 --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/ICpuMetricDAO.java @@ -0,0 +1,7 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao; + +/** + * @author pengys5 + */ +public interface ICpuMetricDAO { +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricDataDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricDataDefine.java new file mode 100644 index 000000000000..b859b5382ba3 --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricDataDefine.java @@ -0,0 +1,102 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define; + +import org.skywalking.apm.collector.remote.grpc.proto.RemoteData; +import org.skywalking.apm.collector.stream.worker.impl.data.Attribute; +import org.skywalking.apm.collector.stream.worker.impl.data.AttributeType; +import org.skywalking.apm.collector.stream.worker.impl.data.Data; +import org.skywalking.apm.collector.stream.worker.impl.data.DataDefine; +import org.skywalking.apm.collector.stream.worker.impl.data.Transform; +import org.skywalking.apm.collector.stream.worker.impl.data.operate.CoverOperation; +import org.skywalking.apm.collector.stream.worker.impl.data.operate.NonOperation; + +/** + * @author pengys5 + */ +public class CpuMetricDataDefine extends DataDefine { + + @Override protected int initialCapacity() { + return 4; + } + + @Override protected void attributeDefine() { + addAttribute(0, new Attribute(CpuMetricTable.COLUMN_ID, AttributeType.STRING, new NonOperation())); + addAttribute(1, new Attribute(CpuMetricTable.COLUMN_APPLICATION_INSTANCE_ID, AttributeType.INTEGER, new CoverOperation())); + addAttribute(2, new Attribute(CpuMetricTable.COLUMN_USAGE_PERCENT, AttributeType.DOUBLE, new CoverOperation())); + addAttribute(2, new Attribute(CpuMetricTable.COLUMN_TIME_BUCKET, AttributeType.LONG, new CoverOperation())); + } + + @Override public Object deserialize(RemoteData remoteData) { + return null; + } + + @Override public RemoteData serialize(Object object) { + return null; + } + + public static class CpuMetric implements Transform { + private String id; + private int applicationInstanceId; + private double usagePercent; + private long timeBucket; + + public CpuMetric(String id, int applicationInstanceId, double usagePercent, long timeBucket) { + this.id = id; + this.applicationInstanceId = applicationInstanceId; + this.usagePercent = usagePercent; + this.timeBucket = timeBucket; + } + + public CpuMetric() { + } + + @Override public Data toData() { + CpuMetricDataDefine define = new CpuMetricDataDefine(); + Data data = define.build(id); + data.setDataString(0, this.id); + data.setDataInteger(0, this.applicationInstanceId); + data.setDataDouble(0, this.usagePercent); + data.setDataLong(0, this.timeBucket); + return data; + } + + @Override public CpuMetric toSelf(Data data) { + this.id = data.getDataString(0); + this.applicationInstanceId = data.getDataInteger(0); + this.usagePercent = data.getDataDouble(0); + this.timeBucket = data.getDataLong(0); + return this; + } + + public void setId(String id) { + this.id = id; + } + + public void setApplicationInstanceId(int applicationInstanceId) { + this.applicationInstanceId = applicationInstanceId; + } + + public void setUsagePercent(double usagePercent) { + this.usagePercent = usagePercent; + } + + public void setTimeBucket(long timeBucket) { + this.timeBucket = timeBucket; + } + + public String getId() { + return id; + } + + public int getApplicationInstanceId() { + return applicationInstanceId; + } + + public double getUsagePercent() { + return usagePercent; + } + + public long getTimeBucket() { + return timeBucket; + } + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricEsTableDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricEsTableDefine.java new file mode 100644 index 000000000000..ee3bb0bbb6bb --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricEsTableDefine.java @@ -0,0 +1,32 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define; + +import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchColumnDefine; +import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchTableDefine; + +/** + * @author pengys5 + */ +public class CpuMetricEsTableDefine extends ElasticSearchTableDefine { + + public CpuMetricEsTableDefine() { + super(CpuMetricTable.TABLE); + } + + @Override public int refreshInterval() { + return 1; + } + + @Override public int numberOfShards() { + return 2; + } + + @Override public int numberOfReplicas() { + return 0; + } + + @Override public void initialize() { + addColumn(new ElasticSearchColumnDefine(CpuMetricTable.COLUMN_APPLICATION_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name())); + addColumn(new ElasticSearchColumnDefine(CpuMetricTable.COLUMN_USAGE_PERCENT, ElasticSearchColumnDefine.Type.Double.name())); + addColumn(new ElasticSearchColumnDefine(CpuMetricTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name())); + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricH2TableDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricH2TableDefine.java new file mode 100644 index 000000000000..60e714b8e068 --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricH2TableDefine.java @@ -0,0 +1,21 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define; + +import org.skywalking.apm.collector.storage.h2.define.H2ColumnDefine; +import org.skywalking.apm.collector.storage.h2.define.H2TableDefine; + +/** + * @author pengys5 + */ +public class CpuMetricH2TableDefine extends H2TableDefine { + + public CpuMetricH2TableDefine() { + super(CpuMetricTable.TABLE); + } + + @Override public void initialize() { + addColumn(new H2ColumnDefine(CpuMetricTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name())); + addColumn(new H2ColumnDefine(CpuMetricTable.COLUMN_APPLICATION_INSTANCE_ID, H2ColumnDefine.Type.Int.name())); + addColumn(new H2ColumnDefine(CpuMetricTable.COLUMN_USAGE_PERCENT, H2ColumnDefine.Type.Double.name())); + addColumn(new H2ColumnDefine(CpuMetricTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name())); + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricTable.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricTable.java new file mode 100644 index 000000000000..05f71dbfffd6 --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricTable.java @@ -0,0 +1,12 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define; + +import org.skywalking.apm.collector.agentstream.worker.CommonTable; + +/** + * @author pengys5 + */ +public class CpuMetricTable extends CommonTable { + public static final String TABLE = "cpu_metric"; + public static final String COLUMN_APPLICATION_INSTANCE_ID = "application_instance_id"; + public static final String COLUMN_USAGE_PERCENT = "application_instance_id"; +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/util/TimeBucketUtils.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/util/TimeBucketUtils.java index de8390297bc5..92a306fe90a6 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/util/TimeBucketUtils.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/util/TimeBucketUtils.java @@ -13,6 +13,7 @@ public enum TimeBucketUtils { private final SimpleDateFormat dayDateFormat = new SimpleDateFormat("yyyyMMdd"); private final SimpleDateFormat hourDateFormat = new SimpleDateFormat("yyyyMMddHH"); private final SimpleDateFormat minuteDateFormat = new SimpleDateFormat("yyyyMMddHHmm"); + private final SimpleDateFormat secondDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); public long getMinuteTimeBucket(long time) { Calendar calendar = Calendar.getInstance(); @@ -21,6 +22,13 @@ public long getMinuteTimeBucket(long time) { return Long.valueOf(timeStr); } + public long getSecondTimeBucket(long time) { + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(time); + String timeStr = secondDateFormat.format(calendar.getTime()); + return Long.valueOf(timeStr); + } + public long getHourTimeBucket(long time) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(time); diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define index 63656c1069fc..9fc387d93de8 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define @@ -9,4 +9,5 @@ org.skywalking.apm.collector.agentstream.worker.noderef.summary.dao.NodeRefSumEs org.skywalking.apm.collector.agentstream.worker.segment.cost.dao.SegmentCostEsDAO org.skywalking.apm.collector.agentstream.worker.global.dao.GlobalTraceEsDAO org.skywalking.apm.collector.agentstream.worker.service.entry.dao.ServiceEntryEsDAO -org.skywalking.apm.collector.agentstream.worker.serviceref.reference.dao.ServiceRefEsDAO \ No newline at end of file +org.skywalking.apm.collector.agentstream.worker.serviceref.reference.dao.ServiceRefEsDAO +org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao.CpuMetricEsDAO \ No newline at end of file diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define index 3f18e0daac96..6499e03ef852 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define @@ -9,4 +9,5 @@ org.skywalking.apm.collector.agentstream.worker.noderef.summary.dao.NodeRefSumH2 org.skywalking.apm.collector.agentstream.worker.segment.cost.dao.SegmentCostH2DAO org.skywalking.apm.collector.agentstream.worker.global.dao.GlobalTraceH2DAO org.skywalking.apm.collector.agentstream.worker.service.entry.dao.ServiceEntryH2DAO -org.skywalking.apm.collector.agentstream.worker.serviceref.reference.dao.ServiceRefH2DAO \ No newline at end of file +org.skywalking.apm.collector.agentstream.worker.serviceref.reference.dao.ServiceRefH2DAO +org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao.CpuMetricH2DAO \ No newline at end of file diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define index 5ce5803b78c1..3e688d9e6b03 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define @@ -20,6 +20,8 @@ org.skywalking.apm.collector.agentstream.worker.segment.origin.SegmentPersistenc org.skywalking.apm.collector.agentstream.worker.segment.cost.SegmentCostPersistenceWorker$Factory org.skywalking.apm.collector.agentstream.worker.global.GlobalTracePersistenceWorker$Factory +org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.CpuMetricPersistenceWorker$Factory + org.skywalking.apm.collector.agentstream.worker.register.application.ApplicationRegisterSerialWorker$Factory org.skywalking.apm.collector.agentstream.worker.register.instance.InstanceRegisterSerialWorker$Factory org.skywalking.apm.collector.agentstream.worker.register.servicename.ServiceNameRegisterSerialWorker$Factory \ No newline at end of file diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define index c462b86ecdb2..bd82f294fabb 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define @@ -32,4 +32,7 @@ org.skywalking.apm.collector.agentstream.worker.service.entry.define.ServiceEntr org.skywalking.apm.collector.agentstream.worker.service.entry.define.ServiceEntryH2TableDefine org.skywalking.apm.collector.agentstream.worker.serviceref.reference.define.ServiceRefEsTableDefine -org.skywalking.apm.collector.agentstream.worker.serviceref.reference.define.ServiceRefH2TableDefine \ No newline at end of file +org.skywalking.apm.collector.agentstream.worker.serviceref.reference.define.ServiceRefH2TableDefine + +org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define.CpuMetricEsTableDefine +org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define.CpuMetricH2TableDefine \ No newline at end of file diff --git a/apm-collector/apm-collector-agentstream/src/test/java/org/skywalking/apm/collector/agentstream/util/TimeBucketUtilsTestCase.java b/apm-collector/apm-collector-agentstream/src/test/java/org/skywalking/apm/collector/agentstream/util/TimeBucketUtilsTestCase.java new file mode 100644 index 000000000000..1ac55cc1efe7 --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/test/java/org/skywalking/apm/collector/agentstream/util/TimeBucketUtilsTestCase.java @@ -0,0 +1,47 @@ +package org.skywalking.apm.collector.agentstream.util; + +import java.util.Calendar; +import java.util.TimeZone; +import org.junit.Assert; +import org.junit.Test; +import org.skywalking.apm.collector.agentstream.worker.util.TimeBucketUtils; + +/** + * @author pengys5 + */ +public class TimeBucketUtilsTestCase { + + @Test + public void testUTCLocation() { + TimeZone.setDefault(TimeZone.getTimeZone("UTC")); + long timeBucket = 201703310915L; + long changedTimeBucket = TimeBucketUtils.INSTANCE.changeToUTCTimeBucket(timeBucket); + Assert.assertEquals(201703310115L, changedTimeBucket); + } + + @Test + public void testUTC8Location() { + TimeZone.setDefault(TimeZone.getTimeZone("GMT+08:00")); + long timeBucket = 201703310915L; + long changedTimeBucket = TimeBucketUtils.INSTANCE.changeToUTCTimeBucket(timeBucket); + Assert.assertEquals(201703310915L, changedTimeBucket); + } + + @Test + public void testGetSecondTimeBucket() { + long timeBucket = TimeBucketUtils.INSTANCE.getSecondTimeBucket(1490922929258L); + Assert.assertEquals(20170331091529L, timeBucket); + } + + @Test + public void test() { + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(1490922929258L); + calendar.set(Calendar.SECOND, calendar.get(Calendar.SECOND) - 3); +// System.out.println(calendar.getTimeInMillis()); + calendar.set(Calendar.SECOND, calendar.get(Calendar.SECOND) - 2); +// System.out.println(calendar.getTimeInMillis()); + calendar.set(Calendar.SECOND, calendar.get(Calendar.SECOND) - 2); +// System.out.println(calendar.getTimeInMillis()); + } +} diff --git a/apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/elasticsearch/define/ElasticSearchColumnDefine.java b/apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/elasticsearch/define/ElasticSearchColumnDefine.java index 883480a44927..2d7d3859556b 100644 --- a/apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/elasticsearch/define/ElasticSearchColumnDefine.java +++ b/apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/elasticsearch/define/ElasticSearchColumnDefine.java @@ -11,6 +11,6 @@ public ElasticSearchColumnDefine(String name, String type) { } public enum Type { - Binary, Boolean, Date, Keyword, Long, Integer + Binary, Boolean, Keyword, Long, Integer, Double } } diff --git a/apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/h2/define/H2ColumnDefine.java b/apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/h2/define/H2ColumnDefine.java index ca7cf49f140c..4122b20a29e9 100644 --- a/apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/h2/define/H2ColumnDefine.java +++ b/apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/h2/define/H2ColumnDefine.java @@ -12,6 +12,6 @@ public H2ColumnDefine(String name, String type) { } public enum Type { - Boolean, Varchar, Int, Bigint, BINARY + Boolean, Varchar, Int, Bigint, BINARY, Double } } diff --git a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/AttributeType.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/AttributeType.java index fa53ad9da658..480ba1a9346b 100644 --- a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/AttributeType.java +++ b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/AttributeType.java @@ -4,5 +4,5 @@ * @author pengys5 */ public enum AttributeType { - STRING, LONG, FLOAT, INTEGER, BYTE, BOOLEAN + STRING, LONG, DOUBLE, INTEGER, BYTE, BOOLEAN } diff --git a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/Data.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/Data.java index 5a8832ba3b1e..c4b2dd99b293 100644 --- a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/Data.java +++ b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/Data.java @@ -10,29 +10,29 @@ public class Data extends AbstractHashMessage { private final int stringCapacity; private final int longCapacity; - private final int floatCapacity; + private final int doubleCapacity; private final int integerCapacity; private final int booleanCapacity; private final int byteCapacity; private String[] dataStrings; private Long[] dataLongs; - private Float[] dataFloats; + private Double[] dataDoubles; private Integer[] dataIntegers; private Boolean[] dataBooleans; private byte[][] dataBytes; - public Data(String id, int stringCapacity, int longCapacity, int floatCapacity, int integerCapacity, + public Data(String id, int stringCapacity, int longCapacity, int doubleCapacity, int integerCapacity, int booleanCapacity, int byteCapacity) { super(id); this.dataStrings = new String[stringCapacity]; this.dataLongs = new Long[longCapacity]; - this.dataFloats = new Float[floatCapacity]; + this.dataDoubles = new Double[doubleCapacity]; this.dataIntegers = new Integer[integerCapacity]; this.dataBooleans = new Boolean[booleanCapacity]; this.dataBytes = new byte[byteCapacity][]; this.stringCapacity = stringCapacity; this.longCapacity = longCapacity; - this.floatCapacity = floatCapacity; + this.doubleCapacity = doubleCapacity; this.integerCapacity = integerCapacity; this.booleanCapacity = booleanCapacity; this.byteCapacity = byteCapacity; @@ -46,8 +46,8 @@ public void setDataLong(int position, Long value) { dataLongs[position] = value; } - public void setDataFloat(int position, Float value) { - dataFloats[position] = value; + public void setDataDouble(int position, Double value) { + dataDoubles[position] = value; } public void setDataInteger(int position, Integer value) { @@ -70,8 +70,8 @@ public Long getDataLong(int position) { return dataLongs[position]; } - public Float getDataFloat(int position) { - return dataFloats[position]; + public Double getDataDouble(int position) { + return dataDoubles[position]; } public Integer getDataInteger(int position) { @@ -93,7 +93,7 @@ public String id() { public RemoteData serialize() { RemoteData.Builder builder = RemoteData.newBuilder(); builder.setIntegerCapacity(integerCapacity); - builder.setFloatCapacity(floatCapacity); + builder.setDoubleCapacity(doubleCapacity); builder.setStringCapacity(stringCapacity); builder.setLongCapacity(longCapacity); builder.setByteCapacity(byteCapacity); @@ -105,8 +105,8 @@ public RemoteData serialize() { for (int i = 0; i < dataIntegers.length; i++) { builder.setDataIntegers(i, dataIntegers[i]); } - for (int i = 0; i < dataFloats.length; i++) { - builder.setDataFloats(i, dataFloats[i]); + for (int i = 0; i < dataDoubles.length; i++) { + builder.setDataDoubles(i, dataDoubles[i]); } for (int i = 0; i < dataLongs.length; i++) { builder.setDataLongs(i, dataLongs[i]); diff --git a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataDefine.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataDefine.java index ddbd9c2a3675..8e98a736d820 100644 --- a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataDefine.java +++ b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataDefine.java @@ -9,7 +9,7 @@ public abstract class DataDefine { private Attribute[] attributes; private int stringCapacity; private int longCapacity; - private int floatCapacity; + private int doubleCapacity; private int integerCapacity; private int booleanCapacity; private int byteCapacity; @@ -26,8 +26,8 @@ private void initial() { stringCapacity++; } else if (AttributeType.LONG.equals(attribute.getType())) { longCapacity++; - } else if (AttributeType.FLOAT.equals(attribute.getType())) { - floatCapacity++; + } else if (AttributeType.DOUBLE.equals(attribute.getType())) { + doubleCapacity++; } else if (AttributeType.INTEGER.equals(attribute.getType())) { integerCapacity++; } else if (AttributeType.BOOLEAN.equals(attribute.getType())) { @@ -47,13 +47,13 @@ public final void addAttribute(int position, Attribute attribute) { protected abstract void attributeDefine(); public final Data build(String id) { - return new Data(id, stringCapacity, longCapacity, floatCapacity, integerCapacity, booleanCapacity, byteCapacity); + return new Data(id, stringCapacity, longCapacity, doubleCapacity, integerCapacity, booleanCapacity, byteCapacity); } public void mergeData(Data newData, Data oldData) { int stringPosition = 0; int longPosition = 0; - int floatPosition = 0; + int doublePosition = 0; int integerPosition = 0; int booleanPosition = 0; int bytePosition = 0; @@ -65,9 +65,9 @@ public void mergeData(Data newData, Data oldData) { } else if (AttributeType.LONG.equals(attribute.getType())) { attribute.getOperation().operate(newData.getDataLong(longPosition), oldData.getDataLong(longPosition)); longPosition++; - } else if (AttributeType.FLOAT.equals(attribute.getType())) { - attribute.getOperation().operate(newData.getDataFloat(floatPosition), oldData.getDataFloat(floatPosition)); - floatPosition++; + } else if (AttributeType.DOUBLE.equals(attribute.getType())) { + attribute.getOperation().operate(newData.getDataDouble(doublePosition), oldData.getDataDouble(doublePosition)); + doublePosition++; } else if (AttributeType.INTEGER.equals(attribute.getType())) { attribute.getOperation().operate(newData.getDataInteger(integerPosition), oldData.getDataInteger(integerPosition)); integerPosition++; diff --git a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/Operation.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/Operation.java index 667051ab0d56..19bb7c58312c 100644 --- a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/Operation.java +++ b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/Operation.java @@ -8,7 +8,7 @@ public interface Operation { Long operate(Long newValue, Long oldValue); - Float operate(Float newValue, Float oldValue); + Double operate(Double newValue, Double oldValue); Integer operate(Integer newValue, Integer oldValue); diff --git a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/operate/AddOperation.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/operate/AddOperation.java index 0772806e6714..847b5492853a 100644 --- a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/operate/AddOperation.java +++ b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/operate/AddOperation.java @@ -15,7 +15,7 @@ public class AddOperation implements Operation { return newValue + oldValue; } - @Override public Float operate(Float newValue, Float oldValue) { + @Override public Double operate(Double newValue, Double oldValue) { return newValue + oldValue; } diff --git a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/operate/CoverOperation.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/operate/CoverOperation.java index 06b93fdb0b04..95432820cc72 100644 --- a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/operate/CoverOperation.java +++ b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/operate/CoverOperation.java @@ -14,7 +14,7 @@ public class CoverOperation implements Operation { return newValue; } - @Override public Float operate(Float newValue, Float oldValue) { + @Override public Double operate(Double newValue, Double oldValue) { return newValue; } diff --git a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/operate/NonOperation.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/operate/NonOperation.java index 62ebb2f95548..ee7400902f96 100644 --- a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/operate/NonOperation.java +++ b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/operate/NonOperation.java @@ -14,7 +14,7 @@ public class NonOperation implements Operation { return oldValue; } - @Override public Float operate(Float newValue, Float oldValue) { + @Override public Double operate(Double newValue, Double oldValue) { return oldValue; } diff --git a/apm-collector/apm-collector-stream/src/main/proto/RemoteCommonService.proto b/apm-collector/apm-collector-stream/src/main/proto/RemoteCommonService.proto index 5f933c024ba5..159bfe9bcbb1 100644 --- a/apm-collector/apm-collector-stream/src/main/proto/RemoteCommonService.proto +++ b/apm-collector/apm-collector-stream/src/main/proto/RemoteCommonService.proto @@ -16,13 +16,13 @@ message RemoteMessage { message RemoteData { int32 stringCapacity = 1; int32 longCapacity = 2; - int32 floatCapacity = 3; + int32 doubleCapacity = 3; int32 integerCapacity = 4; int32 byteCapacity = 5; int32 booleanCapacity = 6; repeated string dataStrings = 7; repeated int64 dataLongs = 8; - repeated float dataFloats = 9; + repeated double dataDoubles = 9; repeated int32 dataIntegers = 10; repeated bytes dataBytes = 11; repeated bool dataBooleans = 12; From b560ef1f98aaab54d2e36b8672c7fce809fe51d4 Mon Sep 17 00:00:00 2001 From: pengys5 <8082209@qq.com> Date: Thu, 10 Aug 2017 00:13:44 +0800 Subject: [PATCH 2/9] Add memory metric record persistence, but not test. #346 --- .../handler/JVMMetricsServiceHandler.java | 29 ++++ .../cpu/CpuMetricPersistenceWorker.java | 4 +- .../jvmmetric/cpu/define/CpuMetricTable.java | 2 +- .../gc/MemoryMetricPersistenceWorker.java | 71 +++++++++ .../jvmmetric/gc/dao/IMemoryMetricDAO.java | 7 + .../jvmmetric/gc/dao/MemoryMetricEsDAO.java | 38 +++++ .../jvmmetric/gc/dao/MemoryMetricH2DAO.java | 9 ++ .../gc/define/MemoryMetricDataDefine.java | 135 ++++++++++++++++++ .../gc/define/MemoryMetricEsTableDefine.java | 36 +++++ .../gc/define/MemoryMetricH2TableDefine.java | 25 ++++ .../gc/define/MemoryMetricTable.java | 16 +++ .../resources/META-INF/defines/es_dao.define | 3 +- .../resources/META-INF/defines/h2_dao.define | 3 +- .../defines/local_worker_provider.define | 1 + .../resources/META-INF/defines/storage.define | 5 +- 15 files changed, 378 insertions(+), 6 deletions(-) create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/MemoryMetricPersistenceWorker.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/IMemoryMetricDAO.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/MemoryMetricEsDAO.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/MemoryMetricH2DAO.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricDataDefine.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricEsTableDefine.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricH2TableDefine.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricTable.java diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java index f7f895cedaf3..cb059149fb67 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java @@ -1,9 +1,12 @@ package org.skywalking.apm.collector.agentstream.grpc.handler; import io.grpc.stub.StreamObserver; +import java.util.List; import org.skywalking.apm.collector.agentstream.worker.Const; import org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.CpuMetricPersistenceWorker; import org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define.CpuMetricDataDefine; +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.MemoryMetricPersistenceWorker; +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define.MemoryMetricDataDefine; import org.skywalking.apm.collector.agentstream.worker.util.TimeBucketUtils; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.server.grpc.GRPCHandler; @@ -15,6 +18,7 @@ import org.skywalking.apm.network.proto.Downstream; import org.skywalking.apm.network.proto.JVMMetrics; import org.skywalking.apm.network.proto.JVMMetricsServiceGrpc; +import org.skywalking.apm.network.proto.Memory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -33,6 +37,7 @@ public class JVMMetricsServiceHandler extends JVMMetricsServiceGrpc.JVMMetricsSe request.getMetricsList().forEach(metric -> { long time = TimeBucketUtils.INSTANCE.getSecondTimeBucket(metric.getTime()); sendToCpuMetricPersistenceWorker(context, applicationInstanceId, time, metric.getCpu()); + sendToMemoryMetricPersistenceWorker(context, applicationInstanceId, time, metric.getMemoryList()); }); responseObserver.onNext(Downstream.newBuilder().build()); @@ -53,4 +58,28 @@ private void sendToCpuMetricPersistenceWorker(StreamModuleContext context, int a logger.error(e.getMessage(), e); } } + + private void sendToMemoryMetricPersistenceWorker(StreamModuleContext context, int applicationInstanceId, + long timeBucket, List memories) { + + for (int i = 0; i < memories.size(); i++) { + Memory memory = memories.get(i); + + MemoryMetricDataDefine.MemoryMetric memoryMetric = new MemoryMetricDataDefine.MemoryMetric(); + memoryMetric.setId(timeBucket + Const.ID_SPLIT + applicationInstanceId + Const.ID_SPLIT + String.valueOf(i)); + memoryMetric.setApplicationInstanceId(applicationInstanceId); + memoryMetric.setHeap(memory.getIsHeap()); + memoryMetric.setInit(memory.getInit()); + memoryMetric.setMax(memory.getMax()); + memoryMetric.setUsed(memory.getUsed()); + memoryMetric.setCommitted(memory.getCommitted()); + memoryMetric.setTimeBucket(timeBucket); + try { + logger.debug("send to memory metric persistence worker, id: {}", memoryMetric.getId()); + context.getClusterWorkerContext().lookup(MemoryMetricPersistenceWorker.WorkerRole.INSTANCE).tell(memoryMetric.toData()); + } catch (WorkerInvokeException | WorkerNotFoundException e) { + logger.error(e.getMessage(), e); + } + } + } } diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/CpuMetricPersistenceWorker.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/CpuMetricPersistenceWorker.java index 02b8eeb2e13c..1d8a10b65ff7 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/CpuMetricPersistenceWorker.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/CpuMetricPersistenceWorker.java @@ -10,7 +10,7 @@ import org.skywalking.apm.collector.stream.worker.impl.PersistenceWorker; import org.skywalking.apm.collector.stream.worker.impl.dao.IPersistenceDAO; import org.skywalking.apm.collector.stream.worker.impl.data.DataDefine; -import org.skywalking.apm.collector.stream.worker.selector.HashCodeSelector; +import org.skywalking.apm.collector.stream.worker.selector.RollingSelector; import org.skywalking.apm.collector.stream.worker.selector.WorkerSelector; /** @@ -61,7 +61,7 @@ public String roleName() { @Override public WorkerSelector workerSelector() { - return new HashCodeSelector(); + return new RollingSelector(); } @Override public DataDefine dataDefine() { diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricTable.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricTable.java index 05f71dbfffd6..193af760334c 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricTable.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricTable.java @@ -8,5 +8,5 @@ public class CpuMetricTable extends CommonTable { public static final String TABLE = "cpu_metric"; public static final String COLUMN_APPLICATION_INSTANCE_ID = "application_instance_id"; - public static final String COLUMN_USAGE_PERCENT = "application_instance_id"; + public static final String COLUMN_USAGE_PERCENT = "usage_percent"; } diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/MemoryMetricPersistenceWorker.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/MemoryMetricPersistenceWorker.java new file mode 100644 index 000000000000..c66904fd5ea3 --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/MemoryMetricPersistenceWorker.java @@ -0,0 +1,71 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc; + +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao.IMemoryMetricDAO; +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define.MemoryMetricDataDefine; +import org.skywalking.apm.collector.storage.dao.DAOContainer; +import org.skywalking.apm.collector.stream.worker.AbstractLocalAsyncWorkerProvider; +import org.skywalking.apm.collector.stream.worker.ClusterWorkerContext; +import org.skywalking.apm.collector.stream.worker.ProviderNotFoundException; +import org.skywalking.apm.collector.stream.worker.Role; +import org.skywalking.apm.collector.stream.worker.impl.PersistenceWorker; +import org.skywalking.apm.collector.stream.worker.impl.dao.IPersistenceDAO; +import org.skywalking.apm.collector.stream.worker.impl.data.DataDefine; +import org.skywalking.apm.collector.stream.worker.selector.RollingSelector; +import org.skywalking.apm.collector.stream.worker.selector.WorkerSelector; + +/** + * @author pengys5 + */ +public class MemoryMetricPersistenceWorker extends PersistenceWorker { + + public MemoryMetricPersistenceWorker(Role role, ClusterWorkerContext clusterContext) { + super(role, clusterContext); + } + + @Override public void preStart() throws ProviderNotFoundException { + super.preStart(); + } + + @Override protected boolean needMergeDBData() { + return false; + } + + @Override protected IPersistenceDAO persistenceDAO() { + return (IPersistenceDAO)DAOContainer.INSTANCE.get(IMemoryMetricDAO.class.getName()); + } + + public static class Factory extends AbstractLocalAsyncWorkerProvider { + @Override + public Role role() { + return WorkerRole.INSTANCE; + } + + @Override + public MemoryMetricPersistenceWorker workerInstance(ClusterWorkerContext clusterContext) { + return new MemoryMetricPersistenceWorker(role(), clusterContext); + } + + @Override + public int queueSize() { + return 1024; + } + } + + public enum WorkerRole implements Role { + INSTANCE; + + @Override + public String roleName() { + return MemoryMetricPersistenceWorker.class.getSimpleName(); + } + + @Override + public WorkerSelector workerSelector() { + return new RollingSelector(); + } + + @Override public DataDefine dataDefine() { + return new MemoryMetricDataDefine(); + } + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/IMemoryMetricDAO.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/IMemoryMetricDAO.java new file mode 100644 index 000000000000..944bfa2f93ad --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/IMemoryMetricDAO.java @@ -0,0 +1,7 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao; + +/** + * @author pengys5 + */ +public interface IMemoryMetricDAO { +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/MemoryMetricEsDAO.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/MemoryMetricEsDAO.java new file mode 100644 index 000000000000..34bc4e69e9b5 --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/MemoryMetricEsDAO.java @@ -0,0 +1,38 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao; + +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.agentstream.worker.jvmmetric.gc.define.MemoryMetricTable; +import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO; +import org.skywalking.apm.collector.stream.worker.impl.dao.IPersistenceDAO; +import org.skywalking.apm.collector.stream.worker.impl.data.Data; +import org.skywalking.apm.collector.stream.worker.impl.data.DataDefine; + +/** + * @author pengys5 + */ +public class MemoryMetricEsDAO extends EsDAO implements IMemoryMetricDAO, IPersistenceDAO { + + @Override public Data get(String id, DataDefine dataDefine) { + return null; + } + + @Override public IndexRequestBuilder prepareBatchInsert(Data data) { + Map source = new HashMap<>(); + source.put(MemoryMetricTable.COLUMN_APPLICATION_INSTANCE_ID, data.getDataInteger(0)); + source.put(MemoryMetricTable.COLUMN_IS_HEAP, data.getDataBoolean(0)); + source.put(MemoryMetricTable.COLUMN_INIT, data.getDataLong(0)); + source.put(MemoryMetricTable.COLUMN_MAX, data.getDataLong(1)); + source.put(MemoryMetricTable.COLUMN_USED, data.getDataLong(2)); + source.put(MemoryMetricTable.COLUMN_COMMITTED, data.getDataLong(3)); + source.put(MemoryMetricTable.COLUMN_TIME_BUCKET, data.getDataLong(4)); + + return getClient().prepareIndex(MemoryMetricTable.TABLE, data.getDataString(0)).setSource(source); + } + + @Override public UpdateRequestBuilder prepareBatchUpdate(Data data) { + return null; + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/MemoryMetricH2DAO.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/MemoryMetricH2DAO.java new file mode 100644 index 000000000000..12ff5fecc23e --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/MemoryMetricH2DAO.java @@ -0,0 +1,9 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao; + +import org.skywalking.apm.collector.storage.h2.dao.H2DAO; + +/** + * @author pengys5 + */ +public class MemoryMetricH2DAO extends H2DAO implements IMemoryMetricDAO { +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricDataDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricDataDefine.java new file mode 100644 index 000000000000..99df8d799bc0 --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricDataDefine.java @@ -0,0 +1,135 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define; + +import org.skywalking.apm.collector.remote.grpc.proto.RemoteData; +import org.skywalking.apm.collector.stream.worker.impl.data.Attribute; +import org.skywalking.apm.collector.stream.worker.impl.data.AttributeType; +import org.skywalking.apm.collector.stream.worker.impl.data.Data; +import org.skywalking.apm.collector.stream.worker.impl.data.DataDefine; +import org.skywalking.apm.collector.stream.worker.impl.data.Transform; +import org.skywalking.apm.collector.stream.worker.impl.data.operate.CoverOperation; +import org.skywalking.apm.collector.stream.worker.impl.data.operate.NonOperation; + +/** + * @author pengys5 + */ +public class MemoryMetricDataDefine extends DataDefine { + + @Override protected int initialCapacity() { + return 8; + } + + @Override protected void attributeDefine() { + addAttribute(0, new Attribute(MemoryMetricTable.COLUMN_ID, AttributeType.STRING, new NonOperation())); + addAttribute(1, new Attribute(MemoryMetricTable.COLUMN_APPLICATION_INSTANCE_ID, AttributeType.INTEGER, new CoverOperation())); + addAttribute(2, new Attribute(MemoryMetricTable.COLUMN_IS_HEAP, AttributeType.BOOLEAN, new CoverOperation())); + addAttribute(3, new Attribute(MemoryMetricTable.COLUMN_INIT, AttributeType.LONG, new CoverOperation())); + addAttribute(4, new Attribute(MemoryMetricTable.COLUMN_MAX, AttributeType.LONG, new CoverOperation())); + addAttribute(5, new Attribute(MemoryMetricTable.COLUMN_USED, AttributeType.LONG, new CoverOperation())); + addAttribute(6, new Attribute(MemoryMetricTable.COLUMN_COMMITTED, AttributeType.LONG, new CoverOperation())); + addAttribute(7, new Attribute(MemoryMetricTable.COLUMN_TIME_BUCKET, AttributeType.LONG, new CoverOperation())); + } + + @Override public Object deserialize(RemoteData remoteData) { + return null; + } + + @Override public RemoteData serialize(Object object) { + return null; + } + + public static class MemoryMetric implements Transform { + private String id; + private int applicationInstanceId; + private boolean isHeap; + private long init; + private long max; + private long used; + private long committed; + private long timeBucket; + + public MemoryMetric(String id, int applicationInstanceId, boolean isHeap, long init, long max, long used, + long committed, long timeBucket) { + this.id = id; + this.applicationInstanceId = applicationInstanceId; + this.isHeap = isHeap; + this.init = init; + this.max = max; + this.used = used; + this.committed = committed; + this.timeBucket = timeBucket; + } + + public MemoryMetric() { + } + + @Override public Data toData() { + MemoryMetricDataDefine define = new MemoryMetricDataDefine(); + Data data = define.build(id); + data.setDataString(0, this.id); + data.setDataInteger(0, this.applicationInstanceId); + data.setDataBoolean(0, this.isHeap); + data.setDataLong(0, this.init); + data.setDataLong(1, this.max); + data.setDataLong(2, this.used); + data.setDataLong(3, this.committed); + data.setDataLong(4, this.timeBucket); + return data; + } + + @Override public MemoryMetric toSelf(Data data) { + this.id = data.getDataString(0); + this.applicationInstanceId = data.getDataInteger(0); + this.isHeap = data.getDataBoolean(0); + this.init = data.getDataLong(0); + this.max = data.getDataLong(1); + this.used = data.getDataLong(2); + this.committed = data.getDataLong(3); + this.timeBucket = data.getDataLong(4); + return this; + } + + public void setId(String id) { + this.id = id; + } + + public void setApplicationInstanceId(int applicationInstanceId) { + this.applicationInstanceId = applicationInstanceId; + } + + public void setHeap(boolean heap) { + isHeap = heap; + } + + public void setInit(long init) { + this.init = init; + } + + public void setMax(long max) { + this.max = max; + } + + public void setUsed(long used) { + this.used = used; + } + + public void setCommitted(long committed) { + this.committed = committed; + } + + public void setTimeBucket(long timeBucket) { + this.timeBucket = timeBucket; + } + + public String getId() { + return id; + } + + public int getApplicationInstanceId() { + return applicationInstanceId; + } + + public long getTimeBucket() { + return timeBucket; + } + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricEsTableDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricEsTableDefine.java new file mode 100644 index 000000000000..34bfe7351cd6 --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricEsTableDefine.java @@ -0,0 +1,36 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define; + +import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchColumnDefine; +import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchTableDefine; + +/** + * @author pengys5 + */ +public class MemoryMetricEsTableDefine extends ElasticSearchTableDefine { + + public MemoryMetricEsTableDefine() { + super(MemoryMetricTable.TABLE); + } + + @Override public int refreshInterval() { + return 1; + } + + @Override public int numberOfShards() { + return 2; + } + + @Override public int numberOfReplicas() { + return 0; + } + + @Override public void initialize() { + addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.COLUMN_APPLICATION_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name())); + addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.COLUMN_IS_HEAP, ElasticSearchColumnDefine.Type.Boolean.name())); + addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.COLUMN_INIT, ElasticSearchColumnDefine.Type.Long.name())); + addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.COLUMN_MAX, ElasticSearchColumnDefine.Type.Long.name())); + addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.COLUMN_USED, ElasticSearchColumnDefine.Type.Long.name())); + addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.COLUMN_COMMITTED, ElasticSearchColumnDefine.Type.Long.name())); + addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name())); + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricH2TableDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricH2TableDefine.java new file mode 100644 index 000000000000..b9140709be1f --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricH2TableDefine.java @@ -0,0 +1,25 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define; + +import org.skywalking.apm.collector.storage.h2.define.H2ColumnDefine; +import org.skywalking.apm.collector.storage.h2.define.H2TableDefine; + +/** + * @author pengys5 + */ +public class MemoryMetricH2TableDefine extends H2TableDefine { + + public MemoryMetricH2TableDefine() { + super(MemoryMetricTable.TABLE); + } + + @Override public void initialize() { + addColumn(new H2ColumnDefine(MemoryMetricTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name())); + addColumn(new H2ColumnDefine(MemoryMetricTable.COLUMN_APPLICATION_INSTANCE_ID, H2ColumnDefine.Type.Int.name())); + addColumn(new H2ColumnDefine(MemoryMetricTable.COLUMN_IS_HEAP, H2ColumnDefine.Type.Boolean.name())); + addColumn(new H2ColumnDefine(MemoryMetricTable.COLUMN_INIT, H2ColumnDefine.Type.Bigint.name())); + addColumn(new H2ColumnDefine(MemoryMetricTable.COLUMN_MAX, H2ColumnDefine.Type.Bigint.name())); + addColumn(new H2ColumnDefine(MemoryMetricTable.COLUMN_USED, H2ColumnDefine.Type.Bigint.name())); + addColumn(new H2ColumnDefine(MemoryMetricTable.COLUMN_COMMITTED, H2ColumnDefine.Type.Bigint.name())); + addColumn(new H2ColumnDefine(MemoryMetricTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name())); + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricTable.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricTable.java new file mode 100644 index 000000000000..799702d01f7a --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricTable.java @@ -0,0 +1,16 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define; + +import org.skywalking.apm.collector.agentstream.worker.CommonTable; + +/** + * @author pengys5 + */ +public class MemoryMetricTable extends CommonTable { + public static final String TABLE = "memory_metric"; + public static final String COLUMN_APPLICATION_INSTANCE_ID = "application_instance_id"; + 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"; + public static final String COLUMN_COMMITTED = "committed"; +} diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define index 9fc387d93de8..b4ed91ab77f2 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define @@ -10,4 +10,5 @@ org.skywalking.apm.collector.agentstream.worker.segment.cost.dao.SegmentCostEsDA org.skywalking.apm.collector.agentstream.worker.global.dao.GlobalTraceEsDAO org.skywalking.apm.collector.agentstream.worker.service.entry.dao.ServiceEntryEsDAO org.skywalking.apm.collector.agentstream.worker.serviceref.reference.dao.ServiceRefEsDAO -org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao.CpuMetricEsDAO \ No newline at end of file +org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao.CpuMetricEsDAO +org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao.MemoryMetricEsDAO \ No newline at end of file diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define index 6499e03ef852..c78fef145382 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define @@ -10,4 +10,5 @@ org.skywalking.apm.collector.agentstream.worker.segment.cost.dao.SegmentCostH2DA org.skywalking.apm.collector.agentstream.worker.global.dao.GlobalTraceH2DAO org.skywalking.apm.collector.agentstream.worker.service.entry.dao.ServiceEntryH2DAO org.skywalking.apm.collector.agentstream.worker.serviceref.reference.dao.ServiceRefH2DAO -org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao.CpuMetricH2DAO \ No newline at end of file +org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao.CpuMetricH2DAO +org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao.MemoryMetricH2DAO \ No newline at end of file diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define index 3e688d9e6b03..c103cca26124 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define @@ -21,6 +21,7 @@ org.skywalking.apm.collector.agentstream.worker.segment.cost.SegmentCostPersiste org.skywalking.apm.collector.agentstream.worker.global.GlobalTracePersistenceWorker$Factory org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.CpuMetricPersistenceWorker$Factory +org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.MemoryMetricPersistenceWorker$Factory org.skywalking.apm.collector.agentstream.worker.register.application.ApplicationRegisterSerialWorker$Factory org.skywalking.apm.collector.agentstream.worker.register.instance.InstanceRegisterSerialWorker$Factory diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define index bd82f294fabb..01caefee86e5 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define @@ -35,4 +35,7 @@ org.skywalking.apm.collector.agentstream.worker.serviceref.reference.define.Serv org.skywalking.apm.collector.agentstream.worker.serviceref.reference.define.ServiceRefH2TableDefine org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define.CpuMetricEsTableDefine -org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define.CpuMetricH2TableDefine \ No newline at end of file +org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define.CpuMetricH2TableDefine + +org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define.MemoryMetricEsTableDefine +org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define.MemoryMetricH2TableDefine \ No newline at end of file From e6907b284624f8040049acd1a25ef1c4c0d1e63e Mon Sep 17 00:00:00 2001 From: pengys5 <8082209@qq.com> Date: Thu, 10 Aug 2017 00:15:39 +0800 Subject: [PATCH 3/9] fixed package name mistake --- .../agentstream/grpc/handler/JVMMetricsServiceHandler.java | 4 ++-- .../{gc => memory}/MemoryMetricPersistenceWorker.java | 6 +++--- .../jvmmetric/{gc => memory}/dao/IMemoryMetricDAO.java | 2 +- .../jvmmetric/{gc => memory}/dao/MemoryMetricEsDAO.java | 4 ++-- .../jvmmetric/{gc => memory}/dao/MemoryMetricH2DAO.java | 2 +- .../{gc => memory}/define/MemoryMetricDataDefine.java | 2 +- .../{gc => memory}/define/MemoryMetricEsTableDefine.java | 2 +- .../{gc => memory}/define/MemoryMetricH2TableDefine.java | 2 +- .../jvmmetric/{gc => memory}/define/MemoryMetricTable.java | 2 +- .../src/main/resources/META-INF/defines/es_dao.define | 2 +- .../src/main/resources/META-INF/defines/h2_dao.define | 2 +- .../resources/META-INF/defines/local_worker_provider.define | 2 +- .../src/main/resources/META-INF/defines/storage.define | 4 ++-- 13 files changed, 18 insertions(+), 18 deletions(-) rename apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/{gc => memory}/MemoryMetricPersistenceWorker.java (96%) rename apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/{gc => memory}/dao/IMemoryMetricDAO.java (90%) rename apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/{gc => memory}/dao/MemoryMetricEsDAO.java (97%) rename apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/{gc => memory}/dao/MemoryMetricH2DAO.java (94%) rename apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/{gc => memory}/define/MemoryMetricDataDefine.java (99%) rename apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/{gc => memory}/define/MemoryMetricEsTableDefine.java (98%) rename apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/{gc => memory}/define/MemoryMetricH2TableDefine.java (98%) rename apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/{gc => memory}/define/MemoryMetricTable.java (97%) diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java index cb059149fb67..d6601e4cb44e 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java @@ -5,8 +5,8 @@ import org.skywalking.apm.collector.agentstream.worker.Const; import org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.CpuMetricPersistenceWorker; import org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define.CpuMetricDataDefine; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.MemoryMetricPersistenceWorker; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define.MemoryMetricDataDefine; +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.MemoryMetricPersistenceWorker; +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define.MemoryMetricDataDefine; import org.skywalking.apm.collector.agentstream.worker.util.TimeBucketUtils; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.server.grpc.GRPCHandler; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/MemoryMetricPersistenceWorker.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/MemoryMetricPersistenceWorker.java similarity index 96% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/MemoryMetricPersistenceWorker.java rename to apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/MemoryMetricPersistenceWorker.java index c66904fd5ea3..f4e664242681 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/MemoryMetricPersistenceWorker.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/MemoryMetricPersistenceWorker.java @@ -1,7 +1,7 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc; +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao.IMemoryMetricDAO; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define.MemoryMetricDataDefine; +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.dao.IMemoryMetricDAO; +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define.MemoryMetricDataDefine; import org.skywalking.apm.collector.storage.dao.DAOContainer; import org.skywalking.apm.collector.stream.worker.AbstractLocalAsyncWorkerProvider; import org.skywalking.apm.collector.stream.worker.ClusterWorkerContext; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/IMemoryMetricDAO.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/dao/IMemoryMetricDAO.java similarity index 90% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/IMemoryMetricDAO.java rename to apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/dao/IMemoryMetricDAO.java index 944bfa2f93ad..58cca00be84a 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/IMemoryMetricDAO.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/dao/IMemoryMetricDAO.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao; +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.dao; /** * @author pengys5 diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/MemoryMetricEsDAO.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/dao/MemoryMetricEsDAO.java similarity index 97% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/MemoryMetricEsDAO.java rename to apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/dao/MemoryMetricEsDAO.java index 34bc4e69e9b5..472795e6d5c9 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/MemoryMetricEsDAO.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/dao/MemoryMetricEsDAO.java @@ -1,10 +1,10 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao; +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.dao; 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.agentstream.worker.jvmmetric.gc.define.MemoryMetricTable; +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define.MemoryMetricTable; import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO; import org.skywalking.apm.collector.stream.worker.impl.dao.IPersistenceDAO; import org.skywalking.apm.collector.stream.worker.impl.data.Data; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/MemoryMetricH2DAO.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/dao/MemoryMetricH2DAO.java similarity index 94% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/MemoryMetricH2DAO.java rename to apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/dao/MemoryMetricH2DAO.java index 12ff5fecc23e..9e8b3ff59f7d 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/MemoryMetricH2DAO.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/dao/MemoryMetricH2DAO.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao; +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.dao; import org.skywalking.apm.collector.storage.h2.dao.H2DAO; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricDataDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricDataDefine.java similarity index 99% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricDataDefine.java rename to apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricDataDefine.java index 99df8d799bc0..125965bdcaf5 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricDataDefine.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricDataDefine.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define; +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define; import org.skywalking.apm.collector.remote.grpc.proto.RemoteData; import org.skywalking.apm.collector.stream.worker.impl.data.Attribute; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricEsTableDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricEsTableDefine.java similarity index 98% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricEsTableDefine.java rename to apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricEsTableDefine.java index 34bfe7351cd6..e64ea7b9dfb4 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricEsTableDefine.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricEsTableDefine.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define; +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define; import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchColumnDefine; import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchTableDefine; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricH2TableDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricH2TableDefine.java similarity index 98% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricH2TableDefine.java rename to apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricH2TableDefine.java index b9140709be1f..8306b9a51c89 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricH2TableDefine.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricH2TableDefine.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define; +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define; import org.skywalking.apm.collector.storage.h2.define.H2ColumnDefine; import org.skywalking.apm.collector.storage.h2.define.H2TableDefine; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricTable.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricTable.java similarity index 97% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricTable.java rename to apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricTable.java index 799702d01f7a..4cd7fca43485 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/MemoryMetricTable.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricTable.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define; +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define; import org.skywalking.apm.collector.agentstream.worker.CommonTable; diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define index b4ed91ab77f2..0f752ed57a05 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define @@ -11,4 +11,4 @@ org.skywalking.apm.collector.agentstream.worker.global.dao.GlobalTraceEsDAO org.skywalking.apm.collector.agentstream.worker.service.entry.dao.ServiceEntryEsDAO org.skywalking.apm.collector.agentstream.worker.serviceref.reference.dao.ServiceRefEsDAO org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao.CpuMetricEsDAO -org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao.MemoryMetricEsDAO \ No newline at end of file +org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.dao.MemoryMetricEsDAO \ No newline at end of file diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define index c78fef145382..d76884b74232 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define @@ -11,4 +11,4 @@ org.skywalking.apm.collector.agentstream.worker.global.dao.GlobalTraceH2DAO org.skywalking.apm.collector.agentstream.worker.service.entry.dao.ServiceEntryH2DAO org.skywalking.apm.collector.agentstream.worker.serviceref.reference.dao.ServiceRefH2DAO org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao.CpuMetricH2DAO -org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao.MemoryMetricH2DAO \ No newline at end of file +org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.dao.MemoryMetricH2DAO \ No newline at end of file diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define index c103cca26124..01093a0319c7 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define @@ -21,7 +21,7 @@ org.skywalking.apm.collector.agentstream.worker.segment.cost.SegmentCostPersiste org.skywalking.apm.collector.agentstream.worker.global.GlobalTracePersistenceWorker$Factory org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.CpuMetricPersistenceWorker$Factory -org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.MemoryMetricPersistenceWorker$Factory +org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.MemoryMetricPersistenceWorker$Factory org.skywalking.apm.collector.agentstream.worker.register.application.ApplicationRegisterSerialWorker$Factory org.skywalking.apm.collector.agentstream.worker.register.instance.InstanceRegisterSerialWorker$Factory diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define index 01caefee86e5..25106fad8e46 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define @@ -37,5 +37,5 @@ org.skywalking.apm.collector.agentstream.worker.serviceref.reference.define.Serv org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define.CpuMetricEsTableDefine org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define.CpuMetricH2TableDefine -org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define.MemoryMetricEsTableDefine -org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define.MemoryMetricH2TableDefine \ No newline at end of file +org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define.MemoryMetricEsTableDefine +org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define.MemoryMetricH2TableDefine \ No newline at end of file From b452cdd208ff2e2aee5d84126d22cbb368daa2f9 Mon Sep 17 00:00:00 2001 From: pengys5 <8082209@qq.com> Date: Thu, 10 Aug 2017 00:33:20 +0800 Subject: [PATCH 4/9] Add memory pool metric record persistence, but not test. --- .../handler/JVMMetricsServiceHandler.java | 35 ++++- .../MemoryPoolMetricPersistenceWorker.java | 71 +++++++++ .../memorypool/dao/IMemoryPoolMetricDAO.java | 7 + .../memorypool/dao/MemoryPoolMetricEsDAO.java | 39 +++++ .../memorypool/dao/MemoryPoolMetricH2DAO.java | 9 ++ .../define/MemoryPoolMetricDataDefine.java | 144 ++++++++++++++++++ .../define/MemoryPoolMetricEsTableDefine.java | 37 +++++ .../define/MemoryPoolMetricH2TableDefine.java | 26 ++++ .../define/MemoryPoolMetricTable.java | 17 +++ .../resources/META-INF/defines/es_dao.define | 3 +- .../resources/META-INF/defines/h2_dao.define | 3 +- .../defines/local_worker_provider.define | 1 + .../resources/META-INF/defines/storage.define | 5 +- 13 files changed, 389 insertions(+), 8 deletions(-) create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/MemoryPoolMetricPersistenceWorker.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/IMemoryPoolMetricDAO.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/MemoryPoolMetricEsDAO.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/MemoryPoolMetricH2DAO.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricDataDefine.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricEsTableDefine.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricH2TableDefine.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricTable.java diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java index d6601e4cb44e..2e0b10e836a8 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java @@ -7,6 +7,8 @@ import org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define.CpuMetricDataDefine; import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.MemoryMetricPersistenceWorker; import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define.MemoryMetricDataDefine; +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.MemoryPoolMetricPersistenceWorker; +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.define.MemoryPoolMetricDataDefine; import org.skywalking.apm.collector.agentstream.worker.util.TimeBucketUtils; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.server.grpc.GRPCHandler; @@ -19,6 +21,7 @@ import org.skywalking.apm.network.proto.JVMMetrics; import org.skywalking.apm.network.proto.JVMMetricsServiceGrpc; import org.skywalking.apm.network.proto.Memory; +import org.skywalking.apm.network.proto.MemoryPool; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,6 +41,7 @@ public class JVMMetricsServiceHandler extends JVMMetricsServiceGrpc.JVMMetricsSe long time = TimeBucketUtils.INSTANCE.getSecondTimeBucket(metric.getTime()); sendToCpuMetricPersistenceWorker(context, applicationInstanceId, time, metric.getCpu()); sendToMemoryMetricPersistenceWorker(context, applicationInstanceId, time, metric.getMemoryList()); + sendToMemoryPoolMetricPersistenceWorker(context, applicationInstanceId, time, metric.getMemoryPoolList()); }); responseObserver.onNext(Downstream.newBuilder().build()); @@ -62,11 +66,9 @@ private void sendToCpuMetricPersistenceWorker(StreamModuleContext context, int a private void sendToMemoryMetricPersistenceWorker(StreamModuleContext context, int applicationInstanceId, long timeBucket, List memories) { - for (int i = 0; i < memories.size(); i++) { - Memory memory = memories.get(i); - + memories.forEach(memory -> { MemoryMetricDataDefine.MemoryMetric memoryMetric = new MemoryMetricDataDefine.MemoryMetric(); - memoryMetric.setId(timeBucket + Const.ID_SPLIT + applicationInstanceId + Const.ID_SPLIT + String.valueOf(i)); + memoryMetric.setId(timeBucket + Const.ID_SPLIT + applicationInstanceId + Const.ID_SPLIT + String.valueOf(memory.getIsHeap())); memoryMetric.setApplicationInstanceId(applicationInstanceId); memoryMetric.setHeap(memory.getIsHeap()); memoryMetric.setInit(memory.getInit()); @@ -80,6 +82,29 @@ private void sendToMemoryMetricPersistenceWorker(StreamModuleContext context, in } catch (WorkerInvokeException | WorkerNotFoundException e) { logger.error(e.getMessage(), e); } - } + }); + } + + private void sendToMemoryPoolMetricPersistenceWorker(StreamModuleContext context, int applicationInstanceId, + long timeBucket, List memoryPools) { + + memoryPools.forEach(memoryPool -> { + MemoryPoolMetricDataDefine.MemoryPoolMetric memoryPoolMetric = new MemoryPoolMetricDataDefine.MemoryPoolMetric(); + memoryPoolMetric.setId(timeBucket + Const.ID_SPLIT + applicationInstanceId + Const.ID_SPLIT + String.valueOf(memoryPool.getType().getNumber())); + memoryPoolMetric.setApplicationInstanceId(applicationInstanceId); + memoryPoolMetric.setPoolType(memoryPool.getType().getNumber()); + memoryPoolMetric.setHeap(memoryPool.getIsHeap()); + memoryPoolMetric.setInit(memoryPool.getInit()); + memoryPoolMetric.setMax(memoryPool.getMax()); + memoryPoolMetric.setUsed(memoryPool.getUsed()); + memoryPoolMetric.setCommitted(memoryPool.getCommited()); + memoryPoolMetric.setTimeBucket(timeBucket); + try { + logger.debug("send to memory pool metric persistence worker, id: {}", memoryPoolMetric.getId()); + context.getClusterWorkerContext().lookup(MemoryPoolMetricPersistenceWorker.WorkerRole.INSTANCE).tell(memoryPoolMetric.toData()); + } catch (WorkerInvokeException | WorkerNotFoundException e) { + logger.error(e.getMessage(), e); + } + }); } } diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/MemoryPoolMetricPersistenceWorker.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/MemoryPoolMetricPersistenceWorker.java new file mode 100644 index 000000000000..385fa8219c7a --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/MemoryPoolMetricPersistenceWorker.java @@ -0,0 +1,71 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool; + +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.dao.IMemoryPoolMetricDAO; +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.define.MemoryPoolMetricDataDefine; +import org.skywalking.apm.collector.storage.dao.DAOContainer; +import org.skywalking.apm.collector.stream.worker.AbstractLocalAsyncWorkerProvider; +import org.skywalking.apm.collector.stream.worker.ClusterWorkerContext; +import org.skywalking.apm.collector.stream.worker.ProviderNotFoundException; +import org.skywalking.apm.collector.stream.worker.Role; +import org.skywalking.apm.collector.stream.worker.impl.PersistenceWorker; +import org.skywalking.apm.collector.stream.worker.impl.dao.IPersistenceDAO; +import org.skywalking.apm.collector.stream.worker.impl.data.DataDefine; +import org.skywalking.apm.collector.stream.worker.selector.RollingSelector; +import org.skywalking.apm.collector.stream.worker.selector.WorkerSelector; + +/** + * @author pengys5 + */ +public class MemoryPoolMetricPersistenceWorker extends PersistenceWorker { + + public MemoryPoolMetricPersistenceWorker(Role role, ClusterWorkerContext clusterContext) { + super(role, clusterContext); + } + + @Override public void preStart() throws ProviderNotFoundException { + super.preStart(); + } + + @Override protected boolean needMergeDBData() { + return false; + } + + @Override protected IPersistenceDAO persistenceDAO() { + return (IPersistenceDAO)DAOContainer.INSTANCE.get(IMemoryPoolMetricDAO.class.getName()); + } + + public static class Factory extends AbstractLocalAsyncWorkerProvider { + @Override + public Role role() { + return WorkerRole.INSTANCE; + } + + @Override + public MemoryPoolMetricPersistenceWorker workerInstance(ClusterWorkerContext clusterContext) { + return new MemoryPoolMetricPersistenceWorker(role(), clusterContext); + } + + @Override + public int queueSize() { + return 1024; + } + } + + public enum WorkerRole implements Role { + INSTANCE; + + @Override + public String roleName() { + return MemoryPoolMetricPersistenceWorker.class.getSimpleName(); + } + + @Override + public WorkerSelector workerSelector() { + return new RollingSelector(); + } + + @Override public DataDefine dataDefine() { + return new MemoryPoolMetricDataDefine(); + } + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/IMemoryPoolMetricDAO.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/IMemoryPoolMetricDAO.java new file mode 100644 index 000000000000..cc5bc20a9a6d --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/IMemoryPoolMetricDAO.java @@ -0,0 +1,7 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.dao; + +/** + * @author pengys5 + */ +public interface IMemoryPoolMetricDAO { +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/MemoryPoolMetricEsDAO.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/MemoryPoolMetricEsDAO.java new file mode 100644 index 000000000000..988c101c5f21 --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/MemoryPoolMetricEsDAO.java @@ -0,0 +1,39 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.dao; + +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.agentstream.worker.jvmmetric.memorypool.define.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.stream.worker.impl.data.Data; +import org.skywalking.apm.collector.stream.worker.impl.data.DataDefine; + +/** + * @author pengys5 + */ +public class MemoryPoolMetricEsDAO extends EsDAO implements IMemoryPoolMetricDAO, IPersistenceDAO { + + @Override public Data get(String id, DataDefine dataDefine) { + return null; + } + + @Override public IndexRequestBuilder prepareBatchInsert(Data data) { + Map source = new HashMap<>(); + source.put(MemoryPoolMetricTable.COLUMN_APPLICATION_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)); + source.put(MemoryPoolMetricTable.COLUMN_COMMITTED, data.getDataLong(3)); + source.put(MemoryPoolMetricTable.COLUMN_TIME_BUCKET, data.getDataLong(4)); + + return getClient().prepareIndex(MemoryPoolMetricTable.TABLE, data.getDataString(0)).setSource(source); + } + + @Override public UpdateRequestBuilder prepareBatchUpdate(Data data) { + return null; + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/MemoryPoolMetricH2DAO.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/MemoryPoolMetricH2DAO.java new file mode 100644 index 000000000000..6ac2114eb9c5 --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/MemoryPoolMetricH2DAO.java @@ -0,0 +1,9 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.dao; + +import org.skywalking.apm.collector.storage.h2.dao.H2DAO; + +/** + * @author pengys5 + */ +public class MemoryPoolMetricH2DAO extends H2DAO implements IMemoryPoolMetricDAO { +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricDataDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricDataDefine.java new file mode 100644 index 000000000000..975ef60c2a73 --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricDataDefine.java @@ -0,0 +1,144 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.define; + +import org.skywalking.apm.collector.remote.grpc.proto.RemoteData; +import org.skywalking.apm.collector.stream.worker.impl.data.Attribute; +import org.skywalking.apm.collector.stream.worker.impl.data.AttributeType; +import org.skywalking.apm.collector.stream.worker.impl.data.Data; +import org.skywalking.apm.collector.stream.worker.impl.data.DataDefine; +import org.skywalking.apm.collector.stream.worker.impl.data.Transform; +import org.skywalking.apm.collector.stream.worker.impl.data.operate.CoverOperation; +import org.skywalking.apm.collector.stream.worker.impl.data.operate.NonOperation; + +/** + * @author pengys5 + */ +public class MemoryPoolMetricDataDefine extends DataDefine { + + @Override protected int initialCapacity() { + return 9; + } + + @Override protected void attributeDefine() { + addAttribute(0, new Attribute(MemoryPoolMetricTable.COLUMN_ID, AttributeType.STRING, new NonOperation())); + addAttribute(1, new Attribute(MemoryPoolMetricTable.COLUMN_APPLICATION_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())); + } + + @Override public Object deserialize(RemoteData remoteData) { + return null; + } + + @Override public RemoteData serialize(Object object) { + return null; + } + + public static class MemoryPoolMetric implements Transform { + private String id; + private int applicationInstanceId; + 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 applicationInstanceId, int poolType, boolean isHeap, long init, long max, + long used, long committed, long timeBucket) { + this.id = id; + this.applicationInstanceId = applicationInstanceId; + this.poolType = poolType; + this.isHeap = isHeap; + this.init = init; + this.max = max; + this.used = used; + this.committed = committed; + this.timeBucket = timeBucket; + } + + public MemoryPoolMetric() { + } + + @Override public Data toData() { + MemoryPoolMetricDataDefine define = new MemoryPoolMetricDataDefine(); + Data data = define.build(id); + data.setDataString(0, this.id); + data.setDataInteger(0, this.applicationInstanceId); + 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); + data.setDataLong(3, this.committed); + data.setDataLong(4, this.timeBucket); + return data; + } + + @Override public MemoryPoolMetric toSelf(Data data) { + this.id = data.getDataString(0); + this.applicationInstanceId = 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); + this.committed = data.getDataLong(3); + this.timeBucket = data.getDataLong(4); + return this; + } + + public void setId(String id) { + this.id = id; + } + + public void setApplicationInstanceId(int applicationInstanceId) { + this.applicationInstanceId = applicationInstanceId; + } + + public void setPoolType(int poolType) { + this.poolType = poolType; + } + + public void setHeap(boolean heap) { + isHeap = heap; + } + + public void setInit(long init) { + this.init = init; + } + + public void setMax(long max) { + this.max = max; + } + + public void setUsed(long used) { + this.used = used; + } + + public void setCommitted(long committed) { + this.committed = committed; + } + + public void setTimeBucket(long timeBucket) { + this.timeBucket = timeBucket; + } + + public String getId() { + return id; + } + + public int getApplicationInstanceId() { + return applicationInstanceId; + } + + public long getTimeBucket() { + return timeBucket; + } + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricEsTableDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricEsTableDefine.java new file mode 100644 index 000000000000..b1928b53e604 --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricEsTableDefine.java @@ -0,0 +1,37 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.define; + +import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchColumnDefine; +import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchTableDefine; + +/** + * @author pengys5 + */ +public class MemoryPoolMetricEsTableDefine extends ElasticSearchTableDefine { + + public MemoryPoolMetricEsTableDefine() { + super(MemoryPoolMetricTable.TABLE); + } + + @Override public int refreshInterval() { + return 1; + } + + @Override public int numberOfShards() { + return 2; + } + + @Override public int numberOfReplicas() { + return 0; + } + + @Override public void initialize() { + addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COLUMN_APPLICATION_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())); + addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COLUMN_COMMITTED, ElasticSearchColumnDefine.Type.Long.name())); + addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name())); + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricH2TableDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricH2TableDefine.java new file mode 100644 index 000000000000..df2a404f005b --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricH2TableDefine.java @@ -0,0 +1,26 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.define; + +import org.skywalking.apm.collector.storage.h2.define.H2ColumnDefine; +import org.skywalking.apm.collector.storage.h2.define.H2TableDefine; + +/** + * @author pengys5 + */ +public class MemoryPoolMetricH2TableDefine extends H2TableDefine { + + public MemoryPoolMetricH2TableDefine() { + super(MemoryPoolMetricTable.TABLE); + } + + @Override public void initialize() { + addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name())); + addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_APPLICATION_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())); + addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_COMMITTED, H2ColumnDefine.Type.Bigint.name())); + addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name())); + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricTable.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricTable.java new file mode 100644 index 000000000000..9813c81a2fcb --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricTable.java @@ -0,0 +1,17 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.define; + +import org.skywalking.apm.collector.agentstream.worker.CommonTable; + +/** + * @author pengys5 + */ +public class MemoryPoolMetricTable extends CommonTable { + public static final String TABLE = "memory_pool_metric"; + public static final String COLUMN_APPLICATION_INSTANCE_ID = "application_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"; + public static final String COLUMN_COMMITTED = "committed"; +} diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define index 0f752ed57a05..1dab55a6ef8d 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define @@ -11,4 +11,5 @@ org.skywalking.apm.collector.agentstream.worker.global.dao.GlobalTraceEsDAO org.skywalking.apm.collector.agentstream.worker.service.entry.dao.ServiceEntryEsDAO org.skywalking.apm.collector.agentstream.worker.serviceref.reference.dao.ServiceRefEsDAO org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao.CpuMetricEsDAO -org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.dao.MemoryMetricEsDAO \ No newline at end of file +org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.dao.MemoryMetricEsDAO +org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.dao.MemoryPoolMetricEsDAO \ No newline at end of file diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define index d76884b74232..5c848799f681 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define @@ -11,4 +11,5 @@ org.skywalking.apm.collector.agentstream.worker.global.dao.GlobalTraceH2DAO org.skywalking.apm.collector.agentstream.worker.service.entry.dao.ServiceEntryH2DAO org.skywalking.apm.collector.agentstream.worker.serviceref.reference.dao.ServiceRefH2DAO org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao.CpuMetricH2DAO -org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.dao.MemoryMetricH2DAO \ No newline at end of file +org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.dao.MemoryMetricH2DAO +org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.dao.MemoryPoolMetricH2DAO \ No newline at end of file diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define index 01093a0319c7..646e3b3237be 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define @@ -22,6 +22,7 @@ org.skywalking.apm.collector.agentstream.worker.global.GlobalTracePersistenceWor org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.CpuMetricPersistenceWorker$Factory org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.MemoryMetricPersistenceWorker$Factory +org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.MemoryPoolMetricPersistenceWorker$Factory org.skywalking.apm.collector.agentstream.worker.register.application.ApplicationRegisterSerialWorker$Factory org.skywalking.apm.collector.agentstream.worker.register.instance.InstanceRegisterSerialWorker$Factory diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define index 25106fad8e46..d8d543774ea5 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define @@ -38,4 +38,7 @@ org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define.CpuMetricEs org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define.CpuMetricH2TableDefine org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define.MemoryMetricEsTableDefine -org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define.MemoryMetricH2TableDefine \ No newline at end of file +org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define.MemoryMetricH2TableDefine + +org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.define.MemoryPoolMetricEsTableDefine +org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.define.MemoryPoolMetricH2TableDefine \ No newline at end of file From ecc050c63d3bb44e25b1ffeb675ae5baa122818e Mon Sep 17 00:00:00 2001 From: pengys5 <8082209@qq.com> Date: Thu, 10 Aug 2017 00:50:53 +0800 Subject: [PATCH 5/9] Add gc metric record persistence, but not test --- .../handler/JVMMetricsServiceHandler.java | 23 ++++ .../cpu/define/CpuMetricDataDefine.java | 2 +- .../gc/GCMetricPersistenceWorker.java | 71 ++++++++++ .../jvmmetric/gc/dao/GCMetricEsDAO.java | 36 +++++ .../jvmmetric/gc/dao/GCMetricH2DAO.java | 9 ++ .../worker/jvmmetric/gc/dao/IGCMetricDAO.java | 7 + .../gc/define/GCMetricDataDefine.java | 128 ++++++++++++++++++ .../gc/define/GCMetricEsTableDefine.java | 34 +++++ .../gc/define/GCMetricH2TableDefine.java | 23 ++++ .../jvmmetric/gc/define/GCMetricTable.java | 14 ++ .../resources/META-INF/defines/es_dao.define | 3 +- .../resources/META-INF/defines/h2_dao.define | 3 +- .../defines/local_worker_provider.define | 1 + .../resources/META-INF/defines/storage.define | 5 +- 14 files changed, 355 insertions(+), 4 deletions(-) create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/GCMetricPersistenceWorker.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/GCMetricEsDAO.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/GCMetricH2DAO.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/IGCMetricDAO.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricDataDefine.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricEsTableDefine.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricH2TableDefine.java create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricTable.java diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java index 2e0b10e836a8..cf3314ec5f51 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java @@ -5,6 +5,8 @@ import org.skywalking.apm.collector.agentstream.worker.Const; import org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.CpuMetricPersistenceWorker; import org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define.CpuMetricDataDefine; +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.GCMetricPersistenceWorker; +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define.GCMetricDataDefine; import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.MemoryMetricPersistenceWorker; import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define.MemoryMetricDataDefine; import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.MemoryPoolMetricPersistenceWorker; @@ -18,6 +20,7 @@ import org.skywalking.apm.collector.stream.worker.WorkerNotFoundException; import org.skywalking.apm.network.proto.CPU; import org.skywalking.apm.network.proto.Downstream; +import org.skywalking.apm.network.proto.GC; import org.skywalking.apm.network.proto.JVMMetrics; import org.skywalking.apm.network.proto.JVMMetricsServiceGrpc; import org.skywalking.apm.network.proto.Memory; @@ -42,6 +45,7 @@ public class JVMMetricsServiceHandler extends JVMMetricsServiceGrpc.JVMMetricsSe sendToCpuMetricPersistenceWorker(context, applicationInstanceId, time, metric.getCpu()); sendToMemoryMetricPersistenceWorker(context, applicationInstanceId, time, metric.getMemoryList()); sendToMemoryPoolMetricPersistenceWorker(context, applicationInstanceId, time, metric.getMemoryPoolList()); + sendToGCMetricPersistenceWorker(context, applicationInstanceId, time, metric.getGcList()); }); responseObserver.onNext(Downstream.newBuilder().build()); @@ -107,4 +111,23 @@ private void sendToMemoryPoolMetricPersistenceWorker(StreamModuleContext context } }); } + + private void sendToGCMetricPersistenceWorker(StreamModuleContext context, int applicationInstanceId, + long timeBucket, List gcs) { + gcs.forEach(gc -> { + GCMetricDataDefine.GCMetric gcMetric = new GCMetricDataDefine.GCMetric(); + gcMetric.setId(timeBucket + Const.ID_SPLIT + applicationInstanceId + Const.ID_SPLIT + String.valueOf(gc.getPhraseValue())); + gcMetric.setApplicationInstanceId(applicationInstanceId); + gcMetric.setPhrase(gc.getPhraseValue()); + gcMetric.setCount(gc.getCount()); + gcMetric.setTime(gc.getTime()); + gcMetric.setTimeBucket(timeBucket); + try { + logger.debug("send to gc metric persistence worker, id: {}", gcMetric.getId()); + context.getClusterWorkerContext().lookup(GCMetricPersistenceWorker.WorkerRole.INSTANCE).tell(gcMetric.toData()); + } catch (WorkerInvokeException | WorkerNotFoundException e) { + logger.error(e.getMessage(), e); + } + }); + } } diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricDataDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricDataDefine.java index b859b5382ba3..553c17dc69fc 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricDataDefine.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricDataDefine.java @@ -22,7 +22,7 @@ public class CpuMetricDataDefine extends DataDefine { addAttribute(0, new Attribute(CpuMetricTable.COLUMN_ID, AttributeType.STRING, new NonOperation())); addAttribute(1, new Attribute(CpuMetricTable.COLUMN_APPLICATION_INSTANCE_ID, AttributeType.INTEGER, new CoverOperation())); addAttribute(2, new Attribute(CpuMetricTable.COLUMN_USAGE_PERCENT, AttributeType.DOUBLE, new CoverOperation())); - addAttribute(2, new Attribute(CpuMetricTable.COLUMN_TIME_BUCKET, AttributeType.LONG, new CoverOperation())); + addAttribute(3, new Attribute(CpuMetricTable.COLUMN_TIME_BUCKET, AttributeType.LONG, new CoverOperation())); } @Override public Object deserialize(RemoteData remoteData) { diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/GCMetricPersistenceWorker.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/GCMetricPersistenceWorker.java new file mode 100644 index 000000000000..8dd97dd2653e --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/GCMetricPersistenceWorker.java @@ -0,0 +1,71 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc; + +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao.IGCMetricDAO; +import org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define.GCMetricDataDefine; +import org.skywalking.apm.collector.storage.dao.DAOContainer; +import org.skywalking.apm.collector.stream.worker.AbstractLocalAsyncWorkerProvider; +import org.skywalking.apm.collector.stream.worker.ClusterWorkerContext; +import org.skywalking.apm.collector.stream.worker.ProviderNotFoundException; +import org.skywalking.apm.collector.stream.worker.Role; +import org.skywalking.apm.collector.stream.worker.impl.PersistenceWorker; +import org.skywalking.apm.collector.stream.worker.impl.dao.IPersistenceDAO; +import org.skywalking.apm.collector.stream.worker.impl.data.DataDefine; +import org.skywalking.apm.collector.stream.worker.selector.RollingSelector; +import org.skywalking.apm.collector.stream.worker.selector.WorkerSelector; + +/** + * @author pengys5 + */ +public class GCMetricPersistenceWorker extends PersistenceWorker { + + public GCMetricPersistenceWorker(Role role, ClusterWorkerContext clusterContext) { + super(role, clusterContext); + } + + @Override public void preStart() throws ProviderNotFoundException { + super.preStart(); + } + + @Override protected boolean needMergeDBData() { + return false; + } + + @Override protected IPersistenceDAO persistenceDAO() { + return (IPersistenceDAO)DAOContainer.INSTANCE.get(IGCMetricDAO.class.getName()); + } + + public static class Factory extends AbstractLocalAsyncWorkerProvider { + @Override + public Role role() { + return WorkerRole.INSTANCE; + } + + @Override + public GCMetricPersistenceWorker workerInstance(ClusterWorkerContext clusterContext) { + return new GCMetricPersistenceWorker(role(), clusterContext); + } + + @Override + public int queueSize() { + return 1024; + } + } + + public enum WorkerRole implements Role { + INSTANCE; + + @Override + public String roleName() { + return GCMetricPersistenceWorker.class.getSimpleName(); + } + + @Override + public WorkerSelector workerSelector() { + return new RollingSelector(); + } + + @Override public DataDefine dataDefine() { + return new GCMetricDataDefine(); + } + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/GCMetricEsDAO.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/GCMetricEsDAO.java new file mode 100644 index 000000000000..91f5b7b6d90b --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/GCMetricEsDAO.java @@ -0,0 +1,36 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao; + +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.agentstream.worker.jvmmetric.gc.define.GCMetricTable; +import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO; +import org.skywalking.apm.collector.stream.worker.impl.dao.IPersistenceDAO; +import org.skywalking.apm.collector.stream.worker.impl.data.Data; +import org.skywalking.apm.collector.stream.worker.impl.data.DataDefine; + +/** + * @author pengys5 + */ +public class GCMetricEsDAO extends EsDAO implements IGCMetricDAO, IPersistenceDAO { + + @Override public Data get(String id, DataDefine dataDefine) { + return null; + } + + @Override public IndexRequestBuilder prepareBatchInsert(Data data) { + Map source = new HashMap<>(); + source.put(GCMetricTable.COLUMN_APPLICATION_INSTANCE_ID, data.getDataInteger(0)); + source.put(GCMetricTable.COLUMN_PHRASE, data.getDataInteger(0)); + source.put(GCMetricTable.COLUMN_COUNT, data.getDataLong(0)); + source.put(GCMetricTable.COLUMN_TIME, data.getDataLong(1)); + source.put(GCMetricTable.COLUMN_TIME_BUCKET, data.getDataLong(2)); + + return getClient().prepareIndex(GCMetricTable.TABLE, data.getDataString(0)).setSource(source); + } + + @Override public UpdateRequestBuilder prepareBatchUpdate(Data data) { + return null; + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/GCMetricH2DAO.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/GCMetricH2DAO.java new file mode 100644 index 000000000000..43f48bfc38fc --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/GCMetricH2DAO.java @@ -0,0 +1,9 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao; + +import org.skywalking.apm.collector.storage.h2.dao.H2DAO; + +/** + * @author pengys5 + */ +public class GCMetricH2DAO extends H2DAO implements IGCMetricDAO { +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/IGCMetricDAO.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/IGCMetricDAO.java new file mode 100644 index 000000000000..15a4ca97b14e --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/IGCMetricDAO.java @@ -0,0 +1,7 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao; + +/** + * @author pengys5 + */ +public interface IGCMetricDAO { +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricDataDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricDataDefine.java new file mode 100644 index 000000000000..7c378f3a7e9a --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricDataDefine.java @@ -0,0 +1,128 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define; + +import org.skywalking.apm.collector.remote.grpc.proto.RemoteData; +import org.skywalking.apm.collector.stream.worker.impl.data.Attribute; +import org.skywalking.apm.collector.stream.worker.impl.data.AttributeType; +import org.skywalking.apm.collector.stream.worker.impl.data.Data; +import org.skywalking.apm.collector.stream.worker.impl.data.DataDefine; +import org.skywalking.apm.collector.stream.worker.impl.data.Transform; +import org.skywalking.apm.collector.stream.worker.impl.data.operate.CoverOperation; +import org.skywalking.apm.collector.stream.worker.impl.data.operate.NonOperation; + +/** + * @author pengys5 + */ +public class GCMetricDataDefine extends DataDefine { + + @Override protected int initialCapacity() { + return 6; + } + + @Override protected void attributeDefine() { + addAttribute(0, new Attribute(GCMetricTable.COLUMN_ID, AttributeType.STRING, new NonOperation())); + addAttribute(1, new Attribute(GCMetricTable.COLUMN_APPLICATION_INSTANCE_ID, AttributeType.INTEGER, new CoverOperation())); + addAttribute(2, new Attribute(GCMetricTable.COLUMN_PHRASE, AttributeType.INTEGER, new CoverOperation())); + addAttribute(3, new Attribute(GCMetricTable.COLUMN_COUNT, AttributeType.LONG, new CoverOperation())); + addAttribute(4, new Attribute(GCMetricTable.COLUMN_TIME, AttributeType.LONG, new CoverOperation())); + addAttribute(5, new Attribute(GCMetricTable.COLUMN_TIME_BUCKET, AttributeType.LONG, new CoverOperation())); + } + + @Override public Object deserialize(RemoteData remoteData) { + return null; + } + + @Override public RemoteData serialize(Object object) { + return null; + } + + public static class GCMetric implements Transform { + private String id; + private int applicationInstanceId; + private int phrase; + private long count; + private long time; + private long timeBucket; + + public GCMetric(String id, int applicationInstanceId, int phrase, long count, long time, long timeBucket) { + this.id = id; + this.applicationInstanceId = applicationInstanceId; + this.phrase = phrase; + this.count = count; + this.time = time; + this.timeBucket = timeBucket; + } + + public GCMetric() { + } + + @Override public Data toData() { + GCMetricDataDefine define = new GCMetricDataDefine(); + Data data = define.build(id); + data.setDataString(0, this.id); + data.setDataInteger(0, this.applicationInstanceId); + data.setDataInteger(1, this.phrase); + data.setDataLong(0, this.count); + data.setDataLong(1, this.time); + data.setDataLong(2, this.timeBucket); + return data; + } + + @Override public GCMetric toSelf(Data data) { + this.id = data.getDataString(0); + this.applicationInstanceId = data.getDataInteger(0); + this.phrase = data.getDataInteger(1); + this.count = data.getDataLong(0); + this.time = data.getDataLong(1); + this.timeBucket = data.getDataLong(2); + return this; + } + + public void setId(String id) { + this.id = id; + } + + public void setApplicationInstanceId(int applicationInstanceId) { + this.applicationInstanceId = applicationInstanceId; + } + + public void setTimeBucket(long timeBucket) { + this.timeBucket = timeBucket; + } + + public String getId() { + return id; + } + + public int getApplicationInstanceId() { + return applicationInstanceId; + } + + public long getTimeBucket() { + return timeBucket; + } + + public int getPhrase() { + return phrase; + } + + public long getCount() { + return count; + } + + public long getTime() { + return time; + } + + public void setPhrase(int phrase) { + this.phrase = phrase; + } + + public void setCount(long count) { + this.count = count; + } + + public void setTime(long time) { + this.time = time; + } + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricEsTableDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricEsTableDefine.java new file mode 100644 index 000000000000..11867ad29929 --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricEsTableDefine.java @@ -0,0 +1,34 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define; + +import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchColumnDefine; +import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchTableDefine; + +/** + * @author pengys5 + */ +public class GCMetricEsTableDefine extends ElasticSearchTableDefine { + + public GCMetricEsTableDefine() { + super(GCMetricTable.TABLE); + } + + @Override public int refreshInterval() { + return 1; + } + + @Override public int numberOfShards() { + return 2; + } + + @Override public int numberOfReplicas() { + return 0; + } + + @Override public void initialize() { + addColumn(new ElasticSearchColumnDefine(GCMetricTable.COLUMN_APPLICATION_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name())); + addColumn(new ElasticSearchColumnDefine(GCMetricTable.COLUMN_PHRASE, ElasticSearchColumnDefine.Type.Integer.name())); + addColumn(new ElasticSearchColumnDefine(GCMetricTable.COLUMN_COUNT, ElasticSearchColumnDefine.Type.Long.name())); + addColumn(new ElasticSearchColumnDefine(GCMetricTable.COLUMN_TIME, ElasticSearchColumnDefine.Type.Long.name())); + addColumn(new ElasticSearchColumnDefine(GCMetricTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name())); + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricH2TableDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricH2TableDefine.java new file mode 100644 index 000000000000..9d6c741f15ca --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricH2TableDefine.java @@ -0,0 +1,23 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define; + +import org.skywalking.apm.collector.storage.h2.define.H2ColumnDefine; +import org.skywalking.apm.collector.storage.h2.define.H2TableDefine; + +/** + * @author pengys5 + */ +public class GCMetricH2TableDefine extends H2TableDefine { + + public GCMetricH2TableDefine() { + super(GCMetricTable.TABLE); + } + + @Override public void initialize() { + addColumn(new H2ColumnDefine(GCMetricTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name())); + addColumn(new H2ColumnDefine(GCMetricTable.COLUMN_APPLICATION_INSTANCE_ID, H2ColumnDefine.Type.Int.name())); + addColumn(new H2ColumnDefine(GCMetricTable.COLUMN_PHRASE, H2ColumnDefine.Type.Int.name())); + addColumn(new H2ColumnDefine(GCMetricTable.COLUMN_COUNT, H2ColumnDefine.Type.Bigint.name())); + addColumn(new H2ColumnDefine(GCMetricTable.COLUMN_TIME, H2ColumnDefine.Type.Bigint.name())); + addColumn(new H2ColumnDefine(GCMetricTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name())); + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricTable.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricTable.java new file mode 100644 index 000000000000..baa4f683a5a9 --- /dev/null +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricTable.java @@ -0,0 +1,14 @@ +package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define; + +import org.skywalking.apm.collector.agentstream.worker.CommonTable; + +/** + * @author pengys5 + */ +public class GCMetricTable extends CommonTable { + public static final String TABLE = "gc_metric"; + public static final String COLUMN_APPLICATION_INSTANCE_ID = "application_instance_id"; + public static final String COLUMN_PHRASE = "phrase"; + public static final String COLUMN_COUNT = "count"; + public static final String COLUMN_TIME = "time"; +} diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define index 1dab55a6ef8d..254e1b553c23 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define @@ -12,4 +12,5 @@ org.skywalking.apm.collector.agentstream.worker.service.entry.dao.ServiceEntryEs org.skywalking.apm.collector.agentstream.worker.serviceref.reference.dao.ServiceRefEsDAO org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao.CpuMetricEsDAO org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.dao.MemoryMetricEsDAO -org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.dao.MemoryPoolMetricEsDAO \ No newline at end of file +org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.dao.MemoryPoolMetricEsDAO +org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao.GCMetricEsDAO \ No newline at end of file diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define index 5c848799f681..e08fcb46f474 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define @@ -12,4 +12,5 @@ org.skywalking.apm.collector.agentstream.worker.service.entry.dao.ServiceEntryH2 org.skywalking.apm.collector.agentstream.worker.serviceref.reference.dao.ServiceRefH2DAO org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao.CpuMetricH2DAO org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.dao.MemoryMetricH2DAO -org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.dao.MemoryPoolMetricH2DAO \ No newline at end of file +org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.dao.MemoryPoolMetricH2DAO +org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao.GCMetricH2DAO \ No newline at end of file diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define index 646e3b3237be..3e0811aa1f49 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define @@ -23,6 +23,7 @@ org.skywalking.apm.collector.agentstream.worker.global.GlobalTracePersistenceWor org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.CpuMetricPersistenceWorker$Factory org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.MemoryMetricPersistenceWorker$Factory org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.MemoryPoolMetricPersistenceWorker$Factory +org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.GCMetricPersistenceWorker$Factory org.skywalking.apm.collector.agentstream.worker.register.application.ApplicationRegisterSerialWorker$Factory org.skywalking.apm.collector.agentstream.worker.register.instance.InstanceRegisterSerialWorker$Factory diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define index d8d543774ea5..2adf21a90ac1 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define @@ -41,4 +41,7 @@ org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define.MemoryMe org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define.MemoryMetricH2TableDefine org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.define.MemoryPoolMetricEsTableDefine -org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.define.MemoryPoolMetricH2TableDefine \ No newline at end of file +org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.define.MemoryPoolMetricH2TableDefine + +org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define.GCMetricEsTableDefine +org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define.GCMetricH2TableDefine \ No newline at end of file From 258a870c8996d4d87ceff334defccea08f65fbac Mon Sep 17 00:00:00 2001 From: pengys5 <8082209@qq.com> Date: Thu, 10 Aug 2017 22:35:20 +0800 Subject: [PATCH 6/9] Jvm metric save to es test success. #346 --- apm-collector/apm-collector-agentjvm/pom.xml | 7 +- .../handler/JVMMetricsServiceHandler.java | 118 +++++++++++++++- .../cpu/CpuMetricPersistenceWorker.java | 6 +- .../worker}/cpu/dao/CpuMetricEsDAO.java | 4 +- .../worker}/cpu/dao/CpuMetricH2DAO.java | 2 +- .../worker/cpu/dao/ICpuMetricDAO.java | 7 + .../cpu/define/CpuMetricDataDefine.java | 2 +- .../cpu/define/CpuMetricEsTableDefine.java | 2 +- .../cpu/define/CpuMetricH2TableDefine.java | 2 +- .../worker}/cpu/define/CpuMetricTable.java | 4 +- .../worker}/gc/GCMetricPersistenceWorker.java | 6 +- .../worker}/gc/dao/GCMetricEsDAO.java | 4 +- .../worker}/gc/dao/GCMetricH2DAO.java | 2 +- .../agentjvm/worker/gc/dao/IGCMetricDAO.java | 7 + .../worker}/gc/define/GCMetricDataDefine.java | 2 +- .../gc/define/GCMetricEsTableDefine.java | 2 +- .../gc/define/GCMetricH2TableDefine.java | 2 +- .../worker}/gc/define/GCMetricTable.java | 4 +- .../memory/MemoryMetricPersistenceWorker.java | 6 +- .../worker/memory/dao/IMemoryMetricDAO.java | 7 + .../worker}/memory/dao/MemoryMetricEsDAO.java | 4 +- .../worker}/memory/dao/MemoryMetricH2DAO.java | 2 +- .../memory/define/MemoryMetricDataDefine.java | 2 +- .../define/MemoryMetricEsTableDefine.java | 2 +- .../define/MemoryMetricH2TableDefine.java | 2 +- .../memory/define/MemoryMetricTable.java | 4 +- .../MemoryPoolMetricPersistenceWorker.java | 6 +- .../memorypool/dao/IMemoryPoolMetricDAO.java | 7 + .../memorypool/dao/MemoryPoolMetricEsDAO.java | 4 +- .../memorypool/dao/MemoryPoolMetricH2DAO.java | 2 +- .../define/MemoryPoolMetricDataDefine.java | 2 +- .../define/MemoryPoolMetricEsTableDefine.java | 2 +- .../define/MemoryPoolMetricH2TableDefine.java | 2 +- .../define/MemoryPoolMetricTable.java | 4 +- .../resources/META-INF/defines/es_dao.define | 4 + .../resources/META-INF/defines/h2_dao.define | 4 + .../defines/local_worker_provider.define | 4 + .../resources/META-INF/defines/storage.define | 11 ++ .../JVMMetricsServiceHandlerTestCase.java | 88 ++++++++++++ .../grpc/AgentStreamGRPCModuleDefine.java | 2 - .../handler/JVMMetricsServiceHandler.java | 133 ------------------ .../worker/cache/ServiceNameCache.java | 2 +- .../global/GlobalTraceSpanListener.java | 2 +- .../global/define/GlobalTraceTable.java | 2 +- .../jvmmetric/cpu/dao/ICpuMetricDAO.java | 7 - .../worker/jvmmetric/gc/dao/IGCMetricDAO.java | 7 - .../memory/dao/IMemoryMetricDAO.java | 7 - .../memorypool/dao/IMemoryPoolMetricDAO.java | 7 - .../component/NodeComponentSpanListener.java | 4 +- .../component/define/NodeComponentTable.java | 2 +- .../node/mapping/NodeMappingSpanListener.java | 4 +- .../node/mapping/define/NodeMappingTable.java | 2 +- .../reference/NodeRefSpanListener.java | 4 +- .../reference/define/NodeRefTable.java | 2 +- .../summary/NodeRefSumSpanListener.java | 4 +- .../summary/define/NodeRefSumTable.java | 2 +- .../ApplicationRegisterSerialWorker.java | 2 +- .../application/ApplicationTable.java | 2 +- .../register/instance/InstanceTable.java | 2 +- .../servicename/ServiceNameTable.java | 2 +- .../segment/cost/SegmentCostSpanListener.java | 2 +- .../segment/cost/define/SegmentCostTable.java | 2 +- .../segment/origin/define/SegmentTable.java | 2 +- .../entry/ServiceEntrySpanListener.java | 4 +- .../entry/define/ServiceEntryTable.java | 2 +- .../reference/ServiceRefSpanListener.java | 4 +- .../reference/define/ServiceRefTable.java | 2 +- .../resources/META-INF/defines/es_dao.define | 6 +- .../resources/META-INF/defines/h2_dao.define | 8 +- .../defines/local_worker_provider.define | 8 +- .../resources/META-INF/defines/storage.define | 14 +- .../util/TimeBucketUtilsTestCase.java | 2 +- .../stream/worker/storage}/CommonTable.java | 2 +- .../collector/stream/worker/util}/Const.java | 4 +- .../stream}/worker/util/TimeBucketUtils.java | 2 +- .../collector/ui/dao/NodeComponentEsDAO.java | 2 +- .../collector/ui/dao/NodeMappingEsDAO.java | 2 +- .../apm/collector/ui/dao/NodeRefSumEsDAO.java | 2 +- .../collector/ui/dao/NodeReferenceEsDAO.java | 2 +- .../ui/service/TraceDagDataBuilder.java | 2 +- .../ui/service/TraceStackService.java | 2 +- 81 files changed, 354 insertions(+), 275 deletions(-) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/cpu/CpuMetricPersistenceWorker.java (89%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/cpu/dao/CpuMetricEsDAO.java (88%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/cpu/dao/CpuMetricH2DAO.java (67%) create mode 100644 apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/dao/ICpuMetricDAO.java rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/cpu/define/CpuMetricDataDefine.java (97%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/cpu/define/CpuMetricEsTableDefine.java (92%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/cpu/define/CpuMetricH2TableDefine.java (91%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/cpu/define/CpuMetricTable.java (66%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/gc/GCMetricPersistenceWorker.java (89%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/gc/dao/GCMetricEsDAO.java (89%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/gc/dao/GCMetricH2DAO.java (67%) create mode 100644 apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/dao/IGCMetricDAO.java rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/gc/define/GCMetricDataDefine.java (98%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/gc/define/GCMetricEsTableDefine.java (94%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/gc/define/GCMetricH2TableDefine.java (92%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/gc/define/GCMetricTable.java (72%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/memory/MemoryMetricPersistenceWorker.java (89%) create mode 100644 apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/dao/IMemoryMetricDAO.java rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/memory/dao/MemoryMetricEsDAO.java (90%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/memory/dao/MemoryMetricH2DAO.java (67%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/memory/define/MemoryMetricDataDefine.java (98%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/memory/define/MemoryMetricEsTableDefine.java (95%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/memory/define/MemoryMetricH2TableDefine.java (93%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/memory/define/MemoryMetricTable.java (77%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/memorypool/MemoryPoolMetricPersistenceWorker.java (88%) create mode 100644 apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/dao/IMemoryPoolMetricDAO.java rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/memorypool/dao/MemoryPoolMetricEsDAO.java (90%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/memorypool/dao/MemoryPoolMetricH2DAO.java (67%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/memorypool/define/MemoryPoolMetricDataDefine.java (98%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/memorypool/define/MemoryPoolMetricEsTableDefine.java (95%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/memorypool/define/MemoryPoolMetricH2TableDefine.java (94%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric => apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker}/memorypool/define/MemoryPoolMetricTable.java (79%) create mode 100644 apm-collector/apm-collector-agentjvm/src/main/resources/META-INF/defines/es_dao.define create mode 100644 apm-collector/apm-collector-agentjvm/src/main/resources/META-INF/defines/h2_dao.define create mode 100644 apm-collector/apm-collector-agentjvm/src/main/resources/META-INF/defines/local_worker_provider.define create mode 100644 apm-collector/apm-collector-agentjvm/src/main/resources/META-INF/defines/storage.define create mode 100644 apm-collector/apm-collector-agentjvm/src/test/java/org/skywalking/apm/collector/agentjvm/grpc/handler/JVMMetricsServiceHandlerTestCase.java delete mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java delete mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/ICpuMetricDAO.java delete mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/IGCMetricDAO.java delete mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/dao/IMemoryMetricDAO.java delete mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/IMemoryPoolMetricDAO.java rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/storage}/CommonTable.java (82%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/util}/Const.java (64%) rename apm-collector/{apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/worker/util/TimeBucketUtils.java (96%) diff --git a/apm-collector/apm-collector-agentjvm/pom.xml b/apm-collector/apm-collector-agentjvm/pom.xml index 8f20f17ab766..3e84c4e1546c 100644 --- a/apm-collector/apm-collector-agentjvm/pom.xml +++ b/apm-collector/apm-collector-agentjvm/pom.xml @@ -13,6 +13,11 @@ jar + + org.skywalking + apm-collector-stream + ${project.version} + org.skywalking apm-collector-cluster @@ -25,7 +30,7 @@ org.skywalking - apm-network + apm-collector-storage ${project.version} diff --git a/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/grpc/handler/JVMMetricsServiceHandler.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/grpc/handler/JVMMetricsServiceHandler.java index 7166b980d525..6f852ef861f5 100644 --- a/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/grpc/handler/JVMMetricsServiceHandler.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/grpc/handler/JVMMetricsServiceHandler.java @@ -1,17 +1,133 @@ package org.skywalking.apm.collector.agentjvm.grpc.handler; import io.grpc.stub.StreamObserver; +import java.util.List; +import org.skywalking.apm.collector.agentjvm.worker.cpu.CpuMetricPersistenceWorker; +import org.skywalking.apm.collector.agentjvm.worker.cpu.define.CpuMetricDataDefine; +import org.skywalking.apm.collector.agentjvm.worker.gc.GCMetricPersistenceWorker; +import org.skywalking.apm.collector.agentjvm.worker.gc.define.GCMetricDataDefine; +import org.skywalking.apm.collector.agentjvm.worker.memory.MemoryMetricPersistenceWorker; +import org.skywalking.apm.collector.agentjvm.worker.memory.define.MemoryMetricDataDefine; +import org.skywalking.apm.collector.agentjvm.worker.memorypool.MemoryPoolMetricPersistenceWorker; +import org.skywalking.apm.collector.agentjvm.worker.memorypool.define.MemoryPoolMetricDataDefine; +import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.server.grpc.GRPCHandler; +import org.skywalking.apm.collector.stream.StreamModuleContext; +import org.skywalking.apm.collector.stream.StreamModuleGroupDefine; +import org.skywalking.apm.collector.stream.worker.WorkerInvokeException; +import org.skywalking.apm.collector.stream.worker.WorkerNotFoundException; +import org.skywalking.apm.collector.stream.worker.util.Const; +import org.skywalking.apm.collector.stream.worker.util.TimeBucketUtils; +import org.skywalking.apm.network.proto.CPU; import org.skywalking.apm.network.proto.Downstream; +import org.skywalking.apm.network.proto.GC; import org.skywalking.apm.network.proto.JVMMetrics; import org.skywalking.apm.network.proto.JVMMetricsServiceGrpc; +import org.skywalking.apm.network.proto.Memory; +import org.skywalking.apm.network.proto.MemoryPool; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @author pengys5 */ public class JVMMetricsServiceHandler extends JVMMetricsServiceGrpc.JVMMetricsServiceImplBase implements GRPCHandler { + private final Logger logger = LoggerFactory.getLogger(JVMMetricsServiceHandler.class); + @Override public void collect(JVMMetrics request, StreamObserver responseObserver) { - super.collect(request, responseObserver); + int applicationInstanceId = request.getApplicationInstanceId(); + logger.debug("receive the jvm metric from application instance, id: {}", applicationInstanceId); + + StreamModuleContext context = (StreamModuleContext)CollectorContextHelper.INSTANCE.getContext(StreamModuleGroupDefine.GROUP_NAME); + request.getMetricsList().forEach(metric -> { + long time = TimeBucketUtils.INSTANCE.getSecondTimeBucket(metric.getTime()); + sendToCpuMetricPersistenceWorker(context, applicationInstanceId, time, metric.getCpu()); + sendToMemoryMetricPersistenceWorker(context, applicationInstanceId, time, metric.getMemoryList()); + sendToMemoryPoolMetricPersistenceWorker(context, applicationInstanceId, time, metric.getMemoryPoolList()); + sendToGCMetricPersistenceWorker(context, applicationInstanceId, time, metric.getGcList()); + }); + + responseObserver.onNext(Downstream.newBuilder().build()); + responseObserver.onCompleted(); + } + + private void sendToCpuMetricPersistenceWorker(StreamModuleContext context, int applicationInstanceId, + long timeBucket, CPU cpu) { + CpuMetricDataDefine.CpuMetric cpuMetric = new CpuMetricDataDefine.CpuMetric(); + cpuMetric.setId(timeBucket + Const.ID_SPLIT + applicationInstanceId); + cpuMetric.setApplicationInstanceId(applicationInstanceId); + cpuMetric.setUsagePercent(cpu.getUsagePercent()); + cpuMetric.setTimeBucket(timeBucket); + try { + logger.debug("send to cpu metric persistence worker, id: {}", cpuMetric.getId()); + context.getClusterWorkerContext().lookup(CpuMetricPersistenceWorker.WorkerRole.INSTANCE).tell(cpuMetric.toData()); + } catch (WorkerInvokeException | WorkerNotFoundException e) { + logger.error(e.getMessage(), e); + } + } + + private void sendToMemoryMetricPersistenceWorker(StreamModuleContext context, int applicationInstanceId, + long timeBucket, List memories) { + + memories.forEach(memory -> { + MemoryMetricDataDefine.MemoryMetric memoryMetric = new MemoryMetricDataDefine.MemoryMetric(); + memoryMetric.setId(timeBucket + Const.ID_SPLIT + applicationInstanceId + Const.ID_SPLIT + String.valueOf(memory.getIsHeap())); + memoryMetric.setApplicationInstanceId(applicationInstanceId); + memoryMetric.setHeap(memory.getIsHeap()); + memoryMetric.setInit(memory.getInit()); + memoryMetric.setMax(memory.getMax()); + memoryMetric.setUsed(memory.getUsed()); + memoryMetric.setCommitted(memory.getCommitted()); + memoryMetric.setTimeBucket(timeBucket); + try { + logger.debug("send to memory metric persistence worker, id: {}", memoryMetric.getId()); + context.getClusterWorkerContext().lookup(MemoryMetricPersistenceWorker.WorkerRole.INSTANCE).tell(memoryMetric.toData()); + } catch (WorkerInvokeException | WorkerNotFoundException e) { + logger.error(e.getMessage(), e); + } + }); + } + + private void sendToMemoryPoolMetricPersistenceWorker(StreamModuleContext context, int applicationInstanceId, + long timeBucket, List memoryPools) { + + memoryPools.forEach(memoryPool -> { + MemoryPoolMetricDataDefine.MemoryPoolMetric memoryPoolMetric = new MemoryPoolMetricDataDefine.MemoryPoolMetric(); + memoryPoolMetric.setId(timeBucket + Const.ID_SPLIT + applicationInstanceId + Const.ID_SPLIT + String.valueOf(memoryPool.getType().getNumber())); + memoryPoolMetric.setApplicationInstanceId(applicationInstanceId); + memoryPoolMetric.setPoolType(memoryPool.getType().getNumber()); + memoryPoolMetric.setHeap(memoryPool.getIsHeap()); + memoryPoolMetric.setInit(memoryPool.getInit()); + memoryPoolMetric.setMax(memoryPool.getMax()); + memoryPoolMetric.setUsed(memoryPool.getUsed()); + memoryPoolMetric.setCommitted(memoryPool.getCommited()); + memoryPoolMetric.setTimeBucket(timeBucket); + try { + logger.debug("send to memory pool metric persistence worker, id: {}", memoryPoolMetric.getId()); + context.getClusterWorkerContext().lookup(MemoryPoolMetricPersistenceWorker.WorkerRole.INSTANCE).tell(memoryPoolMetric.toData()); + } catch (WorkerInvokeException | WorkerNotFoundException e) { + logger.error(e.getMessage(), e); + } + }); + } + + private void sendToGCMetricPersistenceWorker(StreamModuleContext context, int applicationInstanceId, + long timeBucket, List gcs) { + gcs.forEach(gc -> { + GCMetricDataDefine.GCMetric gcMetric = new GCMetricDataDefine.GCMetric(); + gcMetric.setId(timeBucket + Const.ID_SPLIT + applicationInstanceId + Const.ID_SPLIT + String.valueOf(gc.getPhraseValue())); + gcMetric.setApplicationInstanceId(applicationInstanceId); + gcMetric.setPhrase(gc.getPhraseValue()); + gcMetric.setCount(gc.getCount()); + gcMetric.setTime(gc.getTime()); + gcMetric.setTimeBucket(timeBucket); + try { + logger.debug("send to gc metric persistence worker, id: {}", gcMetric.getId()); + context.getClusterWorkerContext().lookup(GCMetricPersistenceWorker.WorkerRole.INSTANCE).tell(gcMetric.toData()); + } catch (WorkerInvokeException | WorkerNotFoundException e) { + logger.error(e.getMessage(), e); + } + }); } } diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/CpuMetricPersistenceWorker.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/CpuMetricPersistenceWorker.java similarity index 89% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/CpuMetricPersistenceWorker.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/CpuMetricPersistenceWorker.java index 1d8a10b65ff7..d391428b68f5 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/CpuMetricPersistenceWorker.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/CpuMetricPersistenceWorker.java @@ -1,7 +1,7 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu; +package org.skywalking.apm.collector.agentjvm.worker.cpu; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao.ICpuMetricDAO; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define.CpuMetricDataDefine; +import org.skywalking.apm.collector.agentjvm.worker.cpu.dao.ICpuMetricDAO; +import org.skywalking.apm.collector.agentjvm.worker.cpu.define.CpuMetricDataDefine; import org.skywalking.apm.collector.storage.dao.DAOContainer; import org.skywalking.apm.collector.stream.worker.AbstractLocalAsyncWorkerProvider; import org.skywalking.apm.collector.stream.worker.ClusterWorkerContext; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/CpuMetricEsDAO.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/dao/CpuMetricEsDAO.java similarity index 88% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/CpuMetricEsDAO.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/dao/CpuMetricEsDAO.java index e1c7982f3cc6..221f1c012cde 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/CpuMetricEsDAO.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/dao/CpuMetricEsDAO.java @@ -1,10 +1,10 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao; +package org.skywalking.apm.collector.agentjvm.worker.cpu.dao; 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.agentstream.worker.jvmmetric.cpu.define.CpuMetricTable; +import org.skywalking.apm.collector.agentjvm.worker.cpu.define.CpuMetricTable; import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO; import org.skywalking.apm.collector.stream.worker.impl.dao.IPersistenceDAO; import org.skywalking.apm.collector.stream.worker.impl.data.Data; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/CpuMetricH2DAO.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/dao/CpuMetricH2DAO.java similarity index 67% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/CpuMetricH2DAO.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/dao/CpuMetricH2DAO.java index a4cec0a62835..cdd08577d6f3 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/CpuMetricH2DAO.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/dao/CpuMetricH2DAO.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao; +package org.skywalking.apm.collector.agentjvm.worker.cpu.dao; import org.skywalking.apm.collector.storage.h2.dao.H2DAO; diff --git a/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/dao/ICpuMetricDAO.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/dao/ICpuMetricDAO.java new file mode 100644 index 000000000000..e7ebf30f7846 --- /dev/null +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/dao/ICpuMetricDAO.java @@ -0,0 +1,7 @@ +package org.skywalking.apm.collector.agentjvm.worker.cpu.dao; + +/** + * @author pengys5 + */ +public interface ICpuMetricDAO { +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricDataDefine.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/define/CpuMetricDataDefine.java similarity index 97% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricDataDefine.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/define/CpuMetricDataDefine.java index 553c17dc69fc..77923eb66d53 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricDataDefine.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/define/CpuMetricDataDefine.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define; +package org.skywalking.apm.collector.agentjvm.worker.cpu.define; import org.skywalking.apm.collector.remote.grpc.proto.RemoteData; import org.skywalking.apm.collector.stream.worker.impl.data.Attribute; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricEsTableDefine.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/define/CpuMetricEsTableDefine.java similarity index 92% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricEsTableDefine.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/define/CpuMetricEsTableDefine.java index ee3bb0bbb6bb..12a22447bc2c 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricEsTableDefine.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/define/CpuMetricEsTableDefine.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define; +package org.skywalking.apm.collector.agentjvm.worker.cpu.define; import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchColumnDefine; import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchTableDefine; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricH2TableDefine.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/define/CpuMetricH2TableDefine.java similarity index 91% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricH2TableDefine.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/define/CpuMetricH2TableDefine.java index 60e714b8e068..1ae29cbee8c4 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricH2TableDefine.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/define/CpuMetricH2TableDefine.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define; +package org.skywalking.apm.collector.agentjvm.worker.cpu.define; import org.skywalking.apm.collector.storage.h2.define.H2ColumnDefine; import org.skywalking.apm.collector.storage.h2.define.H2TableDefine; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricTable.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/define/CpuMetricTable.java similarity index 66% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricTable.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/define/CpuMetricTable.java index 193af760334c..fc9c76c5d08a 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/define/CpuMetricTable.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/define/CpuMetricTable.java @@ -1,6 +1,6 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define; +package org.skywalking.apm.collector.agentjvm.worker.cpu.define; -import org.skywalking.apm.collector.agentstream.worker.CommonTable; +import org.skywalking.apm.collector.stream.worker.storage.CommonTable; /** * @author pengys5 diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/GCMetricPersistenceWorker.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/GCMetricPersistenceWorker.java similarity index 89% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/GCMetricPersistenceWorker.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/GCMetricPersistenceWorker.java index 8dd97dd2653e..1ca3c439f992 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/GCMetricPersistenceWorker.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/GCMetricPersistenceWorker.java @@ -1,7 +1,7 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc; +package org.skywalking.apm.collector.agentjvm.worker.gc; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao.IGCMetricDAO; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define.GCMetricDataDefine; +import org.skywalking.apm.collector.agentjvm.worker.gc.dao.IGCMetricDAO; +import org.skywalking.apm.collector.agentjvm.worker.gc.define.GCMetricDataDefine; import org.skywalking.apm.collector.storage.dao.DAOContainer; import org.skywalking.apm.collector.stream.worker.AbstractLocalAsyncWorkerProvider; import org.skywalking.apm.collector.stream.worker.ClusterWorkerContext; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/GCMetricEsDAO.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/dao/GCMetricEsDAO.java similarity index 89% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/GCMetricEsDAO.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/dao/GCMetricEsDAO.java index 91f5b7b6d90b..4ae4f63cb26b 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/GCMetricEsDAO.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/dao/GCMetricEsDAO.java @@ -1,10 +1,10 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao; +package org.skywalking.apm.collector.agentjvm.worker.gc.dao; 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.agentstream.worker.jvmmetric.gc.define.GCMetricTable; +import org.skywalking.apm.collector.agentjvm.worker.gc.define.GCMetricTable; import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO; import org.skywalking.apm.collector.stream.worker.impl.dao.IPersistenceDAO; import org.skywalking.apm.collector.stream.worker.impl.data.Data; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/GCMetricH2DAO.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/dao/GCMetricH2DAO.java similarity index 67% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/GCMetricH2DAO.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/dao/GCMetricH2DAO.java index 43f48bfc38fc..c1d5f1e70fd7 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/GCMetricH2DAO.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/dao/GCMetricH2DAO.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao; +package org.skywalking.apm.collector.agentjvm.worker.gc.dao; import org.skywalking.apm.collector.storage.h2.dao.H2DAO; diff --git a/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/dao/IGCMetricDAO.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/dao/IGCMetricDAO.java new file mode 100644 index 000000000000..c18c502443d0 --- /dev/null +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/dao/IGCMetricDAO.java @@ -0,0 +1,7 @@ +package org.skywalking.apm.collector.agentjvm.worker.gc.dao; + +/** + * @author pengys5 + */ +public interface IGCMetricDAO { +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricDataDefine.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/define/GCMetricDataDefine.java similarity index 98% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricDataDefine.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/define/GCMetricDataDefine.java index 7c378f3a7e9a..953f38caf333 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricDataDefine.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/define/GCMetricDataDefine.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define; +package org.skywalking.apm.collector.agentjvm.worker.gc.define; import org.skywalking.apm.collector.remote.grpc.proto.RemoteData; import org.skywalking.apm.collector.stream.worker.impl.data.Attribute; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricEsTableDefine.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/define/GCMetricEsTableDefine.java similarity index 94% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricEsTableDefine.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/define/GCMetricEsTableDefine.java index 11867ad29929..976e501bca1e 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricEsTableDefine.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/define/GCMetricEsTableDefine.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define; +package org.skywalking.apm.collector.agentjvm.worker.gc.define; import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchColumnDefine; import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchTableDefine; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricH2TableDefine.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/define/GCMetricH2TableDefine.java similarity index 92% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricH2TableDefine.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/define/GCMetricH2TableDefine.java index 9d6c741f15ca..39dbbdcaa3cd 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricH2TableDefine.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/define/GCMetricH2TableDefine.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define; +package org.skywalking.apm.collector.agentjvm.worker.gc.define; import org.skywalking.apm.collector.storage.h2.define.H2ColumnDefine; import org.skywalking.apm.collector.storage.h2.define.H2TableDefine; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricTable.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/define/GCMetricTable.java similarity index 72% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricTable.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/define/GCMetricTable.java index baa4f683a5a9..3196a40b9001 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/define/GCMetricTable.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/define/GCMetricTable.java @@ -1,6 +1,6 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define; +package org.skywalking.apm.collector.agentjvm.worker.gc.define; -import org.skywalking.apm.collector.agentstream.worker.CommonTable; +import org.skywalking.apm.collector.stream.worker.storage.CommonTable; /** * @author pengys5 diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/MemoryMetricPersistenceWorker.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/MemoryMetricPersistenceWorker.java similarity index 89% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/MemoryMetricPersistenceWorker.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/MemoryMetricPersistenceWorker.java index f4e664242681..13d6428ff0a7 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/MemoryMetricPersistenceWorker.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/MemoryMetricPersistenceWorker.java @@ -1,7 +1,7 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory; +package org.skywalking.apm.collector.agentjvm.worker.memory; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.dao.IMemoryMetricDAO; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define.MemoryMetricDataDefine; +import org.skywalking.apm.collector.agentjvm.worker.memory.dao.IMemoryMetricDAO; +import org.skywalking.apm.collector.agentjvm.worker.memory.define.MemoryMetricDataDefine; import org.skywalking.apm.collector.storage.dao.DAOContainer; import org.skywalking.apm.collector.stream.worker.AbstractLocalAsyncWorkerProvider; import org.skywalking.apm.collector.stream.worker.ClusterWorkerContext; diff --git a/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/dao/IMemoryMetricDAO.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/dao/IMemoryMetricDAO.java new file mode 100644 index 000000000000..4ce6c4e78788 --- /dev/null +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/dao/IMemoryMetricDAO.java @@ -0,0 +1,7 @@ +package org.skywalking.apm.collector.agentjvm.worker.memory.dao; + +/** + * @author pengys5 + */ +public interface IMemoryMetricDAO { +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/dao/MemoryMetricEsDAO.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/dao/MemoryMetricEsDAO.java similarity index 90% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/dao/MemoryMetricEsDAO.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/dao/MemoryMetricEsDAO.java index 472795e6d5c9..193f4885acdc 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/dao/MemoryMetricEsDAO.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/dao/MemoryMetricEsDAO.java @@ -1,10 +1,10 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.dao; +package org.skywalking.apm.collector.agentjvm.worker.memory.dao; 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.agentstream.worker.jvmmetric.memory.define.MemoryMetricTable; +import org.skywalking.apm.collector.agentjvm.worker.memory.define.MemoryMetricTable; import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO; import org.skywalking.apm.collector.stream.worker.impl.dao.IPersistenceDAO; import org.skywalking.apm.collector.stream.worker.impl.data.Data; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/dao/MemoryMetricH2DAO.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/dao/MemoryMetricH2DAO.java similarity index 67% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/dao/MemoryMetricH2DAO.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/dao/MemoryMetricH2DAO.java index 9e8b3ff59f7d..16f6d407b632 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/dao/MemoryMetricH2DAO.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/dao/MemoryMetricH2DAO.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.dao; +package org.skywalking.apm.collector.agentjvm.worker.memory.dao; import org.skywalking.apm.collector.storage.h2.dao.H2DAO; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricDataDefine.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/define/MemoryMetricDataDefine.java similarity index 98% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricDataDefine.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/define/MemoryMetricDataDefine.java index 125965bdcaf5..636afb5059b7 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricDataDefine.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/define/MemoryMetricDataDefine.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define; +package org.skywalking.apm.collector.agentjvm.worker.memory.define; import org.skywalking.apm.collector.remote.grpc.proto.RemoteData; import org.skywalking.apm.collector.stream.worker.impl.data.Attribute; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricEsTableDefine.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/define/MemoryMetricEsTableDefine.java similarity index 95% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricEsTableDefine.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/define/MemoryMetricEsTableDefine.java index e64ea7b9dfb4..a4861382da66 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricEsTableDefine.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/define/MemoryMetricEsTableDefine.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define; +package org.skywalking.apm.collector.agentjvm.worker.memory.define; import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchColumnDefine; import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchTableDefine; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricH2TableDefine.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/define/MemoryMetricH2TableDefine.java similarity index 93% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricH2TableDefine.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/define/MemoryMetricH2TableDefine.java index 8306b9a51c89..8cd4093b53f7 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricH2TableDefine.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/define/MemoryMetricH2TableDefine.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define; +package org.skywalking.apm.collector.agentjvm.worker.memory.define; import org.skywalking.apm.collector.storage.h2.define.H2ColumnDefine; import org.skywalking.apm.collector.storage.h2.define.H2TableDefine; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricTable.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/define/MemoryMetricTable.java similarity index 77% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricTable.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/define/MemoryMetricTable.java index 4cd7fca43485..449e5d73c0a7 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/define/MemoryMetricTable.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/define/MemoryMetricTable.java @@ -1,6 +1,6 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define; +package org.skywalking.apm.collector.agentjvm.worker.memory.define; -import org.skywalking.apm.collector.agentstream.worker.CommonTable; +import org.skywalking.apm.collector.stream.worker.storage.CommonTable; /** * @author pengys5 diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/MemoryPoolMetricPersistenceWorker.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/MemoryPoolMetricPersistenceWorker.java similarity index 88% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/MemoryPoolMetricPersistenceWorker.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/MemoryPoolMetricPersistenceWorker.java index 385fa8219c7a..9f2e3a8a3bf0 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/MemoryPoolMetricPersistenceWorker.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/MemoryPoolMetricPersistenceWorker.java @@ -1,7 +1,7 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool; +package org.skywalking.apm.collector.agentjvm.worker.memorypool; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.dao.IMemoryPoolMetricDAO; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.define.MemoryPoolMetricDataDefine; +import org.skywalking.apm.collector.agentjvm.worker.memorypool.dao.IMemoryPoolMetricDAO; +import org.skywalking.apm.collector.agentjvm.worker.memorypool.define.MemoryPoolMetricDataDefine; import org.skywalking.apm.collector.storage.dao.DAOContainer; import org.skywalking.apm.collector.stream.worker.AbstractLocalAsyncWorkerProvider; import org.skywalking.apm.collector.stream.worker.ClusterWorkerContext; diff --git a/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/dao/IMemoryPoolMetricDAO.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/dao/IMemoryPoolMetricDAO.java new file mode 100644 index 000000000000..89ffe745b1b5 --- /dev/null +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/dao/IMemoryPoolMetricDAO.java @@ -0,0 +1,7 @@ +package org.skywalking.apm.collector.agentjvm.worker.memorypool.dao; + +/** + * @author pengys5 + */ +public interface IMemoryPoolMetricDAO { +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/MemoryPoolMetricEsDAO.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/dao/MemoryPoolMetricEsDAO.java similarity index 90% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/MemoryPoolMetricEsDAO.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/dao/MemoryPoolMetricEsDAO.java index 988c101c5f21..3dd44559d1cb 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/MemoryPoolMetricEsDAO.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/dao/MemoryPoolMetricEsDAO.java @@ -1,10 +1,10 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.dao; +package org.skywalking.apm.collector.agentjvm.worker.memorypool.dao; 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.agentstream.worker.jvmmetric.memorypool.define.MemoryPoolMetricTable; +import org.skywalking.apm.collector.agentjvm.worker.memorypool.define.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.stream.worker.impl.data.Data; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/MemoryPoolMetricH2DAO.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/dao/MemoryPoolMetricH2DAO.java similarity index 67% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/MemoryPoolMetricH2DAO.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/dao/MemoryPoolMetricH2DAO.java index 6ac2114eb9c5..200f9bb160f7 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/MemoryPoolMetricH2DAO.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/dao/MemoryPoolMetricH2DAO.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.dao; +package org.skywalking.apm.collector.agentjvm.worker.memorypool.dao; import org.skywalking.apm.collector.storage.h2.dao.H2DAO; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricDataDefine.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/define/MemoryPoolMetricDataDefine.java similarity index 98% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricDataDefine.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/define/MemoryPoolMetricDataDefine.java index 975ef60c2a73..f80c497fd675 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricDataDefine.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/define/MemoryPoolMetricDataDefine.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.define; +package org.skywalking.apm.collector.agentjvm.worker.memorypool.define; import org.skywalking.apm.collector.remote.grpc.proto.RemoteData; import org.skywalking.apm.collector.stream.worker.impl.data.Attribute; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricEsTableDefine.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/define/MemoryPoolMetricEsTableDefine.java similarity index 95% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricEsTableDefine.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/define/MemoryPoolMetricEsTableDefine.java index b1928b53e604..bec83bcc8668 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricEsTableDefine.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/define/MemoryPoolMetricEsTableDefine.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.define; +package org.skywalking.apm.collector.agentjvm.worker.memorypool.define; import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchColumnDefine; import org.skywalking.apm.collector.storage.elasticsearch.define.ElasticSearchTableDefine; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricH2TableDefine.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/define/MemoryPoolMetricH2TableDefine.java similarity index 94% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricH2TableDefine.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/define/MemoryPoolMetricH2TableDefine.java index df2a404f005b..7275f7939aeb 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricH2TableDefine.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/define/MemoryPoolMetricH2TableDefine.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.define; +package org.skywalking.apm.collector.agentjvm.worker.memorypool.define; import org.skywalking.apm.collector.storage.h2.define.H2ColumnDefine; import org.skywalking.apm.collector.storage.h2.define.H2TableDefine; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricTable.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/define/MemoryPoolMetricTable.java similarity index 79% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricTable.java rename to apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/define/MemoryPoolMetricTable.java index 9813c81a2fcb..c645c038ca52 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/define/MemoryPoolMetricTable.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/define/MemoryPoolMetricTable.java @@ -1,6 +1,6 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.define; +package org.skywalking.apm.collector.agentjvm.worker.memorypool.define; -import org.skywalking.apm.collector.agentstream.worker.CommonTable; +import org.skywalking.apm.collector.stream.worker.storage.CommonTable; /** * @author pengys5 diff --git a/apm-collector/apm-collector-agentjvm/src/main/resources/META-INF/defines/es_dao.define b/apm-collector/apm-collector-agentjvm/src/main/resources/META-INF/defines/es_dao.define new file mode 100644 index 000000000000..7b18e4a005f5 --- /dev/null +++ b/apm-collector/apm-collector-agentjvm/src/main/resources/META-INF/defines/es_dao.define @@ -0,0 +1,4 @@ +org.skywalking.apm.collector.agentjvm.worker.cpu.dao.CpuMetricEsDAO +org.skywalking.apm.collector.agentjvm.worker.memory.dao.MemoryMetricEsDAO +org.skywalking.apm.collector.agentjvm.worker.memorypool.dao.MemoryPoolMetricEsDAO +org.skywalking.apm.collector.agentjvm.worker.gc.dao.GCMetricEsDAO \ No newline at end of file diff --git a/apm-collector/apm-collector-agentjvm/src/main/resources/META-INF/defines/h2_dao.define b/apm-collector/apm-collector-agentjvm/src/main/resources/META-INF/defines/h2_dao.define new file mode 100644 index 000000000000..2c5bdb85e09f --- /dev/null +++ b/apm-collector/apm-collector-agentjvm/src/main/resources/META-INF/defines/h2_dao.define @@ -0,0 +1,4 @@ +org.skywalking.apm.collector.agentjvm.worker.cpu.dao.CpuMetricH2DAO +org.skywalking.apm.collector.agentjvm.worker.memory.dao.MemoryMetricH2DAO +org.skywalking.apm.collector.agentjvm.worker.memorypool.dao.MemoryPoolMetricH2DAO +org.skywalking.apm.collector.agentjvm.worker.gc.dao.GCMetricH2DAO \ No newline at end of file diff --git a/apm-collector/apm-collector-agentjvm/src/main/resources/META-INF/defines/local_worker_provider.define b/apm-collector/apm-collector-agentjvm/src/main/resources/META-INF/defines/local_worker_provider.define new file mode 100644 index 000000000000..aa00e14b79bc --- /dev/null +++ b/apm-collector/apm-collector-agentjvm/src/main/resources/META-INF/defines/local_worker_provider.define @@ -0,0 +1,4 @@ +org.skywalking.apm.collector.agentjvm.worker.cpu.CpuMetricPersistenceWorker$Factory +org.skywalking.apm.collector.agentjvm.worker.memory.MemoryMetricPersistenceWorker$Factory +org.skywalking.apm.collector.agentjvm.worker.memorypool.MemoryPoolMetricPersistenceWorker$Factory +org.skywalking.apm.collector.agentjvm.worker.gc.GCMetricPersistenceWorker$Factory \ No newline at end of file diff --git a/apm-collector/apm-collector-agentjvm/src/main/resources/META-INF/defines/storage.define b/apm-collector/apm-collector-agentjvm/src/main/resources/META-INF/defines/storage.define new file mode 100644 index 000000000000..a4ac32ed27de --- /dev/null +++ b/apm-collector/apm-collector-agentjvm/src/main/resources/META-INF/defines/storage.define @@ -0,0 +1,11 @@ +org.skywalking.apm.collector.agentjvm.worker.cpu.define.CpuMetricEsTableDefine +org.skywalking.apm.collector.agentjvm.worker.cpu.define.CpuMetricH2TableDefine + +org.skywalking.apm.collector.agentjvm.worker.memory.define.MemoryMetricEsTableDefine +org.skywalking.apm.collector.agentjvm.worker.memory.define.MemoryMetricH2TableDefine + +org.skywalking.apm.collector.agentjvm.worker.memorypool.define.MemoryPoolMetricEsTableDefine +org.skywalking.apm.collector.agentjvm.worker.memorypool.define.MemoryPoolMetricH2TableDefine + +org.skywalking.apm.collector.agentjvm.worker.gc.define.GCMetricEsTableDefine +org.skywalking.apm.collector.agentjvm.worker.gc.define.GCMetricH2TableDefine \ No newline at end of file diff --git a/apm-collector/apm-collector-agentjvm/src/test/java/org/skywalking/apm/collector/agentjvm/grpc/handler/JVMMetricsServiceHandlerTestCase.java b/apm-collector/apm-collector-agentjvm/src/test/java/org/skywalking/apm/collector/agentjvm/grpc/handler/JVMMetricsServiceHandlerTestCase.java new file mode 100644 index 000000000000..87f2ba47ce7c --- /dev/null +++ b/apm-collector/apm-collector-agentjvm/src/test/java/org/skywalking/apm/collector/agentjvm/grpc/handler/JVMMetricsServiceHandlerTestCase.java @@ -0,0 +1,88 @@ +package org.skywalking.apm.collector.agentjvm.grpc.handler; + +import io.grpc.ManagedChannel; +import io.grpc.ManagedChannelBuilder; +import org.junit.Test; +import org.skywalking.apm.network.proto.CPU; +import org.skywalking.apm.network.proto.GC; +import org.skywalking.apm.network.proto.GCPhrase; +import org.skywalking.apm.network.proto.JVMMetric; +import org.skywalking.apm.network.proto.JVMMetrics; +import org.skywalking.apm.network.proto.JVMMetricsServiceGrpc; +import org.skywalking.apm.network.proto.Memory; +import org.skywalking.apm.network.proto.MemoryPool; +import org.skywalking.apm.network.proto.PoolType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author pengys5 + */ +public class JVMMetricsServiceHandlerTestCase { + + private final Logger logger = LoggerFactory.getLogger(JVMMetricsServiceHandlerTestCase.class); + + private JVMMetricsServiceGrpc.JVMMetricsServiceBlockingStub stub; + + @Test + public void test() { + ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext(true).build(); + stub = JVMMetricsServiceGrpc.newBlockingStub(channel); + + JVMMetrics.Builder jvmMetricsBuilder = JVMMetrics.newBuilder(); + jvmMetricsBuilder.setApplicationInstanceId(1); + + JVMMetric.Builder jvmMetric = JVMMetric.newBuilder(); + jvmMetric.setTime(System.currentTimeMillis()); + buildCpuMetric(jvmMetric); + buildMemoryMetric(jvmMetric); + buildMemoryPoolMetric(jvmMetric); + buildGcMetric(jvmMetric); + + jvmMetricsBuilder.addMetrics(jvmMetric.build()); + stub.collect(jvmMetricsBuilder.build()); + } + + private void buildCpuMetric(JVMMetric.Builder jvmMetric) { + CPU.Builder cpuBuilder = CPU.newBuilder(); + cpuBuilder.setUsagePercent(70); + jvmMetric.setCpu(cpuBuilder); + } + + private void buildMemoryMetric(JVMMetric.Builder jvmMetric) { + Memory.Builder builder_1 = Memory.newBuilder(); + builder_1.setIsHeap(true); + builder_1.setInit(20); + builder_1.setMax(100); + builder_1.setUsed(50); + builder_1.setCommitted(30); + jvmMetric.addMemory(builder_1.build()); + + Memory.Builder builder_2 = Memory.newBuilder(); + builder_2.setIsHeap(false); + builder_2.setInit(200); + builder_2.setMax(1000); + builder_2.setUsed(500); + builder_2.setCommitted(300); + jvmMetric.addMemory(builder_2.build()); + } + + private void buildMemoryPoolMetric(JVMMetric.Builder jvmMetric) { + MemoryPool.Builder builder_1 = MemoryPool.newBuilder(); + builder_1.setType(PoolType.NEWGEN_USAGE); + builder_1.setIsHeap(true); + builder_1.setInit(20); + builder_1.setMax(100); + builder_1.setUsed(50); + builder_1.setCommited(30); + jvmMetric.addMemoryPool(builder_1.build()); + } + + private void buildGcMetric(JVMMetric.Builder jvmMetric) { + GC.Builder gcBuilder = GC.newBuilder(); + gcBuilder.setPhrase(GCPhrase.NEW); + gcBuilder.setCount(2); + gcBuilder.setTime(100); + jvmMetric.addGc(gcBuilder.build()); + } +} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCModuleDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCModuleDefine.java index 4e190caeda84..1cc1bdfad3b3 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCModuleDefine.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCModuleDefine.java @@ -4,7 +4,6 @@ import java.util.List; import org.skywalking.apm.collector.agentstream.AgentStreamModuleDefine; import org.skywalking.apm.collector.agentstream.AgentStreamModuleGroupDefine; -import org.skywalking.apm.collector.agentstream.grpc.handler.JVMMetricsServiceHandler; import org.skywalking.apm.collector.agentstream.grpc.handler.TraceSegmentServiceHandler; import org.skywalking.apm.collector.core.cluster.ClusterDataListener; import org.skywalking.apm.collector.core.framework.Handler; @@ -47,7 +46,6 @@ public class AgentStreamGRPCModuleDefine extends AgentStreamModuleDefine { @Override public List handlerList() { List handlers = new LinkedList<>(); handlers.add(new TraceSegmentServiceHandler()); - handlers.add(new JVMMetricsServiceHandler()); return handlers; } } diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java deleted file mode 100644 index cf3314ec5f51..000000000000 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/JVMMetricsServiceHandler.java +++ /dev/null @@ -1,133 +0,0 @@ -package org.skywalking.apm.collector.agentstream.grpc.handler; - -import io.grpc.stub.StreamObserver; -import java.util.List; -import org.skywalking.apm.collector.agentstream.worker.Const; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.CpuMetricPersistenceWorker; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define.CpuMetricDataDefine; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.GCMetricPersistenceWorker; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define.GCMetricDataDefine; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.MemoryMetricPersistenceWorker; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define.MemoryMetricDataDefine; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.MemoryPoolMetricPersistenceWorker; -import org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.define.MemoryPoolMetricDataDefine; -import org.skywalking.apm.collector.agentstream.worker.util.TimeBucketUtils; -import org.skywalking.apm.collector.core.framework.CollectorContextHelper; -import org.skywalking.apm.collector.server.grpc.GRPCHandler; -import org.skywalking.apm.collector.stream.StreamModuleContext; -import org.skywalking.apm.collector.stream.StreamModuleGroupDefine; -import org.skywalking.apm.collector.stream.worker.WorkerInvokeException; -import org.skywalking.apm.collector.stream.worker.WorkerNotFoundException; -import org.skywalking.apm.network.proto.CPU; -import org.skywalking.apm.network.proto.Downstream; -import org.skywalking.apm.network.proto.GC; -import org.skywalking.apm.network.proto.JVMMetrics; -import org.skywalking.apm.network.proto.JVMMetricsServiceGrpc; -import org.skywalking.apm.network.proto.Memory; -import org.skywalking.apm.network.proto.MemoryPool; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author pengys5 - */ -public class JVMMetricsServiceHandler extends JVMMetricsServiceGrpc.JVMMetricsServiceImplBase implements GRPCHandler { - - private final Logger logger = LoggerFactory.getLogger(JVMMetricsServiceHandler.class); - - @Override public void collect(JVMMetrics request, StreamObserver responseObserver) { - int applicationInstanceId = request.getApplicationInstanceId(); - logger.debug("receive the jvm metric from application instance, id: {}", applicationInstanceId); - - StreamModuleContext context = (StreamModuleContext)CollectorContextHelper.INSTANCE.getContext(StreamModuleGroupDefine.GROUP_NAME); - request.getMetricsList().forEach(metric -> { - long time = TimeBucketUtils.INSTANCE.getSecondTimeBucket(metric.getTime()); - sendToCpuMetricPersistenceWorker(context, applicationInstanceId, time, metric.getCpu()); - sendToMemoryMetricPersistenceWorker(context, applicationInstanceId, time, metric.getMemoryList()); - sendToMemoryPoolMetricPersistenceWorker(context, applicationInstanceId, time, metric.getMemoryPoolList()); - sendToGCMetricPersistenceWorker(context, applicationInstanceId, time, metric.getGcList()); - }); - - responseObserver.onNext(Downstream.newBuilder().build()); - responseObserver.onCompleted(); - } - - private void sendToCpuMetricPersistenceWorker(StreamModuleContext context, int applicationInstanceId, - long timeBucket, CPU cpu) { - CpuMetricDataDefine.CpuMetric cpuMetric = new CpuMetricDataDefine.CpuMetric(); - cpuMetric.setId(timeBucket + Const.ID_SPLIT + applicationInstanceId); - cpuMetric.setApplicationInstanceId(applicationInstanceId); - cpuMetric.setUsagePercent(cpu.getUsagePercent()); - cpuMetric.setTimeBucket(timeBucket); - try { - logger.debug("send to cpu metric persistence worker, id: {}", cpuMetric.getId()); - context.getClusterWorkerContext().lookup(CpuMetricPersistenceWorker.WorkerRole.INSTANCE).tell(cpuMetric.toData()); - } catch (WorkerInvokeException | WorkerNotFoundException e) { - logger.error(e.getMessage(), e); - } - } - - private void sendToMemoryMetricPersistenceWorker(StreamModuleContext context, int applicationInstanceId, - long timeBucket, List memories) { - - memories.forEach(memory -> { - MemoryMetricDataDefine.MemoryMetric memoryMetric = new MemoryMetricDataDefine.MemoryMetric(); - memoryMetric.setId(timeBucket + Const.ID_SPLIT + applicationInstanceId + Const.ID_SPLIT + String.valueOf(memory.getIsHeap())); - memoryMetric.setApplicationInstanceId(applicationInstanceId); - memoryMetric.setHeap(memory.getIsHeap()); - memoryMetric.setInit(memory.getInit()); - memoryMetric.setMax(memory.getMax()); - memoryMetric.setUsed(memory.getUsed()); - memoryMetric.setCommitted(memory.getCommitted()); - memoryMetric.setTimeBucket(timeBucket); - try { - logger.debug("send to memory metric persistence worker, id: {}", memoryMetric.getId()); - context.getClusterWorkerContext().lookup(MemoryMetricPersistenceWorker.WorkerRole.INSTANCE).tell(memoryMetric.toData()); - } catch (WorkerInvokeException | WorkerNotFoundException e) { - logger.error(e.getMessage(), e); - } - }); - } - - private void sendToMemoryPoolMetricPersistenceWorker(StreamModuleContext context, int applicationInstanceId, - long timeBucket, List memoryPools) { - - memoryPools.forEach(memoryPool -> { - MemoryPoolMetricDataDefine.MemoryPoolMetric memoryPoolMetric = new MemoryPoolMetricDataDefine.MemoryPoolMetric(); - memoryPoolMetric.setId(timeBucket + Const.ID_SPLIT + applicationInstanceId + Const.ID_SPLIT + String.valueOf(memoryPool.getType().getNumber())); - memoryPoolMetric.setApplicationInstanceId(applicationInstanceId); - memoryPoolMetric.setPoolType(memoryPool.getType().getNumber()); - memoryPoolMetric.setHeap(memoryPool.getIsHeap()); - memoryPoolMetric.setInit(memoryPool.getInit()); - memoryPoolMetric.setMax(memoryPool.getMax()); - memoryPoolMetric.setUsed(memoryPool.getUsed()); - memoryPoolMetric.setCommitted(memoryPool.getCommited()); - memoryPoolMetric.setTimeBucket(timeBucket); - try { - logger.debug("send to memory pool metric persistence worker, id: {}", memoryPoolMetric.getId()); - context.getClusterWorkerContext().lookup(MemoryPoolMetricPersistenceWorker.WorkerRole.INSTANCE).tell(memoryPoolMetric.toData()); - } catch (WorkerInvokeException | WorkerNotFoundException e) { - logger.error(e.getMessage(), e); - } - }); - } - - private void sendToGCMetricPersistenceWorker(StreamModuleContext context, int applicationInstanceId, - long timeBucket, List gcs) { - gcs.forEach(gc -> { - GCMetricDataDefine.GCMetric gcMetric = new GCMetricDataDefine.GCMetric(); - gcMetric.setId(timeBucket + Const.ID_SPLIT + applicationInstanceId + Const.ID_SPLIT + String.valueOf(gc.getPhraseValue())); - gcMetric.setApplicationInstanceId(applicationInstanceId); - gcMetric.setPhrase(gc.getPhraseValue()); - gcMetric.setCount(gc.getCount()); - gcMetric.setTime(gc.getTime()); - gcMetric.setTimeBucket(timeBucket); - try { - logger.debug("send to gc metric persistence worker, id: {}", gcMetric.getId()); - context.getClusterWorkerContext().lookup(GCMetricPersistenceWorker.WorkerRole.INSTANCE).tell(gcMetric.toData()); - } catch (WorkerInvokeException | WorkerNotFoundException e) { - logger.error(e.getMessage(), e); - } - }); - } -} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/cache/ServiceNameCache.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/cache/ServiceNameCache.java index f6a88b9807a1..e83a25d22e9b 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/cache/ServiceNameCache.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/cache/ServiceNameCache.java @@ -2,7 +2,7 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; -import org.skywalking.apm.collector.agentstream.worker.Const; +import org.skywalking.apm.collector.stream.worker.util.Const; import org.skywalking.apm.collector.agentstream.worker.register.servicename.dao.IServiceNameDAO; import org.skywalking.apm.collector.storage.dao.DAOContainer; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/global/GlobalTraceSpanListener.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/global/GlobalTraceSpanListener.java index 669b278ebc58..d2862aa59e16 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/global/GlobalTraceSpanListener.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/global/GlobalTraceSpanListener.java @@ -5,7 +5,7 @@ import org.skywalking.apm.collector.agentstream.worker.global.define.GlobalTraceDataDefine; import org.skywalking.apm.collector.agentstream.worker.segment.FirstSpanListener; import org.skywalking.apm.collector.agentstream.worker.segment.GlobalTraceIdsListener; -import org.skywalking.apm.collector.agentstream.worker.util.TimeBucketUtils; +import org.skywalking.apm.collector.stream.worker.util.TimeBucketUtils; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.stream.StreamModuleContext; import org.skywalking.apm.collector.stream.StreamModuleGroupDefine; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/global/define/GlobalTraceTable.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/global/define/GlobalTraceTable.java index 9c6ab7fc4779..c639bdc337be 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/global/define/GlobalTraceTable.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/global/define/GlobalTraceTable.java @@ -1,6 +1,6 @@ package org.skywalking.apm.collector.agentstream.worker.global.define; -import org.skywalking.apm.collector.agentstream.worker.CommonTable; +import org.skywalking.apm.collector.stream.worker.storage.CommonTable; /** * @author pengys5 diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/ICpuMetricDAO.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/ICpuMetricDAO.java deleted file mode 100644 index 8569314adda9..000000000000 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/cpu/dao/ICpuMetricDAO.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao; - -/** - * @author pengys5 - */ -public interface ICpuMetricDAO { -} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/IGCMetricDAO.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/IGCMetricDAO.java deleted file mode 100644 index 15a4ca97b14e..000000000000 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/gc/dao/IGCMetricDAO.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao; - -/** - * @author pengys5 - */ -public interface IGCMetricDAO { -} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/dao/IMemoryMetricDAO.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/dao/IMemoryMetricDAO.java deleted file mode 100644 index 58cca00be84a..000000000000 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memory/dao/IMemoryMetricDAO.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.dao; - -/** - * @author pengys5 - */ -public interface IMemoryMetricDAO { -} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/IMemoryPoolMetricDAO.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/IMemoryPoolMetricDAO.java deleted file mode 100644 index cc5bc20a9a6d..000000000000 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/jvmmetric/memorypool/dao/IMemoryPoolMetricDAO.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.dao; - -/** - * @author pengys5 - */ -public interface IMemoryPoolMetricDAO { -} diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/component/NodeComponentSpanListener.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/component/NodeComponentSpanListener.java index 6f83321d49bf..e2643388c3d5 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/component/NodeComponentSpanListener.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/component/NodeComponentSpanListener.java @@ -2,14 +2,14 @@ import java.util.ArrayList; import java.util.List; -import org.skywalking.apm.collector.agentstream.worker.Const; +import org.skywalking.apm.collector.stream.worker.util.Const; import org.skywalking.apm.collector.agentstream.worker.node.component.define.NodeComponentDataDefine; import org.skywalking.apm.collector.agentstream.worker.segment.EntrySpanListener; import org.skywalking.apm.collector.agentstream.worker.segment.ExitSpanListener; import org.skywalking.apm.collector.agentstream.worker.segment.FirstSpanListener; import org.skywalking.apm.collector.agentstream.worker.segment.LocalSpanListener; import org.skywalking.apm.collector.agentstream.worker.util.ExchangeMarkUtils; -import org.skywalking.apm.collector.agentstream.worker.util.TimeBucketUtils; +import org.skywalking.apm.collector.stream.worker.util.TimeBucketUtils; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.stream.StreamModuleContext; import org.skywalking.apm.collector.stream.StreamModuleGroupDefine; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/component/define/NodeComponentTable.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/component/define/NodeComponentTable.java index 1bce8df8347a..c247e36af458 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/component/define/NodeComponentTable.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/component/define/NodeComponentTable.java @@ -1,6 +1,6 @@ package org.skywalking.apm.collector.agentstream.worker.node.component.define; -import org.skywalking.apm.collector.agentstream.worker.CommonTable; +import org.skywalking.apm.collector.stream.worker.storage.CommonTable; /** * @author pengys5 diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/mapping/NodeMappingSpanListener.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/mapping/NodeMappingSpanListener.java index 38230c29b613..3cfdede2e98d 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/mapping/NodeMappingSpanListener.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/mapping/NodeMappingSpanListener.java @@ -2,12 +2,12 @@ import java.util.ArrayList; import java.util.List; -import org.skywalking.apm.collector.agentstream.worker.Const; +import org.skywalking.apm.collector.stream.worker.util.Const; import org.skywalking.apm.collector.agentstream.worker.node.mapping.define.NodeMappingDataDefine; import org.skywalking.apm.collector.agentstream.worker.segment.FirstSpanListener; import org.skywalking.apm.collector.agentstream.worker.segment.RefsListener; import org.skywalking.apm.collector.agentstream.worker.util.ExchangeMarkUtils; -import org.skywalking.apm.collector.agentstream.worker.util.TimeBucketUtils; +import org.skywalking.apm.collector.stream.worker.util.TimeBucketUtils; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.stream.StreamModuleContext; import org.skywalking.apm.collector.stream.StreamModuleGroupDefine; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/mapping/define/NodeMappingTable.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/mapping/define/NodeMappingTable.java index 811b297a2ed3..ed38bdd6874f 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/mapping/define/NodeMappingTable.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/node/mapping/define/NodeMappingTable.java @@ -1,6 +1,6 @@ package org.skywalking.apm.collector.agentstream.worker.node.mapping.define; -import org.skywalking.apm.collector.agentstream.worker.CommonTable; +import org.skywalking.apm.collector.stream.worker.storage.CommonTable; /** * @author pengys5 diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/reference/NodeRefSpanListener.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/reference/NodeRefSpanListener.java index ba89e24be6bc..d97254852358 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/reference/NodeRefSpanListener.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/reference/NodeRefSpanListener.java @@ -2,7 +2,7 @@ import java.util.ArrayList; import java.util.List; -import org.skywalking.apm.collector.agentstream.worker.Const; +import org.skywalking.apm.collector.stream.worker.util.Const; import org.skywalking.apm.collector.agentstream.worker.cache.InstanceCache; import org.skywalking.apm.collector.agentstream.worker.noderef.reference.define.NodeRefDataDefine; import org.skywalking.apm.collector.agentstream.worker.segment.EntrySpanListener; @@ -10,7 +10,7 @@ import org.skywalking.apm.collector.agentstream.worker.segment.FirstSpanListener; import org.skywalking.apm.collector.agentstream.worker.segment.RefsListener; import org.skywalking.apm.collector.agentstream.worker.util.ExchangeMarkUtils; -import org.skywalking.apm.collector.agentstream.worker.util.TimeBucketUtils; +import org.skywalking.apm.collector.stream.worker.util.TimeBucketUtils; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.stream.StreamModuleContext; import org.skywalking.apm.collector.stream.StreamModuleGroupDefine; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/reference/define/NodeRefTable.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/reference/define/NodeRefTable.java index 17c058b09409..5ee267ff5d3a 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/reference/define/NodeRefTable.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/reference/define/NodeRefTable.java @@ -1,6 +1,6 @@ package org.skywalking.apm.collector.agentstream.worker.noderef.reference.define; -import org.skywalking.apm.collector.agentstream.worker.CommonTable; +import org.skywalking.apm.collector.stream.worker.storage.CommonTable; /** * @author pengys5 diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/summary/NodeRefSumSpanListener.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/summary/NodeRefSumSpanListener.java index aedfdeceb857..e8ca44e6ea74 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/summary/NodeRefSumSpanListener.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/summary/NodeRefSumSpanListener.java @@ -2,7 +2,7 @@ import java.util.ArrayList; import java.util.List; -import org.skywalking.apm.collector.agentstream.worker.Const; +import org.skywalking.apm.collector.stream.worker.util.Const; import org.skywalking.apm.collector.agentstream.worker.cache.InstanceCache; import org.skywalking.apm.collector.agentstream.worker.noderef.summary.define.NodeRefSumDataDefine; import org.skywalking.apm.collector.agentstream.worker.segment.EntrySpanListener; @@ -10,7 +10,7 @@ import org.skywalking.apm.collector.agentstream.worker.segment.FirstSpanListener; import org.skywalking.apm.collector.agentstream.worker.segment.RefsListener; import org.skywalking.apm.collector.agentstream.worker.util.ExchangeMarkUtils; -import org.skywalking.apm.collector.agentstream.worker.util.TimeBucketUtils; +import org.skywalking.apm.collector.stream.worker.util.TimeBucketUtils; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.stream.StreamModuleContext; import org.skywalking.apm.collector.stream.StreamModuleGroupDefine; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/summary/define/NodeRefSumTable.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/summary/define/NodeRefSumTable.java index 0c07ae9a8b63..d396b21a11c0 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/summary/define/NodeRefSumTable.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/noderef/summary/define/NodeRefSumTable.java @@ -1,6 +1,6 @@ package org.skywalking.apm.collector.agentstream.worker.noderef.summary.define; -import org.skywalking.apm.collector.agentstream.worker.CommonTable; +import org.skywalking.apm.collector.stream.worker.storage.CommonTable; /** * @author pengys5 diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterSerialWorker.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterSerialWorker.java index ba2811a42f1c..4deda61679b2 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterSerialWorker.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterSerialWorker.java @@ -1,6 +1,6 @@ package org.skywalking.apm.collector.agentstream.worker.register.application; -import org.skywalking.apm.collector.agentstream.worker.Const; +import org.skywalking.apm.collector.stream.worker.util.Const; import org.skywalking.apm.collector.agentstream.worker.register.IdAutoIncrement; import org.skywalking.apm.collector.agentstream.worker.register.application.dao.IApplicationDAO; import org.skywalking.apm.collector.storage.dao.DAOContainer; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationTable.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationTable.java index 6b067c2b1173..1e913cc7c01b 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationTable.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationTable.java @@ -1,6 +1,6 @@ package org.skywalking.apm.collector.agentstream.worker.register.application; -import org.skywalking.apm.collector.agentstream.worker.CommonTable; +import org.skywalking.apm.collector.stream.worker.storage.CommonTable; /** * @author pengys5 diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/instance/InstanceTable.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/instance/InstanceTable.java index fa59f82206a5..9726b5bc7e42 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/instance/InstanceTable.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/instance/InstanceTable.java @@ -1,6 +1,6 @@ package org.skywalking.apm.collector.agentstream.worker.register.instance; -import org.skywalking.apm.collector.agentstream.worker.CommonTable; +import org.skywalking.apm.collector.stream.worker.storage.CommonTable; /** * @author pengys5 diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/servicename/ServiceNameTable.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/servicename/ServiceNameTable.java index f6c81e491669..f046aaba97f3 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/servicename/ServiceNameTable.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/servicename/ServiceNameTable.java @@ -1,6 +1,6 @@ package org.skywalking.apm.collector.agentstream.worker.register.servicename; -import org.skywalking.apm.collector.agentstream.worker.CommonTable; +import org.skywalking.apm.collector.stream.worker.storage.CommonTable; /** * @author pengys5 diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/segment/cost/SegmentCostSpanListener.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/segment/cost/SegmentCostSpanListener.java index c49e86183da3..61e7c18f588a 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/segment/cost/SegmentCostSpanListener.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/segment/cost/SegmentCostSpanListener.java @@ -8,7 +8,7 @@ import org.skywalking.apm.collector.agentstream.worker.segment.LocalSpanListener; import org.skywalking.apm.collector.agentstream.worker.segment.cost.define.SegmentCostDataDefine; import org.skywalking.apm.collector.agentstream.worker.util.ExchangeMarkUtils; -import org.skywalking.apm.collector.agentstream.worker.util.TimeBucketUtils; +import org.skywalking.apm.collector.stream.worker.util.TimeBucketUtils; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.stream.StreamModuleContext; import org.skywalking.apm.collector.stream.StreamModuleGroupDefine; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/segment/cost/define/SegmentCostTable.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/segment/cost/define/SegmentCostTable.java index fb9c7f83dd73..32e7a79e4a0e 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/segment/cost/define/SegmentCostTable.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/segment/cost/define/SegmentCostTable.java @@ -1,6 +1,6 @@ package org.skywalking.apm.collector.agentstream.worker.segment.cost.define; -import org.skywalking.apm.collector.agentstream.worker.CommonTable; +import org.skywalking.apm.collector.stream.worker.storage.CommonTable; /** * @author pengys5 diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/segment/origin/define/SegmentTable.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/segment/origin/define/SegmentTable.java index 54577fa09de9..939903c6e2c9 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/segment/origin/define/SegmentTable.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/segment/origin/define/SegmentTable.java @@ -1,6 +1,6 @@ package org.skywalking.apm.collector.agentstream.worker.segment.origin.define; -import org.skywalking.apm.collector.agentstream.worker.CommonTable; +import org.skywalking.apm.collector.stream.worker.storage.CommonTable; /** * @author pengys5 diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/service/entry/ServiceEntrySpanListener.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/service/entry/ServiceEntrySpanListener.java index aaeba441b9aa..80c160b26f1b 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/service/entry/ServiceEntrySpanListener.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/service/entry/ServiceEntrySpanListener.java @@ -1,12 +1,12 @@ package org.skywalking.apm.collector.agentstream.worker.service.entry; -import org.skywalking.apm.collector.agentstream.worker.Const; +import org.skywalking.apm.collector.stream.worker.util.Const; import org.skywalking.apm.collector.agentstream.worker.segment.EntrySpanListener; import org.skywalking.apm.collector.agentstream.worker.segment.FirstSpanListener; import org.skywalking.apm.collector.agentstream.worker.segment.RefsListener; import org.skywalking.apm.collector.agentstream.worker.service.entry.define.ServiceEntryDataDefine; import org.skywalking.apm.collector.agentstream.worker.util.ExchangeMarkUtils; -import org.skywalking.apm.collector.agentstream.worker.util.TimeBucketUtils; +import org.skywalking.apm.collector.stream.worker.util.TimeBucketUtils; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.stream.StreamModuleContext; import org.skywalking.apm.collector.stream.StreamModuleGroupDefine; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/service/entry/define/ServiceEntryTable.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/service/entry/define/ServiceEntryTable.java index 5ec9957f8310..5d4a057b80f1 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/service/entry/define/ServiceEntryTable.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/service/entry/define/ServiceEntryTable.java @@ -1,6 +1,6 @@ package org.skywalking.apm.collector.agentstream.worker.service.entry.define; -import org.skywalking.apm.collector.agentstream.worker.CommonTable; +import org.skywalking.apm.collector.stream.worker.storage.CommonTable; /** * @author pengys5 diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/serviceref/reference/ServiceRefSpanListener.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/serviceref/reference/ServiceRefSpanListener.java index b675498a5d52..0beb6c33e5ad 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/serviceref/reference/ServiceRefSpanListener.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/serviceref/reference/ServiceRefSpanListener.java @@ -2,7 +2,7 @@ import java.util.ArrayList; import java.util.List; -import org.skywalking.apm.collector.agentstream.worker.Const; +import org.skywalking.apm.collector.stream.worker.util.Const; import org.skywalking.apm.collector.agentstream.worker.cache.InstanceCache; import org.skywalking.apm.collector.agentstream.worker.segment.EntrySpanListener; import org.skywalking.apm.collector.agentstream.worker.segment.ExitSpanListener; @@ -10,7 +10,7 @@ import org.skywalking.apm.collector.agentstream.worker.segment.RefsListener; import org.skywalking.apm.collector.agentstream.worker.serviceref.reference.define.ServiceRefDataDefine; import org.skywalking.apm.collector.agentstream.worker.util.ExchangeMarkUtils; -import org.skywalking.apm.collector.agentstream.worker.util.TimeBucketUtils; +import org.skywalking.apm.collector.stream.worker.util.TimeBucketUtils; import org.skywalking.apm.collector.core.framework.CollectorContextHelper; import org.skywalking.apm.collector.stream.StreamModuleContext; import org.skywalking.apm.collector.stream.StreamModuleGroupDefine; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/serviceref/reference/define/ServiceRefTable.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/serviceref/reference/define/ServiceRefTable.java index d145b93f51c2..155853ec9d99 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/serviceref/reference/define/ServiceRefTable.java +++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/serviceref/reference/define/ServiceRefTable.java @@ -1,6 +1,6 @@ package org.skywalking.apm.collector.agentstream.worker.serviceref.reference.define; -import org.skywalking.apm.collector.agentstream.worker.CommonTable; +import org.skywalking.apm.collector.stream.worker.storage.CommonTable; /** * @author pengys5 diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define index 254e1b553c23..63656c1069fc 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/es_dao.define @@ -9,8 +9,4 @@ org.skywalking.apm.collector.agentstream.worker.noderef.summary.dao.NodeRefSumEs org.skywalking.apm.collector.agentstream.worker.segment.cost.dao.SegmentCostEsDAO org.skywalking.apm.collector.agentstream.worker.global.dao.GlobalTraceEsDAO org.skywalking.apm.collector.agentstream.worker.service.entry.dao.ServiceEntryEsDAO -org.skywalking.apm.collector.agentstream.worker.serviceref.reference.dao.ServiceRefEsDAO -org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao.CpuMetricEsDAO -org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.dao.MemoryMetricEsDAO -org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.dao.MemoryPoolMetricEsDAO -org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao.GCMetricEsDAO \ No newline at end of file +org.skywalking.apm.collector.agentstream.worker.serviceref.reference.dao.ServiceRefEsDAO \ No newline at end of file diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define index e08fcb46f474..f0dd190a7aa0 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/h2_dao.define @@ -10,7 +10,7 @@ org.skywalking.apm.collector.agentstream.worker.segment.cost.dao.SegmentCostH2DA org.skywalking.apm.collector.agentstream.worker.global.dao.GlobalTraceH2DAO org.skywalking.apm.collector.agentstream.worker.service.entry.dao.ServiceEntryH2DAO org.skywalking.apm.collector.agentstream.worker.serviceref.reference.dao.ServiceRefH2DAO -org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.dao.CpuMetricH2DAO -org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.dao.MemoryMetricH2DAO -org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.dao.MemoryPoolMetricH2DAO -org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.dao.GCMetricH2DAO \ No newline at end of file +org.skywalking.apm.collector.agentjvm.worker.cpu.dao.CpuMetricH2DAO +org.skywalking.apm.collector.agentjvm.worker.memory.dao.MemoryMetricH2DAO +org.skywalking.apm.collector.agentjvm.worker.memorypool.dao.MemoryPoolMetricH2DAO +org.skywalking.apm.collector.agentjvm.worker.gc.dao.GCMetricH2DAO \ No newline at end of file diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define index 3e0811aa1f49..39434ad03bc4 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_worker_provider.define @@ -20,10 +20,10 @@ org.skywalking.apm.collector.agentstream.worker.segment.origin.SegmentPersistenc org.skywalking.apm.collector.agentstream.worker.segment.cost.SegmentCostPersistenceWorker$Factory org.skywalking.apm.collector.agentstream.worker.global.GlobalTracePersistenceWorker$Factory -org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.CpuMetricPersistenceWorker$Factory -org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.MemoryMetricPersistenceWorker$Factory -org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.MemoryPoolMetricPersistenceWorker$Factory -org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.GCMetricPersistenceWorker$Factory +org.skywalking.apm.collector.agentjvm.worker.cpu.CpuMetricPersistenceWorker$Factory +org.skywalking.apm.collector.agentjvm.worker.memory.MemoryMetricPersistenceWorker$Factory +org.skywalking.apm.collector.agentjvm.worker.memorypool.MemoryPoolMetricPersistenceWorker$Factory +org.skywalking.apm.collector.agentjvm.worker.gc.GCMetricPersistenceWorker$Factory org.skywalking.apm.collector.agentstream.worker.register.application.ApplicationRegisterSerialWorker$Factory org.skywalking.apm.collector.agentstream.worker.register.instance.InstanceRegisterSerialWorker$Factory diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define index 2adf21a90ac1..c462b86ecdb2 100644 --- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define +++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/storage.define @@ -32,16 +32,4 @@ org.skywalking.apm.collector.agentstream.worker.service.entry.define.ServiceEntr org.skywalking.apm.collector.agentstream.worker.service.entry.define.ServiceEntryH2TableDefine org.skywalking.apm.collector.agentstream.worker.serviceref.reference.define.ServiceRefEsTableDefine -org.skywalking.apm.collector.agentstream.worker.serviceref.reference.define.ServiceRefH2TableDefine - -org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define.CpuMetricEsTableDefine -org.skywalking.apm.collector.agentstream.worker.jvmmetric.cpu.define.CpuMetricH2TableDefine - -org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define.MemoryMetricEsTableDefine -org.skywalking.apm.collector.agentstream.worker.jvmmetric.memory.define.MemoryMetricH2TableDefine - -org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.define.MemoryPoolMetricEsTableDefine -org.skywalking.apm.collector.agentstream.worker.jvmmetric.memorypool.define.MemoryPoolMetricH2TableDefine - -org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define.GCMetricEsTableDefine -org.skywalking.apm.collector.agentstream.worker.jvmmetric.gc.define.GCMetricH2TableDefine \ No newline at end of file +org.skywalking.apm.collector.agentstream.worker.serviceref.reference.define.ServiceRefH2TableDefine \ No newline at end of file diff --git a/apm-collector/apm-collector-agentstream/src/test/java/org/skywalking/apm/collector/agentstream/util/TimeBucketUtilsTestCase.java b/apm-collector/apm-collector-agentstream/src/test/java/org/skywalking/apm/collector/agentstream/util/TimeBucketUtilsTestCase.java index 1ac55cc1efe7..39af73ae00f0 100644 --- a/apm-collector/apm-collector-agentstream/src/test/java/org/skywalking/apm/collector/agentstream/util/TimeBucketUtilsTestCase.java +++ b/apm-collector/apm-collector-agentstream/src/test/java/org/skywalking/apm/collector/agentstream/util/TimeBucketUtilsTestCase.java @@ -4,7 +4,7 @@ import java.util.TimeZone; import org.junit.Assert; import org.junit.Test; -import org.skywalking.apm.collector.agentstream.worker.util.TimeBucketUtils; +import org.skywalking.apm.collector.stream.worker.util.TimeBucketUtils; /** * @author pengys5 diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/CommonTable.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/storage/CommonTable.java similarity index 82% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/CommonTable.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/storage/CommonTable.java index c66f627adf10..11e3bf7d0540 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/CommonTable.java +++ b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/storage/CommonTable.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker; +package org.skywalking.apm.collector.stream.worker.storage; /** * @author pengys5 diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/Const.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/util/Const.java similarity index 64% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/Const.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/util/Const.java index df48bd8374a6..78ff8c1a2475 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/Const.java +++ b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/util/Const.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker; +package org.skywalking.apm.collector.stream.worker.util; /** * @author pengys5 @@ -6,8 +6,6 @@ public class Const { public static final String ID_SPLIT = "..-.."; public static final String IDS_SPLIT = "\\.\\.-\\.\\."; - public static final String PEERS_FRONT_SPLIT = "["; - public static final String PEERS_BEHIND_SPLIT = "]"; public static final int USER_ID = 1; public static final String USER_CODE = "User"; public static final String SEGMENT_SPAN_SPLIT = "S"; diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/util/TimeBucketUtils.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/util/TimeBucketUtils.java similarity index 96% rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/util/TimeBucketUtils.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/util/TimeBucketUtils.java index 92a306fe90a6..99bd64033e70 100644 --- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/util/TimeBucketUtils.java +++ b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/util/TimeBucketUtils.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.worker.util; +package org.skywalking.apm.collector.stream.worker.util; import java.text.SimpleDateFormat; import java.util.Calendar; diff --git a/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/NodeComponentEsDAO.java b/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/NodeComponentEsDAO.java index 3b3a9ecf4d79..03d0924ac69e 100644 --- a/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/NodeComponentEsDAO.java +++ b/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/NodeComponentEsDAO.java @@ -8,7 +8,7 @@ import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.bucket.terms.Terms; -import org.skywalking.apm.collector.agentstream.worker.Const; +import org.skywalking.apm.collector.stream.worker.util.Const; import org.skywalking.apm.collector.agentstream.worker.node.component.define.NodeComponentTable; import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO; import org.slf4j.Logger; diff --git a/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/NodeMappingEsDAO.java b/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/NodeMappingEsDAO.java index f25dd83ad80e..a5066df8e0b7 100644 --- a/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/NodeMappingEsDAO.java +++ b/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/NodeMappingEsDAO.java @@ -8,7 +8,7 @@ import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.bucket.terms.Terms; -import org.skywalking.apm.collector.agentstream.worker.Const; +import org.skywalking.apm.collector.stream.worker.util.Const; import org.skywalking.apm.collector.agentstream.worker.node.mapping.define.NodeMappingTable; import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO; import org.slf4j.Logger; diff --git a/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/NodeRefSumEsDAO.java b/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/NodeRefSumEsDAO.java index 8d11dc07d490..8755026fd8f0 100644 --- a/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/NodeRefSumEsDAO.java +++ b/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/NodeRefSumEsDAO.java @@ -10,7 +10,7 @@ import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.sum.Sum; -import org.skywalking.apm.collector.agentstream.worker.Const; +import org.skywalking.apm.collector.stream.worker.util.Const; import org.skywalking.apm.collector.agentstream.worker.noderef.summary.define.NodeRefSumTable; import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO; import org.slf4j.Logger; diff --git a/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/NodeReferenceEsDAO.java b/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/NodeReferenceEsDAO.java index 936ab1497a5c..7f3621af1666 100644 --- a/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/NodeReferenceEsDAO.java +++ b/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/NodeReferenceEsDAO.java @@ -8,7 +8,7 @@ import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.bucket.terms.Terms; -import org.skywalking.apm.collector.agentstream.worker.Const; +import org.skywalking.apm.collector.stream.worker.util.Const; import org.skywalking.apm.collector.agentstream.worker.noderef.reference.define.NodeRefTable; import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO; import org.slf4j.Logger; diff --git a/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/service/TraceDagDataBuilder.java b/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/service/TraceDagDataBuilder.java index 5ffa44920bfd..aa8870bf1179 100644 --- a/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/service/TraceDagDataBuilder.java +++ b/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/service/TraceDagDataBuilder.java @@ -4,7 +4,7 @@ import com.google.gson.JsonObject; import java.util.HashMap; import java.util.Map; -import org.skywalking.apm.collector.agentstream.worker.Const; +import org.skywalking.apm.collector.stream.worker.util.Const; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/service/TraceStackService.java b/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/service/TraceStackService.java index 355aa6a616f5..96aedfd8ac5b 100644 --- a/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/service/TraceStackService.java +++ b/apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/service/TraceStackService.java @@ -4,7 +4,7 @@ import com.google.gson.JsonObject; import java.util.ArrayList; import java.util.List; -import org.skywalking.apm.collector.agentstream.worker.Const; +import org.skywalking.apm.collector.stream.worker.util.Const; import org.skywalking.apm.collector.core.util.CollectionUtils; import org.skywalking.apm.collector.core.util.ObjectUtils; import org.skywalking.apm.collector.storage.dao.DAOContainer; From ce8eaa940da4ab10476af96ae62e3d2ff68fa031 Mon Sep 17 00:00:00 2001 From: pengys5 <8082209@qq.com> Date: Thu, 10 Aug 2017 22:36:21 +0800 Subject: [PATCH 7/9] fixed package error --- .../agentjvm/grpc/handler/JVMMetricsServiceHandlerTestCase.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/apm-collector/apm-collector-agentjvm/src/test/java/org/skywalking/apm/collector/agentjvm/grpc/handler/JVMMetricsServiceHandlerTestCase.java b/apm-collector/apm-collector-agentjvm/src/test/java/org/skywalking/apm/collector/agentjvm/grpc/handler/JVMMetricsServiceHandlerTestCase.java index 87f2ba47ce7c..849dc363a999 100644 --- a/apm-collector/apm-collector-agentjvm/src/test/java/org/skywalking/apm/collector/agentjvm/grpc/handler/JVMMetricsServiceHandlerTestCase.java +++ b/apm-collector/apm-collector-agentjvm/src/test/java/org/skywalking/apm/collector/agentjvm/grpc/handler/JVMMetricsServiceHandlerTestCase.java @@ -2,7 +2,6 @@ import io.grpc.ManagedChannel; import io.grpc.ManagedChannelBuilder; -import org.junit.Test; import org.skywalking.apm.network.proto.CPU; import org.skywalking.apm.network.proto.GC; import org.skywalking.apm.network.proto.GCPhrase; @@ -24,7 +23,6 @@ public class JVMMetricsServiceHandlerTestCase { private JVMMetricsServiceGrpc.JVMMetricsServiceBlockingStub stub; - @Test public void test() { ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext(true).build(); stub = JVMMetricsServiceGrpc.newBlockingStub(channel); From 5012a9bc40faad08f409ad757165f70705b39314 Mon Sep 17 00:00:00 2001 From: pengys5 <8082209@qq.com> Date: Fri, 11 Aug 2017 10:41:34 +0800 Subject: [PATCH 8/9] Fixed time bucket test error --- .../collector/stream/worker}/util/TimeBucketUtilsTestCase.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) rename apm-collector/{apm-collector-agentstream/src/test/java/org/skywalking/apm/collector/agentstream => apm-collector-stream/src/test/java/org/skywalking/apm/collector/stream/worker}/util/TimeBucketUtilsTestCase.java (93%) diff --git a/apm-collector/apm-collector-agentstream/src/test/java/org/skywalking/apm/collector/agentstream/util/TimeBucketUtilsTestCase.java b/apm-collector/apm-collector-stream/src/test/java/org/skywalking/apm/collector/stream/worker/util/TimeBucketUtilsTestCase.java similarity index 93% rename from apm-collector/apm-collector-agentstream/src/test/java/org/skywalking/apm/collector/agentstream/util/TimeBucketUtilsTestCase.java rename to apm-collector/apm-collector-stream/src/test/java/org/skywalking/apm/collector/stream/worker/util/TimeBucketUtilsTestCase.java index 39af73ae00f0..661e6a7d58ef 100644 --- a/apm-collector/apm-collector-agentstream/src/test/java/org/skywalking/apm/collector/agentstream/util/TimeBucketUtilsTestCase.java +++ b/apm-collector/apm-collector-stream/src/test/java/org/skywalking/apm/collector/stream/worker/util/TimeBucketUtilsTestCase.java @@ -1,4 +1,4 @@ -package org.skywalking.apm.collector.agentstream.util; +package org.skywalking.apm.collector.stream.worker.util; import java.util.Calendar; import java.util.TimeZone; @@ -29,6 +29,7 @@ public void testUTC8Location() { @Test public void testGetSecondTimeBucket() { + TimeZone.setDefault(TimeZone.getTimeZone("GMT+08:00")); long timeBucket = TimeBucketUtils.INSTANCE.getSecondTimeBucket(1490922929258L); Assert.assertEquals(20170331091529L, timeBucket); } From b9404f6a97b2ee047c83c1b4849e0a14cf80c5c3 Mon Sep 17 00:00:00 2001 From: pengys5 <8082209@qq.com> Date: Fri, 11 Aug 2017 11:19:13 +0800 Subject: [PATCH 9/9] Throw UnexpectedException when invoke deserialize or serialize method in GC,CPU,MEMORY,MEMORY POOL data define. --- .../worker/cpu/define/CpuMetricDataDefine.java | 5 +++-- .../agentjvm/worker/gc/define/GCMetricDataDefine.java | 5 +++-- .../worker/memory/define/MemoryMetricDataDefine.java | 5 +++-- .../memorypool/define/MemoryPoolMetricDataDefine.java | 5 +++-- .../collector/core/framework/UnexpectedException.java | 11 +++++++++++ 5 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/UnexpectedException.java diff --git a/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/define/CpuMetricDataDefine.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/define/CpuMetricDataDefine.java index 77923eb66d53..2622e2e9523a 100644 --- a/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/define/CpuMetricDataDefine.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/cpu/define/CpuMetricDataDefine.java @@ -1,5 +1,6 @@ package org.skywalking.apm.collector.agentjvm.worker.cpu.define; +import org.skywalking.apm.collector.core.framework.UnexpectedException; import org.skywalking.apm.collector.remote.grpc.proto.RemoteData; import org.skywalking.apm.collector.stream.worker.impl.data.Attribute; import org.skywalking.apm.collector.stream.worker.impl.data.AttributeType; @@ -26,11 +27,11 @@ public class CpuMetricDataDefine extends DataDefine { } @Override public Object deserialize(RemoteData remoteData) { - return null; + throw new UnexpectedException("cpu metric data did not need send to remote worker."); } @Override public RemoteData serialize(Object object) { - return null; + throw new UnexpectedException("cpu metric data did not need send to remote worker."); } public static class CpuMetric implements Transform { diff --git a/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/define/GCMetricDataDefine.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/define/GCMetricDataDefine.java index 953f38caf333..a579cda1f506 100644 --- a/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/define/GCMetricDataDefine.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/gc/define/GCMetricDataDefine.java @@ -1,5 +1,6 @@ package org.skywalking.apm.collector.agentjvm.worker.gc.define; +import org.skywalking.apm.collector.core.framework.UnexpectedException; import org.skywalking.apm.collector.remote.grpc.proto.RemoteData; import org.skywalking.apm.collector.stream.worker.impl.data.Attribute; import org.skywalking.apm.collector.stream.worker.impl.data.AttributeType; @@ -28,11 +29,11 @@ public class GCMetricDataDefine extends DataDefine { } @Override public Object deserialize(RemoteData remoteData) { - return null; + throw new UnexpectedException("gc metric data did not need send to remote worker."); } @Override public RemoteData serialize(Object object) { - return null; + throw new UnexpectedException("gc metric data did not need send to remote worker."); } public static class GCMetric implements Transform { diff --git a/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/define/MemoryMetricDataDefine.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/define/MemoryMetricDataDefine.java index 636afb5059b7..927458e839aa 100644 --- a/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/define/MemoryMetricDataDefine.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memory/define/MemoryMetricDataDefine.java @@ -1,5 +1,6 @@ package org.skywalking.apm.collector.agentjvm.worker.memory.define; +import org.skywalking.apm.collector.core.framework.UnexpectedException; import org.skywalking.apm.collector.remote.grpc.proto.RemoteData; import org.skywalking.apm.collector.stream.worker.impl.data.Attribute; import org.skywalking.apm.collector.stream.worker.impl.data.AttributeType; @@ -30,11 +31,11 @@ public class MemoryMetricDataDefine extends DataDefine { } @Override public Object deserialize(RemoteData remoteData) { - return null; + throw new UnexpectedException("memory metric data did not need send to remote worker."); } @Override public RemoteData serialize(Object object) { - return null; + throw new UnexpectedException("memory metric data did not need send to remote worker."); } public static class MemoryMetric implements Transform { diff --git a/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/define/MemoryPoolMetricDataDefine.java b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/define/MemoryPoolMetricDataDefine.java index f80c497fd675..dd2daaad321e 100644 --- a/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/define/MemoryPoolMetricDataDefine.java +++ b/apm-collector/apm-collector-agentjvm/src/main/java/org/skywalking/apm/collector/agentjvm/worker/memorypool/define/MemoryPoolMetricDataDefine.java @@ -1,5 +1,6 @@ package org.skywalking.apm.collector.agentjvm.worker.memorypool.define; +import org.skywalking.apm.collector.core.framework.UnexpectedException; import org.skywalking.apm.collector.remote.grpc.proto.RemoteData; import org.skywalking.apm.collector.stream.worker.impl.data.Attribute; import org.skywalking.apm.collector.stream.worker.impl.data.AttributeType; @@ -31,11 +32,11 @@ public class MemoryPoolMetricDataDefine extends DataDefine { } @Override public Object deserialize(RemoteData remoteData) { - return null; + throw new UnexpectedException("memory pool metric data did not need send to remote worker."); } @Override public RemoteData serialize(Object object) { - return null; + throw new UnexpectedException("memory pool metric data did not need send to remote worker."); } public static class MemoryPoolMetric implements Transform { diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/UnexpectedException.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/UnexpectedException.java new file mode 100644 index 000000000000..a764cdfc9efd --- /dev/null +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/UnexpectedException.java @@ -0,0 +1,11 @@ +package org.skywalking.apm.collector.core.framework; + +/** + * @author pengys5 + */ +public class UnexpectedException extends RuntimeException { + + public UnexpectedException(String message) { + super(message); + } +}