CAT监控

cat客户端配置

  1. 创建配置文件目录

    mkdir -p /data/appdatas/cat

  2. 创建日志目录

    mkdir -p /data/applogs/cat

  3. 增加client.xml

    cd /data/appdatas/cat vim client.xml

   <?xml version="1.0" encoding="utf-8"?>

<config mode="client" xmlns:xsi="http://www.w3.org/2001/XMLSchema" xsi:noNamespaceSchemaLocation="config.xsd">
        <servers>
                <server ip="192.168.1.13" port="2280" http-port="2281" />
        </servers>
</config>

代码埋点

指定项目名称

“项目名称”用于标识埋点数据来自哪个项目,在META-INF/app.properties文件中指定,内容如下:

 app.name=marketing-server

transaction埋点

  • 使用AOP

    一般使用AOP的方式对dao,service,controller中的方法做transaction埋点。当前有个抽象类com.travelzen.framework.aop.AbstractCatMonitorAspect已经实现了AOP埋点的基本逻辑。只需要继承这个类就可以方便的实现自己的AOP。

package com.cana.marketing.dao.aop;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;

import com.travelzen.framework.aop.AbstractCatMonitorAspect;

@Aspect
public class DaoCatAspect extends AbstractCatMonitorAspect {

    @Override
    @Pointcut("execution(* com.cana.marketing.dao.mapper..*.*(..))")
    public void catMonitorOperation() {

    }

    @Override
    public String getType() {
        return AbstractCatMonitorAspect.Type.dao.name();
    }

}

然后在spring.xml 中配置这个bean

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"
    default-lazy-init="true"
    >

    <aop:aspectj-autoproxy />

    <bean id="marketingDaoAspect" class="com.cana.marketing.dao.aop.DaoCatAspect"/>

</beans>
  • 编码的方式

    对于不是通过spring创建的对象,无法使用AOP埋点,只能通过编码的方式完成,基本的代码块:

Transaction t = Cat.newTransaction(type, name);
try{
  //这里是具体的业务逻辑实现
  t.setStatus(Transaction.SUCCESS);
}catch(Exception e){
  Cat.logError(e);
  t.setStatus(e);
}finally{
  t.complete();
}

业务指标埋点

我们用的最多的是计数业务指标。

Cat.logMetricForCount("指标名称");

监控与报警配置

访问cat-server,测试环境地址:http://op.canacorp.net/cat/s/config?op=projects

配置项目基本信息

配置产品线

这里定义的产品线是用来对业务指标分类的。

配置业务指标报警

  1. 准备工作(可选)

    在添加告警规则之前,必须要有已存在的MetricKey方可对其进行配置告警规则,目前发现Cat在某一个MetricKey未出现过问题时,是不会在应用监控配置中存在的,从而也就无法为其配置告警规则,解决方法是使用手动调用一次HttpApi,从而产生一个MetricKey项,具体的接口文档可在 http://192.168.1.7/cat/r/home?op=view&docName=alert 页面中的业务告警子页面下方找到。

    例子:http://192.168.1.7/cat/r/monitor?group=asset&domain=asset-scheduler&key=homsom_auto_accumulation_fund_error&op=count&count=1

  2. 添加告警规则

    上面规则的含义是这样的:如果3分钟内该业务指标的总计数值<=5000则发告警。

  3. 开启报警

配置PING报警

上面规则的含义是这样的:如果通过get方法访问url返回的状态码不是200, 则告警。

results matching ""

    No results matching ""