實戰| 配置DataDog監控Apache Hudi應用指標

leesf發表於2020-06-03

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應用執行時的各項指標,及時發現系統中的問題。

相關文章