Victoria Metrics は v1.67.0 で Datadog Agent からのメトリクスを受け取れるようになっているので今回はこれを試してみる。
Victoria Metrics のドキュメント How to send data from DataDog agent
Single node Instance をセットアップ
Victoria Metrics はクラスタリング構成も可能だが今回は Single node のサーバーで検証。
| |
| |
| |
これで 8428/tcp ポートで Victoria Metrics が起動する。
昔見た Web UI よりもだいぶ使いやすくなってる! Prometheus よりも使いやすそう。
EC2 インスタンスに Datadog Agent をセットアップ
最近 GA になった Amazon Linux 2023 で EC2 インスタンスを作成し、そこに Datadog Agent をセットアップする。
インストール方法は https://app.datadoghq.com/account/settings#agent/aws にある。 Datadog へのログインが必要だが、Datadog Learning Center のコースを受講(無料)すれば何度でも2週間使えるトライアルアカウントが発行される。
| |
ドキュメントの手順では
| |
となっているが、DD_SITE ではなく DD_URL で Victoria Metrics を指定する。
| |
動作確認
tcpdump でやり取りを覗いてみる。
POST /datadog/api/v1/check_run HTTP/1.1
Host: victoriametrics:8428
User-Agent: datadog-agent/7.43.1
Content-Length: 223
Content-Encoding: deflate
Content-Type: application/json
Dd-Agent-Version: 7.43.1
Dd-Api-Key: dummy
Accept-Encoding: gzip
HTTP/1.1 202 Accepted
Content-Type: application/json
Vary: Accept-Encoding
X-Server-Hostname: ip-172-31-6-187.ap-northeast-1.compute.internal
Date: Sun, 19 Mar 2023 12:02:39 GMT
Content-Length: 15
{"status":"ok"}これは成功してる。
が
POST /datadog/api/v2/series HTTP/1.1
Host: victoriametrics:8428
User-Agent: datadog-agent/7.43.1
Content-Length: 4559
Content-Encoding: deflate
Content-Type: application/x-protobuf
Dd-Agent-Payload: v5.0.67
Dd-Agent-Version: 7.43.1
Dd-Api-Key: dummy
Accept-Encoding: gzip
TTP/1.1 400 Bad Request
Content-Type: text/plain; charset=utf-8
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Server-Hostname: ip-172-31-6-187.ap-northeast-1.compute.internal
Date: Sun, 19 Mar 2023 12:02:39 GMT
Content-Length: 123
remoteAddr: "172.31.0.183:53542"; requestURI: /datadog/api/v2/series; unsupported path requested: "/datadog/api/v2/series"ぐぬぬ、Victoria Metrics がサポートしているのは /datadog/api/v1/series だけれども Datadog Agent v7 が使うのは v2 でした…
撃沈
Datadog Agent v6 で試しても series API は v2 でした… 撃沈
https://docs.datadoghq.com/ja/api/latest/metrics/#submit-metrics
use_v2_api.series 設定の発見
諦めてインスタンスを削除した後に Datadog Agent は GitHub で公開されているのだから一応確認してみるかと思って Datadog Agent のリポジトリ内を検索してみたら CHANGELOG の 7.41.0 / 6.41.0 で
The Agent now uses the V2 API to submit series data to the Datadog intake by default. This can be reverted by setting
use_v2_api.seriesto false.
という記述を見つけた。
早速再度サーバーをセットアップして試す。
/etc/datadog-agent/datadog.yaml に use_v2_api 設定はなかったので追記して datadog-agent を restart します。
| |
POST /datadog/api/v1/series HTTP/1.1
Host: victoriametrics:8428
User-Agent: datadog-agent/7.43.1
Content-Length: 3797
Content-Encoding: deflate
Content-Type: application/json
Dd-Agent-Version: 7.43.1
Dd-Api-Key: dummy
Accept-Encoding: gzip
HTTP/1.1 202 Accepted
Content-Type: application/json
Vary: Accept-Encoding
X-Server-Hostname: ip-172-31-0-54.ap-northeast-1.compute.internal
Date: Sun, 19 Mar 2023 13:14:56 GMT
Content-Length: 15
{"status":"ok"}成功してる!!
Victoria Metrics の Web UI (/vmui) の Query ページで {__name__=~"datadog.*"} とクエリしてみました。

system.cpu.user と system.cpu.system をグラフ表示してみた。

後は Grafana Dashboard を頑張れば…


