一、CAT (Central Application Tracking) 简介:

CAT 是大众点评开源的一套基于java的实时应用监控平台,主要应用于服务中间件框架(MVC 框架、RPC 框架、持久层框架、分布式缓存框架)的监控,为开发和运维提供各项性能指标、健康检查、自动报警等可视化服务

二、CAT 安装部署:

下文将一步步介绍如何安装服务端、如何接入客户端、如何查看一些监控指标

首先,准备安装环境

1.确保待安装环境已经安装了jdk(1.6以上版本)、git、maven(maven 版本需要在 3.2.3以上)mysql、web容器 tomcat,这里不再赘述

2.下载cat源码:https://github.com/dianping/cat.git,并导入到eclipse(导入过程中可能会遇到一些问题,可以不必在此纠结,继续下一步)

3.下载master打包后的包,https://github.com/dianping/cat/archive/master.zip,并解压到本地

其次,安装服务端

1.打war包:进入到解压后的 源码文件夹,运行maven打包命令:

 mvn clean install -DskipTests

PS:打包过程中会在源码所在盘符创建 data/appdatas/cat目录,所以确保当前用户拥有读写权限

2. 部署war包:当运行完打包命令,会在每个子模块中,生成打包后的文件

* cat-home.war : 服务端组件,负责收集监控信息,分析处理生成报告、作出警告(<span style="margin: 0px; padding: 0px; list-style: none outside none; word-break: normal; word-wrap: break-word; font-size: 18px; line-height: 27px;">需要的服务端war包</span>)
* cat-agent.war : 监控端组件,负责收集被监控端信息,并上传监控信息到服务端
* cat-client.jar : 客户端组件,负责与服务端进行连接通信,
* cat-core.jar : 核心处理组件,负责具体的与客户端通信服务,解析数据、输出报告
* cat-consumer.jar : 消费处理组件,负责实际的监控数据分析,处理工作
* cat-hadoop.jar : HDFS存储组件
* broker-service.war : 监控服务代理组件

将cat-home.war重命名为cat.war后复制到tomcat 容器webapps目录下,然后启动容器,至此服务端已安装完毕,在浏览器中输入 http://127.0.0.1:8341/cat/r/ 看到下图,表示安装成功

接着,客户端接入

1.待监控项目pom文件加入依赖

        <dependency><groupId>com.dianping.cat</groupId><artifactId>cat-core</artifactId>   <version>1.3.6</version></dependency>

2.待监控项目web.xml 中引入cat 过滤器

  <filter><filter-name>cat-filter</filter-name><filter-class>com.dianping.cat.servlet.CatFilter</filter-class></filter><filter-mapping><filter-name>cat-filter</filter-name><url-pattern>/*</url-pattern><dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher></filter-mapping>

3.引入配置文件:在src/main/resources/META-INF下创建app.properties或cat/client.xml

app.properties 加入一行app.name=项目名(即domain)

3.加入监控逻辑

    @RequestMapping("index")public ModelAndView index(HttpServletRequest request, HttpServletResponse response){Transaction t = Cat.getProducer().newTransaction("your transaction type", "your transaction name");try {System.out.println("debug...");Cat.getProducer().logEvent("your event type", "your event name", Event.SUCCESS, "keyValuePairs");t.setStatus(Transaction.SUCCESS);} catch (Exception e) {Cat.getProducer().logError(e);//用log4j记录系统异常,以便在Logview中看到此信息t.setStatus(e);// throw e; /*  (CAT所有的API都可以单独使用,也可以组合使用,比如Transaction中嵌套Event或者Metric。)(注意如果这里希望异常继续向上抛,需要继续向上抛出,往往需要抛出异常,让上层应用知道。)(如果认为这个异常在这边可以被吃掉,则不需要在抛出异常。)*/} finally {t.complete();}return new ModelAndView("main");}

4.重启待监控项目,并访问一个项目的页面,同时进入监控平台(默认用户catadmin/catadmin)http://127.0.0.1:8341/cat/r/,这时我们会发现,下图中有了数据(profit为项目名)

5.监控埋点

Transaction用来记录一段程序响应时间

Event用来记录一行code的执行次数

Metric用来记录一个业务指标

这些指标都是独立的,可以单独使用,主要看业务场景。

最后,安装总结

本文提到的CAT安装是简化版,没有用到ldap验证,没有用到hadoop,比较基础。其他详细的安装细节请参考源码和CAT监控系统首页【文档】选项。

CAT - 监控平台之装配篇相关推荐

  1. cat 大众点评 mysql_搭建大众点评 CAT 监控平台

    搭建大众点评 CAT 监控平台 CAT(Central Application Tracking)是基于Java开发的实时应用监控平台,包括实时应用监控,业务监控.关于CAT的具体介绍可移步到CAT官 ...

  2. cat 大众点评 mysql_搭建大众点评CAT监控平台

    CAT(Central Application Tracking)是基于 Java 开发的实时应用监控平台,包括实时应用监控,业务监控.关于CAT的具体介绍可移步到 CAT官网 进行查阅. 1. 环境 ...

  3. python 可视化监控平台_python可视化篇之流式数据监控的实现

    preface 流式数据的监控,以下主要是从算法的呈现出发,提供一种python的实现思路 其中: 1.python是2.X版本 2.提供两种实现思路,一是基于matplotlib的animation ...

  4. 云信私有化方案中如何搭建高可用的日志和监控平台?

    导读 云信公有云系列产品已经稳定运行数年,随着企业对信息安全和数据隔离愈加重视,云信产品私有化课题必然成为云信发展过程中一个的重要分支.依赖虚拟化和容器技术的日臻成熟,云信业务系统已经全面完成私有化, ...

  5. cat全链路监控_谛听全链路监控平台实践与思考

    一.项目背景 近几年,信也科技的研发技术伴随着业务的快速增长逐步演化为微服务化的分布式体系架构,但随之带来的系统间的上下游依赖关系的复杂度也呈指数级上升,已有的烟囱式的监控产品(CAT.ELK等)存在 ...

  6. 大众点评Java开发实时应用监控平台-CAT

    转载自 [推荐]大众点评Java开发实时应用监控平台-CAT CAT介绍 CAT是基于Java开发的实时应用监控平台,包括实时应用监控,业务监控. CAT作为大众点评网基础监控组件,它已经在中间件框架 ...

  7. linux 查看目录拓扑图,Linux服务篇之九:构建Cacti监控平台

    Linux服务篇之九:构建Cacti监控平台 作为一名Linux SA,日常最重要的就是保证网站正常稳定的运行,我们需要实时监控网站.服务器的运行状态,这时需要借助开源软件(cacti.nagios. ...

  8. python 运维管理架构_企业运维监控平台架构设计与实现(ganglia篇)

    一.Cacti/Nagios/Zabbix/centreon/Ganglia之抉择 1.cacti Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具. 简 ...

  9. 开源运维管理软件排名_企业运维监控平台架构设计与实现(ganglia篇)

    一.Cacti/Nagios/Zabbix/centreon/Ganglia之抉择 1.cacti Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具. 简 ...

最新文章

  1. ubuntu nohup php,Ubuntu安装PhpStorm并设置快速启动phpstorm
  2. java与scala的区别 个位数以内的 就喜欢作者这么言简意赅的
  3. 《机器学习实战》K邻近算法
  4. 一步一步学习hadoop(七)
  5. C语言 某班级有30名学生,要求从键盘输入每个学生的数学课程成绩(百分制),并进行以下处理
  6. 阿里云OSS存储之SDK的使用
  7. 统计学习方法笔记(李航)———第五章(决策树)
  8. synchronized 修饰在 static方法和非static方法的区别
  9. Linux查看网卡驱动|更新驱动
  10. C# OpenCv 证件照换底色
  11. charles介绍及代理设置
  12. ARM版本ubuntu安装PL2303驱动
  13. mysql实现停车场管理系统完整代码实现_JAVA实现简单停车场系统代码
  14. 水木-如何解压.iso文件
  15. 关于步进电机励相数、拍数、励磁方式、编码
  16. (笔记)Mac下耳机左右声道不平衡(左边小右边大或者右边大左边小)的解决方法
  17. 频率、周期、角频率的概念
  18. 喜剧电影《超能一家人》投资全方位分析
  19. xmind设置成中文_XMind中文版使用教程:创建和使用思维导图模板
  20. 1-100的质数之和

热门文章

  1. 一点一点看JDK源码(二)java.util.List
  2. springcloud(十):服务网关zuul初级篇
  3. [转]IDE之zend studio: zend studio8使用感受
  4. 如何用 Linux 拨号上网
  5. HackerOne 发布2021年《黑客驱动安全报告:行业洞察》
  6. Pwn2Own 2021温哥华黑客大赛落幕 3个团队并列 Master of Pwn
  7. Google Drive 被曝0day,可诱骗用户安装恶意软件
  8. Java多线程再理解(synchronized)
  9. Solidworks如何在自定义的基准面上创建3D草图
  10. python自动化运维之路~DAY1