告警规则算法 RealTimeAlarm 01

import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import com.huawei.ngbss.esbm.notifyhandler.webservice.EsbmIntfServiceStub;
import com.huawei.ngbss.esbm.notifyhandler.webservice.NotifyRequestDocument;
import com.huawei.ngbss.esbm.notifyhandler.webservice.ResultHeaderDocument;
import com.huawei.ngbss.esbm.notifyhandler.webservice.NotifyRequestDocument.NotifyRequest;
import com.huawei.ngbss.esbm.notifyhandler.webservice.NotifyRequestDocument.NotifyRequest.Body;
import com.huawei.ngbss.esbm.notifyhandler.webservice.NotifyRequestDocument.NotifyRequest.Header;

public class RealTimeAlarm
{
private static Logger logger = Logger.getLogger(RealTimeAlarm.class);

private RealTimeAlarm()
{

}

public static void realTimecheck(Map<String, String> values)
{
logger.debug("realTimecheck flag:" + values.get("flag"));
boolean result = false;
String ruleid = null;
// 检测网络异常以及系统超时情况
if ("3".equals(values.get("flag")) || "4".equals(values.get("flag")))
{
result = true;
ruleid = "";
}
// 如果没有超时
if (result == false)
{
String realValue = null;
String key_name = null;
String wsdl = null;
// 进行规则匹配,遍历规则
for (Map.Entry<String, List<Rule>> entry : RuleTools.getRuleMap()
.entrySet())
{
logger.debug("Rule size:" + RuleTools.getRuleMap().size());
Iterator<Rule> iterator = entry.getValue().iterator();
Rule ruleCompare = null;
ruleid = entry.getKey();
while (iterator.hasNext())
{
ruleCompare = iterator.next();
// 真实的数据与规则中的content进行比较
key_name = ruleCompare.getKey();
// 特殊处理,如果规则条件中有servicename,那么需要将在前面增加wsdl的值还有一个点,
// 格式:wsdl.servicename.还有可能是OCS的工单wsdl.servicename.operateid
if (key_name.equals("servicename"))
{
wsdl = values.get("wsdl");
wsdl = wsdl == null ? "" : wsdl;
realValue = values.get("key_name");
realValue=realValue==null?"":realValue;
realValue=wsdl+"."+realValue;
}
else
{
realValue=values.get(ruleCompare.getKey());
}
if(logger.isDebugEnabled())
{
logger.debug("ruleCompare:" + ruleCompare.toString()
+ " and realValue : " + realValue);
}
result=ruleCompare.compare(realValue);
// 如果规则匹配不成功,不需要发实时告警,直接跳出while循环,下一个规则匹配
if(result==false)
{
break;
}
}
// 如果已经有规则匹配成功,不需要匹配下个rule
if(result==true)
{
break;
}
}
}
logger.debug("The result of realTimecheck is:" + result);
// 需要发实时告警
if(result==true)
{
logger.debug("Sending real time message to ESBM");
EsbmIntfServiceStub stup;
//构造发实时告警消息
NotifyRequestDocument doc=null;
try
{
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值