简介
CAT是侧重于Java应用程序监控的实时和几乎所有监控系统,基本上可以访问美团上海的所有核心应用程序。 目前在中间件(MVC、RPC、数据库、缓存等)框架中得到广泛应用,为美团各业务线提供系统的性能指标、健康状况、监控告警等。优势
- 实时处理:信息的价值会随时间锐减,尤其是事故处理过程中。
- 全量数据:全量采集指标数据,便于深度分析故障案例。
- 高可用:故障的还原与问题定位,需要高可用监控来支撑。
- 故障容忍:故障不影响业务正常运转、对业务透明。
- 高吞吐:海量监控数据的收集,需要高吞吐能力做保证。
- 可扩展:支持分布式、跨 IDC 部署,横向扩展的监控系统。
开源产品比较
快速上手
本地部署
步骤1:部署tomcat
准备一个tomcat,修改 tomcat conf 目录下 ,防中文乱码。
Connector port="8080" protocol="HTTP;
           URIencoding="utf-8"    connectionTimeout="20000"
               redirectPort="8443" />  <!-- 增加  URIEncoding="utf-8"  -->步骤2:程序对于/data/目录具体读写权限(重要)
- Linux要求/data/目录能进行读写操作,如果/data/目录不能写,建议使用linux的软链接链接到一个固定可写的目录。此目录会存一些CAT必要的配置文件以及运行时候的数据存储目录。CAT支持CAT_HOME环境变量,可以通过JVM参数修改默认的路径。
mkdir /data
chmod -R 777 /data/- Windows对程序运行盘下的/data/appdatas/cat和/data/applogs/cat有读写权限。例如cat服务运行在e盘的tomcat中,则需要对e:/data/appdatas/cat和e:/data/applogs/cat有读写权限。
步骤3: 配置/data/appdatas/ca ($CAT_HOME)
<?xml version="1.0" encoding="utf-8"?>
<config mode="client">
    <servers>
        <server ip="127.0.0.1" port="2280" http-port="8080"/>
    </servers>
</config>此配置文件的作用是所有的客户端都需要一个地址指向CAT的服务端。
步骤4: 安装CAT的数据库
下载cat源码包: 解压后,数据库的脚本文件为 scri
mysql -uroot -Dcat < Ca步骤5: 配置/data/appdatas/ca($CAT_HOME)
<?xml version="1.0" encoding="utf-8"?>
<data-sources>
    <data-source id="cat">
        <maximum-pool-size>3</maximum-pool-size>
        <connection-timeout>1s</connection-timeout>
        <idle-timeout>10m</idle-timeout>
        <statement-cache-size>1000</statement-cache-size>
        <properties>
            <driver>com.my;/driver>
            <url><![CDATA[jdbc:mysql://127.0.0.1:3306/cat]]></url>  <!-- 请替换为真实数据库URL及Port  -->
            <user>root</user>  <!-- 请替换为真实数据库用户名  -->
            <password>root</password>  <!-- 请替换为真实数据库密码  -->
            <connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties>
        </properties>
    </data-source>
</data-sources>步骤6: war打包
官方下载:
重命名为cat.war进行部署,注意此war是用jdk8,服务端请使用jdk8版本
步骤7: war部署
- 将上一步打包的war包部署到本机tomcat的webapps下。
- 启动tomcat,打开控制台的URL, 默认用户名:admin 默认密码:admin 。
- 配置客户端路由。
<?xml version="1.0" encoding="utf-8"?>
<router-config backup-server="你的本机ip(不要用127.0.0.1)" backup-server-port="2280">
   <default-server id="你的本机ip(不要用127.0.0.1)" weight="1.0" port="2280" enable="true"/>
   <network-policy id="default" title="默认" block="false" server-group="default_group">
   </network-policy>
   <server-group id="default_group" title="default-group">
      <group-server id="你的本机ip(不要用127.0.0.1)"/>
   </server-group>
   <domain id="cat">
      <group id="default">
         <server id="你的本机ip(不要用127.0.0.1)" port="2280" weight="1.0"/>
      </group>
   </domain>
</router-config>提交后,重启tomcat,访问,出现如下界面,说明搭建成功。
测试
安装jar包
进入cat源码包的 lib/java/jar ,将ca 包 安装到本地maven仓库。
mvn install:install-file -DgroupId=com.dian -DartifactId=cat-client Dversion=3.0.0 -Dpackaging=jar -Dfile=ca创建工程
创建一个springboot 工程,关键代码如下。
<dependency>
    <groupId>org.;/groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>com.dian</groupId>
    <artifactId>cat-client</artifactId>
    <version>3.0.0</version>
</dependency>a
需要在你的项目中创建 src/main/resources/META-INF/a 文件, 并添加如下内容:
a{appkey}appkey 只能包含英文字母 (a-z, A-Z)、数字 (0-9)、下划线 (_) 和中划线 (-)
a
server:
  port: 8760
spring:
  application:
    name: cat-simple启动类
@SpringBootApplication
@RestController
public class CatSimpleApplication {
    public static void main(String[] args) {
        S( Ca, args );
    }
    @PostMapping("/hi")
    public String hi(HttpServletrequest request){
        String url = reque().toString();
        // 创建一个 Transaction
        Transaction transaction = Cat.newTransaction( "URL", url );
        try {
            // 处理业务
            myBusiness();
            // 设置状态
            );
        } catch (Exception e) {
            // 设置错误状态
            (e);
            // 记录错误信息
            Cat.logError(e);
        } finally {
            // 结束 Transaction
            ();
        }
        return "hello";
    }
    @PostMapping("/error")
    public String error(HttpServletRequest request){
        String url = reque().toString();
        // 创建一个 Transaction
        Transaction transaction = Cat.newTransaction( "URL", url );
        try {
            // 处理业务
            int i = 1 / 0;
            // 设置状态
            );
        } catch (Exception e) {
            // 设置错误状态
            (e);
            // 记录错误信息
            Cat.logError(e);
        } finally {
            // 结束 Transaction
            ();
        }
        return "500";
    }
    private void myBusiness() {
        //模拟业务处理的时间
        try {
            T( 500 );
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}请求 http://localhost:8760/hi
curl -X POST  http://localhost:8760/hi请求 http://localhost:8760/error
curl -X POST  http://localhost:8760/error查看监控信息
进入 cat 控制台,点击 Transaction 按钮 ,之后点击全部,会看到有哪些客户端,如图:
点击客户端 cat-simple ,出现如图:
如上图,可以清晰的看到 请求的 总个数(tatal)、均值(avg)、最大/最小(max/min)、标准差(std)等,其他都比较直观,标准差稍微复杂一点,大家自己可以推演一下怎么做增量计算。那集合运算,比如95线(表示95%请求的完成时间)、999线(表示99.9%请求的完成时间)
点击 “log View” 可以查看 错误信息,如图:
源码
参考
1.《.cat文件如何打开?总结很全面速看!调用链监控 CAT 之 入门》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《.cat文件如何打开?总结很全面速看!调用链监控 CAT 之 入门》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/2120899.html







