DatadogへのREST APIを用いたメトリクスの登録調査
目的
Datadogのダッシュボードは使いやすくコストもあまり高くない。
さまざまなMetricsを送って可視化に利用したい。
アプリケーション内のメトリクスを送るにはdogstatsdを使えばよいが、アプリケーション外では別の方法を検討する必要がある。
カスタムメトリクス送信の手段としては以下の4つがある
- Dogstastd
- カスタムAgentチェック
- Powershell
- REST API
カスタムAgentチェックはECインスタンスのようなマシンリソースを情報を送信するために使うものとため、選択肢としてはREST APIになる。
先にまとめ
REST APIはDogstatsdやカスタムAgent チェックを使うのに適さない場面で使える低レベルのAPIでカスタムメトリクスを送信する方法である。
漏れているメトリクスの送信や、バッチでのデータ送信に使うことができる。
送信に使うAPIは Submit Metricsでそのエンドポイントは POST https://api.datadoghq.com/api/v2/series
である
参考 Submit Metrics - Datadog REST API
REST APIの用途
Dagstatsdはアプリケーションでリアルタイムにメトリクスを送信するに適している。一定のデータ量をまとめて、メトリクス化したデータをDatadogにおくることになるからである。そのためタイムスタンプを指定するインターフェースをもたない。発生した時刻をタイムスタンプとして用いると考えて差し支えないだろう。
カスタムAgentチェックはインスタンス監視に用いるAgentで、Dogstatsdと同様のインターフェースをもっている。定期的にシステムのリソースを送信するのに的している。
Powershellは未確認
REST APIはこれらの中で範囲で使える。DogstastdやカスタムAgentチェックと違いHistgramやDistributionをサポートしておらず送信した値がメトリクスとして記録される。つまり、集約する処理を自前で行う必要がある。またタイムスタンプを指定することができ、過去データへの記録をすることができる。
これらの挙動から、ログデータなどを解析してあとからメトリクスを送信する場合などに適していると考えるのが妥当だろう。インターフェースもDogstatsdなどには表面に現れないresource_typeなどがある。利用方法に説明がないため、正確な使い方はわからない。サンプルからホスト名などをいれると予想がつく。DogstatsdやDatadogAgentのソースコードを解読すればわかる可能性がある。
参考
--
このドキュメントは "Chatwork Tech Tips" の一環です。
その他の Tips も含めて @Chatwork_dev にて確認することができます 👨🏫