1. 可用性
在Hudi最新master分支,由Hudi活躍貢獻者Raymond Xu貢獻了DataDog監控Hudi應用指標,該功能將在0.6.0 版本釋出,也感謝Raymond的投稿。
2. 簡介
Datadog是一個流行的監控服務。在即將釋出的Apache Hudi 0.6.0
版本中,除已有的報告者型別(Graphite和JMX)之外,我們將引入通過Datadog HTTP API報告Hudi指標的功能。
3. 配置
類似於其他支援的報告者,啟用Datadog報告者需要以下兩個屬性。
hoodie.metrics.on=true
hoodie.metrics.reporter.type=DATADOG
下面的屬性用來配置Datdog API站點。它會決定請求被髮送給api.datadoghq.eu
(EU) 還是 api.datadoghq.com
(US)。根據你的Datadog賬號作相應配置。
hoodie.metrics.datadog.api.site=EU # 或者 US
hoodie.metrics.datadog.api.key
可以讓你配置API密匙。
hoodie.metrics.datadog.api.key=<你的API密匙>
hoodie.metrics.datadog.api.key.supplier=<你的API密匙提供者>
出於安全性考慮,你可能會選擇在執行時返回API密匙。要使用這個方法,需要實現java.util.function.Supplier<String>
。並把實現類的完整類名設定到hoodie.metrics.datadog.api.key.supplier
。由於hoodie.metrics.datadog.api.key
有更高的優先順序,也要確保它沒有設定。
下面的屬性用來配置指標字首,從而區分不同job的指標。
hoodie.metrics.datadog.metric.prefix=<你的指標字首>
注意這裡.
會被用來隔離字首和指標名。比如,如果字首是foo
,則foo.
會被加在指標名稱前。
其他的可選屬性在配置參考頁裡有相關解釋。
4. 示例演示
在這個示例中,我們執行了一個HoodieDeltaStreamer
,啟用了指標收集並做了相應的配置。
如圖所示,我們能收集到Hudi操作相關的指標,比如
<字首>.<表名>.commit.totalScanTime
<字首>.<表名>.clean.duration
<字首>.<表名>.index.lookup.duration
以及HoodieDeltaStreamer
相關的指標。
<字首>.<表名>.deltastreamer.duration
<字首>.<表名>.deltastreamer.hiveSyncDuration
. 總結
Hudi提供了多種報告者,方便監控Hudi應用執行時的各項指標,及時發現系統中的問題。