博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
调用链监控 CAT 之 入门
阅读量:5788 次
发布时间:2019-06-18

本文共 4664 字,大约阅读时间需要 15 分钟。

简介

CAT 是一个实时和接近全量的监控系统,它侧重于对Java应用的监控,基本接入了美团上海所有核心应用。目前在中间件(MVC、RPC、数据库、缓存等)框架中得到广泛应用,为美团各业务线提供系统的性能指标、健康状况、监控告警等。

优势

  • 实时处理:信息的价值会随时间锐减,尤其是事故处理过程中。
  • 全量数据:全量采集指标数据,便于深度分析故障案例。
  • 高可用:故障的还原与问题定位,需要高可用监控来支撑。
  • 故障容忍:故障不影响业务正常运转、对业务透明。
  • 高吞吐:海量监控数据的收集,需要高吞吐能力做保证。
  • 可扩展:支持分布式、跨 IDC 部署,横向扩展的监控系统。

开源产品比较

调用链监控 CAT 之 入门

快速上手

本地部署

步骤1:部署tomcat

准备一个tomcat,修改 tomcat conf 目录下 server.xml,防中文乱码。

Connector port="8080" protocol="HTTP/1.1"           URIEncoding="utf-8"    connectionTimeout="20000"               redirectPort="8443" />  

步骤2:程序对于/data/目录具体读写权限(重要)

  • Linux

    • 要求/data/目录能进行读写操作,如果/data/目录不能写,建议使用linux的软链接链接到一个固定可写的目录。
    • 此目录会存一些CAT必要的配置文件以及运行时候的数据存储目录。
    • CAT支持CAT_HOME环境变量,可以通过JVM参数修改默认的路径。
mkdir /datachmod -R 777 /data/
  • Windows

    对程序运行盘下的/data/appdatas/cat和/data/applogs/cat有读写权限。例如cat服务运行在e盘的tomcat中,则需要对e:/data/appdatas/cat和e:/data/applogs/cat有读写权限。

步骤3: 配置/data/appdatas/cat/client.xml ($CAT_HOME/client.xml)

此配置文件的作用是所有的客户端都需要一个地址指向CAT的服务端。

步骤4: 安装CAT的数据库

下载cat源码包:

解压后,数据库的脚本文件为 script/CatApplication.sql

mysql -uroot -Dcat < CatApplication.sql

步骤5: 配置/data/appdatas/cat/datasources.xml($CAT_HOME/datasources.xml)

3
1s
10m
1000
com.mysql.jdbc.Driver
root
root

步骤6: war打包

官方下载:

重命名为cat.war进行部署,注意此war是用jdk8,服务端请使用jdk8版本

步骤7: war部署

  • 将上一步打包的war包部署到本机tomcat的webapps下。
  • 启动tomcat,打开控制台的URL, 默认用户名:admin 默认密码:admin 。
  • 配置客户端路由。

提交后,重启tomcat,访问http://127.0.0.1:8080/cat,出现如下界面,说明搭建成功。

调用链监控 CAT 之 入门

测试

安装jar包

进入cat源码包的 lib/java/jar ,将cat-client-3.0.0.jar 包 安装到本地maven仓库。

mvn install:install-file -DgroupId=com.dianping.cat -DartifactId=cat-client Dversion=3.0.0 -Dpackaging=jar -Dfile=cat-client-3.0.0.jar

创建工程

创建一个springboot 工程,关键代码如下。

pom.xml
org.springframework.boot
spring-boot-starter-web
com.dianping.cat
cat-client
3.0.0

app.properties

需要在你的项目中创建 src/main/resources/META-INF/app.properties 文件, 并添加如下内容:

app.name={appkey}

appkey 只能包含英文字母 (a-z, A-Z)、数字 (0-9)、下划线 (_) 和中划线 (-)

application.yml

server:  port: 8760spring:  application:    name: cat-simple

启动类

@SpringBootApplication@RestControllerpublic class CatSimpleApplication {    public static void main(String[] args) {        SpringApplication.run( CatSimpleApplication.class, args );    }    @PostMapping("/hi")    public String hi(HttpServletRequest request){        String url = request.getRequestURL().toString();        // 创建一个 Transaction        Transaction transaction = Cat.newTransaction( "URL", url );        try {            // 处理业务            myBusiness();            // 设置状态            transaction.setStatus(Transaction.SUCCESS);        } catch (Exception e) {            // 设置错误状态            transaction.setStatus(e);            // 记录错误信息            Cat.logError(e);        } finally {            // 结束 Transaction            transaction.complete();        }        return "hello";    }    @PostMapping("/error")    public String error(HttpServletRequest request){        String url = request.getRequestURL().toString();        // 创建一个 Transaction        Transaction transaction = Cat.newTransaction( "URL", url );        try {            // 处理业务            int i = 1 / 0;            // 设置状态            transaction.setStatus(Transaction.SUCCESS);        } catch (Exception e) {            // 设置错误状态            transaction.setStatus(e);            // 记录错误信息            Cat.logError(e);        } finally {            // 结束 Transaction            transaction.complete();        }        return "500";    }    private void myBusiness() {        //模拟业务处理的时间        try {            Thread.sleep( 500 );        } catch (InterruptedException e) {            e.printStackTrace();        }    }}

请求

curl -X POST  http://localhost:8760/hi

请求

curl -X POST  http://localhost:8760/error

查看监控信息

进入 cat 控制台,点击 Transaction 按钮 ,之后点击全部,会看到有哪些客户端,如图:

调用链监控 CAT 之 入门

点击客户端 cat-simple ,出现如图:

调用链监控 CAT 之 入门

如上图,可以清晰的看到 请求的 总个数(tatal)、均值(avg)、最大/最小(max/min)、标准差(std)等,其他都比较直观,标准差稍微复杂一点,大家自己可以推演一下怎么做增量计算。那集合运算,比如95线(表示95%请求的完成时间)、999线(表示99.9%请求的完成时间)

点击 “log View” 可以查看 错误信息,如图:

调用链监控 CAT 之 入门

源码

参考

欢迎关注我的公众号《程序员果果》,关注有惊喜~~

调用链监控 CAT 之 入门

转载于:https://blog.51cto.com/13698036/2395422

你可能感兴趣的文章
source insight中的快捷键总结
查看>>
PC-IIS因为端口问题报错的解决方法
查看>>
java四种线程池简介,使用
查看>>
ios View之间的切换 屏幕旋转
查看>>
typedef BOOL(WINAPI *MYFUNC) (HWND,COLORREF,BYTE,DWORD);语句的理解
查看>>
jsp 特殊标签
查看>>
[BZOJ] 1012 [JSOI2008]最大数maxnumber
查看>>
gauss消元
查看>>
多线程-ReentrantLock
查看>>
数据结构之链表与哈希表
查看>>
IIS7/8下提示 HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求...
查看>>
http返回状态码含义
查看>>
响应式网站对百度友好关键
查看>>
洛谷P2179 骑行川藏
查看>>
(十八)js控制台方法
查看>>
VB关键字总结
查看>>
android代码生成jar包并混淆
查看>>
一个不错的vue项目
查看>>
屏蔽指定IP访问网站
查看>>
python学习 第一天
查看>>