pinpoint 問題解決
1、故障一
最近在部署好了 pinpoint 后,然后 agent 也啟動了,並且在web 檢測發現該agent 也有注冊信息。但是服務調用的信息和 服務的 JVM 信息等一些其他信息是沒有收集的。
問題所在:
pinpoint collector 監聽使用的端口是 :9994、9995、9996.
但是 9995和 9996 使用是 tcp 協議。
我們之前開放這些端口的協議是 udp 協議。
也折射處理一個問題:
telnet 使用的是 tcp 協議。 用 telnet udp 監聽的端口,是不通的。 可以使用 nc
2、故障二
問題
Pinpoint收集到的數據遠小於實際請求,對項目發送數十次請求后,pinpoint-web僅顯示數條請求數據,遠遠小於實際的請求次數。
解決辦法
pinpoint-agent配置文件pinpoint.config默認配置profiler.sampling.rate=20,即僅采樣5%的事務,每20次請求只收集顯示1次請求數據。
配置文件 pinpoint.config
:
profiler.sampling.rate=20
如果將此選項設置為1,則代理將每1個事務(100%采樣)跟蹤一次,如果將其設置為10,則每10個事務(10%采樣)跟蹤一次。
3、清理過期數據
1. 當我們 應用和服務下線了,我們如何刪除對應的應用和服務。
[官方文檔](https://naver.github.io/pinpoint/1.7.3/faq.html#how-do-i-delete-application-name-andor-agent-id-from-hbase)
一旦注冊了應用程序名稱和代理ID,它們就會保留在HBase中,直到它們的TTL過期(默認為1年)
我們可以通過 api(pinpoint web) 進行刪除。
/admin/removeApplicationName.pinpoint?applicationName=$APPLICATION_NAME&password=$PASSWORD
/admin/removeAgentId.pinpoint?applicationName=$APPLICATION_NAME&agentId=$AGENT_ID&password=$PASSWORD
請注意,password參數的值是您admin.password,在pinpoint-web.properties中定義的屬性。保留此空白將使您無需密碼參數即可調用管理API。
2. 清理 Hbase 里面的數據
縮短 TTL 值(對於AgentStatV2和TraceV2),刪除 AgentStatV2和TraceV2表(調用堆棧數據)中的數據可能是最安全的。
詳細操作見:https://www.cnblogs.com/FireLL/p/11612522.html
/home/yeemiao/hbase-1.2.11/bin/hbase shell
#查看表的狀態
describe 'TraceV2'
#禁用該表
disable 'TraceV2'
#修改表的ttl數值,單位為秒
alter 'TraceV2' , {NAME=>'S',TTL=>'3888000'}
#合並文件,清除刪除、過期、多余版本的數據
major_compact 'TraceV2'
#啟用該表
enable 'TraceV2'