在啓動一個掛載pinpoint的springboot項目的時候,界面上顯示成了jboss的圖標,因此今天研究了一下這個數據是怎麼來的。spring
咱們知道不一樣圖標和服務類型有關,服務不一樣,圖標就不一樣,這在代碼裏面使用一個ServiceType屬性來描述。springboot
Sending AgentInfo TAgentInfo.... hostname:izwz98jc3nwxdjxg1yfd1hz, ip:172.xx.xx, ports:, agentId:testboot_agentId, applicationName:testboot_45, serviceType:1210, pid:28277, agentVersion:1.8.0, AgentInfo sent.
@AgentId String agentId, @ApplicationName String applicationName, @Container boolean isContainer, @AgentStartTime long agentStartTime, @ApplicationServerType ServiceType serverType
// service type this.applicationServerType = readString("profiler.applicationservertype", null);
沒錯,就是UNDEFINED。沒定義確定取不到值呀。app
此時,pinpoint會獲取全部已經註冊的插件,調用他們的detect方法。若是校驗經過,則直接返回插件中配置的serviceType。maven
boolean detect(ConditionProvider provider);
ServiceType STAND_ALONE = of(1000, "STAND_ALONE", RECORD_STATISTICS);
借用下羣友圖片,咱們知道若是不配置,默認會去檢測MAIN-CLASS的值有沒有和pinpoint.config中的配置對應上。
ide
一旦檢測到,就返回對應插件的serverType,也就是SpringBoot。this
profiler.jboss.traceEjb=false profiler.applicationservertype=JBOSS
歡迎來公衆號【俠夢的開發筆記】 一塊兒交流進步插件