原文地址:http://www.bubuko.com/infodetail-986338.html

在项目中监控代码运行的状况,可以采用点评的Cat项目来监控整个项目,但是按照官方的文档来部署cat,总会遇到各种问题,讲解的也不够简明清楚,现在用一个单机来部署运行cat监控项目。

首先,到项目的git网页下载整个项目:

https://github.com/dianping/cat

接着就是进入这个项目的目录,运行打包安装命令:

mvn clean install -DskipTests  (需要maven)

执行完成后,运行 CAT 安装插件命令:

mvn cat:install

会提示输入mysql数据库的连接信息,账户和密码。可能会提示缺少\data\appdatas\cat 目录,手动添加就可以了。

最后进入cat-home目录:cd cat-home,运行mvn jetty:run

没有任何错误的提示就可以启动了。在浏览器输入地址:

localhost:2281会进入界面,这个界面有说明文档还要演示效果等,没什么用,关掉。

进入项目,拷贝/cat-home/target/cat-alpha-1.3.6-SNAPSHOT.war这个文件到tomcat的webapps里面,修改名字成:cat.war。在tomcat所在的盘根目录需要有data文件夹,里面有:

\data\appdatas\cat和\data\applogs\cat 文件夹,没有的话就手动创建。

\data\appdatas\cat文件夹里面的内容在mvn cat:install这个步骤会自动创建出来client.xml、datasources.xml和server.xml三个文件,datasources.xml是数据库连接信息,不用改变的话就无需修改,client.xml和server.xml两个文件里,有多少台服务器,就要写多少台服务器的地址上去。由于我是在本机上做实验,所以就只有一台机器的地址。

client.xml文件只需改红色框内的内容就可以了:

server.xml文件改红色框的内容,有多台机器,就像红框下面注释的那样改就可以了。

修改完,启动tomcat(bin\startup.bat)

没有任何问题,我们可以根据提示在\data\applogs\cat目录中查看到日志。

在浏览器里面输入http://localhost:8080/cat/r,可以看到CAT下面部署后的界面。左上角的“实时”功能才是我们最需要的!

点击后发现都是demo的实例,可以查看相应的代码来学习怎么使用。

在项目的home模块里面的test部分,有个com.dianping.cat.demo.TestStorageMessage类,里

面的代码在我们的界面都可以找到对应的效果。

如sendSQLMsg这个方法,在界面的“Event”监控功能中,会发现监控的名字和方法。

private void sendSQLMsg(String name, String domain, String method, String serverIp) throws InterruptedException {Transaction t = Cat.newTransaction("SQL", "sql.method");Cat.logEvent("SQL.Method", method);Cat.logEvent("SQL.Database", String.format(JDBC_CONNECTION, serverIp, name));MessageTree tree = Cat.getManager().getThreadLocalMessageTree();((DefaultMessageTree) tree).setDomain(domain);Thread.sleep(500 + new Random().nextInt(1000));int nextInt = new Random().nextInt(3);if (nextInt % 2 == 0) {t.setStatus(Transaction.SUCCESS);} else {t.setStatus(String.valueOf(nextInt));}t.complete();}

对应代码里面的这两行名称:

Cat.logEvent("SQL.Method", method);
Cat.logEvent("SQL.Database", String.format(JDBC_CONNECTION, serverIp, name));

因此,我们可根据这个很容易地学习怎么使用。因为Cat项目已经启动了,整个机器都在监控的范围内,编写的项目有指定受cat项目监控便可实现实时监控,分析我们代码的执行效果了。

新建一个工程,在工程里面加入cat-home\target\cat-home-1.3.6-SNAPSHOT\WEB-INF\lib里面的所有jar包,暂时不知道哪些有用,哪些没用,所以全部加入工程中是没错的了。

在工程里面编写一个类,内容如下:

public class MyTest {public static void main(String[] args) {Transaction t = Cat.newTransaction("TEST", "test.method");Cat.logEvent("Method_test", "good");Cat.logEvent("Method_event", "bad");int nextInt = new Random().nextInt(3);if (nextInt % 2 == 0) {t.setStatus(Transaction.SUCCESS);} else {t.setStatus(String.valueOf(nextInt));}t.complete();}
}

运行,发现很快就结束了!输入提示看日志。

打开日志,发现有如下提示:

[07-20 22:05:34.780] [INFO] [DefaultModuleContext] Starting thread(Cat-ModelService-0) ...
[07-20 22:10:08.922] [INFO] [DefaultModuleContext] Starting thread(Cat-ModelService-1) ...
[07-20 22:20:00.677] [INFO] [DefaultModuleContext] Current working directory is C:\hadoop_java
[07-20 22:20:00.699] [INFO] [DefaultClientConfigManager] Global config file(\data\appdatas\cat\client.xml) found.
[07-20 22:20:00.700] [INFO] [DefaultClientConfigManager] Can't find app.properties in /META-INF/app.properties
[07-20 22:20:00.711] [WARN] [DefaultTransportManager] CAT was DISABLED due to not initialized yet!

提示很明白,就是没有app.properties这个文件,在项目的说明文档里面也有说到,这个文档主要是指定监控的Cat项目的。因为我们的监控项目改为了cat.war来启动了,所以就在源代码的目录下添加META-INF文件夹,里面添加app.properties这个文件,内容就是很简单的:

app.name=cat

这个名称和浏览器里面的domain对应,如果要改成其他名称,那么这个domain的值也要改成对应的名称。

注意:META-INF文件夹必须改为源文件的指定格式的。

再次运行代码,有如下效果,程序不会自动关闭了,说明在监控中……

查看日志,一切正常:

[07-20 22:25:58.541] [INFO] [ChannelManager] Connected to CAT server at /127.0.0.1:2280
[07-20 22:25:58.543] [INFO] [ChannelManager] success when init CAT server, new active holderactive future :/127.0.0.1:2280 index:0 ip:127.0.0.1 server config:null
[07-20 22:25:58.545] [INFO] [DefaultModuleContext] Thread group(cat) created.
[07-20 22:25:58.546] [INFO] [DefaultModuleContext] Starting thread(cat-TcpSocketSender-ChannelManager) ...
[07-20 22:25:58.546] [INFO] [DefaultModuleContext] Starting thread(cat-TcpSocketSender) ...
[07-20 22:25:58.547] [INFO] [DefaultModuleContext] Starting thread(cat-merge-atomic-task) ...
[07-20 22:25:58.557] [INFO] [DefaultModuleContext] Starting thread(cat-StatusUpdateTask) ...

刷新cat页面,发现新建了一个Transaction

和两个event事件了!

到此,应用cat实时监控系统部署成功,剩下的事情就是慢慢研究代码怎么更好地使用Cat了!

==========================================================

有时会发现实时监控页面什么数据都没有显示了,查看日志记录,会发现一大堆找不到10.0.0.1:2280的错误:

这需要我们点击右上角的登陆,用账号和密码都是catadmin来登陆,在“配置”的最后一项“全局告警配置”的“客户端路由”里面改为127.0.0.1:2280后,提交刷新实时页面,数据又回来了!

<?xml version="1.0" encoding="utf-8"?>
<router-config backup-server="127.0.0.1" backup-server-port="2280"><default-server id="127.0.0.1" port="2280" enable="true" weight="1.0"/>
</router-config>

部署点评Cat监控项目(转)相关推荐

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

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

  2. 三、美团大众点评CAT监控系列文章---Springboot集成CAT并实现邮件告警

    文章目录 一.配置过程 二.相关的参考文档 三.系列文章 一.配置过程 登录自己的cat服务端 默认登录用户名和密码都是 catadmin添加一个监控规则: 如下面的监控规则就是说,如果在一分钟以内访 ...

  3. 二、美团大众点评CAT监控系列文章---CAT监控的服务端配置

    文章目录 一.服务端下载和配置 二.相关的参考文档 三. 系列文章 一.服务端下载和配置 运行环境及开发工具如下: Jdk8 ,tomcat8,windows10,itellij idea,maven ...

  4. 大众点评cat监控系统

    点评的cat做业务监控确实不错,听说cat 2 快要出来了..... 搭建.文档 cat github地址:https://github.com/dianping/cat  相关文档:搭建文档  怎么 ...

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

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

  6. 一、springboot项目集成大众点评cat

    一. 什么是CAT 1.cat简介 Cat是基于Java开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务 • CAT作为服务端项目基础组件,提供了java, c/c++, node, p ...

  7. 大众点评CAT开源监控系统剖析

    参考文档: 大众点评的实时监控系统分析(一) CAT_source_analyze 透过CAT,来看分布式实时监控系统的设计与实现 深度剖析开源分布式监控CAT [分布式监控CAT] Client端源 ...

  8. 搭建大众点评网CAT监控

    项目地址:https://github.com/dianping/cat 关于cat的介绍和安装网上很多,这篇文章只是写一下我安装cat的过程. 一.可以用git下载这个项目,也可以直接按下图所示下载 ...

  9. CAT分布式监控系统(二):CAT埋点方案 项目接入CAT监控说明

    CAT分布式监控系统(二):CAT埋点方案  项目接入CAT监控说明 本文概要:              前面<CAT监控功能介绍>已经介绍了CAT监控系统是什么.能做什么:       ...

最新文章

  1. Java 处理 Exception 的 9 个最佳实践!
  2. excel 2010 学习笔记一 Vlookup 函数的使用
  3. MindSpore布道师队伍招募开始,助力小白成为大牛!
  4. java 如何对由json对象构成的数组形式的字符串进行遍历?
  5. J-LINK不能烧写(错误:JLink Warning: RESET (pin 15) high, but should be low. Please check target)
  6. number five
  7. php用到的mysql语句_PHP中常用到的一些MySQL语句_php
  8. 题外:分类篇(音乐风格分类)基于BP神经网络
  9. 又来Hello World了,Hello Python
  10. linux PHP卸载不了
  11. java8-2-Lambda表达式
  12. python传递参数*与**
  13. 拥抱SQLAlchemy 之二 拉拉手,我请你去看电影~
  14. MS-SQLSERVER中的msdtc不可用解决方法
  15. 软考高级信息系统项目管理师/高项和PMP的区别,以及对比
  16. sprintf左右对齐
  17. hp服务器修改阵列,HP ProLiant 服务器 修改磁盘阵列的方法
  18. 物联网-云开发(Tlink云、机智云、百度云、阿里云等)
  19. 如何修改QColorDialog窗口的背景颜色和上面的字体
  20. android手机运行win10,Win10可以直接运行你手机里的安卓APP了:三星率先支持

热门文章

  1. linux 删除和安装java
  2. UVa 11044 - Searching for Nessy
  3. mysql更换主键遇到的一个问题
  4. CRY ENGINE 3 引擎详解
  5. 大数据之-Hadoop3.x_MapReduce_区内排序案例---大数据之hadoop3.x工作笔记0117
  6. 大数据之-Hadoop3.x_MapReduce_序列化概述---大数据之hadoop3.x工作笔记0094
  7. python_对象的基本组成和内存示意图---python工作笔记016
  8. C++_类和对象_封装_成员属性私有化---C++语言工作笔记038
  9. openfeign远程调用不起作用解决_使用Spring Boot的spring.factories进行注入---SpringCloud Alibaba_若依微服务框架改造---工作笔记007
  10. OpenCV 2.4.8 or OpenCV 2.4.9组件结构全解析