部署項目,部署點評Cat監控項目(轉)

 2023-10-08 阅读 25 评论 0

摘要:原文地址:http://www.bubuko.com/infodetail-986338.html 部署項目,在項目中監控代碼運行的狀況,可以采用點評的Cat項目來監控整個項目,但是按照官方的文檔來部署cat,總會遇到各種問題,講解的也不夠簡明清楚,現在用一個單機來部署

原文地址: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>

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/131555.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息