1. 程式人生 > >實戰| 配置DataDog監控Apache Hudi應用指標

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

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