mirror of
https://github.com/wahyd4/pinpoint.git
synced 2026-08-17 16:56:15 +10:00
[#17] arrange & delete unnecessary class and config
This commit is contained in:
@@ -1,12 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author koo.taejin
|
||||
*/
|
||||
public interface AlarmEvent {
|
||||
|
||||
// 머가 더 들어가야 할까
|
||||
long getEventStartTimeMillis();
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm;
|
||||
|
||||
|
||||
public interface AlarmJob {
|
||||
|
||||
boolean execute(AlarmEvent event);
|
||||
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.nhn.pinpoint.web.vo.Application;
|
||||
|
||||
public interface AlarmJobsRepository {
|
||||
|
||||
int getTotalJobCount();
|
||||
|
||||
List<AlarmJob> getAlarmJob(Application application);
|
||||
|
||||
List<Application> getRegistedApplicationList();
|
||||
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.nhn.pinpoint.web.alarm;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.filter.AlarmCheckFilter;
|
||||
import com.nhn.pinpoint.web.alarm.checker.AlarmChecker;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
|
||||
public class AlarmMailTemplate {
|
||||
@@ -9,9 +9,9 @@ public class AlarmMailTemplate {
|
||||
private static final String LINK_FORMAT = "<a href=\"%s\" >%s</a>";
|
||||
|
||||
private final String pinpointUrl;
|
||||
private final AlarmCheckFilter checker;
|
||||
private final AlarmChecker checker;
|
||||
|
||||
public AlarmMailTemplate(AlarmCheckFilter checker, String pinpointUrl) {
|
||||
public AlarmMailTemplate(AlarmChecker checker, String pinpointUrl) {
|
||||
this.checker = checker;
|
||||
this.pinpointUrl =pinpointUrl;
|
||||
}
|
||||
|
||||
@@ -2,11 +2,11 @@ package com.nhn.pinpoint.web.alarm;
|
||||
|
||||
import org.springframework.batch.item.ItemProcessor;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.filter.AlarmCheckFilter;
|
||||
import com.nhn.pinpoint.web.alarm.checker.AlarmChecker;
|
||||
|
||||
public class AlarmProcessor implements ItemProcessor<AlarmCheckFilter, AlarmCheckFilter> {
|
||||
public class AlarmProcessor implements ItemProcessor<AlarmChecker, AlarmChecker> {
|
||||
|
||||
public AlarmCheckFilter process(AlarmCheckFilter checker) {
|
||||
public AlarmChecker process(AlarmChecker checker) {
|
||||
checker.check();
|
||||
return checker;
|
||||
}
|
||||
|
||||
@@ -13,14 +13,14 @@ import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.DataCollectorFactory.DataCollectorCategory;
|
||||
import com.nhn.pinpoint.web.alarm.checker.AlarmChecker;
|
||||
import com.nhn.pinpoint.web.alarm.collector.DataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.filter.AlarmCheckFilter;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
import com.nhn.pinpoint.web.dao.AlarmResourceDao;
|
||||
import com.nhn.pinpoint.web.dao.ApplicationIndexDao;
|
||||
import com.nhn.pinpoint.web.vo.Application;
|
||||
|
||||
public class AlarmReader implements ItemReader<AlarmCheckFilter>, StepExecutionListener {
|
||||
public class AlarmReader implements ItemReader<AlarmChecker>, StepExecutionListener {
|
||||
|
||||
@Autowired
|
||||
private DataCollectorFactory dataCollectorFactory;
|
||||
@@ -31,7 +31,7 @@ public class AlarmReader implements ItemReader<AlarmCheckFilter>, StepExecutionL
|
||||
@Autowired
|
||||
private AlarmResourceDao alarmResourceDao;
|
||||
|
||||
private final Queue<AlarmCheckFilter> checkers = new LinkedList<AlarmCheckFilter>();
|
||||
private final Queue<AlarmChecker> checkers = new LinkedList<AlarmChecker>();
|
||||
|
||||
public AlarmReader() {
|
||||
}
|
||||
@@ -42,7 +42,7 @@ public class AlarmReader implements ItemReader<AlarmCheckFilter>, StepExecutionL
|
||||
this.alarmResourceDao = alarmResourceDao;
|
||||
}
|
||||
|
||||
public AlarmCheckFilter read() {
|
||||
public AlarmChecker read() {
|
||||
return checkers.poll();
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ public class AlarmReader implements ItemReader<AlarmCheckFilter>, StepExecutionL
|
||||
collectorMap.put(collector.getDataCollectorCategory(), collector);
|
||||
}
|
||||
|
||||
AlarmCheckFilter checker = checkerCategory.createChecker(collector, rule);
|
||||
AlarmChecker checker = checkerCategory.createChecker(collector, rule);
|
||||
checkers.add(checker);
|
||||
}
|
||||
|
||||
|
||||
@@ -20,8 +20,7 @@ import org.springframework.batch.item.ItemWriter;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.filter.AlarmCheckFilter;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
import com.nhn.pinpoint.web.alarm.checker.AlarmChecker;
|
||||
import com.nhn.pinpoint.web.dao.mysql.MySqlAlarmResourceDao;
|
||||
import com.nhncorp.lucy.net.call.Fault;
|
||||
import com.nhncorp.lucy.net.call.Reply;
|
||||
@@ -30,7 +29,7 @@ import com.nhncorp.lucy.net.invoker.InvocationFuture;
|
||||
import com.nhncorp.lucy.npc.connector.NpcConnectionFactory;
|
||||
import com.nhncorp.lucy.npc.connector.NpcHessianConnector;
|
||||
|
||||
public class AlarmWriter implements ItemWriter<AlarmCheckFilter> {
|
||||
public class AlarmWriter implements ItemWriter<AlarmChecker> {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
@@ -56,13 +55,13 @@ public class AlarmWriter implements ItemWriter<AlarmCheckFilter> {
|
||||
private static final String SMS_SERVICE_ID = "EMG00058";
|
||||
|
||||
@Override
|
||||
public void write(List<? extends AlarmCheckFilter> checkers) throws Exception {
|
||||
for(AlarmCheckFilter checker : checkers) {
|
||||
public void write(List<? extends AlarmChecker> checkers) throws Exception {
|
||||
for(AlarmChecker checker : checkers) {
|
||||
send(checker);
|
||||
}
|
||||
}
|
||||
|
||||
private void send(AlarmCheckFilter checker) {
|
||||
private void send(AlarmChecker checker) {
|
||||
if (!checker.isDetected()) {
|
||||
return;
|
||||
}
|
||||
@@ -74,7 +73,7 @@ public class AlarmWriter implements ItemWriter<AlarmCheckFilter> {
|
||||
}
|
||||
}
|
||||
|
||||
private void sendSms(AlarmCheckFilter checker) {
|
||||
private void sendSms(AlarmChecker checker) {
|
||||
List<String> receivers = dao.selectEmpGroupPhoneNumber(checker.getEmpGroup());
|
||||
|
||||
if (receivers.size() == 0) {
|
||||
@@ -117,7 +116,7 @@ public class AlarmWriter implements ItemWriter<AlarmCheckFilter> {
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
private void sendEmail(AlarmCheckFilter checker) {
|
||||
private void sendEmail(AlarmChecker checker) {
|
||||
NpcConnectionFactory factory = new NpcConnectionFactory();
|
||||
factory.setBoxDirectoryServiceHostName(emailServerUrl);
|
||||
factory.setCharset(Charset.forName("UTF-8"));
|
||||
@@ -150,7 +149,7 @@ public class AlarmWriter implements ItemWriter<AlarmCheckFilter> {
|
||||
}
|
||||
}
|
||||
|
||||
private Object[] createSendMailParams(AlarmCheckFilter checker) {
|
||||
private Object[] createSendMailParams(AlarmChecker checker) {
|
||||
AlarmMailTemplate mailTemplate = new AlarmMailTemplate(checker, pinpointUrl);
|
||||
List<String> receivers = dao.selectEmpGroupEmail(checker.getEmpGroup());
|
||||
return new Object[] { EMAIL_SERVICE_ID, OPTION, SENDER_EMAIL_ADDRESS, "", joinAddresses(receivers), mailTemplate.createSubject(), mailTemplate.createBody()};
|
||||
|
||||
@@ -4,74 +4,74 @@ import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.DataCollectorFactory.DataCollectorCategory;
|
||||
import com.nhn.pinpoint.web.alarm.checker.AlarmChecker;
|
||||
import com.nhn.pinpoint.web.alarm.checker.ErrorCountChecker;
|
||||
import com.nhn.pinpoint.web.alarm.checker.ErrorRateChecker;
|
||||
import com.nhn.pinpoint.web.alarm.checker.GcCountChecker;
|
||||
import com.nhn.pinpoint.web.alarm.checker.HeapUsageRateChecker;
|
||||
import com.nhn.pinpoint.web.alarm.checker.JvmCpuUsageRateChecker;
|
||||
import com.nhn.pinpoint.web.alarm.checker.ResponseCountChecker;
|
||||
import com.nhn.pinpoint.web.alarm.checker.SlowCountFilter;
|
||||
import com.nhn.pinpoint.web.alarm.checker.SlowRatesFilter;
|
||||
import com.nhn.pinpoint.web.alarm.collector.AgentStatDataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.collector.DataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.collector.ResponseTimeDataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.filter.AlarmCheckFilter;
|
||||
import com.nhn.pinpoint.web.alarm.filter.ErrorCountChecker;
|
||||
import com.nhn.pinpoint.web.alarm.filter.ErrorRateChecker;
|
||||
import com.nhn.pinpoint.web.alarm.filter.GcCountChecker;
|
||||
import com.nhn.pinpoint.web.alarm.filter.HeapUsageRateChecker;
|
||||
import com.nhn.pinpoint.web.alarm.filter.JvmCpuUsageRateChecker;
|
||||
import com.nhn.pinpoint.web.alarm.filter.ResponseCountChecker;
|
||||
import com.nhn.pinpoint.web.alarm.filter.SlowCountFilter;
|
||||
import com.nhn.pinpoint.web.alarm.filter.SlowRatesFilter;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
|
||||
public enum CheckerCategory {
|
||||
|
||||
SLOW_COUNT("SLOW_COUNT", DataCollectorCategory.RESPONSE_TIME) {
|
||||
@Override
|
||||
public AlarmCheckFilter createChecker(DataCollector dataCollector, Rule rule) {
|
||||
public AlarmChecker createChecker(DataCollector dataCollector, Rule rule) {
|
||||
return new SlowCountFilter((ResponseTimeDataCollector)dataCollector, rule);
|
||||
}
|
||||
},
|
||||
|
||||
SLOW_RATE("SLOW_RATE", DataCollectorCategory.RESPONSE_TIME) {
|
||||
@Override
|
||||
public AlarmCheckFilter createChecker(DataCollector dataCollector, Rule rule) {
|
||||
public AlarmChecker createChecker(DataCollector dataCollector, Rule rule) {
|
||||
return new SlowRatesFilter((ResponseTimeDataCollector)dataCollector, rule);
|
||||
}
|
||||
},
|
||||
|
||||
ERROR_COUNT("ERROR_COUNT", DataCollectorCategory.RESPONSE_TIME) {
|
||||
@Override
|
||||
public AlarmCheckFilter createChecker(DataCollector dataCollector, Rule rule) {
|
||||
public AlarmChecker createChecker(DataCollector dataCollector, Rule rule) {
|
||||
return new ErrorCountChecker((ResponseTimeDataCollector)dataCollector, rule);
|
||||
}
|
||||
},
|
||||
|
||||
ERROR_RATE("ERROR_RATE", DataCollectorCategory.RESPONSE_TIME) {
|
||||
@Override
|
||||
public AlarmCheckFilter createChecker(DataCollector dataCollector, Rule rule) {
|
||||
public AlarmChecker createChecker(DataCollector dataCollector, Rule rule) {
|
||||
return new ErrorRateChecker((ResponseTimeDataCollector)dataCollector, rule);
|
||||
}
|
||||
},
|
||||
|
||||
RESPONSE_COUNT("RESPONSE_COUNT", DataCollectorCategory.RESPONSE_TIME) {
|
||||
@Override
|
||||
public AlarmCheckFilter createChecker(DataCollector dataCollector, Rule rule) {
|
||||
public AlarmChecker createChecker(DataCollector dataCollector, Rule rule) {
|
||||
return new ResponseCountChecker((ResponseTimeDataCollector)dataCollector, rule);
|
||||
}
|
||||
},
|
||||
|
||||
HEAP_USAGE_RATE("HEAP_USAGE_RATE", DataCollectorCategory.AGENT_STAT) {
|
||||
@Override
|
||||
public AlarmCheckFilter createChecker(DataCollector dataCollector, Rule rule) {
|
||||
public AlarmChecker createChecker(DataCollector dataCollector, Rule rule) {
|
||||
return new HeapUsageRateChecker((AgentStatDataCollector)dataCollector, rule);
|
||||
}
|
||||
},
|
||||
|
||||
GC_COUNT("GC_COUNT", DataCollectorCategory.AGENT_STAT) {
|
||||
@Override
|
||||
public AlarmCheckFilter createChecker(DataCollector dataCollector, Rule rule) {
|
||||
public AlarmChecker createChecker(DataCollector dataCollector, Rule rule) {
|
||||
return new GcCountChecker((AgentStatDataCollector)dataCollector, rule);
|
||||
}
|
||||
},
|
||||
|
||||
JVM_CPU_USAGE_RATE("JVM_CPU_USAGE_RATE", DataCollectorCategory.AGENT_STAT) {
|
||||
@Override
|
||||
public AlarmCheckFilter createChecker(DataCollector dataCollector, Rule rule) {
|
||||
public AlarmChecker createChecker(DataCollector dataCollector, Rule rule) {
|
||||
return new JvmCpuUsageRateChecker((AgentStatDataCollector)dataCollector, rule);
|
||||
}
|
||||
};
|
||||
@@ -112,6 +112,6 @@ public enum CheckerCategory {
|
||||
return name;
|
||||
}
|
||||
|
||||
public abstract AlarmCheckFilter createChecker(DataCollector dataCollector, Rule rule);
|
||||
public abstract AlarmChecker createChecker(DataCollector dataCollector, Rule rule);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm;
|
||||
|
||||
|
||||
public class DefaultAlarmEvent implements AlarmEvent {
|
||||
|
||||
private final long startEventTimeMillis;
|
||||
|
||||
public DefaultAlarmEvent(long startEventTimeMillis) {
|
||||
this.startEventTimeMillis = startEventTimeMillis;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getEventStartTimeMillis() {
|
||||
return startEventTimeMillis;
|
||||
}
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.filter.AlarmCheckFilter;
|
||||
import com.nhn.pinpoint.web.alarm.filter.AlarmFilter;
|
||||
import com.nhn.pinpoint.web.alarm.filter.AlarmSendFilter;
|
||||
import com.nhn.pinpoint.web.vo.Application;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author koo.taejin
|
||||
*/
|
||||
public class DefaultAlarmJob implements AlarmJob {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
private final Application application;
|
||||
|
||||
public DefaultAlarmJob(Application application) {
|
||||
this.application = application;
|
||||
}
|
||||
|
||||
private final List<AlarmCheckFilter> checkFilterList = new ArrayList<AlarmCheckFilter>();
|
||||
private final List<AlarmSendFilter> sendFilterList = new ArrayList<AlarmSendFilter>();
|
||||
|
||||
@Override
|
||||
public boolean execute(AlarmEvent event) {
|
||||
logger.debug("{} {} execute. CheckFilterList={}, SendFilterList={}", application, this.getClass().getSimpleName(), checkFilterList, sendFilterList);
|
||||
|
||||
for (AlarmCheckFilter checkFilter : this.checkFilterList) {
|
||||
checkFilter.check();
|
||||
boolean isSatisfy = false;
|
||||
logger.debug("{} filter Satisfy({})", checkFilter.getClass().getSimpleName(), isSatisfy);
|
||||
if (!isSatisfy) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
for (AlarmSendFilter sendFilter : this.sendFilterList) {
|
||||
sendFilter.send(this.checkFilterList, event);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public <T extends AlarmFilter> void addFilter(List<T> filterList) {
|
||||
for (AlarmFilter filter : filterList) {
|
||||
addFilter(filter);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean addFilter(AlarmFilter filter) {
|
||||
if (filter instanceof AlarmSendFilter) {
|
||||
sendFilterList.add((AlarmSendFilter) filter);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (filter instanceof AlarmCheckFilter) {
|
||||
checkFilterList.add((AlarmCheckFilter) filter);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
|
||||
import com.nhn.pinpoint.web.vo.Application;
|
||||
|
||||
public class DefaultAlarmJobsRepository implements AlarmJobsRepository {
|
||||
|
||||
private final Map<Application, List<AlarmJob>> repository = new HashMap<Application, List<AlarmJob>>();
|
||||
|
||||
public DefaultAlarmJobsRepository() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTotalJobCount() {
|
||||
int totalCount = 0;
|
||||
|
||||
Collection<List<AlarmJob>> values = repository.values();
|
||||
for (List<AlarmJob> value : values) {
|
||||
totalCount += value.size();
|
||||
}
|
||||
|
||||
return totalCount;
|
||||
}
|
||||
|
||||
public List<AlarmJob> addAlarmJob(Application application, AlarmJob job) {
|
||||
List<AlarmJob> registedJobs = (List<AlarmJob>) MapUtils.getObject(repository, application, new ArrayList<AlarmJob>());
|
||||
registedJobs.add(job);
|
||||
|
||||
repository.put(application, registedJobs);
|
||||
|
||||
return registedJobs;
|
||||
}
|
||||
|
||||
public List<AlarmJob> getAlarmJob(Application application) {
|
||||
List<AlarmJob> alarmJobList = repository.get(application);
|
||||
|
||||
if (alarmJobList == null || alarmJobList.size() == 0) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
List<AlarmJob> shallowCopyResult = new ArrayList<AlarmJob>();
|
||||
shallowCopyResult.addAll(alarmJobList);
|
||||
return shallowCopyResult;
|
||||
}
|
||||
|
||||
public List<Application> getRegistedApplicationList() {
|
||||
Set<Application> keyList = repository.keySet();
|
||||
|
||||
if (CollectionUtils.isEmpty(keyList)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
List<Application> shallowCopyResult = new ArrayList<Application>();
|
||||
shallowCopyResult.addAll(keyList);
|
||||
return shallowCopyResult;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm;
|
||||
|
||||
|
||||
public enum MainCategory {
|
||||
|
||||
// 받은 요청, 보낸 요청 등으로 나누면 될듯
|
||||
REQUEST_SENDED("REQUEST_SENDED", 1),
|
||||
REQUEST_RECEIVED("REQUEST_RECEIVED", 2)
|
||||
;
|
||||
|
||||
private final String name;
|
||||
private final int code;
|
||||
|
||||
private MainCategory(String name, int code) {
|
||||
this.name = name;
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public static MainCategory getValue(String value) {
|
||||
MainCategory[] categories = MainCategory.values();
|
||||
for (MainCategory category : categories) {
|
||||
if (category.getName().equalsIgnoreCase(value)) {
|
||||
return category;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static MainCategory getValue(int code) {
|
||||
for (MainCategory eachCategory : MainCategory.values()) {
|
||||
if (eachCategory.getCode() == code) {
|
||||
return eachCategory;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,151 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.filter.AlarmCheckFilter;
|
||||
import com.nhn.pinpoint.web.alarm.filter.AlarmFilter;
|
||||
import com.nhn.pinpoint.web.alarm.filter.FailureCountFilter;
|
||||
import com.nhn.pinpoint.web.alarm.filter.FailureRatesFilter;
|
||||
import com.nhn.pinpoint.web.alarm.filter.SlowCountFilter;
|
||||
import com.nhn.pinpoint.web.alarm.filter.SlowRatesFilter;
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmRuleResource;
|
||||
import com.nhn.pinpoint.web.vo.Application;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author koo.taejin
|
||||
*/
|
||||
public enum SubCategory {
|
||||
|
||||
// 이후에 Filter가 늘어나게 되면 Decorator패턴으로 변경하는 것도 좋은 방법일듯함
|
||||
// 보낸 요청 받은 요청
|
||||
FAIL_RATE("FAIL_RATE", 1, "%", MainCategory.REQUEST_SENDED) {
|
||||
@Override
|
||||
public AlarmCheckFilter createAlarmFilter(Application application, MainCategory parent, AlarmRuleResource rule) {
|
||||
AlarmCheckFilter filter = null;
|
||||
if (MainCategory.REQUEST_SENDED == parent) {
|
||||
filter = new FailureRatesFilter(application);
|
||||
}
|
||||
|
||||
if (filter != null) {
|
||||
// filter.initialize(rule);
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
},
|
||||
FAIL_COUNT("FAIL_COUNT", 2, " ", MainCategory.REQUEST_SENDED) {
|
||||
@Override
|
||||
public AlarmCheckFilter createAlarmFilter(Application application, MainCategory parent, AlarmRuleResource rule) {
|
||||
AlarmCheckFilter filter = null;
|
||||
if (MainCategory.REQUEST_SENDED == parent) {
|
||||
filter = new FailureCountFilter(application);
|
||||
}
|
||||
|
||||
if (filter != null) {
|
||||
// filter.initialize(rule);
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
},
|
||||
SLOW_RATE("SLOW_RATE", 3, "%", MainCategory.REQUEST_SENDED) {
|
||||
@Override
|
||||
public AlarmCheckFilter createAlarmFilter(Application application, MainCategory parent, AlarmRuleResource rule) {
|
||||
AlarmCheckFilter filter = null;
|
||||
if (MainCategory.REQUEST_SENDED == parent) {
|
||||
// filter = new SlowRatesFilter(application);
|
||||
}
|
||||
|
||||
if (filter != null) {
|
||||
// filter.initialize(rule);
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
},
|
||||
SLOW_COUNT("SLOW_COUNT", 4, " ", MainCategory.REQUEST_SENDED) {
|
||||
@Override
|
||||
public AlarmCheckFilter createAlarmFilter(Application application, MainCategory parent, AlarmRuleResource rule) {
|
||||
AlarmCheckFilter filter = null;
|
||||
if (MainCategory.REQUEST_SENDED == parent) {
|
||||
// filter = new SlowCountFilter(null, 0, false, false);
|
||||
}
|
||||
|
||||
if (filter != null) {
|
||||
// filter.initialize(rule);
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
};
|
||||
|
||||
private final String name;
|
||||
private final int code;
|
||||
private final List<MainCategory> parentSupportCategoryList;
|
||||
private final String unit;
|
||||
|
||||
private SubCategory(String name, int code, String unit, MainCategory firstParentSupportCategory, MainCategory... otherParentSupportCategories) {
|
||||
this.name = name;
|
||||
this.code = code;
|
||||
this.unit = unit;
|
||||
|
||||
parentSupportCategoryList = new ArrayList<MainCategory>();
|
||||
|
||||
parentSupportCategoryList.add(firstParentSupportCategory);
|
||||
|
||||
Collections.addAll(parentSupportCategoryList, otherParentSupportCategories);
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getUnit() {
|
||||
return unit;
|
||||
}
|
||||
|
||||
private List<MainCategory> getParentSupportCategoryList() {
|
||||
return parentSupportCategoryList;
|
||||
}
|
||||
|
||||
AlarmFilter createAlarmFilter(Application application, AlarmRuleResource rule) throws Exception {
|
||||
List<MainCategory> parentSupportCategoryList = getParentSupportCategoryList();
|
||||
if (parentSupportCategoryList.size() == 1) {
|
||||
// return createAlarmFilter(application, parentSupportCategoryList.get(0), rule);
|
||||
return null;
|
||||
} else {
|
||||
throw new Exception("Ambiguous ParentCategory Exception");
|
||||
}
|
||||
}
|
||||
|
||||
public abstract AlarmCheckFilter createAlarmFilter(Application application, MainCategory parent, AlarmRuleResource rule);
|
||||
|
||||
public static SubCategory getValue(String value) {
|
||||
SubCategory[] categories = SubCategory.values();
|
||||
for (SubCategory category : categories) {
|
||||
if (category.getName().equalsIgnoreCase(value)) {
|
||||
return category;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static SubCategory getValue(int code) {
|
||||
for (SubCategory eachCategory : SubCategory.values()) {
|
||||
if (eachCategory.getCode() == code) {
|
||||
return eachCategory;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
package com.nhn.pinpoint.web.alarm.filter;
|
||||
package com.nhn.pinpoint.web.alarm.checker;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
@@ -9,7 +9,7 @@ import java.util.Map.Entry;
|
||||
import com.nhn.pinpoint.web.alarm.collector.DataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
|
||||
public abstract class AgentChecker extends AlarmCheckFilter {
|
||||
public abstract class AgentChecker extends AlarmChecker {
|
||||
|
||||
protected Map<String, Long> detectedAgents = new HashMap<String, Long>();
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
package com.nhn.pinpoint.web.alarm.filter;
|
||||
package com.nhn.pinpoint.web.alarm.checker;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
@@ -13,7 +13,7 @@ import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
*
|
||||
* @author koo.taejin
|
||||
*/
|
||||
public abstract class AlarmCheckFilter {
|
||||
public abstract class AlarmChecker {
|
||||
|
||||
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
protected final DataCollector dataCollector;
|
||||
@@ -21,7 +21,7 @@ public abstract class AlarmCheckFilter {
|
||||
protected boolean detected = false;
|
||||
protected final String unit;
|
||||
|
||||
protected AlarmCheckFilter(Rule rule, String unit, DataCollector dataCollector) {
|
||||
protected AlarmChecker(Rule rule, String unit, DataCollector dataCollector) {
|
||||
this.rule = rule;
|
||||
this.unit = unit;
|
||||
this.dataCollector = dataCollector;
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
package com.nhn.pinpoint.web.alarm.filter;
|
||||
package com.nhn.pinpoint.web.alarm.checker;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.collector.ResponseTimeDataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
|
||||
public class ErrorCountChecker extends AlarmCheckFilter {
|
||||
public class ErrorCountChecker extends AlarmChecker {
|
||||
|
||||
public ErrorCountChecker(ResponseTimeDataCollector dataCollector, Rule rule) {
|
||||
super(rule, "", dataCollector);
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
package com.nhn.pinpoint.web.alarm.filter;
|
||||
package com.nhn.pinpoint.web.alarm.checker;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.collector.ResponseTimeDataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
|
||||
public class ErrorRateChecker extends AlarmCheckFilter {
|
||||
public class ErrorRateChecker extends AlarmChecker {
|
||||
|
||||
public ErrorRateChecker(ResponseTimeDataCollector dataCollector, Rule rule) {
|
||||
super(rule, "%", dataCollector);
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.nhn.pinpoint.web.alarm.filter;
|
||||
package com.nhn.pinpoint.web.alarm.checker;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.nhn.pinpoint.web.alarm.filter;
|
||||
package com.nhn.pinpoint.web.alarm.checker;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.nhn.pinpoint.web.alarm.filter;
|
||||
package com.nhn.pinpoint.web.alarm.checker;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
package com.nhn.pinpoint.web.alarm.filter;
|
||||
package com.nhn.pinpoint.web.alarm.checker;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.collector.ResponseTimeDataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
|
||||
public class ResponseCountChecker extends AlarmCheckFilter {
|
||||
public class ResponseCountChecker extends AlarmChecker {
|
||||
|
||||
public ResponseCountChecker(ResponseTimeDataCollector dataCollector, Rule rule) {
|
||||
super(rule, "", dataCollector);
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
package com.nhn.pinpoint.web.alarm.filter;
|
||||
package com.nhn.pinpoint.web.alarm.checker;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.collector.ResponseTimeDataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
|
||||
public class SlowCountFilter extends AlarmCheckFilter {
|
||||
public class SlowCountFilter extends AlarmChecker {
|
||||
|
||||
public SlowCountFilter(ResponseTimeDataCollector dataCollector, Rule rule) {
|
||||
super(rule, "", dataCollector);
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
package com.nhn.pinpoint.web.alarm.filter;
|
||||
package com.nhn.pinpoint.web.alarm.checker;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.collector.ResponseTimeDataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
@@ -7,7 +7,7 @@ import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
*
|
||||
* @author koo.taejin
|
||||
*/
|
||||
public class SlowRatesFilter extends AlarmCheckFilter {
|
||||
public class SlowRatesFilter extends AlarmChecker {
|
||||
|
||||
public SlowRatesFilter(ResponseTimeDataCollector dataCollector, Rule rule) {
|
||||
super(rule, "%", dataCollector);
|
||||
@@ -1,11 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm.filter;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.collector.DataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
|
||||
public abstract class AlarmCheckCountFilter extends AlarmCheckFilter {
|
||||
|
||||
protected AlarmCheckCountFilter(Rule rule, String unit, DataCollector dataCollector) {
|
||||
super(rule, unit, dataCollector);
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm.filter;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.collector.DataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
|
||||
|
||||
public abstract class AlarmCheckRatesFilter extends AlarmCheckFilter {
|
||||
|
||||
protected AlarmCheckRatesFilter(Rule rule, DataCollector dataCollector) {
|
||||
super(rule, "%", dataCollector);
|
||||
}
|
||||
|
||||
protected boolean check(long count, long totalCount) {
|
||||
int rates = getRates(count, totalCount);
|
||||
|
||||
int threshold = getRule().getThreshold();
|
||||
|
||||
if (rates >= threshold) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private int getRates(long count, long totalCount) {
|
||||
int percent = 0;
|
||||
if (count == 0 || totalCount == 0) {
|
||||
return percent;
|
||||
} else {
|
||||
percent = Math.round((count * 100) / totalCount);
|
||||
}
|
||||
|
||||
return percent;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm.filter;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author koo.taejin
|
||||
*/
|
||||
public interface AlarmFilter {
|
||||
|
||||
}
|
||||
@@ -1,99 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm.filter;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.AlarmEvent;
|
||||
import com.nhn.pinpoint.web.alarm.AlarmMailTemplate;
|
||||
import com.nhn.pinpoint.web.alarm.resource.MailResource;
|
||||
import com.nhn.pinpoint.web.vo.Application;
|
||||
import com.nhncorp.lucy.net.call.Fault;
|
||||
import com.nhncorp.lucy.net.call.Reply;
|
||||
import com.nhncorp.lucy.net.call.ReturnValue;
|
||||
import com.nhncorp.lucy.net.invoker.InvocationFuture;
|
||||
import com.nhncorp.lucy.npc.connector.NpcConnectionFactory;
|
||||
import com.nhncorp.lucy.npc.connector.NpcHessianConnector;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author koo.taejin
|
||||
*/
|
||||
public class AlarmMailSendFilter extends AlarmSendFilter {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
private static final String ADDR_SEPARATOR = ";";
|
||||
|
||||
private final Application application;
|
||||
private final MailResource mailResource;
|
||||
private final List<String> receiverList;
|
||||
|
||||
public AlarmMailSendFilter(Application application, MailResource mailResource, List<String> receiverList) {
|
||||
this.application = application;
|
||||
this.mailResource = mailResource;
|
||||
this.receiverList = receiverList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean send(List<AlarmCheckFilter> alarmCheckFilterList, AlarmEvent event) {
|
||||
NpcConnectionFactory factory = new NpcConnectionFactory();
|
||||
factory.setBoxDirectoryServiceHostName(mailResource.getUrl());
|
||||
factory.setCharset(Charset.forName("UTF-8"));
|
||||
factory.setLightWeight(true);
|
||||
|
||||
NpcHessianConnector connector = null;
|
||||
try {
|
||||
connector = factory.create();
|
||||
|
||||
// AlarmMailTemplate mailTemplate = new AlarmMailTemplate(application, mailResource, event);
|
||||
AlarmMailTemplate mailTemplate = new AlarmMailTemplate(null, null);
|
||||
|
||||
Object[] params = createSendMailParams(alarmCheckFilterList, mailTemplate);
|
||||
|
||||
InvocationFuture future = connector.invoke(null, "send", params);
|
||||
future.await();
|
||||
Reply reply = (Reply) future.getReturnValue();
|
||||
if (reply instanceof ReturnValue) {
|
||||
Object result = ((ReturnValue) reply).get();
|
||||
logger.debug("MessageId:{}", result);
|
||||
return true;
|
||||
} else if (reply instanceof Fault) {
|
||||
String code = ((Fault) reply).getCode();
|
||||
String message = ((Fault) reply).getMessage();
|
||||
logger.warn("Unexpected result:code={}, message={}", code, message);
|
||||
} else {
|
||||
logger.warn("Unexpected clazz({}).", reply.getClass());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.warn(e.getMessage(), e);
|
||||
} finally {
|
||||
if (connector != null) {
|
||||
connector.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
// TODO Auto-generated method stub
|
||||
return false;
|
||||
}
|
||||
|
||||
private Object[] createSendMailParams(List<AlarmCheckFilter> alarmCheckFilterList, AlarmMailTemplate mailTemplate) {
|
||||
return new Object[] {
|
||||
mailResource.getServiceId(),
|
||||
mailResource.getOption(),
|
||||
mailResource.getSenderEmailAddress(), /* 보낸이 */
|
||||
"", /* 답장 받을 주소 */
|
||||
joinAddresses(receiverList), /* 받는이 */
|
||||
mailTemplate.createSubject(),
|
||||
mailTemplate.createBody()
|
||||
};
|
||||
}
|
||||
|
||||
private String joinAddresses(List<String> addresses) {
|
||||
return StringUtils.join(addresses, ADDR_SEPARATOR);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm.filter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.AlarmEvent;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author koo.taejin
|
||||
*/
|
||||
public abstract class AlarmSendFilter implements AlarmFilter {
|
||||
|
||||
abstract public boolean send(List<AlarmCheckFilter> checkFilterList, AlarmEvent event);
|
||||
|
||||
}
|
||||
@@ -1,79 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm.filter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.http.HttpEntity;
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.NameValuePair;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.client.utils.URLEncodedUtils;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.apache.http.message.BasicNameValuePair;
|
||||
import org.apache.http.util.EntityUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.AlarmEvent;
|
||||
import com.nhn.pinpoint.web.alarm.resource.SmsResource;
|
||||
import com.nhn.pinpoint.web.vo.Application;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author koo.taejin
|
||||
*/
|
||||
public class AlarmSmsSendFilter extends AlarmSendFilter {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
private static final String QUOTATATION = "\"";
|
||||
|
||||
private final Application application;
|
||||
private final SmsResource smsResource;
|
||||
private final List<String> receiverList;
|
||||
|
||||
public AlarmSmsSendFilter(Application application, SmsResource smsResource, List<String> receiverList) {
|
||||
this.application = application;
|
||||
this.smsResource = smsResource;
|
||||
this.receiverList = receiverList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean send(List<AlarmCheckFilter> alarmCheckFilterList, AlarmEvent event) {
|
||||
DefaultHttpClient client = new DefaultHttpClient();
|
||||
|
||||
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
|
||||
nvps.add(new BasicNameValuePair("serviceId", smsResource.getServiceId()));
|
||||
nvps.add(new BasicNameValuePair("sendMdn", QUOTATATION + smsResource.getSenderPhoneNumber() + QUOTATATION));
|
||||
nvps.add(new BasicNameValuePair("receiveMdnList", convertToReceiverFormat(receiverList)));
|
||||
nvps.add(new BasicNameValuePair("content", QUOTATATION + null + QUOTATATION));
|
||||
|
||||
HttpGet get = new HttpGet(smsResource.getUrl() + "?" + URLEncodedUtils.format(nvps, "UTF-8"));
|
||||
|
||||
logger.debug("{}", get.getURI());
|
||||
|
||||
try {
|
||||
HttpResponse response = client.execute(get);
|
||||
if (response != null) {
|
||||
HttpEntity entity = response.getEntity();
|
||||
// 이작업 자체가 닫는거랑 같음
|
||||
logger.debug("result={}", EntityUtils.toString(entity));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.warn(e.getMessage(), e);
|
||||
} finally {
|
||||
// 이건 일단 이렇게 하고 나중에 성능을 위해서 바꾸장
|
||||
client.getConnectionManager().shutdown();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private String convertToReceiverFormat(List<String> receivers) {
|
||||
List<String> result = new ArrayList<String>();
|
||||
for (String receiver : receivers) {
|
||||
result.add(QUOTATATION + receiver + QUOTATATION);
|
||||
}
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,100 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm.filter;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.AlarmEvent;
|
||||
import com.nhn.pinpoint.web.applicationmap.histogram.TimeHistogram;
|
||||
import com.nhn.pinpoint.web.applicationmap.rawdata.AgentHistogram;
|
||||
import com.nhn.pinpoint.web.applicationmap.rawdata.AgentHistogramList;
|
||||
import com.nhn.pinpoint.web.applicationmap.rawdata.LinkData;
|
||||
import com.nhn.pinpoint.web.applicationmap.rawdata.LinkDataMap;
|
||||
import com.nhn.pinpoint.web.dao.MapStatisticsCallerDao;
|
||||
import com.nhn.pinpoint.web.vo.Application;
|
||||
import com.nhn.pinpoint.web.vo.Range;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author koo.taejin
|
||||
*/
|
||||
public class FailureCountFilter extends AlarmCheckCountFilter {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
private final Application application;
|
||||
|
||||
public FailureCountFilter(Application application) {
|
||||
super(null, null, null);
|
||||
this.application = application;
|
||||
}
|
||||
|
||||
public void check() {
|
||||
// return true;
|
||||
}
|
||||
|
||||
// @Override
|
||||
public boolean check(AlarmEvent event) {
|
||||
logger.debug("{} check.", this.getClass().getSimpleName());
|
||||
|
||||
// MapStatisticsCallerDao dao = event.getMapStatisticsCallerDao();
|
||||
MapStatisticsCallerDao dao = null;
|
||||
|
||||
if (dao == null) {
|
||||
logger.warn("{} object is null.", MapStatisticsCallerDao.class.getSimpleName());
|
||||
return false;
|
||||
}
|
||||
|
||||
long startEventTimeMillis = event.getEventStartTimeMillis();
|
||||
|
||||
// 이것도 CheckTImeMillis의 시간이 길면 나누어야 함
|
||||
// 추가적으로 시간이 범위에 있는 만큼 다 안들어 오면 ??
|
||||
// 일단은 아주 단순하게
|
||||
// int continuationTime = getRule().getContinuosTime();
|
||||
int continuationTime = 300000;
|
||||
Range range = Range.createUncheckedRange(startEventTimeMillis - continuationTime, startEventTimeMillis);
|
||||
|
||||
LinkDataMap linkDataMap = dao.selectCaller(application, range);
|
||||
for (LinkData linkData : linkDataMap.getLinkDataList()) {
|
||||
Application toApplication = linkData.getToApplication();
|
||||
// if (toApplication.getServiceType().isTerminal() || toApplication.getServiceType().isUnknown()) {
|
||||
// logger.debug("Application({}) is invalid serviceType. this is skip.", toApplication.getName());
|
||||
// continue;
|
||||
// }
|
||||
|
||||
AgentHistogramList sourceList = linkData.getSourceList();
|
||||
Collection<AgentHistogram> agentHistogramList = sourceList.getAgentHistogramList();
|
||||
|
||||
boolean isSatisFied = checkCounts(toApplication, agentHistogramList);
|
||||
if (isSatisFied) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean checkCounts(Application toApplication, Collection<AgentHistogram> agentHistogramList) {
|
||||
long totalCount = 0;
|
||||
long successCount = 0;
|
||||
long errorCount = 0;
|
||||
|
||||
for (AgentHistogram agent : agentHistogramList) {
|
||||
for (TimeHistogram time : agent.getTimeHistogram()) {
|
||||
totalCount += time.getTotalCount();
|
||||
successCount += time.getSuccessCount();
|
||||
errorCount = time.getErrorCount();
|
||||
}
|
||||
}
|
||||
logger.info("{} -> {} {}/{}(error={})", application.getName(), toApplication.getName(), successCount, totalCount, errorCount);
|
||||
|
||||
return decideResult(errorCount);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected long getDetectedValue() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,101 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm.filter;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.AlarmEvent;
|
||||
import com.nhn.pinpoint.web.applicationmap.histogram.TimeHistogram;
|
||||
import com.nhn.pinpoint.web.applicationmap.rawdata.AgentHistogram;
|
||||
import com.nhn.pinpoint.web.applicationmap.rawdata.AgentHistogramList;
|
||||
import com.nhn.pinpoint.web.applicationmap.rawdata.LinkData;
|
||||
import com.nhn.pinpoint.web.applicationmap.rawdata.LinkDataMap;
|
||||
import com.nhn.pinpoint.web.dao.MapStatisticsCallerDao;
|
||||
import com.nhn.pinpoint.web.vo.Application;
|
||||
import com.nhn.pinpoint.web.vo.Range;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author koo.taejin
|
||||
*/
|
||||
public class FailureRatesFilter extends AlarmCheckRatesFilter {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
private final Application application;
|
||||
|
||||
public FailureRatesFilter(Application application) {
|
||||
super(null, null);
|
||||
this.application = application;
|
||||
}
|
||||
|
||||
public void check() {
|
||||
}
|
||||
|
||||
// @Override
|
||||
public boolean check(AlarmEvent event) {
|
||||
logger.debug("{} check.", this.getClass().getSimpleName());
|
||||
|
||||
// MapStatisticsCallerDao dao = event.getMapStatisticsCallerDao();
|
||||
MapStatisticsCallerDao dao = null;
|
||||
|
||||
if (dao == null) {
|
||||
logger.warn("{} object is null.", MapStatisticsCallerDao.class.getSimpleName());
|
||||
return false;
|
||||
}
|
||||
|
||||
long startEventTimeMillis = event.getEventStartTimeMillis();
|
||||
|
||||
// 이것도 CheckTImeMillis의 시간이 길면 나누어야 함
|
||||
// 추가적으로 시간이 범위에 있는 만큼 다 안들어 오면 ??
|
||||
// 일단은 아주 단순하게
|
||||
// int continuationTime = getRule().getContinuosTime();
|
||||
int continuationTime = 300000;
|
||||
Range range = Range.createUncheckedRange(startEventTimeMillis - continuationTime, startEventTimeMillis);
|
||||
|
||||
LinkDataMap linkDataMap = dao.selectCaller(application, range);
|
||||
for (LinkData linkData : linkDataMap.getLinkDataList()) {
|
||||
Application toApplication = linkData.getToApplication();
|
||||
// if (toApplication.getServiceType().isTerminal() || toApplication.getServiceType().isUnknown()) {
|
||||
// logger.debug("Application({}) is invalid serviceType. this is skip.", toApplication.getName());
|
||||
// continue;
|
||||
// }
|
||||
|
||||
AgentHistogramList sourceList = linkData.getSourceList();
|
||||
Collection<AgentHistogram> agentHistogramList = sourceList.getAgentHistogramList();
|
||||
|
||||
boolean isSatisFied = checkRates(toApplication, agentHistogramList);
|
||||
if (isSatisFied) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean checkRates(Application toApplication, Collection<AgentHistogram> agentHistogramList) {
|
||||
long totalCount = 0;
|
||||
long successCount = 0;
|
||||
long slowCount = 0;
|
||||
long errorCount = 0;
|
||||
|
||||
for (AgentHistogram agent : agentHistogramList) {
|
||||
for (TimeHistogram time : agent.getTimeHistogram()) {
|
||||
totalCount += time.getTotalCount();
|
||||
successCount += time.getSuccessCount();
|
||||
slowCount += time.getSlowCount();
|
||||
errorCount = time.getErrorCount();
|
||||
}
|
||||
}
|
||||
logger.info("{} -> {} {}/{}(slow={}, error={})", application.getName(), toApplication.getName(), successCount, totalCount, slowCount, errorCount);
|
||||
|
||||
return check(errorCount, totalCount);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected long getDetectedValue() {
|
||||
// TODO Auto-generated method stub
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm.resource;
|
||||
|
||||
public interface MailResource {
|
||||
|
||||
String getPinpointUrl();
|
||||
|
||||
String getUrl();
|
||||
|
||||
String getServiceId();
|
||||
|
||||
String getSenderEmailAddress();
|
||||
|
||||
String getOption();
|
||||
|
||||
String getSubject();
|
||||
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm.resource;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author koo.taejin
|
||||
*/
|
||||
public class MailResourceImpl implements MailResource {
|
||||
|
||||
@Value("#{dataProps['pinpoint.url']}")
|
||||
private String pinpointUrl;
|
||||
@Value("#{dataProps['alarm.mail.url']}")
|
||||
private String url;
|
||||
@Value("#{dataProps['alarm.mail.serviceId']}")
|
||||
private String serviceId;
|
||||
@Value("#{dataProps['alarm.mail.sender.emailAddress']}")
|
||||
private String senderEmailAddress;
|
||||
@Value("#{dataProps['alarm.mail.option']}")
|
||||
private String option;
|
||||
@Value("#{dataProps['alarm.mail.subject']}")
|
||||
private String subject;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public String getPinpointUrl() {
|
||||
return pinpointUrl;
|
||||
}
|
||||
public void setPinpointUrl(String pinpointUrl) {
|
||||
this.pinpointUrl = pinpointUrl;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
public void setUrl(String url) {
|
||||
this.url = url;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getServiceId() {
|
||||
return serviceId;
|
||||
}
|
||||
public void setServiceId(String serviceId) {
|
||||
this.serviceId = serviceId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSenderEmailAddress() {
|
||||
return senderEmailAddress;
|
||||
}
|
||||
public void setSenderEmailAddress(String senderEmailAddress) {
|
||||
this.senderEmailAddress = senderEmailAddress;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getOption() {
|
||||
return option;
|
||||
}
|
||||
public void setOption(String option) {
|
||||
this.option = option;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSubject() {
|
||||
return subject;
|
||||
}
|
||||
public void setSubject(String subject) {
|
||||
this.subject = subject;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "MailResourceImpl [pinpointUrl=" + pinpointUrl + ", url=" + url + ", serviceId=" + serviceId + ", senderEmailAddress=" + senderEmailAddress
|
||||
+ ", option=" + option + ", subject=" + subject + "]";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm.resource;
|
||||
|
||||
public interface SmsResource {
|
||||
|
||||
String getPinpointUrl();
|
||||
|
||||
String getUrl();
|
||||
|
||||
String getServiceId();
|
||||
|
||||
String getSenderPhoneNumber();
|
||||
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm.resource;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author koo.taejin
|
||||
*/
|
||||
public class SmsResourceImpl implements SmsResource {
|
||||
|
||||
@Value("#{dataProps['pinpoint.url']}")
|
||||
private String pinpointUrl;
|
||||
@Value("#{dataProps['alarm.sms.url']}")
|
||||
private String url;
|
||||
@Value("#{dataProps['alarm.sms.serviceId']}")
|
||||
private String serviceId;
|
||||
@Value("#{dataProps['alarm.sms.sender.phoneNumber']}")
|
||||
private String senderPhoneNumber;
|
||||
|
||||
@Override
|
||||
public String getPinpointUrl() {
|
||||
return pinpointUrl;
|
||||
}
|
||||
public void setPinpointUrl(String pinpointUrl) {
|
||||
this.pinpointUrl = pinpointUrl;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
public void setUrl(String url) {
|
||||
this.url = url;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getServiceId() {
|
||||
return serviceId;
|
||||
}
|
||||
public void setServiceId(String serviceId) {
|
||||
this.serviceId = serviceId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSenderPhoneNumber() {
|
||||
return senderPhoneNumber;
|
||||
}
|
||||
public void setSenderPhoneNumber(String senderPhoneNumber) {
|
||||
this.senderPhoneNumber = senderPhoneNumber;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "SmsResourceImpl [pinpointUrl=" + pinpointUrl + ", url=" + url + ", serviceId=" + serviceId + ", senderPhoneNumber=" + senderPhoneNumber + "]";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm.vo;
|
||||
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.type.Alias;
|
||||
|
||||
@Alias("alarmContactGroup")
|
||||
public class AlarmContactGroupResource {
|
||||
|
||||
private Integer id;
|
||||
|
||||
private String alarmContactGroupName;
|
||||
private String alarmContactGroupDescrption;
|
||||
|
||||
private Date registerTime;
|
||||
private String registerEmployeeNumber;
|
||||
|
||||
private Date modifyTime;
|
||||
private String modifyEmployeeNumber;
|
||||
|
||||
private List<AlarmContactResource> alarmContactList;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getAlarmContactGroupName() {
|
||||
return alarmContactGroupName;
|
||||
}
|
||||
|
||||
public void setAlarmContactGroupName(String alarmContactGroupName) {
|
||||
this.alarmContactGroupName = alarmContactGroupName;
|
||||
}
|
||||
|
||||
public String getAlarmContactGroupDescrption() {
|
||||
return alarmContactGroupDescrption;
|
||||
}
|
||||
|
||||
public void setAlarmContactGroupDescrption(String alarmContactGroupDescrption) {
|
||||
this.alarmContactGroupDescrption = alarmContactGroupDescrption;
|
||||
}
|
||||
|
||||
public List<AlarmContactResource> getAlarmContactList() {
|
||||
return alarmContactList;
|
||||
}
|
||||
|
||||
public void setAlarmContactList(List<AlarmContactResource> alarmContactList) {
|
||||
this.alarmContactList = alarmContactList;
|
||||
}
|
||||
|
||||
|
||||
public Date getRegisterTime() {
|
||||
return registerTime;
|
||||
}
|
||||
|
||||
public void setRegisterTime(Date registerTime) {
|
||||
this.registerTime = registerTime;
|
||||
}
|
||||
|
||||
public String getRegisterEmployeeNumber() {
|
||||
return registerEmployeeNumber;
|
||||
}
|
||||
|
||||
public void setRegisterEmployeeNumber(String registerEmployeeNumber) {
|
||||
this.registerEmployeeNumber = registerEmployeeNumber;
|
||||
}
|
||||
|
||||
public Date getModifyTime() {
|
||||
return modifyTime;
|
||||
}
|
||||
|
||||
public void setModifyTime(Date modifyTime) {
|
||||
this.modifyTime = modifyTime;
|
||||
}
|
||||
|
||||
public String getModifyEmployeeNumber() {
|
||||
return modifyEmployeeNumber;
|
||||
}
|
||||
|
||||
public void setModifyEmployeeNumber(String modifyEmployeeNumber) {
|
||||
this.modifyEmployeeNumber = modifyEmployeeNumber;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AlarmContactGroupResource [id=" + id + ", alarmContactGroupName=" + alarmContactGroupName + ", alarmContactGroupDescrption="
|
||||
+ alarmContactGroupDescrption + ", registerTime=" + registerTime + ", registerEmployeeNumber=" + registerEmployeeNumber + ", modifyTime="
|
||||
+ modifyTime + ", modifyEmployeeNumber=" + modifyEmployeeNumber + ", alarmContactList=" + alarmContactList + "]";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm.vo;
|
||||
|
||||
import org.apache.ibatis.type.Alias;
|
||||
|
||||
@Alias("alarmContact")
|
||||
public class AlarmContactResource {
|
||||
|
||||
private Integer id;
|
||||
private Integer alarmContactGroupId;
|
||||
private String phoneNum;
|
||||
private String emailAddress;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
public Integer getAlarmContactGroupId() {
|
||||
return alarmContactGroupId;
|
||||
}
|
||||
public void setAlarmContactGroupId(Integer alarmContactGroupId) {
|
||||
this.alarmContactGroupId = alarmContactGroupId;
|
||||
}
|
||||
public String getPhoneNum() {
|
||||
return phoneNum;
|
||||
}
|
||||
public void setPhoneNum(String phoneNum) {
|
||||
this.phoneNum = phoneNum;
|
||||
}
|
||||
public String getEmailAddress() {
|
||||
return emailAddress;
|
||||
}
|
||||
public void setEmailAddress(String emailAddress) {
|
||||
this.emailAddress = emailAddress;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AlarmContactResource [id=" + id + ", alarmContactGroupId=" + alarmContactGroupId + ", phoneNum=" + phoneNum + ", emailAddress=" + emailAddress
|
||||
+ "]";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm.vo;
|
||||
|
||||
import org.apache.ibatis.type.Alias;
|
||||
|
||||
@Alias("alarm")
|
||||
public class AlarmResource {
|
||||
|
||||
private Integer id;
|
||||
|
||||
private String agentId;
|
||||
|
||||
private String alarmGroupName;
|
||||
private String alarmGroupDescrption;
|
||||
|
||||
private AlarmRuleGroupResource alarmRuleGroup;
|
||||
private AlarmContactGroupResource alarmContactGroup;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getAgentId() {
|
||||
return agentId;
|
||||
}
|
||||
|
||||
public void setAgentId(String agentId) {
|
||||
this.agentId = agentId;
|
||||
}
|
||||
|
||||
public String getAlarmGroupName() {
|
||||
return alarmGroupName;
|
||||
}
|
||||
public void setAlarmGroupName(String alarmGroupName) {
|
||||
this.alarmGroupName = alarmGroupName;
|
||||
}
|
||||
|
||||
public String getAlarmGroupDescrption() {
|
||||
return alarmGroupDescrption;
|
||||
}
|
||||
public void setAlarmGroupDescrption(String alarmGroupDescrption) {
|
||||
this.alarmGroupDescrption = alarmGroupDescrption;
|
||||
}
|
||||
|
||||
public AlarmRuleGroupResource getAlarmRuleGroup() {
|
||||
return alarmRuleGroup;
|
||||
}
|
||||
|
||||
public void setAlarmRuleGroup(AlarmRuleGroupResource alarmRuleGroup) {
|
||||
this.alarmRuleGroup = alarmRuleGroup;
|
||||
}
|
||||
|
||||
public AlarmContactGroupResource getAlarmContactGroup() {
|
||||
return alarmContactGroup;
|
||||
}
|
||||
|
||||
public void setAlarmContactGroup(AlarmContactGroupResource alarmContactGroup) {
|
||||
this.alarmContactGroup = alarmContactGroup;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AlarmResource [id=" + id + ", agentId=" + agentId + ", alarmGroupName=" + alarmGroupName + ", alarmGroupDescrption=" + alarmGroupDescrption
|
||||
+ ", alarmRuleGroup=" + alarmRuleGroup + ", alarmContactGroup=" + alarmContactGroup + "]";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm.vo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.type.Alias;
|
||||
|
||||
@Alias("alarmRuleGroup")
|
||||
public class AlarmRuleGroupResource {
|
||||
|
||||
private Integer id;
|
||||
|
||||
private String alarmRuleGroupName;
|
||||
private String alarmRuleGroupDescrption;
|
||||
|
||||
private List<AlarmRuleResource> alarmRuleList;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getAlarmRuleGroupName() {
|
||||
return alarmRuleGroupName;
|
||||
}
|
||||
|
||||
public void setAlarmRuleGroupName(String alarmRuleGroupName) {
|
||||
this.alarmRuleGroupName = alarmRuleGroupName;
|
||||
}
|
||||
|
||||
public String getAlarmRuleGroupDescrption() {
|
||||
return alarmRuleGroupDescrption;
|
||||
}
|
||||
|
||||
public void setAlarmRuleGroupDescrption(String alarmRuleGroupDescrption) {
|
||||
this.alarmRuleGroupDescrption = alarmRuleGroupDescrption;
|
||||
}
|
||||
|
||||
public List<AlarmRuleResource> getAlarmRuleList() {
|
||||
return alarmRuleList;
|
||||
}
|
||||
|
||||
public void setAlarmRuleList(List<AlarmRuleResource> alarmRuleList) {
|
||||
this.alarmRuleList = alarmRuleList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AlarmRuleGroupResource [id=" + id + ", alarmRuleGroupName=" + alarmRuleGroupName + ", alarmRuleGroupDescrption="
|
||||
+ alarmRuleGroupDescrption + ", alarmRuleList=" + alarmRuleList + "]";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,147 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm.vo;
|
||||
|
||||
import org.apache.ibatis.type.Alias;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.MainCategory;
|
||||
import com.nhn.pinpoint.web.alarm.SubCategory;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author koo.taejin
|
||||
*/
|
||||
@Alias("alarmRule")
|
||||
public class AlarmRuleResource {
|
||||
|
||||
private Integer id;
|
||||
private Integer alarmRuleGroupId;
|
||||
private Integer alarmRuleSubCategoryId;
|
||||
private Integer thresholdRule;
|
||||
private boolean compareRule;
|
||||
private Integer continuosTime;
|
||||
private String alarmRuleName;
|
||||
private String alarmRuleDescrption;
|
||||
|
||||
// private MainCategory mainCategory;
|
||||
// private SubCategory subCategory;
|
||||
|
||||
private String mainCategory;
|
||||
private String subCategory;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Integer getAlarmRuleGroupId() {
|
||||
return alarmRuleGroupId;
|
||||
}
|
||||
|
||||
public void setAlarmRuleGroupId(Integer alarmRuleGroupId) {
|
||||
this.alarmRuleGroupId = alarmRuleGroupId;
|
||||
}
|
||||
|
||||
public Integer getAlarmRuleSubCategoryId() {
|
||||
return alarmRuleSubCategoryId;
|
||||
}
|
||||
|
||||
public void setAlarmRuleSubCategoryId(Integer alarmRuleSubCategoryId) {
|
||||
this.alarmRuleSubCategoryId = alarmRuleSubCategoryId;
|
||||
}
|
||||
|
||||
public Integer getThresholdRule() {
|
||||
return thresholdRule;
|
||||
}
|
||||
|
||||
public void setThresholdRule(Integer thresholdRule) {
|
||||
this.thresholdRule = thresholdRule;
|
||||
}
|
||||
|
||||
public boolean isCompareRule() {
|
||||
return compareRule;
|
||||
}
|
||||
|
||||
public void setCompareRule(boolean compareRule) {
|
||||
this.compareRule = compareRule;
|
||||
}
|
||||
|
||||
public Integer getContinuosTime() {
|
||||
return continuosTime;
|
||||
}
|
||||
|
||||
public void setContinuosTime(Integer continuosTime) {
|
||||
this.continuosTime = continuosTime;
|
||||
}
|
||||
|
||||
public String getAlarmRuleName() {
|
||||
return alarmRuleName;
|
||||
}
|
||||
|
||||
public void setAlarmRuleName(String alarmRuleName) {
|
||||
this.alarmRuleName = alarmRuleName;
|
||||
}
|
||||
|
||||
public String getAlarmRuleDescrption() {
|
||||
return alarmRuleDescrption;
|
||||
}
|
||||
|
||||
public void setAlarmRuleDescrption(String alarmRuleDescrption) {
|
||||
this.alarmRuleDescrption = alarmRuleDescrption;
|
||||
}
|
||||
|
||||
|
||||
public MainCategory getMainCategory() {
|
||||
return MainCategory.getValue(mainCategory);
|
||||
}
|
||||
|
||||
public void setMainCategory(String mainCategory) {
|
||||
this.mainCategory = mainCategory;
|
||||
}
|
||||
|
||||
public SubCategory getSubCategory() {
|
||||
return SubCategory.getValue(subCategory);
|
||||
}
|
||||
|
||||
public void setSubCategory(String subCategory) {
|
||||
this.subCategory = subCategory;
|
||||
}
|
||||
|
||||
public String ruleToString() {
|
||||
StringBuilder rule = new StringBuilder();
|
||||
|
||||
rule.append(getMainCategory().getName() + " ");
|
||||
rule.append(getSubCategory().getName() + " ");
|
||||
rule.append(">=" + thresholdRule + getSubCategory().getUnit() + " ");
|
||||
rule.append("(" + getContinuosTime() + "ms)");
|
||||
|
||||
return rule.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AlarmRuleResource [id=" + id + ", alarmRuleGroupId=" + alarmRuleGroupId + ", alarmRuleSubCategoryId=" + alarmRuleSubCategoryId
|
||||
+ ", thresholdRule=" + thresholdRule + ", compareRule=" + compareRule + ", continuosTime=" + continuosTime + ", alarmRuleName=" + alarmRuleName
|
||||
+ ", alarmRuleDescrption=" + alarmRuleDescrption + ", mainCategory=" + mainCategory + ", subCategory=" + subCategory + "]";
|
||||
}
|
||||
|
||||
|
||||
// public String getMainCategory() {
|
||||
// return mainCategory;
|
||||
// }
|
||||
//
|
||||
// public void setMainCategory(String mainCategory) {
|
||||
// this.mainCategory = mainCategory;
|
||||
// }
|
||||
//
|
||||
// public String getSubCategory() {
|
||||
// return subCategory;
|
||||
// }
|
||||
//
|
||||
// public void setSubCategory(String subCategory) {
|
||||
// this.subCategory = subCategory;
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
@@ -2,39 +2,27 @@ package com.nhn.pinpoint.web.dao;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmContactGroupResource;
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmContactResource;
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmResource;
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmRuleGroupResource;
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmRuleResource;
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmEmp;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
|
||||
|
||||
public interface AlarmResourceDao {
|
||||
|
||||
|
||||
public List<Rule> selectAppRule(String applicationName);
|
||||
|
||||
public void insertAppRule(List<Rule> rules);
|
||||
|
||||
public void deleteAppRule(String applicationName);
|
||||
|
||||
public List<String> selectEmpGroupPhoneNumber(String empGroup);
|
||||
|
||||
public List<String> selectEmpGroupEmail(String empGroup);
|
||||
|
||||
int selectAlarmCount();
|
||||
public List<String> selectEmpGroupName();
|
||||
|
||||
List<AlarmResource> selectAlarmList();
|
||||
public List<AlarmEmp> selectEmpGroupMember(String alarmGroup);
|
||||
|
||||
List<AlarmRuleResource> selectAlarmRuleList();
|
||||
|
||||
List<AlarmRuleGroupResource> selectAlarmRuleGroupList();
|
||||
|
||||
void insertAlarmContact(AlarmContactResource resource);
|
||||
List<AlarmContactResource> selectAlarmContactList();
|
||||
void updateAlarmCountact(AlarmContactResource resource);
|
||||
void deleteAlarmCountact(AlarmContactResource resource);
|
||||
|
||||
void insertAlarmContactGroup(AlarmContactGroupResource resource);
|
||||
List<AlarmContactGroupResource> selectAlarmContactGroupList();
|
||||
void updateAlarmContactGroup(AlarmContactGroupResource resource);
|
||||
void deleteAlarmCountactGroup(AlarmContactGroupResource resource);
|
||||
public void insertEmpGroupMember(List<AlarmEmp> emps);
|
||||
|
||||
|
||||
public void deleteEmpGroupMember(String groupName);
|
||||
}
|
||||
|
||||
@@ -7,12 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmContactGroupResource;
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmContactResource;
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmEmp;
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmResource;
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmRuleGroupResource;
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmRuleResource;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
import com.nhn.pinpoint.web.dao.AlarmResourceDao;
|
||||
|
||||
@@ -64,65 +59,4 @@ public class MySqlAlarmResourceDao implements AlarmResourceDao {
|
||||
public void deleteEmpGroupMember(String groupName) {
|
||||
getSqlSessionTemplate().insert(NAMESPACE + "deleteAlarmGroupMember", groupName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int selectAlarmCount() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AlarmResource> selectAlarmList() {
|
||||
return getSqlSessionTemplate().selectList(NAMESPACE + "selectAlarmList");
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AlarmRuleResource> selectAlarmRuleList() {
|
||||
return getSqlSessionTemplate().selectList(NAMESPACE + "selectAlarmRuleList", 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AlarmRuleGroupResource> selectAlarmRuleGroupList() {
|
||||
return getSqlSessionTemplate().selectList(NAMESPACE + "selectAlarmRuleGroupList", 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AlarmContactResource> selectAlarmContactList() {
|
||||
return getSqlSessionTemplate().selectList(NAMESPACE + "selectAlarmContactList", 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AlarmContactGroupResource> selectAlarmContactGroupList() {
|
||||
return getSqlSessionTemplate().selectList(NAMESPACE + "selectAlarmContactGroupList", 1);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void insertAlarmContact(AlarmContactResource resource) {
|
||||
getSqlSessionTemplate().insert(NAMESPACE + "insertAlarmContact", resource);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateAlarmCountact(AlarmContactResource resource) {
|
||||
getSqlSessionTemplate().update(NAMESPACE + "updateAlarmContact", resource);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteAlarmCountact(AlarmContactResource resource) {
|
||||
getSqlSessionTemplate().update(NAMESPACE + "deleteAlarmContact", resource.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertAlarmContactGroup(AlarmContactGroupResource resource) {
|
||||
getSqlSessionTemplate().insert(NAMESPACE + "insertAlarmContactGroup", resource);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateAlarmContactGroup(AlarmContactGroupResource resource) {
|
||||
getSqlSessionTemplate().insert(NAMESPACE + "updateAlarmContactGroup", resource);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteAlarmCountactGroup(AlarmContactGroupResource resource) {
|
||||
getSqlSessionTemplate().update(NAMESPACE + "deleteAlarmContactGroup", resource.getId());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
package com.nhn.pinpoint.web.scheduler;
|
||||
|
||||
|
||||
public interface AlarmScheduler {
|
||||
|
||||
void initialize();
|
||||
|
||||
void execute();
|
||||
|
||||
}
|
||||
@@ -1,226 +0,0 @@
|
||||
package com.nhn.pinpoint.web.scheduler;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.AlarmEvent;
|
||||
import com.nhn.pinpoint.web.alarm.AlarmJob;
|
||||
import com.nhn.pinpoint.web.alarm.AlarmJobsRepository;
|
||||
import com.nhn.pinpoint.web.alarm.DefaultAlarmEvent;
|
||||
import com.nhn.pinpoint.web.alarm.DefaultAlarmJob;
|
||||
import com.nhn.pinpoint.web.alarm.DefaultAlarmJobsRepository;
|
||||
import com.nhn.pinpoint.web.alarm.MainCategory;
|
||||
import com.nhn.pinpoint.web.alarm.SubCategory;
|
||||
import com.nhn.pinpoint.web.alarm.filter.AlarmCheckFilter;
|
||||
import com.nhn.pinpoint.web.alarm.filter.AlarmMailSendFilter;
|
||||
import com.nhn.pinpoint.web.alarm.filter.AlarmSendFilter;
|
||||
import com.nhn.pinpoint.web.alarm.filter.AlarmSmsSendFilter;
|
||||
import com.nhn.pinpoint.web.alarm.resource.MailResource;
|
||||
import com.nhn.pinpoint.web.alarm.resource.SmsResource;
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmContactGroupResource;
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmContactResource;
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmResource;
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmRuleGroupResource;
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmRuleResource;
|
||||
import com.nhn.pinpoint.web.dao.AlarmResourceDao;
|
||||
import com.nhn.pinpoint.web.dao.ApplicationIndexDao;
|
||||
import com.nhn.pinpoint.web.dao.MapStatisticsCallerDao;
|
||||
import com.nhn.pinpoint.web.vo.Application;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author koo.taejin
|
||||
*/
|
||||
public class DefaultAlarmScheduler implements AlarmScheduler {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
private AlarmJobsRepository repository;
|
||||
|
||||
@Autowired
|
||||
MailResource mailResource;
|
||||
|
||||
@Autowired
|
||||
SmsResource smsResource;
|
||||
|
||||
@Autowired
|
||||
private AlarmResourceDao alarmResourceDao;
|
||||
|
||||
@Autowired
|
||||
private ApplicationIndexDao applicationIndexDao;
|
||||
|
||||
@Autowired
|
||||
private MapStatisticsCallerDao mapStatisticsCallerDao;
|
||||
|
||||
@Override
|
||||
public void initialize() {
|
||||
logger.info("{} initialize.", this.getClass().getName());
|
||||
|
||||
DefaultAlarmJobsRepository repository = new DefaultAlarmJobsRepository();
|
||||
|
||||
List<Application> applicationList = applicationIndexDao.selectAllApplicationNames();
|
||||
List<AlarmResource> alarmResourceList = alarmResourceDao.selectAlarmList();
|
||||
|
||||
for (AlarmResource alarmResource : alarmResourceList) {
|
||||
String agentId = alarmResource.getAgentId();
|
||||
|
||||
Application application = findApplication(agentId, applicationList);
|
||||
if (application == null) {
|
||||
logger.warn("Can't find Application({}).", agentId);
|
||||
continue;
|
||||
}
|
||||
|
||||
AlarmJob job = createAlarmJob(application, alarmResource);
|
||||
if (job == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
repository.addAlarmJob(application, job);
|
||||
}
|
||||
|
||||
logger.info("{} initilization success(Registred {} Jobs). ", this.getClass().getName(), repository.getTotalJobCount());
|
||||
|
||||
synchronized (this) {
|
||||
this.repository = repository;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute() {
|
||||
logger.info("{} execute.", this.getClass().getName());
|
||||
|
||||
AlarmEvent event = createAlarmEvent();
|
||||
|
||||
synchronized (this) {
|
||||
if (this.repository == null) {
|
||||
logger.warn("{}'s repository is null. this job will be skipped.", this.getClass().getName());
|
||||
return;
|
||||
}
|
||||
|
||||
int totalJobCount = this.repository.getTotalJobCount();
|
||||
|
||||
List<Application> applicationList = this.repository.getRegistedApplicationList();
|
||||
for (Application application : applicationList) {
|
||||
executeEachApplication(application, event, totalJobCount);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private Application findApplication(String applicationName, List<Application> applicationList) {
|
||||
for (Application application : applicationList) {
|
||||
if (application.getName().equalsIgnoreCase(applicationName)) {
|
||||
return application;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private AlarmJob createAlarmJob(Application application, AlarmResource resource) {
|
||||
DefaultAlarmJob alarmJob = new DefaultAlarmJob(application);
|
||||
|
||||
String applicationName = application.getName();
|
||||
String alarmName = resource.getAlarmGroupName();
|
||||
|
||||
AlarmContactGroupResource contactGroup = resource.getAlarmContactGroup();
|
||||
if (contactGroup == null || CollectionUtils.isEmpty(contactGroup.getAlarmContactList())) {
|
||||
logger.warn("Application={}, Rule={} does not have contact resource.", applicationName, alarmName);
|
||||
return null;
|
||||
}
|
||||
List<AlarmContactResource> contactResourceList = contactGroup.getAlarmContactList();
|
||||
List<AlarmSendFilter> alarmSendFilterList = createAlarmSendFilter(application, contactResourceList);
|
||||
if (CollectionUtils.isEmpty(alarmSendFilterList)) {
|
||||
logger.warn("Application={}, Rule={} can't find valid contact resource.", applicationName, alarmName);
|
||||
return null;
|
||||
}
|
||||
alarmJob.addFilter(alarmSendFilterList);
|
||||
|
||||
AlarmRuleGroupResource ruleGroup = resource.getAlarmRuleGroup();
|
||||
if (ruleGroup == null || CollectionUtils.isEmpty(ruleGroup.getAlarmRuleList())) {
|
||||
logger.warn("Application={}, Rule={} does not have rule resource.", applicationName, alarmName);
|
||||
return null;
|
||||
}
|
||||
List<AlarmRuleResource> alarmRuleList = ruleGroup.getAlarmRuleList();
|
||||
List<AlarmCheckFilter> alarmCheckFilterList = createAlarmCheckFilter(application, alarmRuleList);
|
||||
// alarmJob.addFilter(alarmCheckFilterList);
|
||||
if (CollectionUtils.isEmpty(alarmCheckFilterList)) {
|
||||
logger.warn("Application={}, Rule={} can't find valid rule resource.", applicationName, alarmName);
|
||||
return null;
|
||||
}
|
||||
|
||||
return alarmJob;
|
||||
}
|
||||
|
||||
private List<AlarmSendFilter> createAlarmSendFilter(Application application, List<AlarmContactResource> contactResourceList) {
|
||||
List<String> phoneNumberList = new ArrayList<String>();
|
||||
List<String> emailAddressList = new ArrayList<String>();
|
||||
|
||||
for (AlarmContactResource contactResource : contactResourceList) {
|
||||
String phoneNumber = contactResource.getPhoneNum();
|
||||
if (!StringUtils.isEmpty(phoneNumber)) {
|
||||
phoneNumberList.add(phoneNumber);
|
||||
}
|
||||
|
||||
String emailAddress = contactResource.getEmailAddress();
|
||||
if (!StringUtils.isEmpty(emailAddress)) {
|
||||
emailAddressList.add(emailAddress);
|
||||
}
|
||||
}
|
||||
|
||||
List<AlarmSendFilter> alarmSendFilter = new ArrayList<AlarmSendFilter>();
|
||||
|
||||
if (!CollectionUtils.isEmpty(phoneNumberList)) {
|
||||
AlarmSendFilter smsSendFilter = new AlarmSmsSendFilter(application, smsResource, phoneNumberList);
|
||||
alarmSendFilter.add(smsSendFilter);
|
||||
}
|
||||
|
||||
if (!CollectionUtils.isEmpty(emailAddressList)) {
|
||||
AlarmSendFilter emailSendFilter = new AlarmMailSendFilter(application, mailResource, emailAddressList);
|
||||
alarmSendFilter.add(emailSendFilter);
|
||||
}
|
||||
|
||||
return alarmSendFilter;
|
||||
}
|
||||
|
||||
private List<AlarmCheckFilter> createAlarmCheckFilter(Application application, List<AlarmRuleResource> ruleResourceList) {
|
||||
List<AlarmCheckFilter> alarmCheckFilterList = new ArrayList<AlarmCheckFilter>();
|
||||
|
||||
for (AlarmRuleResource ruleResource : ruleResourceList) {
|
||||
MainCategory mainCategory = ruleResource.getMainCategory();
|
||||
SubCategory subCategory = ruleResource.getSubCategory();
|
||||
|
||||
AlarmCheckFilter alarmCheckFilter = subCategory.createAlarmFilter(application, mainCategory, ruleResource);
|
||||
if (alarmCheckFilter == null) {
|
||||
logger.warn("{}({}) can't build Filter.", ruleResource.getAlarmRuleName(), ruleResource.getId());
|
||||
continue;
|
||||
}
|
||||
alarmCheckFilterList.add(alarmCheckFilter);
|
||||
}
|
||||
|
||||
return alarmCheckFilterList;
|
||||
}
|
||||
|
||||
private AlarmEvent createAlarmEvent() {
|
||||
// DefaultAlarmEvent event = new DefaultAlarmEvent(System.currentTimeMillis(), mapStatisticsCallerDao);
|
||||
DefaultAlarmEvent event = null;
|
||||
return event;
|
||||
}
|
||||
|
||||
private void executeEachApplication(Application application, AlarmEvent event, int totalJobCount) {
|
||||
List<AlarmJob> jobList = repository.getAlarmJob(application);
|
||||
AtomicInteger index = new AtomicInteger(1);
|
||||
for (AlarmJob job : jobList) {
|
||||
logger.debug("{} ({}/{}) jobs start(TotalJobCount={}).", application.getName(), index.getAndIncrement(), jobList.size(), totalJobCount);
|
||||
job.execute(event);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans
|
||||
xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:p="http://www.springframework.org/schema/p"
|
||||
xmlns:task="http://www.springframework.org/schema/task"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="
|
||||
http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/task
|
||||
http://www.springframework.org/schema/task/spring-task-3.0.xsd
|
||||
">
|
||||
|
||||
<description>Spring Batch infrastructure beans.</description>
|
||||
|
||||
<bean id="alarmScheduler" class="com.nhn.pinpoint.web.scheduler.DefaultAlarmScheduler" init-method="initialize"/>
|
||||
<task:scheduler id="batchSchduler" pool-size="2" />
|
||||
|
||||
<task:scheduled-tasks scheduler="batchSchduler">
|
||||
<task:scheduled ref="alarmScheduler" method="execute" fixed-delay="300000" /> <!-- 5분 -->
|
||||
<task:scheduled ref="alarmScheduler" method="initialize" fixed-delay="1800000" /> <!-- 30분 -->
|
||||
</task:scheduled-tasks>
|
||||
|
||||
</beans>
|
||||
|
||||
@@ -3,162 +3,6 @@
|
||||
|
||||
<mapper namespace="com.nhn.pinpoint.web.dao.AlarmResourceDao">
|
||||
|
||||
|
||||
<resultMap id="alarmMap" type="alarm">
|
||||
<result property="id" column="id"/>
|
||||
<result property="alarmGroupName" column="alrm_grp_nm" />
|
||||
<result property="alarmGroupDescrption" column="alrm_grp_desc" />
|
||||
<result property="agentId" column="agt_id" />
|
||||
|
||||
<association property="alarmRuleGroup" column="alrm_rule_grp_id" javaType="alarmRuleGroup" select="selectAlarmRuleGroupList"/>
|
||||
<association property="alarmContactGroup" column="alrm_cntt_grp_id" javaType="alarmContactGroup" select="selectAlarmContactGroupList"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="alarmRuleMap" type="alarmRule">
|
||||
<result property="id" column="id"/>
|
||||
<result property="thresholdRule" column="thrhd_rule" />
|
||||
<result property="compareRule" column="cmpr_rule" />
|
||||
<result property="continuosTime" column="cntu_tm" />
|
||||
<result property="alarmRuleName" column="alrm_rule_nm" />
|
||||
<result property="alarmRuleDescrption" column="alrm_rule_desc" />
|
||||
<result property="subCategory" column="sb_catg_nm" />
|
||||
<result property="mainCategory" column="main_catg_nm" />
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="alarmRuleGroupMap" type="alarmRuleGroup">
|
||||
<result property="id" column="id"/>
|
||||
<result property="alarmRuleGroupName" column="alrm_rule_grp_nm" />
|
||||
<result property="alarmRuleGroupDescrption" column="alrm_rule_grp_desc" />
|
||||
<collection property="alarmRuleList" javaType="ArrayList" column="id" ofType="alarmRule" select="selectAlarmRuleList"> </collection>
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="alarmContactMap" type="alarmContact">
|
||||
<result property="id" column="id"/>
|
||||
<result property="phoneNum" column="phn_no" />
|
||||
<result property="emailAddress" column="mail_addr" />
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="alarmContactGroupMap" type="alarmContactGroup">
|
||||
<result property="id" column="id"/>
|
||||
<result property="alarmId" column="alrm_grp_id" />
|
||||
<result property="alarmContactGroupName" column="alrm_cntt_grp_nm" />
|
||||
<result property="alarmContactGroupDescrption" column="alrm_cntt_grp_desc" />
|
||||
|
||||
<result property="registerTime" column="reg_ymd" />
|
||||
<result property="registerEmployeeNumber" column="reg_emp_no" />
|
||||
<result property="modifyTime" column="mod_ymd" />
|
||||
<result property="modifyEmployeeNumber" column="mod_emp_no" />
|
||||
|
||||
<collection property="alarmContactList" javaType="ArrayList" column="id" ofType="alarmContact" select="selectAlarmContactList"> </collection>
|
||||
</resultMap>
|
||||
|
||||
<select id="selectAlarmList" resultMap="alarmMap">
|
||||
SELECT
|
||||
*
|
||||
FROM alrm_grp
|
||||
</select>
|
||||
|
||||
<select id="selectAlarmRuleList" resultMap="alarmRuleMap" parameterType="int">
|
||||
SELECT
|
||||
rule.id AS id,
|
||||
rule.alrm_rule_grp_id AS alarmRuleGroupId,
|
||||
rule.alrm_rule_sb_catg_id AS alrm_rule_sb_catg_id,
|
||||
rule.thrhd_rule AS thrhd_rule,
|
||||
rule.cmpr_rule AS cmpr_rule,
|
||||
rule.cntu_tm AS cntu_tm,
|
||||
rule.alrm_rule_nm AS alrm_rule_nm,
|
||||
rule.alrm_rule_desc AS alrm_rule_desc,
|
||||
sub_category.sb_catg_nm AS sb_catg_nm,
|
||||
main_category.catg_nm AS main_catg_nm
|
||||
|
||||
FROM alrm_rule_info AS rule
|
||||
INNER JOIN alrm_rule_sb_catg AS sub_category ON rule.alrm_rule_sb_catg_id = sub_category.id
|
||||
INNER JOIN alrm_rule_catg AS main_category ON sub_category.prnt_catg_id = main_category.id
|
||||
|
||||
WHERE rule.alrm_rule_grp_id = #{id}
|
||||
</select>
|
||||
|
||||
<select id="selectAlarmRuleGroupList" resultMap="alarmRuleGroupMap" parameterType="int">
|
||||
SELECT
|
||||
*
|
||||
FROM alrm_rule_grp
|
||||
|
||||
WHERE id = #{id}
|
||||
</select>
|
||||
|
||||
<select id="selectAlarmContactList" resultMap="alarmContactMap" parameterType="int">
|
||||
SELECT
|
||||
*
|
||||
FROM alrm_cntt_info
|
||||
|
||||
WHERE alrm_cntt_grp_id = #{id}
|
||||
</select>
|
||||
|
||||
<select id="selectAlarmContactGroupList" resultMap="alarmContactGroupMap" parameterType="int">
|
||||
SELECT
|
||||
*
|
||||
FROM alrm_cntt_grp
|
||||
|
||||
WHERE id = #{id}
|
||||
</select>
|
||||
|
||||
<insert id="insertAlarmContact" parameterType="alarmContact" useGeneratedKeys="true" keyProperty="id">
|
||||
INSERT INTO alrm_cntt_info (
|
||||
alrm_cntt_grp_id,
|
||||
phn_no,
|
||||
mail_addr
|
||||
) VALUES (
|
||||
#{alarmContactGroupId},
|
||||
#{phoneNum},
|
||||
#{emailAddress}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<update id="updateAlarmContact" parameterType="alarmContact">
|
||||
UPDATE alrm_cntt_info
|
||||
SET alrm_cntt_grp_id = #{alarmContactGroupId},
|
||||
phn_no = #{phoneNum},
|
||||
mail_addr = #{emailAddress}
|
||||
WHERE id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteAlarmContact" parameterType="int">
|
||||
DELETE FROM alrm_cntt_info
|
||||
WHERE id = #{id}
|
||||
</delete>
|
||||
|
||||
<insert id="insertAlarmContactGroup" parameterType="alarmContactGroup" useGeneratedKeys="true" keyProperty="id">
|
||||
INSERT INTO alrm_cntt_grp (
|
||||
alrm_cntt_grp_nm,
|
||||
alrm_cntt_grp_desc,
|
||||
reg_ymd,
|
||||
reg_emp_no,
|
||||
mod_ymd,
|
||||
mod_emp_no
|
||||
) VALUES (
|
||||
#{alarmContactGroupName},
|
||||
#{alarmContactGroupDescrption},
|
||||
now(),
|
||||
#{registerEmployeeNumber},
|
||||
now(),
|
||||
#{modifyEmployeeNumber}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<update id="updateAlarmContactGroup" parameterType="alarmContactGroup">
|
||||
UPDATE alrm_cntt_grp
|
||||
SET alrm_cntt_grp_nm = #{alarmContactGroupName},
|
||||
alrm_cntt_grp_desc = #{alarmContactGroupDescrption},
|
||||
mod_ymd = CURRENT_DATETIME,
|
||||
mod_emp_no = #{modifyEmployeeNumber}
|
||||
WHERE id = #{id}
|
||||
</update>
|
||||
|
||||
<update id="deleteAlarmContactGroup" parameterType="int">
|
||||
DELETE FROM alrm_cntt_grp
|
||||
WHERE id = #{id}
|
||||
</update>
|
||||
|
||||
<select id="selectRules" resultType="rule" parameterType="String">
|
||||
SELECT *
|
||||
FROM alarm_rule
|
||||
|
||||
@@ -32,95 +32,4 @@ public class AlarmJobTest {
|
||||
parameters.put("schedule.scheduledFireTime", new JobParameter(new Date()));
|
||||
return new JobParameters(parameters);
|
||||
}
|
||||
|
||||
// private final int threshold = 100;
|
||||
// private final int ratesThreshold = 50;
|
||||
//
|
||||
// private AlarmRuleResource checkCountRule;
|
||||
// private AlarmRuleResource checkRateRule;
|
||||
//
|
||||
// @Before
|
||||
// public void setup() {
|
||||
// this.checkCountRule = new AlarmRuleResource();
|
||||
// checkCountRule.setThresholdRule(threshold);
|
||||
//
|
||||
// this.checkRateRule = new AlarmRuleResource();
|
||||
// checkRateRule.setThresholdRule(ratesThreshold);
|
||||
// }
|
||||
//
|
||||
// @Test
|
||||
// public void simpleTest1() {
|
||||
// int count = 50;
|
||||
// int totalCount = 100;
|
||||
//
|
||||
// boolean isSuccess = execute(count, totalCount);
|
||||
//
|
||||
// Assert.assertFalse(isSuccess);
|
||||
// }
|
||||
//
|
||||
// @Test
|
||||
// public void simpleTest2() {
|
||||
// int count = 150;
|
||||
// int totalCount = 400;
|
||||
//
|
||||
// boolean isSuccess = execute(count, totalCount);
|
||||
//
|
||||
// Assert.assertFalse(isSuccess);
|
||||
// }
|
||||
//
|
||||
// @Test
|
||||
// public void simpleTest3() {
|
||||
// int count = 150;
|
||||
// int totalCount = 200;
|
||||
//
|
||||
// boolean isSuccess = execute(count, totalCount);
|
||||
//
|
||||
// Assert.assertTrue(isSuccess);
|
||||
// }
|
||||
//
|
||||
// private boolean execute(int count, int totalCount) {
|
||||
// Application application = new Application("TEST", ServiceType.UNDEFINED);
|
||||
// DefaultAlarmJob job = new DefaultAlarmJob(application);
|
||||
//
|
||||
// SimpleCheckCountFilter checkCountFilter = new SimpleCheckCountFilter(count);
|
||||
// checkCountFilter.initialize(checkCountRule);
|
||||
//
|
||||
// SimpleCheckRateFilter checkRateFilter = new SimpleCheckRateFilter(count, totalCount);
|
||||
// checkRateFilter.initialize(checkRateRule);
|
||||
//
|
||||
// job.addFilter(checkCountFilter);
|
||||
// job.addFilter(checkRateFilter);
|
||||
//
|
||||
// return job.execute(null);
|
||||
// }
|
||||
//
|
||||
// class SimpleCheckCountFilter extends AlarmCheckCountFilter {
|
||||
// private final int count;
|
||||
//
|
||||
// public SimpleCheckCountFilter(int count) {
|
||||
// super(0);
|
||||
// this.count = count;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void check() {
|
||||
// decideResult(count);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// class SimpleCheckRateFilter extends AlarmCheckRatesFilter {
|
||||
// private final int count;
|
||||
// private final int totalCount;
|
||||
//
|
||||
// public SimpleCheckRateFilter(int count, int totalCount) {
|
||||
// this.count = count;
|
||||
// this.totalCount = totalCount;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void check() {
|
||||
// check(count, totalCount);
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
@@ -1,98 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm;
|
||||
|
||||
import junit.framework.Assert;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.filter.AlarmCheckCountFilter;
|
||||
import com.nhn.pinpoint.web.alarm.filter.AlarmCheckRatesFilter;
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmRuleResource;
|
||||
|
||||
public class CheckFilterTest {
|
||||
//
|
||||
// private final int threshold = 100;
|
||||
// private final int ratesThreshold = 50;
|
||||
//
|
||||
// private AlarmRuleResource checkCountRule;
|
||||
// private AlarmRuleResource checkRateRule;
|
||||
//
|
||||
// @Before
|
||||
// public void setup() {
|
||||
// this.checkCountRule = new AlarmRuleResource();
|
||||
// checkCountRule.setThresholdRule(threshold);
|
||||
//
|
||||
// this.checkRateRule = new AlarmRuleResource();
|
||||
// checkRateRule.setThresholdRule(ratesThreshold);
|
||||
// }
|
||||
//
|
||||
// @Test
|
||||
// public void checkCountTest1() {
|
||||
// SimpleCheckCountFilter simpleCheckFilter = new SimpleCheckCountFilter(30);
|
||||
// simpleCheckFilter.initialize(checkCountRule);
|
||||
//
|
||||
// simpleCheckFilter.check();
|
||||
// boolean isSuccess = simpleCheckFilter.isDetected();
|
||||
// Assert.assertFalse(isSuccess);
|
||||
// }
|
||||
//
|
||||
// @Test
|
||||
// public void checkCountTest2() {
|
||||
// SimpleCheckCountFilter simpleCheckFilter = new SimpleCheckCountFilter(150);
|
||||
// simpleCheckFilter.initialize(checkCountRule);
|
||||
//
|
||||
// simpleCheckFilter.check();
|
||||
// boolean isSuccess = simpleCheckFilter.isDetected();
|
||||
// Assert.assertTrue(isSuccess);
|
||||
// }
|
||||
//
|
||||
// @Test
|
||||
// public void checkRateTest1() {
|
||||
// SimpleCheckRateFilter simpleCheckFilter = new SimpleCheckRateFilter(30, 100);
|
||||
// simpleCheckFilter.initialize(checkRateRule);
|
||||
//
|
||||
// simpleCheckFilter.check();
|
||||
// boolean isSuccess = simpleCheckFilter.isDetected();
|
||||
// Assert.assertFalse(isSuccess);
|
||||
// }
|
||||
//
|
||||
// @Test
|
||||
// public void checkRateTest2() {
|
||||
// SimpleCheckRateFilter simpleCheckFilter = new SimpleCheckRateFilter(70, 100);
|
||||
// simpleCheckFilter.initialize(checkRateRule);
|
||||
//
|
||||
// simpleCheckFilter.check();
|
||||
// boolean isSuccess = simpleCheckFilter.isDetected();
|
||||
// Assert.assertTrue(isSuccess);
|
||||
// }
|
||||
//
|
||||
// class SimpleCheckCountFilter extends AlarmCheckCountFilter {
|
||||
// private final int count;
|
||||
//
|
||||
// public SimpleCheckCountFilter(int count) {
|
||||
// super(0);
|
||||
// this.count = count;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void check() {
|
||||
// decideResult(count);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// class SimpleCheckRateFilter extends AlarmCheckRatesFilter {
|
||||
// private final int count;
|
||||
// private final int totalCount;
|
||||
//
|
||||
// public SimpleCheckRateFilter(int count, int totalCount) {
|
||||
// this.count = count;
|
||||
// this.totalCount = totalCount;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void check() {
|
||||
// check(count, totalCount);
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import static org.junit.Assert.assertNotSame;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.filter.SlowCountFilter;
|
||||
import com.nhn.pinpoint.web.alarm.checker.SlowCountFilter;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
|
||||
public class CheckerCategoryTest {
|
||||
|
||||
@@ -15,8 +15,8 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.nhn.pinpoint.common.ServiceType;
|
||||
import com.nhn.pinpoint.web.alarm.DataCollectorFactory.DataCollectorCategory;
|
||||
import com.nhn.pinpoint.web.alarm.checker.AlarmChecker;
|
||||
import com.nhn.pinpoint.web.alarm.collector.ResponseTimeDataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.filter.AlarmCheckFilter;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
import com.nhn.pinpoint.web.applicationmap.histogram.TimeHistogram;
|
||||
import com.nhn.pinpoint.web.dao.MapResponseDao;
|
||||
@@ -71,7 +71,7 @@ public class ProcessorTest {
|
||||
Application application = new Application(SERVICE_NAME, ServiceType.TOMCAT);
|
||||
ResponseTimeDataCollector collector = new ResponseTimeDataCollector(DataCollectorCategory.RESPONSE_TIME, application, mockMapResponseDAO, 3000000, System.currentTimeMillis());
|
||||
Rule rule = new Rule(SERVICE_NAME, CheckerCategory.SLOW_COUNT.getName(), 74, "testGroup", false, false);
|
||||
AlarmCheckFilter filter = CheckerCategory.SLOW_COUNT.createChecker(collector, rule);
|
||||
AlarmChecker filter = CheckerCategory.SLOW_COUNT.createChecker(collector, rule);
|
||||
|
||||
filter = processor.process(filter);
|
||||
assertTrue(filter.isDetected());
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
package com.nhn.pinpoint.web.alarm;
|
||||
|
||||
import junit.framework.Assert;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import com.nhn.pinpoint.common.ServiceType;
|
||||
import com.nhn.pinpoint.web.alarm.filter.AlarmFilter;
|
||||
import com.nhn.pinpoint.web.alarm.vo.AlarmRuleResource;
|
||||
import com.nhn.pinpoint.web.vo.Application;
|
||||
|
||||
public class SubCategoryTest {
|
||||
|
||||
// @Test
|
||||
// public void getValueTest() {
|
||||
// SubCategory category = SubCategory.getValue(1);
|
||||
// Assert.assertEquals(SubCategory.FAIL_RATE, category);
|
||||
//
|
||||
// category = SubCategory.getValue(2);
|
||||
// Assert.assertEquals(SubCategory.FAIL_COUNT, category);
|
||||
//
|
||||
// category = SubCategory.getValue(3);
|
||||
// Assert.assertEquals(SubCategory.SLOW_RATE, category);
|
||||
//
|
||||
// category = SubCategory.getValue(4);
|
||||
// Assert.assertEquals(SubCategory.SLOW_COUNT, category);
|
||||
// }
|
||||
//
|
||||
//
|
||||
// @Test
|
||||
// public void checkTest() throws Exception {
|
||||
// Application application = new Application("TEST", ServiceType.UNDEFINED);
|
||||
// AlarmRuleResource rule = new AlarmRuleResource();
|
||||
//
|
||||
// AlarmFilter filter = SubCategory.FAIL_RATE.createAlarmFilter(application, MainCategory.REQUEST_SENDED, rule);
|
||||
// Assert.assertNotNull(filter);
|
||||
//
|
||||
// filter = SubCategory.FAIL_RATE.createAlarmFilter(application, MainCategory.REQUEST_RECEIVED, rule);
|
||||
// Assert.assertNull(filter);
|
||||
// }
|
||||
//
|
||||
|
||||
}
|
||||
@@ -10,8 +10,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.nhn.pinpoint.web.alarm.filter.AlarmCheckFilter;
|
||||
import com.nhn.pinpoint.web.alarm.filter.SlowCountFilter;
|
||||
import com.nhn.pinpoint.web.alarm.checker.AlarmChecker;
|
||||
import com.nhn.pinpoint.web.alarm.checker.SlowCountFilter;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@@ -37,7 +37,7 @@ public class WriterTest {
|
||||
}
|
||||
};
|
||||
|
||||
List<AlarmCheckFilter> checkers = new LinkedList<AlarmCheckFilter>();
|
||||
List<AlarmChecker> checkers = new LinkedList<AlarmChecker>();
|
||||
checkers.add(checker);
|
||||
writer.write(checkers);
|
||||
}
|
||||
@@ -58,7 +58,7 @@ public class WriterTest {
|
||||
}
|
||||
};
|
||||
|
||||
List<AlarmCheckFilter> checkers = new LinkedList<AlarmCheckFilter>();
|
||||
List<AlarmChecker> checkers = new LinkedList<AlarmChecker>();
|
||||
checkers.add(checker);
|
||||
writer.write(checkers);
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import org.junit.Test;
|
||||
import com.nhn.pinpoint.common.ServiceType;
|
||||
import com.nhn.pinpoint.web.alarm.CheckerCategory;
|
||||
import com.nhn.pinpoint.web.alarm.DataCollectorFactory.DataCollectorCategory;
|
||||
import com.nhn.pinpoint.web.alarm.checker.ErrorCountChecker;
|
||||
import com.nhn.pinpoint.web.alarm.collector.ResponseTimeDataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
import com.nhn.pinpoint.web.applicationmap.histogram.TimeHistogram;
|
||||
|
||||
@@ -11,6 +11,7 @@ import org.junit.Test;
|
||||
import com.nhn.pinpoint.common.ServiceType;
|
||||
import com.nhn.pinpoint.web.alarm.CheckerCategory;
|
||||
import com.nhn.pinpoint.web.alarm.DataCollectorFactory.DataCollectorCategory;
|
||||
import com.nhn.pinpoint.web.alarm.checker.ErrorRateChecker;
|
||||
import com.nhn.pinpoint.web.alarm.collector.ResponseTimeDataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
import com.nhn.pinpoint.web.applicationmap.histogram.TimeHistogram;
|
||||
|
||||
@@ -14,6 +14,8 @@ import com.nhn.pinpoint.common.bo.AgentStatMemoryGcBo.Builder;
|
||||
import com.nhn.pinpoint.web.alarm.CheckerCategory;
|
||||
import com.nhn.pinpoint.web.alarm.DataCollectorFactory;
|
||||
import com.nhn.pinpoint.web.alarm.DataCollectorFactory.DataCollectorCategory;
|
||||
import com.nhn.pinpoint.web.alarm.checker.AgentChecker;
|
||||
import com.nhn.pinpoint.web.alarm.checker.GcCountChecker;
|
||||
import com.nhn.pinpoint.web.alarm.collector.AgentStatDataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
import com.nhn.pinpoint.web.dao.AgentStatDao;
|
||||
|
||||
+2
@@ -18,6 +18,8 @@ import com.nhn.pinpoint.common.bo.AgentStatMemoryGcBo.Builder;
|
||||
import com.nhn.pinpoint.web.alarm.CheckerCategory;
|
||||
import com.nhn.pinpoint.web.alarm.DataCollectorFactory;
|
||||
import com.nhn.pinpoint.web.alarm.DataCollectorFactory.DataCollectorCategory;
|
||||
import com.nhn.pinpoint.web.alarm.checker.AgentChecker;
|
||||
import com.nhn.pinpoint.web.alarm.checker.HeapUsageRateChecker;
|
||||
import com.nhn.pinpoint.web.alarm.collector.AgentStatDataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
import com.nhn.pinpoint.web.dao.AgentStatDao;
|
||||
|
||||
+2
@@ -14,6 +14,8 @@ import com.nhn.pinpoint.common.bo.AgentStatMemoryGcBo;
|
||||
import com.nhn.pinpoint.web.alarm.CheckerCategory;
|
||||
import com.nhn.pinpoint.web.alarm.DataCollectorFactory;
|
||||
import com.nhn.pinpoint.web.alarm.DataCollectorFactory.DataCollectorCategory;
|
||||
import com.nhn.pinpoint.web.alarm.checker.AgentChecker;
|
||||
import com.nhn.pinpoint.web.alarm.checker.JvmCpuUsageRateChecker;
|
||||
import com.nhn.pinpoint.web.alarm.collector.AgentStatDataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
import com.nhn.pinpoint.web.dao.AgentStatDao;
|
||||
|
||||
+1
@@ -12,6 +12,7 @@ import com.nhn.pinpoint.common.ServiceType;
|
||||
import com.nhn.pinpoint.web.alarm.CheckerCategory;
|
||||
import com.nhn.pinpoint.web.alarm.DataCollectorFactory;
|
||||
import com.nhn.pinpoint.web.alarm.DataCollectorFactory.DataCollectorCategory;
|
||||
import com.nhn.pinpoint.web.alarm.checker.ResponseCountChecker;
|
||||
import com.nhn.pinpoint.web.alarm.collector.ResponseTimeDataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
import com.nhn.pinpoint.web.applicationmap.histogram.TimeHistogram;
|
||||
|
||||
@@ -12,6 +12,7 @@ import org.junit.Test;
|
||||
import com.nhn.pinpoint.common.ServiceType;
|
||||
import com.nhn.pinpoint.web.alarm.CheckerCategory;
|
||||
import com.nhn.pinpoint.web.alarm.DataCollectorFactory.DataCollectorCategory;
|
||||
import com.nhn.pinpoint.web.alarm.checker.SlowCountFilter;
|
||||
import com.nhn.pinpoint.web.alarm.collector.DataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.collector.ResponseTimeDataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
|
||||
@@ -12,6 +12,7 @@ import org.junit.Test;
|
||||
import com.nhn.pinpoint.common.ServiceType;
|
||||
import com.nhn.pinpoint.web.alarm.CheckerCategory;
|
||||
import com.nhn.pinpoint.web.alarm.DataCollectorFactory.DataCollectorCategory;
|
||||
import com.nhn.pinpoint.web.alarm.checker.SlowRatesFilter;
|
||||
import com.nhn.pinpoint.web.alarm.collector.ResponseTimeDataCollector;
|
||||
import com.nhn.pinpoint.web.alarm.vo.Rule;
|
||||
import com.nhn.pinpoint.web.applicationmap.histogram.TimeHistogram;
|
||||
|
||||
@@ -29,12 +29,6 @@
|
||||
com.nhn.pinpoint.web.alarm"
|
||||
/>
|
||||
|
||||
<!--
|
||||
<context:component-scan base-package="com.nhn.pinpoint.web.dao.hbase,
|
||||
com.nhn.pinpoint.web.service,
|
||||
com.nhn.pinpoint.web.mapper" />
|
||||
-->
|
||||
|
||||
<util:properties id="dataProps" location="classpath:data.properties"/>
|
||||
|
||||
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
|
||||
@@ -50,10 +44,6 @@
|
||||
<import resource="classpath:applicationContext-datasource.xml" />
|
||||
<import resource="classpath:applicationContext-dao-config.xml" />
|
||||
<import resource="classpath:applicationContext-batch.xml" />
|
||||
<!--
|
||||
<import resource="classpath:applicationContext-scheduler.xml" />
|
||||
-->
|
||||
|
||||
|
||||
<bean id="trace" class="com.nhn.pinpoint.collector.dao.hbase.HbaseTraceDao"/>
|
||||
<bean class="com.nhn.pinpoint.collector.dao.hbase.HbaseAgentInfoDao"/>
|
||||
|
||||
Reference in New Issue
Block a user