Edited at

Datadogで収集しているメトリクスを、Query処理する際に目から鱗が落ちた!

More than 3 years have passed since last update.

Datadogのユーザーサポートをしていて、面白いクエリーに出会ったので紹介しておこうとおもいます。

サポートをしていると、ユーザーの想像力の豊かさに驚かされます。そして多くの場合、こういった高度な設定要求は、jsonクエリーを直接記述することで対応できてしまします。

「cluster内の各インスタンスの同一メトリクスを比較し、上位数個が特定条件を満たしていた」場合に、アラートを発生させたいということはありませんか?

top(avg:aws.elb.latency{*} by {host}, 2, 'max', 'desc') * 1000 > 5000

Datadogでは、こんな条件もtop()ファンクションを使うことで、簡単に設定できてしまいす。上記のクエリーは、「cluser内の各elbインスタンスのレイテンシ値を順位付けし、上位2つの値を1,000倍した後、5,000と比較」しています。

cluster内に、目立って長いレイテンシのelbインスタンスが複数出現した場合に、アラートを発生させるという趣旨なのでしょう。

一見、どのように設定すれば良いだろうと思うクエリーも、Datadogが持っているファンクションを使うと意外と簡単に実現できたりします。

DatadogドキュメントのGraphing Primerページ"Arithmetic and Functions"のセクションは、一度は目を通して欲しいセクションです。ファンクションを散りばめたクエリーを使いこなせるようになったら、今までとは比較にならないほど高度な監視アラート設定かできることに感動すると思います。

参照:

日本語リンク