1. 程式人生 > >圖解JanusGraph系列 - JanusGraph指標監控報警(Monitoring JanusGraph)

圖解JanusGraph系列 - JanusGraph指標監控報警(Monitoring JanusGraph)

大家好,我是`洋仔`,JanusGraph圖解系列文章,`實時更新`~ #### 圖資料庫文章總目錄: * **整理所有圖相關文章,請移步(超鏈):**[圖資料庫系列-文章總目錄 ](https://liyangyang.blog.csdn.net/article/details/111031257) > 原始碼分析相關可檢視**github**(`碼文不易,求個star~`): [https://github.com/YYDreamer/janusgraph](https://github.com/YYDreamer/janusgraph) **轉載文章請保留以下宣告:** >作者:洋仔聊程式設計、微信公眾號:匠心Java、原文地址:[https://liyangyang.blog.csdn.net/](https://liyangyang.blog.csdn.net/) > ## 正文 JanusGraph框架提供了一些可監控的指標,用於我們在使用janus圖資料庫時可以對一些指標進行監控,下面我們看下如何配置使用Janusgraph監控! **本文主要講解了3部分:** 1. 監控的指標型別和配置 2. 監控指標資料展示儲存的位置(Reporter) 3. 實戰應用案例,並對打印出的指標進行了分析 4. 最後給出一個監控設計的架構圖 ## 一:監控的底層實現 **JanusGraph通過支援Metrics來實現指標資料收集,什麼是`Metrics`?** Metrics是框架Dropwizard提供的一個lib包,主要用於專案指標的收集作用,JanusGraph就是基於Metrics這個元件開發的指標收集模組; Dropwizard是一個Java框架,用於開發對操作友好的高效能RESTful Web服務,將來自Java生態系統的穩定,成熟的庫彙集到一個簡單的程式包中,使我們可以專注於完成工作。 Dropwizard對複雜的配置,應用程式指標,日誌記錄,操作工具等提供了開箱即用的支援; ## 二:JanusGraph中的指標 JanusGraph可以收集以下指標: - begin,commit和 roll back的事務數 - 每種儲存後端操作型別的 請求次數 和 失敗次數 - 每種儲存後端操作型別的響應時間分佈 ### 2.1 配置指標收集 要啟用指標標準收集,需要在JanusGraph的屬性檔案中設定以下內容: ``` # Required to enable Metrics in JanusGraph metrics.enabled = true ``` 此設定使JanusGraph在執行時使用計時器、計數器、直方圖等Metrics類記錄測量結果。 #### 自定義預設指標名稱 預設情況下,JanusGraph為所有度量標準名稱新增“ org.janusgraph”字首。可以通過`metrics.prefix`配置屬性設定此字首。例如,將預設的“ org.janusgraph”字首縮短為“ janusgraph”: ``` # Optional metrics.prefix = janusgraph ``` #### 特定事務指標名稱 每個JanusGraph事務都可以選擇指定其自己的指標名稱字首,從而覆蓋預設的指標名稱字首和 `metrics.prefix`配置屬性。例如,可以將字首更改為開啟JanusGraph事務的前端應用程式的名稱。 請注意,Metrics在記憶體中維護度量標準名稱及其相關物件的ConcurrentHashMap,因此,保持不同度量標準字首的數量較小可能是個好主意。 下面使用案例: ```java JanusGraph graph = ...; // 獲取圖例項連線 TransactionBuilder tbuilder = graph.buildTransaction(); // 開啟一個事務構建器 JanusGraphTransaction tx = tbuilder.groupName("foobar").start(); // 開啟一個事務,並開啟指標收集,Metrics字首為foobar ``` 下面為`groupName`的方法定義: ```java * Sets the name prefix used for Metrics recorded by this transaction. If * metrics is enabled via {@link GraphDatabaseConfiguration#BASIC_METRICS}, * this string will be prepended to all JanusGraph metric names. * * @param name Metric name prefix for this transaction * @return Object containing transaction prefix name property */ TransactionBuilder groupName(String name); ``` #### 分開指標統計 JanusGraph在預設情況下組合了其各種內部儲存後端控制代碼的指標,也就是說:會將所有的操作統一收集為一種型別指標; 儲存後端互動的所有指標標準都遵