- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
部署点评Cat监控项目
在项目中监控代码运行的状况,可以采用点评的Cat项目来监控整个项目,但是按照官方的文档来部署cat,总会遇到各种问题,讲解的也不够简明清楚,现在用一个单机来部署运行cat监控项目。首先,到项目的git网页下载整个项目:/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));}plete();}对应代码里面的这两行名称: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里面的所有
文档评论(0)