`
m635674608
  • 浏览: 5027902 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

部署点评Cat监控项目

 
阅读更多

在项目中监控代码运行的状况,可以采用点评的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”监控功能中,会发现监控的名字和方法。


[java] view plain copy
  1. private void sendSQLMsg(String name, String domain, String method, String serverIp) throws InterruptedException {  
  2.         Transaction t = Cat.newTransaction("SQL""sql.method");  
  3.   
  4.         Cat.logEvent("SQL.Method", method);  
  5.         Cat.logEvent("SQL.Database", String.format(JDBC_CONNECTION, serverIp, name));  
  6.   
  7.         MessageTree tree = Cat.getManager().getThreadLocalMessageTree();  
  8.   
  9.         ((DefaultMessageTree) tree).setDomain(domain);  
  10.         Thread.sleep(500 + new Random().nextInt(1000));  
  11.         int nextInt = new Random().nextInt(3);  
  12.   
  13.         if (nextInt % 2 == 0) {  
  14.             t.setStatus(Transaction.SUCCESS);  
  15.         } else {  
  16.             t.setStatus(String.valueOf(nextInt));  
  17.         }  
  18.   
  19.         t.complete();  
  20.     }  



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


[java] view plain copy
  1. Cat.logEvent("SQL.Method", method);  
  2. 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包,暂时不知道哪些有用,哪些没用,所以全部加入工程中是没错的了。

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

[java] view plain copy
  1. public class MyTest {  
  2.     public static void main(String[] args) {  
  3.         Transaction t = Cat.newTransaction("TEST""test.method");  
  4.   
  5.         Cat.logEvent("Method_test""good");  
  6.         Cat.logEvent("Method_event""bad");  
  7.   
  8.         int nextInt = new Random().nextInt(3);  
  9.   
  10.         if (nextInt % 2 == 0) {  
  11.             t.setStatus(Transaction.SUCCESS);  
  12.         } else {  
  13.             t.setStatus(String.valueOf(nextInt));  
  14.         }  
  15.   
  16.         t.complete();  
  17.     }  
  18. }  


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

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

[plain] view plain copy
  1. [07-20 22:05:34.780] [INFO] [DefaultModuleContext] Starting thread(Cat-ModelService-0) ...  
  2. [07-20 22:10:08.922] [INFO] [DefaultModuleContext] Starting thread(Cat-ModelService-1) ...  
  3. [07-20 22:20:00.677] [INFO] [DefaultModuleContext] Current working directory is C:\hadoop_java  
  4. [07-20 22:20:00.699] [INFO] [DefaultClientConfigManager] Global config file(\data\appdatas\cat\client.xml) found.  
  5. [07-20 22:20:00.700] [INFO] [DefaultClientConfigManager] Can't find app.properties in /META-INF/app.properties  
  6. [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文件夹必须改为源文件的指定格式的。


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

查看日志,一切正常:

[plain] view plain copy
  1. [07-20 22:25:58.541] [INFO] [ChannelManager] Connected to CAT server at /127.0.0.1:2280  
  2. [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  
  3. [07-20 22:25:58.545] [INFO] [DefaultModuleContext] Thread group(cat) created.  
  4. [07-20 22:25:58.546] [INFO] [DefaultModuleContext] Starting thread(cat-TcpSocketSender-ChannelManager) ...  
  5. [07-20 22:25:58.546] [INFO] [DefaultModuleContext] Starting thread(cat-TcpSocketSender) ...  
  6. [07-20 22:25:58.547] [INFO] [DefaultModuleContext] Starting thread(cat-merge-atomic-task) ...  
  7. [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后,提交刷新实时页面,数据又回来了!

[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <router-config backup-server="127.0.0.1" backup-server-port="2280">  
  3.    <default-server id="127.0.0.1" port="2280" enable="true" weight="1.0"/>  
  4. </router-config> 

http://blog.csdn.net/u011439289/article/details/46988993

分享到:
评论
2 楼 __点__ 2017-07-06  
如果你知道的话,希望你指点一二。。。
1 楼 __点__ 2017-07-06  
cat本地运行时,本地数据库会生成表以及表数据,
其中有一个表baseline,表中有data这一列,
[ select data from baseline ]
data的值您知道是怎么写进去的吗?
我找了好久没找到。。。。

相关推荐

    大众点评实时监控系统CAT

    为了更好地理解和应用CAT监控系统,还可以进一步研究以下领域: - **分布式监控系统的原理和技术栈** - **大数据处理技术和流式计算** - **微服务架构下的监控策略** #### 参考文献 - **《高可用架构》**:本书...

    springmvc-cat实时监控demo

    6. **部署与测试**:将应用部署到服务器,通过发起请求来观察CAT控制台是否能正确显示监控数据。 在这个DEMO中,你将会看到如何创建一个简单的Spring MVC项目,并逐步添加CAT的监控功能。通过这个过程,你可以学习...

    点评CAT服务cat.war

    1. **CAT服务**:CAT服务是CAT系统的核心组成部分,它通过部署`cat.war`文件在Web服务器上,提供监控数据的收集、存储和展示。`cat.war`是一个Web应用归档文件,遵循Java Web应用程序的标准格式,包含必要的JSP、...

    美团点评cat剖析.docx

    ### 美团点评CAT监控平台深度解析 #### 一、CAT系统概述 美团点评的CAT监控平台,作为一款高效且全面的监控解决方案,自2014年开源以来,已在多家知名互联网企业中得到了广泛的应用,如携程、陆金所、猎聘网等。...

    CAT实时应用监控平台-其他

    需要高可用监控来支撑故障容忍:故障不影响业务正常运转、对业务透明高吞吐:海量监控数据的收集,需要高吞吐能力做保证可扩展:支持分布式、跨 IDC 部署,横向扩展的监控系统功能模块cat-client:客户端,上报监控...

    cat-2.0.0.zip

    应用于 7000+应用服务器,2000+的业务,单台机器能15W qps,15台CAT物理集群,有着极高的性能,同时CAT支持丰富的报表,架构拥有灵活的扩展性,用户可以定制自己的监控、报表需求,本文将就CAT的部署、架构源码以及...

    微服务架构的应用性能监控.pdf

    * 点评Cat, Zipkin(开源):使用开源的监控工具,关注Tracing, 全量或采样。 * 轻量,自动嵌码探针,SaaS,开箱即用:使用轻量的监控工具,自动嵌码探针,SaaS,开箱即用。 听云微服务架构的应用性能监控是指使用...

    na-vicat110_mysql_cs_x86.7z

    "很好用,还算不错的"评价表明这个工具在实际使用中表现出良好的性能和易用性。 【标签】"mysql"明确了Navicat for MySQL是专为MySQL数据库设计的,MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS)。它以...

    cat_dog_classifier

    3. 训练模型:设定优化器(如Adam)、损失函数(如 categorical_crossentropy)和评价指标,然后用训练集对模型进行训练,同时使用验证集监控模型性能。 4. 模型评估:在测试集上评估模型的性能,查看准确率、精确...

    美团技术点评2018全集

    7. **CAT 3.0**:美团发布的性能监控工具,支持多语言客户端并优化了性能,对性能问题的检测和解决提供了有力工具。 8. **DataMan**:数据质量监管平台的实践,确保了数据的准确性和可靠性,对于数据分析和决策至关...

    电影频道业务和技术架构演示

    - **监控与备份**:使用CAT进行系统监控,MogileFS作为备份存储解决方案。 - **部署平台**:主要使用Tomcat作为应用服务器,CentOS作为操作系统,F5作为负载均衡器,Docker进行容器化部署,Tengine和Varnish作为Web...

    美团云应用容器化架构设计.pptx

    同时,通过Prometheus、Falcon、CAT等工具进行容器监控,确保了对物理机和容器各项指标的精细化管理。 最后,美团云通过将服务拆分为多个容器,形成了容器组,实现了服务的松耦合、容器资源的隔离以及整体的调度...

    美团精选合辑——后台系列1

    CAT(Ctrip Application Trace)是一个监控系统,用于跟踪和分析系统的运行状况。升级到3.0版本,增加了对多种语言客户端的支持,并提升了性能,这有助于更全面地了解系统的健康状态,为故障排查和性能优化提供数据...

    Beckoff选型手册

    - **灵活性**:支持多平台部署,适用于不同的硬件配置。 ##### 4. 运动控制 - **产品示例**:AX5000 EtherCAT伺服驱动器。 - **技术特点**: - **高速响应**:利用EtherCAT的高速特性实现精密定位。 - **智能化*...

    ML测试:ML测试

    在机器学习项目中,测试主要涉及以下几个方面: 1. 数据质量测试:首先,我们需要验证训练数据的质量,包括数据的完整性、一致性、准确性和代表性。这通常通过数据清洗和预处理步骤来完成,例如检查缺失值、异常值...

Global site tag (gtag.js) - Google Analytics