From 52c11398ae6f9557393cc2186bb400d04925a9cb Mon Sep 17 00:00:00 2001 From: peng-yongsheng <8082209@qq.com> Date: Mon, 12 Feb 2018 13:58:26 +0800 Subject: [PATCH] Application metric alarm list graph. --- .../define/graph/AlarmWorkerIdDefine.java | 79 ++++++++++--------- .../ApplicationMetricAlarmGraph.java | 15 +++- .../ApplicationMetricAlarmListCopy.java | 40 ++++++++++ ...onMetricAlarmListDayPersistenceWorker.java | 66 ++++++++++++++++ ...cationMetricAlarmListDayTransformNode.java | 46 +++++++++++ ...nMetricAlarmListHourPersistenceWorker.java | 66 ++++++++++++++++ ...ationMetricAlarmListHourTransformNode.java | 46 +++++++++++ ...tricAlarmListMinutePersistenceWorker.java} | 12 +-- ...MetricAlarmListMonthPersistenceWorker.java | 66 ++++++++++++++++ ...tionMetricAlarmListMonthTransformNode.java | 46 +++++++++++ ...icationMetricAlarmToListNodeProcessor.java | 5 +- .../define/graph/MetricWorkerIdDefine.java | 10 --- .../table/alarm/ApplicationAlarmList.java | 21 ++--- ...tApplicationAlarmListEsPersistenceDAO.java | 9 +-- ...ractApplicationAlarmListEsTableDefine.java | 6 +- ...tApplicationAlarmListH2PersistenceDAO.java | 2 + 16 files changed, 461 insertions(+), 74 deletions(-) create mode 100644 apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListCopy.java create mode 100644 apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListDayPersistenceWorker.java create mode 100644 apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListDayTransformNode.java create mode 100644 apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListHourPersistenceWorker.java create mode 100644 apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListHourTransformNode.java rename apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/{ApplicationMetricAlarmListPersistenceWorker.java => ApplicationMetricAlarmListMinutePersistenceWorker.java} (81%) create mode 100644 apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListMonthPersistenceWorker.java create mode 100644 apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListMonthTransformNode.java diff --git a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-define/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/define/graph/AlarmWorkerIdDefine.java b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-define/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/define/graph/AlarmWorkerIdDefine.java index 0241473f6..d36427468 100644 --- a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-define/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/define/graph/AlarmWorkerIdDefine.java +++ b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-define/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/define/graph/AlarmWorkerIdDefine.java @@ -22,45 +22,52 @@ package org.apache.skywalking.apm.collector.analysis.alarm.define.graph; * @author peng-yongsheng */ public class AlarmWorkerIdDefine { - public static final int SERVICE_METRIC_ALARM_ASSERT_WORKER_ID = 500; - public static final int SERVICE_METRIC_ALARM_GRAPH_BRIDGE_WORKER_ID = 501; - public static final int SERVICE_METRIC_ALARM_REMOTE_WORKER_ID = 502; - public static final int SERVICE_METRIC_ALARM_PERSISTENCE_WORKER_ID = 503; - public static final int SERVICE_METRIC_ALARM_LIST_PERSISTENCE_WORKER_ID = 504; - public static final int SERVICE_METRIC_ALARM_TO_LIST_NODE_PROCESSOR_ID = 505; + public static final int SERVICE_METRIC_ALARM_ASSERT_WORKER_ID = 5000; + public static final int SERVICE_METRIC_ALARM_GRAPH_BRIDGE_WORKER_ID = 5001; + public static final int SERVICE_METRIC_ALARM_REMOTE_WORKER_ID = 5002; + public static final int SERVICE_METRIC_ALARM_PERSISTENCE_WORKER_ID = 5003; + public static final int SERVICE_METRIC_ALARM_LIST_PERSISTENCE_WORKER_ID = 5004; + public static final int SERVICE_METRIC_ALARM_TO_LIST_NODE_PROCESSOR_ID = 5005; - public static final int INSTANCE_METRIC_ALARM_ASSERT_WORKER_ID = 510; - public static final int INSTANCE_METRIC_ALARM_GRAPH_BRIDGE_WORKER_ID = 511; - public static final int INSTANCE_METRIC_ALARM_REMOTE_WORKER_ID = 512; - public static final int INSTANCE_METRIC_ALARM_PERSISTENCE_WORKER_ID = 513; - public static final int INSTANCE_METRIC_ALARM_LIST_PERSISTENCE_WORKER_ID = 514; - public static final int INSTANCE_METRIC_ALARM_TO_LIST_NODE_PROCESSOR_ID = 515; + public static final int INSTANCE_METRIC_ALARM_ASSERT_WORKER_ID = 5010; + public static final int INSTANCE_METRIC_ALARM_GRAPH_BRIDGE_WORKER_ID = 5011; + public static final int INSTANCE_METRIC_ALARM_REMOTE_WORKER_ID = 5012; + public static final int INSTANCE_METRIC_ALARM_PERSISTENCE_WORKER_ID = 5013; + public static final int INSTANCE_METRIC_ALARM_LIST_PERSISTENCE_WORKER_ID = 5014; + public static final int INSTANCE_METRIC_ALARM_TO_LIST_NODE_PROCESSOR_ID = 5015; - public static final int APPLICATION_METRIC_ALARM_ASSERT_WORKER_ID = 520; - public static final int APPLICATION_METRIC_ALARM_GRAPH_BRIDGE_WORKER_ID = 521; - public static final int APPLICATION_METRIC_ALARM_REMOTE_WORKER_ID = 522; - public static final int APPLICATION_METRIC_ALARM_PERSISTENCE_WORKER_ID = 523; - public static final int APPLICATION_METRIC_ALARM_LIST_PERSISTENCE_WORKER_ID = 524; - public static final int APPLICATION_METRIC_ALARM_TO_LIST_NODE_PROCESSOR_ID = 525; + public static final int APPLICATION_METRIC_ALARM_ASSERT_WORKER_ID = 5020; + public static final int APPLICATION_METRIC_ALARM_GRAPH_BRIDGE_WORKER_ID = 5021; + public static final int APPLICATION_METRIC_ALARM_REMOTE_WORKER_ID = 5022; + public static final int APPLICATION_METRIC_ALARM_PERSISTENCE_WORKER_ID = 5023; + public static final int APPLICATION_METRIC_ALARM_TO_LIST_NODE_PROCESSOR_ID = 5024; - public static final int SERVICE_REFERENCE_METRIC_ALARM_ASSERT_WORKER_ID = 530; - public static final int SERVICE_REFERENCE_METRIC_ALARM_GRAPH_BRIDGE_WORKER_ID = 531; - public static final int SERVICE_REFERENCE_METRIC_ALARM_REMOTE_WORKER_ID = 532; - public static final int SERVICE_REFERENCE_METRIC_ALARM_PERSISTENCE_WORKER_ID = 533; - public static final int SERVICE_REFERENCE_METRIC_ALARM_LIST_PERSISTENCE_WORKER_ID = 534; - public static final int SERVICE_REFERENCE_METRIC_ALARM_TO_LIST_NODE_PROCESSOR_ID = 535; + public static final int SERVICE_REFERENCE_METRIC_ALARM_ASSERT_WORKER_ID = 5030; + public static final int SERVICE_REFERENCE_METRIC_ALARM_GRAPH_BRIDGE_WORKER_ID = 5031; + public static final int SERVICE_REFERENCE_METRIC_ALARM_REMOTE_WORKER_ID = 5032; + public static final int SERVICE_REFERENCE_METRIC_ALARM_PERSISTENCE_WORKER_ID = 5033; + public static final int SERVICE_REFERENCE_METRIC_ALARM_LIST_PERSISTENCE_WORKER_ID = 5034; + public static final int SERVICE_REFERENCE_METRIC_ALARM_TO_LIST_NODE_PROCESSOR_ID = 5035; - public static final int INSTANCE_REFERENCE_METRIC_ALARM_ASSERT_WORKER_ID = 540; - public static final int INSTANCE_REFERENCE_METRIC_ALARM_GRAPH_BRIDGE_WORKER_ID = 541; - public static final int INSTANCE_REFERENCE_METRIC_ALARM_REMOTE_WORKER_ID = 542; - public static final int INSTANCE_REFERENCE_METRIC_ALARM_PERSISTENCE_WORKER_ID = 543; - public static final int INSTANCE_REFERENCE_METRIC_ALARM_LIST_PERSISTENCE_WORKER_ID = 544; - public static final int INSTANCE_REFERENCE_METRIC_ALARM_TO_LIST_NODE_PROCESSOR_ID = 545; + public static final int INSTANCE_REFERENCE_METRIC_ALARM_ASSERT_WORKER_ID = 5040; + public static final int INSTANCE_REFERENCE_METRIC_ALARM_GRAPH_BRIDGE_WORKER_ID = 5041; + public static final int INSTANCE_REFERENCE_METRIC_ALARM_REMOTE_WORKER_ID = 5042; + public static final int INSTANCE_REFERENCE_METRIC_ALARM_PERSISTENCE_WORKER_ID = 5043; + public static final int INSTANCE_REFERENCE_METRIC_ALARM_LIST_PERSISTENCE_WORKER_ID = 5044; + public static final int INSTANCE_REFERENCE_METRIC_ALARM_TO_LIST_NODE_PROCESSOR_ID = 5045; - public static final int APPLICATION_REFERENCE_METRIC_ALARM_ASSERT_WORKER_ID = 550; - public static final int APPLICATION_REFERENCE_METRIC_ALARM_GRAPH_BRIDGE_WORKER_ID = 551; - public static final int APPLICATION_REFERENCE_METRIC_ALARM_REMOTE_WORKER_ID = 552; - public static final int APPLICATION_REFERENCE_METRIC_ALARM_PERSISTENCE_WORKER_ID = 553; - public static final int APPLICATION_REFERENCE_METRIC_ALARM_LIST_PERSISTENCE_WORKER_ID = 554; - public static final int APPLICATION_REFERENCE_METRIC_ALARM_TO_LIST_NODE_PROCESSOR_ID = 555; + public static final int APPLICATION_REFERENCE_METRIC_ALARM_ASSERT_WORKER_ID = 5050; + public static final int APPLICATION_REFERENCE_METRIC_ALARM_GRAPH_BRIDGE_WORKER_ID = 5051; + public static final int APPLICATION_REFERENCE_METRIC_ALARM_REMOTE_WORKER_ID = 5052; + public static final int APPLICATION_REFERENCE_METRIC_ALARM_PERSISTENCE_WORKER_ID = 5053; + public static final int APPLICATION_REFERENCE_METRIC_ALARM_LIST_PERSISTENCE_WORKER_ID = 5054; + public static final int APPLICATION_REFERENCE_METRIC_ALARM_TO_LIST_NODE_PROCESSOR_ID = 5055; + + public static final int APPLICATION_METRIC_ALARM_LIST_MINUTE_PERSISTENCE_WORKER_ID = 5051; + public static final int APPLICATION_METRIC_ALARM_LIST_HOUR_PERSISTENCE_WORKER_ID = 5052; + public static final int APPLICATION_METRIC_ALARM_LIST_DAY_PERSISTENCE_WORKER_ID = 5053; + public static final int APPLICATION_METRIC_ALARM_LIST_MONTH_PERSISTENCE_WORKER_ID = 5054; + public static final int APPLICATION_METRIC_ALARM_LIST_HOUR_TRANSFORM_NODE_ID = 5055; + public static final int APPLICATION_METRIC_ALARM_LIST_DAY_TRANSFORM_NODE_ID = 5056; + public static final int APPLICATION_METRIC_ALARM_LIST_MONTH_TRANSFORM_NODE_ID = 5057; } diff --git a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmGraph.java b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmGraph.java index 0733dbab0..4963ad049 100644 --- a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmGraph.java +++ b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmGraph.java @@ -31,6 +31,7 @@ import org.apache.skywalking.apm.collector.core.module.ModuleManager; import org.apache.skywalking.apm.collector.remote.RemoteModule; import org.apache.skywalking.apm.collector.remote.service.RemoteSenderService; import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationAlarm; +import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationAlarmList; import org.apache.skywalking.apm.collector.storage.table.application.ApplicationMetric; /** @@ -57,7 +58,19 @@ public class ApplicationMetricAlarmGraph { graph.toFinder().findNode(AlarmWorkerIdDefine.APPLICATION_METRIC_ALARM_REMOTE_WORKER_ID, ApplicationAlarm.class) .addNext(new ApplicationMetricAlarmToListNodeProcessor()) - .addNext(new ApplicationMetricAlarmListPersistenceWorker.Factory(moduleManager).create(workerCreateListener)); + .addNext(new ApplicationMetricAlarmListMinutePersistenceWorker.Factory(moduleManager).create(workerCreateListener)); + + graph.toFinder().findNode(AlarmWorkerIdDefine.APPLICATION_METRIC_ALARM_LIST_MINUTE_PERSISTENCE_WORKER_ID, ApplicationAlarmList.class) + .addNext(new ApplicationMetricAlarmListHourTransformNode()) + .addNext(new ApplicationMetricAlarmListHourPersistenceWorker.Factory(moduleManager).create(workerCreateListener)); + + graph.toFinder().findNode(AlarmWorkerIdDefine.APPLICATION_METRIC_ALARM_LIST_MINUTE_PERSISTENCE_WORKER_ID, ApplicationAlarmList.class) + .addNext(new ApplicationMetricAlarmListDayTransformNode()) + .addNext(new ApplicationMetricAlarmListDayPersistenceWorker.Factory(moduleManager).create(workerCreateListener)); + + graph.toFinder().findNode(AlarmWorkerIdDefine.APPLICATION_METRIC_ALARM_LIST_MINUTE_PERSISTENCE_WORKER_ID, ApplicationAlarmList.class) + .addNext(new ApplicationMetricAlarmListMonthTransformNode()) + .addNext(new ApplicationMetricAlarmListMonthPersistenceWorker.Factory(moduleManager).create(workerCreateListener)); link(graph); } diff --git a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListCopy.java b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListCopy.java new file mode 100644 index 000000000..70ca915fb --- /dev/null +++ b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListCopy.java @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.collector.analysis.alarm.provider.worker.application; + +import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationAlarmList; + +/** + * @author peng-yongsheng + */ +public class ApplicationMetricAlarmListCopy { + + public static ApplicationAlarmList copy(ApplicationAlarmList applicationAlarmList) { + ApplicationAlarmList newApplicationAlarmList = new ApplicationAlarmList(); + newApplicationAlarmList.setId(applicationAlarmList.getId()); + newApplicationAlarmList.setMetricId(applicationAlarmList.getMetricId()); + + newApplicationAlarmList.setAlarmContent(applicationAlarmList.getAlarmContent()); + newApplicationAlarmList.setAlarmType(applicationAlarmList.getAlarmType()); + newApplicationAlarmList.setSourceValue(applicationAlarmList.getSourceValue()); + newApplicationAlarmList.setApplicationId(applicationAlarmList.getApplicationId()); + newApplicationAlarmList.setTimeBucket(newApplicationAlarmList.getTimeBucket()); + return newApplicationAlarmList; + } +} diff --git a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListDayPersistenceWorker.java b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListDayPersistenceWorker.java new file mode 100644 index 000000000..1d08b2037 --- /dev/null +++ b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListDayPersistenceWorker.java @@ -0,0 +1,66 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.collector.analysis.alarm.provider.worker.application; + +import org.apache.skywalking.apm.collector.analysis.alarm.define.graph.AlarmWorkerIdDefine; +import org.apache.skywalking.apm.collector.analysis.worker.model.impl.PersistenceWorker; +import org.apache.skywalking.apm.collector.analysis.worker.model.impl.PersistenceWorkerProvider; +import org.apache.skywalking.apm.collector.core.module.ModuleManager; +import org.apache.skywalking.apm.collector.storage.StorageModule; +import org.apache.skywalking.apm.collector.storage.base.dao.IPersistenceDAO; +import org.apache.skywalking.apm.collector.storage.dao.alarm.IApplicationAlarmListDayPersistenceDAO; +import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationAlarmList; + +/** + * @author peng-yongsheng + */ +public class ApplicationMetricAlarmListDayPersistenceWorker extends PersistenceWorker { + + public ApplicationMetricAlarmListDayPersistenceWorker(ModuleManager moduleManager) { + super(moduleManager); + } + + @Override public int id() { + return AlarmWorkerIdDefine.APPLICATION_METRIC_ALARM_LIST_DAY_PERSISTENCE_WORKER_ID; + } + + @Override protected boolean needMergeDBData() { + return true; + } + + @SuppressWarnings("unchecked") + @Override protected IPersistenceDAO persistenceDAO() { + return getModuleManager().find(StorageModule.NAME).getService(IApplicationAlarmListDayPersistenceDAO.class); + } + + public static class Factory extends PersistenceWorkerProvider { + public Factory(ModuleManager moduleManager) { + super(moduleManager); + } + + @Override public ApplicationMetricAlarmListDayPersistenceWorker workerInstance(ModuleManager moduleManager) { + return new ApplicationMetricAlarmListDayPersistenceWorker(moduleManager); + } + + @Override + public int queueSize() { + return 1024; + } + } +} diff --git a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListDayTransformNode.java b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListDayTransformNode.java new file mode 100644 index 000000000..d79065b98 --- /dev/null +++ b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListDayTransformNode.java @@ -0,0 +1,46 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.collector.analysis.alarm.provider.worker.application; + +import org.apache.skywalking.apm.collector.analysis.alarm.define.graph.AlarmWorkerIdDefine; +import org.apache.skywalking.apm.collector.core.graph.Next; +import org.apache.skywalking.apm.collector.core.graph.NodeProcessor; +import org.apache.skywalking.apm.collector.core.util.Const; +import org.apache.skywalking.apm.collector.core.util.TimeBucketUtils; +import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationAlarmList; + +/** + * @author peng-yongsheng + */ +public class ApplicationMetricAlarmListDayTransformNode implements NodeProcessor { + + @Override public int id() { + return AlarmWorkerIdDefine.APPLICATION_METRIC_ALARM_LIST_DAY_TRANSFORM_NODE_ID; + } + + @Override + public void process(ApplicationAlarmList applicationAlarmList, Next next) { + long timeBucket = TimeBucketUtils.INSTANCE.minuteToDay(applicationAlarmList.getTimeBucket()); + + ApplicationAlarmList newApplicationAlarmList = ApplicationMetricAlarmListCopy.copy(applicationAlarmList); + newApplicationAlarmList.setId(String.valueOf(timeBucket) + Const.ID_SPLIT + applicationAlarmList.getMetricId()); + newApplicationAlarmList.setTimeBucket(timeBucket); + next.execute(newApplicationAlarmList); + } +} diff --git a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListHourPersistenceWorker.java b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListHourPersistenceWorker.java new file mode 100644 index 000000000..340844437 --- /dev/null +++ b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListHourPersistenceWorker.java @@ -0,0 +1,66 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.collector.analysis.alarm.provider.worker.application; + +import org.apache.skywalking.apm.collector.analysis.alarm.define.graph.AlarmWorkerIdDefine; +import org.apache.skywalking.apm.collector.analysis.worker.model.impl.PersistenceWorker; +import org.apache.skywalking.apm.collector.analysis.worker.model.impl.PersistenceWorkerProvider; +import org.apache.skywalking.apm.collector.core.module.ModuleManager; +import org.apache.skywalking.apm.collector.storage.StorageModule; +import org.apache.skywalking.apm.collector.storage.base.dao.IPersistenceDAO; +import org.apache.skywalking.apm.collector.storage.dao.alarm.IApplicationAlarmListHourPersistenceDAO; +import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationAlarmList; + +/** + * @author peng-yongsheng + */ +public class ApplicationMetricAlarmListHourPersistenceWorker extends PersistenceWorker { + + public ApplicationMetricAlarmListHourPersistenceWorker(ModuleManager moduleManager) { + super(moduleManager); + } + + @Override public int id() { + return AlarmWorkerIdDefine.APPLICATION_METRIC_ALARM_LIST_HOUR_PERSISTENCE_WORKER_ID; + } + + @Override protected boolean needMergeDBData() { + return true; + } + + @SuppressWarnings("unchecked") + @Override protected IPersistenceDAO persistenceDAO() { + return getModuleManager().find(StorageModule.NAME).getService(IApplicationAlarmListHourPersistenceDAO.class); + } + + public static class Factory extends PersistenceWorkerProvider { + public Factory(ModuleManager moduleManager) { + super(moduleManager); + } + + @Override public ApplicationMetricAlarmListHourPersistenceWorker workerInstance(ModuleManager moduleManager) { + return new ApplicationMetricAlarmListHourPersistenceWorker(moduleManager); + } + + @Override + public int queueSize() { + return 1024; + } + } +} diff --git a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListHourTransformNode.java b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListHourTransformNode.java new file mode 100644 index 000000000..9d8609048 --- /dev/null +++ b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListHourTransformNode.java @@ -0,0 +1,46 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.collector.analysis.alarm.provider.worker.application; + +import org.apache.skywalking.apm.collector.analysis.alarm.define.graph.AlarmWorkerIdDefine; +import org.apache.skywalking.apm.collector.core.graph.Next; +import org.apache.skywalking.apm.collector.core.graph.NodeProcessor; +import org.apache.skywalking.apm.collector.core.util.Const; +import org.apache.skywalking.apm.collector.core.util.TimeBucketUtils; +import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationAlarmList; + +/** + * @author peng-yongsheng + */ +public class ApplicationMetricAlarmListHourTransformNode implements NodeProcessor { + + @Override public int id() { + return AlarmWorkerIdDefine.APPLICATION_METRIC_ALARM_LIST_HOUR_TRANSFORM_NODE_ID; + } + + @Override + public void process(ApplicationAlarmList applicationAlarmList, Next next) { + long timeBucket = TimeBucketUtils.INSTANCE.minuteToHour(applicationAlarmList.getTimeBucket()); + + ApplicationAlarmList newApplicationAlarmList = ApplicationMetricAlarmListCopy.copy(applicationAlarmList); + newApplicationAlarmList.setId(String.valueOf(timeBucket) + Const.ID_SPLIT + applicationAlarmList.getMetricId()); + newApplicationAlarmList.setTimeBucket(timeBucket); + next.execute(newApplicationAlarmList); + } +} diff --git a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListPersistenceWorker.java b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListMinutePersistenceWorker.java similarity index 81% rename from apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListPersistenceWorker.java rename to apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListMinutePersistenceWorker.java index 191048b2e..114757202 100644 --- a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListPersistenceWorker.java +++ b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListMinutePersistenceWorker.java @@ -30,14 +30,14 @@ import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationAlarmL /** * @author peng-yongsheng */ -public class ApplicationMetricAlarmListPersistenceWorker extends PersistenceWorker { +public class ApplicationMetricAlarmListMinutePersistenceWorker extends PersistenceWorker { - public ApplicationMetricAlarmListPersistenceWorker(ModuleManager moduleManager) { + public ApplicationMetricAlarmListMinutePersistenceWorker(ModuleManager moduleManager) { super(moduleManager); } @Override public int id() { - return AlarmWorkerIdDefine.APPLICATION_METRIC_ALARM_LIST_PERSISTENCE_WORKER_ID; + return AlarmWorkerIdDefine.APPLICATION_METRIC_ALARM_LIST_MINUTE_PERSISTENCE_WORKER_ID; } @Override protected boolean needMergeDBData() { @@ -49,13 +49,13 @@ public class ApplicationMetricAlarmListPersistenceWorker extends PersistenceWork return getModuleManager().find(StorageModule.NAME).getService(IApplicationAlarmListMinutePersistenceDAO.class); } - public static class Factory extends PersistenceWorkerProvider { + public static class Factory extends PersistenceWorkerProvider { public Factory(ModuleManager moduleManager) { super(moduleManager); } - @Override public ApplicationMetricAlarmListPersistenceWorker workerInstance(ModuleManager moduleManager) { - return new ApplicationMetricAlarmListPersistenceWorker(moduleManager); + @Override public ApplicationMetricAlarmListMinutePersistenceWorker workerInstance(ModuleManager moduleManager) { + return new ApplicationMetricAlarmListMinutePersistenceWorker(moduleManager); } @Override diff --git a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListMonthPersistenceWorker.java b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListMonthPersistenceWorker.java new file mode 100644 index 000000000..fb8534e77 --- /dev/null +++ b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListMonthPersistenceWorker.java @@ -0,0 +1,66 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.collector.analysis.alarm.provider.worker.application; + +import org.apache.skywalking.apm.collector.analysis.alarm.define.graph.AlarmWorkerIdDefine; +import org.apache.skywalking.apm.collector.analysis.worker.model.impl.PersistenceWorker; +import org.apache.skywalking.apm.collector.analysis.worker.model.impl.PersistenceWorkerProvider; +import org.apache.skywalking.apm.collector.core.module.ModuleManager; +import org.apache.skywalking.apm.collector.storage.StorageModule; +import org.apache.skywalking.apm.collector.storage.base.dao.IPersistenceDAO; +import org.apache.skywalking.apm.collector.storage.dao.alarm.IApplicationAlarmListMonthPersistenceDAO; +import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationAlarmList; + +/** + * @author peng-yongsheng + */ +public class ApplicationMetricAlarmListMonthPersistenceWorker extends PersistenceWorker { + + public ApplicationMetricAlarmListMonthPersistenceWorker(ModuleManager moduleManager) { + super(moduleManager); + } + + @Override public int id() { + return AlarmWorkerIdDefine.APPLICATION_METRIC_ALARM_LIST_MONTH_PERSISTENCE_WORKER_ID; + } + + @Override protected boolean needMergeDBData() { + return true; + } + + @SuppressWarnings("unchecked") + @Override protected IPersistenceDAO persistenceDAO() { + return getModuleManager().find(StorageModule.NAME).getService(IApplicationAlarmListMonthPersistenceDAO.class); + } + + public static class Factory extends PersistenceWorkerProvider { + public Factory(ModuleManager moduleManager) { + super(moduleManager); + } + + @Override public ApplicationMetricAlarmListMonthPersistenceWorker workerInstance(ModuleManager moduleManager) { + return new ApplicationMetricAlarmListMonthPersistenceWorker(moduleManager); + } + + @Override + public int queueSize() { + return 1024; + } + } +} diff --git a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListMonthTransformNode.java b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListMonthTransformNode.java new file mode 100644 index 000000000..9bfb20413 --- /dev/null +++ b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmListMonthTransformNode.java @@ -0,0 +1,46 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.collector.analysis.alarm.provider.worker.application; + +import org.apache.skywalking.apm.collector.analysis.alarm.define.graph.AlarmWorkerIdDefine; +import org.apache.skywalking.apm.collector.core.graph.Next; +import org.apache.skywalking.apm.collector.core.graph.NodeProcessor; +import org.apache.skywalking.apm.collector.core.util.Const; +import org.apache.skywalking.apm.collector.core.util.TimeBucketUtils; +import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationAlarmList; + +/** + * @author peng-yongsheng + */ +public class ApplicationMetricAlarmListMonthTransformNode implements NodeProcessor { + + @Override public int id() { + return AlarmWorkerIdDefine.APPLICATION_METRIC_ALARM_LIST_MONTH_TRANSFORM_NODE_ID; + } + + @Override + public void process(ApplicationAlarmList applicationAlarmList, Next next) { + long timeBucket = TimeBucketUtils.INSTANCE.minuteToMonth(applicationAlarmList.getTimeBucket()); + + ApplicationAlarmList newApplicationAlarmList = ApplicationMetricAlarmListCopy.copy(applicationAlarmList); + newApplicationAlarmList.setId(String.valueOf(timeBucket) + Const.ID_SPLIT + applicationAlarmList.getMetricId()); + newApplicationAlarmList.setTimeBucket(timeBucket); + next.execute(newApplicationAlarmList); + } +} diff --git a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmToListNodeProcessor.java b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmToListNodeProcessor.java index fbebedf06..de9e4a67f 100644 --- a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmToListNodeProcessor.java +++ b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/worker/application/ApplicationMetricAlarmToListNodeProcessor.java @@ -35,12 +35,15 @@ public class ApplicationMetricAlarmToListNodeProcessor implements NodeProcessor< } @Override public void process(ApplicationAlarm applicationAlarm, Next next) { - String id = applicationAlarm.getLastTimeBucket() + Const.ID_SPLIT + applicationAlarm.getSourceValue() + String metricId = applicationAlarm.getSourceValue() + Const.ID_SPLIT + applicationAlarm.getAlarmType() + Const.ID_SPLIT + applicationAlarm.getApplicationId(); + String id = applicationAlarm.getLastTimeBucket() + Const.ID_SPLIT + metricId; + ApplicationAlarmList applicationAlarmList = new ApplicationAlarmList(); applicationAlarmList.setId(id); + applicationAlarmList.setMetricId(metricId); applicationAlarmList.setApplicationId(applicationAlarm.getApplicationId()); applicationAlarmList.setSourceValue(applicationAlarm.getSourceValue()); applicationAlarmList.setAlarmType(applicationAlarm.getAlarmType()); diff --git a/apm-collector/apm-collector-analysis/analysis-metric/metric-define/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/define/graph/MetricWorkerIdDefine.java b/apm-collector/apm-collector-analysis/analysis-metric/metric-define/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/define/graph/MetricWorkerIdDefine.java index 80e6d31c5..1b78839b0 100644 --- a/apm-collector/apm-collector-analysis/analysis-metric/metric-define/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/define/graph/MetricWorkerIdDefine.java +++ b/apm-collector/apm-collector-analysis/analysis-metric/metric-define/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/define/graph/MetricWorkerIdDefine.java @@ -52,16 +52,6 @@ public class MetricWorkerIdDefine { public static final int APPLICATION_REFERENCE_MONTH_METRIC_PERSISTENCE_WORKER_ID = 4037; public static final int APPLICATION_REFERENCE_MONTH_METRIC_TRANSFORM_NODE_ID = 4038; - public static final int SERVICE_MAPPING_MINUTE_AGGREGATION_WORKER_ID = 4040; - public static final int SERVICE_MAPPING_MINUTE_REMOTE_WORKER_ID = 4041; - public static final int SERVICE_MAPPING_MINUTE_PERSISTENCE_WORKER_ID = 4042; - public static final int SERVICE_MAPPING_HOUR_PERSISTENCE_WORKER_ID = 4043; - public static final int SERVICE_MAPPING_HOUR_TRANSFORM_NODE_ID = 4044; - public static final int SERVICE_MAPPING_DAY_PERSISTENCE_WORKER_ID = 4045; - public static final int SERVICE_MAPPING_DAY_TRANSFORM_NODE_ID = 4046; - public static final int SERVICE_MAPPING_MONTH_PERSISTENCE_WORKER_ID = 4047; - public static final int SERVICE_MAPPING_MONTH_TRANSFORM_NODE_ID = 4048; - public static final int SERVICE_MINUTE_METRIC_AGGREGATION_WORKER_ID = 4400; public static final int SERVICE_MINUTE_METRIC_REMOTE_WORKER_ID = 4401; public static final int SERVICE_MINUTE_METRIC_PERSISTENCE_WORKER_ID = 4402; diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarmList.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarmList.java index db8b935c7..2b68ab7d2 100644 --- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarmList.java +++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarmList.java @@ -30,6 +30,7 @@ public class ApplicationAlarmList extends StreamData { private static final Column[] STRING_COLUMNS = { new Column(ApplicationAlarmListTable.COLUMN_ID, new NonOperation()), + new Column(ApplicationAlarmListTable.COLUMN_METRIC_ID, new NonOperation()), new Column(ApplicationAlarmListTable.COLUMN_ALARM_CONTENT, new CoverOperation()), }; @@ -60,11 +61,19 @@ public class ApplicationAlarmList extends StreamData { } @Override public String getMetricId() { - return getId(); + return getDataString(1); } @Override public void setMetricId(String metricId) { - setId(metricId); + setDataString(1, metricId); + } + + public String getAlarmContent() { + return getDataString(2); + } + + public void setAlarmContent(String alarmContent) { + setDataString(2, alarmContent); } public Integer getAlarmType() { @@ -98,12 +107,4 @@ public class ApplicationAlarmList extends StreamData { public void setTimeBucket(Long timeBucket) { setDataLong(0, timeBucket); } - - public String getAlarmContent() { - return getDataString(1); - } - - public void setAlarmContent(String alarmContent) { - setDataString(1, alarmContent); - } } diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/AbstractApplicationAlarmListEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/AbstractApplicationAlarmListEsPersistenceDAO.java index f5698c7e1..f711d900d 100644 --- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/AbstractApplicationAlarmListEsPersistenceDAO.java +++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/AbstractApplicationAlarmListEsPersistenceDAO.java @@ -24,17 +24,13 @@ import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchCli import org.apache.skywalking.apm.collector.storage.es.base.dao.AbstractPersistenceEsDAO; import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationAlarmList; import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationAlarmListTable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * @author peng-yongsheng */ public abstract class AbstractApplicationAlarmListEsPersistenceDAO extends AbstractPersistenceEsDAO { - private final Logger logger = LoggerFactory.getLogger(AbstractApplicationAlarmListEsPersistenceDAO.class); - - public AbstractApplicationAlarmListEsPersistenceDAO(ElasticSearchClient client) { + AbstractApplicationAlarmListEsPersistenceDAO(ElasticSearchClient client) { super(client); } @@ -45,6 +41,7 @@ public abstract class AbstractApplicationAlarmListEsPersistenceDAO extends Abstr @Override protected final ApplicationAlarmList esDataToStreamData(Map source) { ApplicationAlarmList applicationAlarmList = new ApplicationAlarmList(); applicationAlarmList.setId((String)source.get(ApplicationAlarmListTable.COLUMN_ID)); + applicationAlarmList.setMetricId((String)source.get(ApplicationAlarmListTable.COLUMN_METRIC_ID)); applicationAlarmList.setApplicationId(((Number)source.get(ApplicationAlarmListTable.COLUMN_APPLICATION_ID)).intValue()); applicationAlarmList.setSourceValue(((Number)source.get(ApplicationAlarmListTable.COLUMN_SOURCE_VALUE)).intValue()); @@ -57,7 +54,7 @@ public abstract class AbstractApplicationAlarmListEsPersistenceDAO extends Abstr @Override protected final Map esStreamDataToEsData(ApplicationAlarmList streamData) { Map source = new HashMap<>(); - source.put(ApplicationAlarmListTable.COLUMN_ID, streamData.getId()); + source.put(ApplicationAlarmListTable.COLUMN_METRIC_ID, streamData.getMetricId()); source.put(ApplicationAlarmListTable.COLUMN_APPLICATION_ID, streamData.getApplicationId()); source.put(ApplicationAlarmListTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue()); diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/AbstractApplicationAlarmListEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/AbstractApplicationAlarmListEsTableDefine.java index 97eb5ea1a..408328f46 100644 --- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/AbstractApplicationAlarmListEsTableDefine.java +++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/AbstractApplicationAlarmListEsTableDefine.java @@ -32,13 +32,11 @@ public abstract class AbstractApplicationAlarmListEsTableDefine extends ElasticS } @Override public void initialize() { + addColumn(new ElasticSearchColumnDefine(ApplicationAlarmListTable.COLUMN_METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name())); + addColumn(new ElasticSearchColumnDefine(ApplicationAlarmListTable.COLUMN_ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name())); addColumn(new ElasticSearchColumnDefine(ApplicationAlarmListTable.COLUMN_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name())); - addColumn(new ElasticSearchColumnDefine(ApplicationAlarmListTable.COLUMN_SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name())); addColumn(new ElasticSearchColumnDefine(ApplicationAlarmListTable.COLUMN_ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name())); - - addColumn(new ElasticSearchColumnDefine(ApplicationAlarmListTable.COLUMN_ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name())); - addColumn(new ElasticSearchColumnDefine(ApplicationAlarmListTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name())); } } diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/AbstractApplicationAlarmListH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/AbstractApplicationAlarmListH2PersistenceDAO.java index f5e23daf6..e99f70c1d 100644 --- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/AbstractApplicationAlarmListH2PersistenceDAO.java +++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/AbstractApplicationAlarmListH2PersistenceDAO.java @@ -39,6 +39,7 @@ public abstract class AbstractApplicationAlarmListH2PersistenceDAO extends Abstr @Override protected final ApplicationAlarmList h2DataToStreamData(ResultSet resultSet) throws SQLException { ApplicationAlarmList applicationAlarmList = new ApplicationAlarmList(); applicationAlarmList.setId(resultSet.getString(ApplicationAlarmListTable.COLUMN_ID)); + applicationAlarmList.setMetricId(resultSet.getString(ApplicationAlarmListTable.COLUMN_METRIC_ID)); applicationAlarmList.setSourceValue(resultSet.getInt(ApplicationAlarmListTable.COLUMN_SOURCE_VALUE)); applicationAlarmList.setAlarmType(resultSet.getInt(ApplicationAlarmListTable.COLUMN_ALARM_TYPE)); @@ -53,6 +54,7 @@ public abstract class AbstractApplicationAlarmListH2PersistenceDAO extends Abstr @Override protected final Map streamDataToH2Data(ApplicationAlarmList streamData) { Map source = new HashMap<>(); + source.put(ApplicationAlarmListTable.COLUMN_METRIC_ID, streamData.getMetricId()); source.put(ApplicationAlarmListTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue()); source.put(ApplicationAlarmListTable.COLUMN_ALARM_TYPE, streamData.getAlarmType());