本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體而言,涉及一種基于Pinpoint的信息查詢方法和裝置。
背景技術(shù):
Pinpoint是一個(gè)開源的應(yīng)用性能管理(Application Performance Management,簡(jiǎn)稱為APM)工具,用于基于java的大規(guī)模分布式系統(tǒng)。仿照Google Dapper,Pinpoint通過跟蹤分布式應(yīng)用之間的調(diào)用來提供解決方案,以幫助分析系統(tǒng)的總體結(jié)構(gòu)和內(nèi)部模塊之間如何相互聯(lián)系。如今的服務(wù)通常由很多不同模塊組成,它們之間相互調(diào)用并通過API調(diào)用外部服務(wù)。每個(gè)交互是如何被執(zhí)行的通常是一個(gè)黑盒,Pinpoint可以跟蹤這些模塊之間的調(diào)用流并提供清晰的視圖來定位問題區(qū)域和潛在瓶頸。但是,相關(guān)技術(shù)中的Pinpoint的查詢粒度比較粗,不能對(duì)調(diào)用的接口方法和調(diào)用棧的參數(shù)信息進(jìn)行查詢,這樣將會(huì)導(dǎo)致如果要排查問題點(diǎn)的時(shí)間范圍內(nèi)調(diào)用過多,很難快速地定位問題。
針對(duì)相關(guān)技術(shù)中的Pinpoint查詢粒度較粗,無法實(shí)現(xiàn)查詢調(diào)用棧的信息的問題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種基于Pinpoint的信息查詢方法和裝置,以至少解決相關(guān)技術(shù)中的Pinpoint查詢粒度較粗,無法實(shí)現(xiàn)查詢調(diào)用棧的信息的技術(shù)問題。
根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種基于Pinpoint的信息查詢方法,包括:獲取Pinpoint應(yīng)用系統(tǒng)的屬性狀態(tài)信息;將獲取到的屬性狀態(tài)信息傳輸至預(yù)定數(shù)據(jù)庫,并將屬性狀態(tài)信息添加至搜索平臺(tái),其中,預(yù)定數(shù)據(jù)庫中的屬性狀態(tài)信息的存儲(chǔ)格式與搜索平臺(tái)中的屬性狀態(tài)信息的存儲(chǔ)格式不同;按照預(yù)定查詢條件對(duì)搜索平臺(tái)中的屬性狀態(tài)信息進(jìn)行初步查詢,得到初步查詢結(jié)果;以及根據(jù)查詢結(jié)果對(duì)預(yù)定數(shù)據(jù)庫中的屬性狀態(tài)信息進(jìn)行再次查詢,得到Pinpoint中的調(diào)用棧的信息。
進(jìn)一步地,將屬性狀態(tài)信息添加至搜索平臺(tái)包括:將屬性狀態(tài)信息進(jìn)行編碼;利用數(shù)據(jù)發(fā)送組件將編碼后的屬性狀態(tài)信息寫入至搜索平臺(tái);在搜索平臺(tái)中按照維度對(duì)屬性狀態(tài)信息進(jìn)行存儲(chǔ)。
進(jìn)一步地,預(yù)定查詢條件用于指示查詢第一維度對(duì)應(yīng)的屬性狀態(tài)信息,其中,按照預(yù)定查詢條件對(duì)搜索平臺(tái)中的屬性狀態(tài)信息進(jìn)行初步查詢,得到初步查詢結(jié)果包括:在搜索平臺(tái)中從多個(gè)維度中查詢第一維度;獲取第一維度對(duì)應(yīng)的屬性狀態(tài)信息。
進(jìn)一步地,根據(jù)查詢結(jié)果對(duì)預(yù)定數(shù)據(jù)庫中的屬性狀態(tài)信息進(jìn)行再次查詢,得到Pinpoint中的調(diào)用棧的信息包括:從預(yù)定數(shù)據(jù)庫中查找與第一維度對(duì)應(yīng)的屬性狀態(tài)信息對(duì)應(yīng)的調(diào)用棧的信息。
進(jìn)一步地,在根據(jù)查詢結(jié)果對(duì)預(yù)定數(shù)據(jù)庫中的屬性狀態(tài)信息進(jìn)行再次查詢,得到Pinpoint中的調(diào)用棧的信息之后,該方法還包括:輸出并顯示查詢得到的調(diào)用棧的信息。
根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種基于Pinpoint的信息查詢裝置,包括:獲取單元,用于獲取Pinpoint應(yīng)用系統(tǒng)的屬性狀態(tài)信息;添加單元,用于將獲取到的屬性狀態(tài)信息傳輸至預(yù)定數(shù)據(jù)庫,并將屬性狀態(tài)信息添加至搜索平臺(tái),其中,預(yù)定數(shù)據(jù)庫中的屬性狀態(tài)信息的存儲(chǔ)格式與搜索平臺(tái)中的屬性狀態(tài)信息的存儲(chǔ)格式不同;第一查詢單元,用于按照預(yù)定查詢條件對(duì)搜索平臺(tái)中的屬性狀態(tài)信息進(jìn)行初步查詢,得到初步查詢結(jié)果;以及第二查詢單元,用于根據(jù)查詢結(jié)果對(duì)預(yù)定數(shù)據(jù)庫中的屬性狀態(tài)信息進(jìn)行再次查詢,得到Pinpoint中的調(diào)用棧的信息。
進(jìn)一步地,添加單元包括:編碼模塊,用于將屬性狀態(tài)信息進(jìn)行編碼;寫入模塊,用于利用數(shù)據(jù)發(fā)送組件將編碼后的屬性狀態(tài)信息寫入至搜索平臺(tái);存儲(chǔ)模塊,用于在搜索平臺(tái)中按照維度對(duì)屬性狀態(tài)信息進(jìn)行存儲(chǔ)。
進(jìn)一步地,預(yù)定查詢條件用于指示查詢第一維度對(duì)應(yīng)的屬性狀態(tài)信息,其中,第一查詢單元包括:第一查詢模塊,用于在搜索平臺(tái)中從多個(gè)維度中查詢第一維度;獲取模塊,用于獲取第一維度對(duì)應(yīng)的屬性狀態(tài)信息。
進(jìn)一步地,第二查詢單元包括:第二查詢模塊,用于從預(yù)定數(shù)據(jù)庫中查找與第一維度對(duì)應(yīng)的屬性狀態(tài)信息對(duì)應(yīng)的調(diào)用棧的信息。
進(jìn)一步地,該裝置還包括:顯示單元,用于在根據(jù)查詢結(jié)果對(duì)預(yù)定數(shù)據(jù)庫中的屬性狀態(tài)信息進(jìn)行再次查詢,得到Pinpoint中的調(diào)用棧的信息之后,輸出并顯示查詢得到的調(diào)用棧的信息。
在本發(fā)明實(shí)施例中,通過獲取Pinpoint應(yīng)用系統(tǒng)的屬性狀態(tài)信息;將獲取到的屬性狀態(tài)信息傳輸至預(yù)定數(shù)據(jù)庫,并將屬性狀態(tài)信息添加至搜索平臺(tái),其中,預(yù)定數(shù)據(jù)庫中的屬性狀態(tài)信息的存儲(chǔ)格式與搜索平臺(tái)中的屬性狀態(tài)信息的存儲(chǔ)格式不同;按照預(yù)定查詢條件對(duì)搜索平臺(tái)中的屬性狀態(tài)信息進(jìn)行初步查詢,得到初步查詢結(jié)果;以及根據(jù)查詢結(jié)果對(duì)預(yù)定數(shù)據(jù)庫中的屬性狀態(tài)信息進(jìn)行再次查詢,得到Pinpoint中的調(diào)用棧的信息,達(dá)到了利用Pinpoint查詢調(diào)用棧的信息的目的,從而實(shí)現(xiàn)了減小了Pinpoint的查詢粒度,提高查詢結(jié)果的準(zhǔn)確度的技術(shù)效果,進(jìn)而解決了相關(guān)技術(shù)中的Pinpoint查詢粒度較粗,無法實(shí)現(xiàn)查詢調(diào)用棧的信息的技術(shù)問題。
附圖說明
此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1是根據(jù)本發(fā)明實(shí)施例的基于Pinpoint的信息查詢方法的流程圖;
圖2是根據(jù)本發(fā)明實(shí)施例的Pinpoint系統(tǒng)架構(gòu)的示意圖;以及
圖3是根據(jù)本發(fā)明實(shí)施例的基于Pinpoint的信息查詢裝置的示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
首先,在對(duì)本發(fā)明實(shí)施例進(jìn)行描述的過程中出現(xiàn)的部分名詞或術(shù)語適用于如下解釋:
Pinpoint:一個(gè)開源的應(yīng)用性能管理(Application Performance Management,簡(jiǎn)稱為APM)工具,用于基于java的大規(guī)模分布式系統(tǒng),基于Google Dapper論文。
Dapper:分布式跟蹤系統(tǒng)。
Elasticsearch(簡(jiǎn)稱ES):是一個(gè)基于Lucene的搜索服務(wù)器。
Logstash:一款輕量級(jí)的日志搜集處理框架,可以方便的把分散的、多樣化的日志搜集起來,并進(jìn)行自定義的處理,然后傳輸?shù)街付ǖ奈恢?比如某個(gè)服務(wù)器或者文件。
Kafka:一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng)。
調(diào)用棧:代碼級(jí)別的系統(tǒng)調(diào)用體現(xiàn)。
根據(jù)本發(fā)明實(shí)施例,提供了一種基于Pinpoint的信息查詢方法的方法實(shí)施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
圖1是根據(jù)本發(fā)明實(shí)施例的基于Pinpoint的信息查詢方法的流程圖,如圖1所示,該方法包括如下步驟:
步驟S102,獲取Pinpoint應(yīng)用系統(tǒng)的屬性狀態(tài)信息;
步驟S104,將獲取到的屬性狀態(tài)信息傳輸至預(yù)定數(shù)據(jù)庫,并將屬性狀態(tài)信息添加至搜索平臺(tái),其中,預(yù)定數(shù)據(jù)庫中的屬性狀態(tài)信息的存儲(chǔ)格式與搜索平臺(tái)中的屬性狀態(tài)信息的存儲(chǔ)格式不同;
步驟S106,按照預(yù)定查詢條件對(duì)搜索平臺(tái)中的屬性狀態(tài)信息進(jìn)行初步查詢,得到初步查詢結(jié)果;
步驟S108,根據(jù)查詢結(jié)果對(duì)預(yù)定數(shù)據(jù)庫中的屬性狀態(tài)信息進(jìn)行再次查詢,得到Pinpoint中的調(diào)用棧的信息。
上述步驟通過獲取Pinpoint應(yīng)用系統(tǒng)的屬性狀態(tài)信息;將獲取到的屬性狀態(tài)信息傳輸至預(yù)定數(shù)據(jù)庫,并將屬性狀態(tài)信息添加至搜索平臺(tái),其中,預(yù)定數(shù)據(jù)庫中的屬性狀態(tài)信息的存儲(chǔ)格式與搜索平臺(tái)中的屬性狀態(tài)信息的存儲(chǔ)格式不同;按照預(yù)定查詢條件對(duì)搜索平臺(tái)中的屬性狀態(tài)信息進(jìn)行初步查詢,得到初步查詢結(jié)果;以及根據(jù)查詢結(jié)果對(duì)預(yù)定數(shù)據(jù)庫中的屬性狀態(tài)信息進(jìn)行再次查詢,得到Pinpoint中的調(diào)用棧的信息,達(dá)到了利用Pinpoint查詢調(diào)用棧的信息的目的,進(jìn)而解決了相關(guān)技術(shù)中的Pinpoint查詢粒度較粗,無法實(shí)現(xiàn)查詢調(diào)用棧的信息的技術(shù)問題,從而實(shí)現(xiàn)了減小了Pinpoint的查詢粒度,提高查詢結(jié)果的準(zhǔn)確度的技術(shù)效果。
在對(duì)本發(fā)明實(shí)施例的基于Pinpoint的信息查詢方法進(jìn)行詳細(xì)介紹之前,此處首先對(duì)Pinpoint進(jìn)行介紹:
Pinpoint是一個(gè)開源的應(yīng)用性能管理(Application Performance Management,簡(jiǎn)稱為APM)工具,用于基于java的大規(guī)模分布式系統(tǒng)。Pinpoint中可以包括以下展現(xiàn)組件:
(1)服務(wù)器地圖,可以通過可視化分布式系統(tǒng)的模塊和它們之間的相互聯(lián)系來獲取系統(tǒng)拓?fù)洹|c(diǎn)擊某個(gè)節(jié)點(diǎn)可以展示這個(gè)模塊的詳細(xì)信息,例如該模塊當(dāng)前的狀態(tài)和請(qǐng)求數(shù)量等。
(2)實(shí)時(shí)活動(dòng)線程圖表,可以實(shí)時(shí)監(jiān)控應(yīng)用內(nèi)部的活動(dòng)線程。
(3)請(qǐng)求/應(yīng)答分布圖表,可以長(zhǎng)期可視化請(qǐng)求數(shù)量和應(yīng)答模式來定位潛在問題,通過在圖表上拉拽可以選擇請(qǐng)求查看更多的詳細(xì)信息。
(4)調(diào)用棧,在分布式環(huán)境中為每個(gè)調(diào)用生成代碼級(jí)別的可視圖,在單個(gè)視圖中定位瓶頸和失敗點(diǎn)。
(5)巡查,可以查看應(yīng)用上的其他詳細(xì)信息,比如CPU使用率,內(nèi)存垃圾回收,TPS以及JVM參數(shù)等。
基于上述的Pinpoint,本發(fā)明實(shí)施例提供了一種基于Pinpoint的信息查詢方法,具體包括以上步驟S102至步驟S108,具體地:
在步驟S102提供的方案中,Pinpoint應(yīng)用系統(tǒng)的屬性狀態(tài)信息可以包括但并不限于Pinpoint應(yīng)用系統(tǒng)中的各個(gè)模塊之間的調(diào)用信息、調(diào)用棧的信息、CPU使用率、內(nèi)存垃圾回收,TPS以及JVM參數(shù)等。本發(fā)明實(shí)施例可以通過設(shè)置Pinpoint Agent來獲取屬性狀態(tài)信息,其中,PinpointAgent的作用是通過字節(jié)碼技術(shù)完成數(shù)據(jù)埋點(diǎn),以實(shí)現(xiàn)獲取Pinpoint應(yīng)用系統(tǒng)的屬性狀態(tài)信息。
在步驟S104提供的方案中,在獲取到Pinpoint應(yīng)用系統(tǒng)的屬性狀態(tài)信息之后,可以將獲取到的屬性狀態(tài)信息傳輸至預(yù)定數(shù)據(jù)庫,其中,預(yù)定數(shù)據(jù)庫可以是Pinpoint中的數(shù)據(jù)庫HBase,在將屬性狀態(tài)信息傳輸至預(yù)定數(shù)據(jù)庫的同時(shí),本發(fā)明實(shí)施例還可以將該屬性狀態(tài)信息添加至ES搜索平臺(tái),此處需要說明的是,預(yù)定數(shù)據(jù)庫中存儲(chǔ)的屬性狀態(tài)信息的存儲(chǔ)格式與ES搜索平臺(tái)中存儲(chǔ)的屬性狀態(tài)信息的存儲(chǔ)格式不同,ES搜索平臺(tái)中存儲(chǔ)的屬性狀態(tài)信息可以按照不同維度進(jìn)行存儲(chǔ),例如時(shí)間維度等。
作為一種可選地實(shí)施例,將屬性狀態(tài)信息添加至搜索平臺(tái)可以包括:將屬性狀態(tài)信息進(jìn)行編碼;利用數(shù)據(jù)發(fā)送組件將編碼后的屬性狀態(tài)信息寫入至搜索平臺(tái);在搜索平臺(tái)中按照維度對(duì)屬性狀態(tài)信息進(jìn)行存儲(chǔ)。
此處需要說明的是,在獲取到屬性狀態(tài)信息之后,可以通過攔截器將該屬性狀態(tài)信息進(jìn)行編碼,并通過Logstash、Kafka等組件發(fā)送至ES搜索平臺(tái)。ES搜索平臺(tái)中的屬性狀態(tài)信息可以按照不同維度進(jìn)行存儲(chǔ),以便于可以從ES搜索平臺(tái)中按照維度進(jìn)行快速查詢,進(jìn)而達(dá)到提高Pinpoint中信息查詢效率的效果。
在步驟S106提供的技術(shù)方案中,預(yù)定查詢條件可以根據(jù)實(shí)際需求進(jìn)行設(shè)定或調(diào)整,本發(fā)明實(shí)施例不做具體限定。預(yù)定查詢條件可以為針對(duì)某個(gè)維度的屬性狀態(tài)信息的查詢,按照預(yù)定查詢條件對(duì)ES搜索平臺(tái)中的屬性狀態(tài)信息進(jìn)行初步查詢,可以得到某一個(gè)維度下的所有的屬性狀態(tài)信息。
作為一種可選的實(shí)施例,預(yù)定查詢條件用于指示查詢第一維度對(duì)應(yīng)的屬性狀態(tài)信息,此處需要說明的是,第一維度可以是ES搜索平臺(tái)中的所有維度中的任意一個(gè)維度。按照預(yù)定查詢條件對(duì)搜索平臺(tái)中的屬性狀態(tài)信息進(jìn)行初步查詢,得到初步查詢結(jié)果可以包括:在搜索平臺(tái)中從多個(gè)維度中查詢第一維度;獲取第一維度對(duì)應(yīng)的屬性狀態(tài)信息。
需要說明的是,按照預(yù)定查詢條件對(duì)ES搜索平臺(tái)中的屬性狀態(tài)信息進(jìn)行初步查詢,目的是為了獲取到某個(gè)維度下的所有的屬性狀態(tài)信息,以便于能夠根據(jù)該維度下的屬性狀態(tài)信息獲取所需要的調(diào)用棧的信息,進(jìn)而能夠達(dá)到減小Pinpoint的信息查詢粒度,提高查詢得到的信息的準(zhǔn)確度的效果。
在步驟S108提供的技術(shù)方案中,在查詢得到初步查詢結(jié)果之后,本發(fā)明實(shí)施例可以根據(jù)該初步查詢結(jié)果對(duì)預(yù)定數(shù)據(jù)庫中的屬性狀態(tài)信息進(jìn)行再次查詢,此處需要說明的是,預(yù)定數(shù)據(jù)庫可以是Pinpoint中的HBase,根據(jù)按照預(yù)定的查詢條件對(duì)ES搜索平臺(tái)中的屬性狀態(tài)信息進(jìn)行初步查詢所得到的初步查詢結(jié)果,對(duì)HBase中的屬性狀態(tài)信息進(jìn)行再次查詢,能夠獲取到所需要的調(diào)用棧的信息。
作為一種可選的實(shí)施例,根據(jù)查詢結(jié)果對(duì)預(yù)定數(shù)據(jù)庫中的屬性狀態(tài)信息進(jìn)行再次查詢,得到Pinpoint中的調(diào)用棧的信息可以包括:從預(yù)定數(shù)據(jù)庫中查找與第一維度對(duì)應(yīng)的屬性狀態(tài)信息對(duì)應(yīng)的調(diào)用棧的信息。
此處需要說明的是,在按照預(yù)定查詢條件對(duì)ES搜索平臺(tái)進(jìn)行初步查詢獲取到第一維度對(duì)應(yīng)的屬性狀態(tài)信息之后,根據(jù)該第一維度對(duì)應(yīng)的屬性狀態(tài)信息可以從預(yù)定數(shù)據(jù)庫中查找到與其對(duì)應(yīng)的調(diào)用棧信息。通過上述查詢方式,本發(fā)明實(shí)施例能夠?qū)崿F(xiàn)查詢Pinpoint中的調(diào)用棧的信息的目的,進(jìn)而解決相關(guān)技術(shù)中的Pinpoint查詢粒度較粗,無法實(shí)現(xiàn)查詢調(diào)用棧的信息的技術(shù)問題,從而實(shí)現(xiàn)了減小了Pinpoint的查詢粒度,提高查詢結(jié)果的準(zhǔn)確度的技術(shù)效果。
作為一種可選的實(shí)施例,在根據(jù)查詢結(jié)果對(duì)預(yù)定數(shù)據(jù)庫中的屬性狀態(tài)信息進(jìn)行再次查詢,得到Pinpoint中的調(diào)用棧的信息之后,該實(shí)施例還可以包括:輸出并顯示查詢得到的調(diào)用棧的信息。
此處需要說明的是,在查詢得到調(diào)用棧的信息之后,本發(fā)明實(shí)施例可以輸出該調(diào)用棧的信息,并在Pinpoint網(wǎng)頁中顯示該調(diào)用棧的信息,以便于用戶可以直觀清楚地查看所需要的調(diào)用棧的信息,極大地提高了用戶的使用體驗(yàn)。
本發(fā)明還提供了一種優(yōu)選實(shí)施例,該優(yōu)選實(shí)施例提供了一種改造后的Pinpoint的系統(tǒng)架構(gòu),如圖2所示,在改造后的Pinpoint中,服務(wù)端可以通過設(shè)置Pinpoint Agent獲取應(yīng)用系統(tǒng)的屬性狀態(tài)信息,其中,Pinpoint Agent的作用是通過【字節(jié)碼】技術(shù)完成數(shù)據(jù)埋點(diǎn)。在獲取到應(yīng)用系統(tǒng)的屬性狀態(tài)信息之后,可以將所獲取到的數(shù)據(jù)寫入Pinpoint Collector,其中,Pinpoint Collector可以用于收集各個(gè)應(yīng)用系統(tǒng)的屬性狀態(tài)信息。Pinpoint Collector可以將收集到的所有數(shù)據(jù)寫入至HBase,在Pinpoint Collector將數(shù)據(jù)信息寫入至HBase的同時(shí),可以設(shè)置一數(shù)據(jù)攔截器,并將Pinpoint Collector中的數(shù)據(jù)經(jīng)隊(duì)列寫入ES搜索平臺(tái)。Pinpoint用戶可以在Pinpoint Web中輸入查詢請(qǐng)求,該查詢請(qǐng)求中可以包括過濾條件,PinpointWeb可以首先將該查詢請(qǐng)求發(fā)送給ES搜索平臺(tái)進(jìn)行初步查詢,然后根據(jù)在ES搜索平臺(tái)中按照過濾條件進(jìn)行過濾后得到的初步查詢結(jié)果到HBase中進(jìn)行再次查詢,以實(shí)現(xiàn)查詢調(diào)用棧的信息。最后,可以將查詢得到的調(diào)用棧的信息在PinpointWeb中進(jìn)行顯示,以便于用戶查看。
根據(jù)本發(fā)明實(shí)施例,還提供了一種基于Pinpoint的信息查詢裝置的裝置實(shí)施例,需要說明的是,該基于Pinpoint的信息查詢裝置可以用于執(zhí)行本發(fā)明實(shí)施例中的基于Pinpoint的信息查詢方法,本發(fā)明實(shí)施例中的基于Pinpoint的信息查詢方法可以在該基于Pinpoint的信息查詢裝置中執(zhí)行。
圖3是根據(jù)本發(fā)明實(shí)施例的基于Pinpoint的信息查詢裝置的示意圖,如圖3所示,該裝置可以包括:
獲取單元22,用于獲取Pinpoint應(yīng)用系統(tǒng)的屬性狀態(tài)信息;添加單元24,用于將獲取到的屬性狀態(tài)信息傳輸至預(yù)定數(shù)據(jù)庫,并將屬性狀態(tài)信息添加至搜索平臺(tái),其中,預(yù)定數(shù)據(jù)庫中的屬性狀態(tài)信息的存儲(chǔ)格式與搜索平臺(tái)中的屬性狀態(tài)信息的存儲(chǔ)格式不同;第一查詢單元26,用于按照預(yù)定查詢條件對(duì)搜索平臺(tái)中的屬性狀態(tài)信息進(jìn)行初步查詢,得到初步查詢結(jié)果;以及第二查詢單元28,用于根據(jù)查詢結(jié)果對(duì)預(yù)定數(shù)據(jù)庫中的屬性狀態(tài)信息進(jìn)行再次查詢,得到Pinpoint中的調(diào)用棧的信息。
需要說明的是,該實(shí)施例中的獲取單元22可以用于執(zhí)行本申請(qǐng)實(shí)施例中的步驟S102,該實(shí)施例中的添加單元24可以用于執(zhí)行本申請(qǐng)實(shí)施例中的步驟S104,該實(shí)施例中的第一查詢單元26可以用于執(zhí)行本申請(qǐng)實(shí)施例中的步驟S106,該實(shí)施例中的第二查詢單元28可以用于執(zhí)行本申請(qǐng)實(shí)施例中的步驟S108。上述模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場(chǎng)景相同,但不限于上述實(shí)施例所公開的內(nèi)容。
可選地,添加單元24可以包括:編碼模塊,用于將屬性狀態(tài)信息進(jìn)行編碼;寫入模塊,用于利用數(shù)據(jù)發(fā)送組件將編碼后的屬性狀態(tài)信息寫入至搜索平臺(tái);存儲(chǔ)模塊,用于在搜索平臺(tái)中按照維度對(duì)屬性狀態(tài)信息進(jìn)行存儲(chǔ)。
可選地,預(yù)定查詢條件用于指示查詢第一維度對(duì)應(yīng)的屬性狀態(tài)信息,其中,第一查詢單元26可以包括:第一查詢模塊,用于在搜索平臺(tái)中從多個(gè)維度中查詢第一維度;獲取模塊,用于獲取第一維度對(duì)應(yīng)的屬性狀態(tài)信息。
可選地,第二查詢單元28可以包括:第二查詢模塊,用于從預(yù)定數(shù)據(jù)庫中查找與第一維度對(duì)應(yīng)的屬性狀態(tài)信息對(duì)應(yīng)的調(diào)用棧的信息。
可選地,該實(shí)施例還可以包括:顯示單元,用于在根據(jù)查詢結(jié)果對(duì)預(yù)定數(shù)據(jù)庫中的屬性狀態(tài)信息進(jìn)行再次查詢,得到Pinpoint中的調(diào)用棧的信息之后,輸出并顯示查詢得到的調(diào)用棧的信息。
此處需要說明的是,上述模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場(chǎng)景相同,但不限于上述實(shí)施例所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運(yùn)行在任意硬件環(huán)境中,可以通過軟件實(shí)現(xiàn),也可以通過硬件實(shí)現(xiàn)。
通過上述模塊,可以解決了相關(guān)技術(shù)中的Pinpoint查詢粒度較粗,無法實(shí)現(xiàn)查詢調(diào)用棧的信息的技術(shù)問題,進(jìn)而達(dá)到減小Pinpoint的查詢粒度,提高查詢結(jié)果的準(zhǔn)確度的技術(shù)效果。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
在本發(fā)明的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。