實戰| 配置DataDog監控Apache Hudi應用指標
阿新 • • 發佈:2020-06-03
## 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應用執行時的各項指標,及時發現系統中的