Datadogでのリソース監視
作業概要
モニターを作成してメトリック定義だのアラート条件を設定等を設定していく。※エージェントインストール済を想定しています
モニターのタイプは下記のようにいろいろ設定できるようだが、基本的なリソース監視(CPUやらメモリやらディスク使用率)したい場合は”Metric”でよいかと思う。
モニターのタイプ一覧は公式ドキュメントを参照ください。
https://docs.datadoghq.com/ja/monitors/monitor_types/
作業記録~モニター作成(Load監視用)~
①Choose the detection method
項目 | 設定 | 解説 |
---|---|---|
検出方法を選択します。 | Threshold Aleart | メトリックがしきい値を超えるとアラートがトリガー |
②Define the metric
項目 | 設定 | 解説 |
---|---|---|
Metric | system.load.1 | |
from | everywhere | 送信元の定義。 |
excluding | none | タグの除外。除外したいホストを指定したりする。 |
集計の指定 | max by | ※他にavg by, min by, sum byが選択可能 |
グループ化 | host | ホスト単位での計測 |
アラートのグループ化 | Multi Alert |
③Set alert conditions
項目 | 設定 | 解説 |
---|---|---|
アラートの条件は、どの検出方法を選ぶか | above or equal to | above(より大きい)、above or equal to(以上)、below(より小さい)、below or equal to(以下) |
しきい値 | at least once | 生成された系列内の値がいずれか 1 つでもしきい値から外れている場合に、アラートがトリガーされる。 |
期間 | 1 minute | 最長で24hとかもある。負荷テストでアラートを早く発生させたいので意図的に1分にしている。本番では適宜変更。 |
しきい値 | ||
Alert threshold: | >=1.2 | アラートの通知のトリガーに使用される値 |
Warning threshold: | >=1.1 | 警告の通知のトリガーに使用される値 |
Alert recovery threshold: | <1 | アラートのリカバリに対する追加条件を示すしきい値 (任意) |
Warning recovery threshold: | <1 | 警告のリカバリに対する追加条件を示すしきい値 (任意) |
Data window | Do not require | モニターは認識されるとすぐに評価される。わたしはシビアに監視したいのでアラートは多くでてしまってもよい。 |
No Data | Notify 10 | 「データなし」を通知したい。 |
Auto Resolve | Never | アラートをトリガーされた状態から解決するタイミング。●時間経過後に勝手にアラートが解決されては困るのでNever。 |
Evaluation Delay | 0 | 評価を遅らせる時間。サービスプロバイダーがバックフィルを行うクラウドメトリクスとか特殊な場合に設定すると役に立つようだ。 |
④Say what’s happening
項目 | 設定 | 解説 |
---|---|---|
タイトル | sytem.load.1 | モニタータイトル。わたしの場合、metric、計算式にしている。 |
メッセージ | @<メールアドレス> | いろいろできるのだろうが今は通知のみでよい。改行@<メールアドレス>で複数通知可。 |
再通知 | Every 10 minutes | 解決されていない場合は10分ごとに再通知。不要ならNever。 |
Escalation message | @<メールアドレス> | 通知のみ。 |
⑤Notify your team
項目 | 設定 | 解説 |
---|---|---|
変更 | Do not notify | モニターが作成、変更、無音、または削除されるたびに通知するかどうか。今回はしない。 |
制限の編集 | Do not restrict | モニター編集を制限するかどうか。今回はしない。 |
テスト
下記コマンドでサーバに負荷をかければよい。
/dev/null < $(yes)
モニター作成(CPU、メモリ、ディスク、トラフィック用)
Load以外のモニター作成メモ。
Loadとの差分のみまとめておきます。
閾値はサーバごとに適宜調整してください。
・CPU使用率 Metric:system.cpu.user from:everywhere excluding:(none) max by host ・メモリ使用率 Metric:system.mem.free from:everywhere excluding:(none) max by host Metric:system.mem.buffered from:everywhere excluding:(none) max by host Metric:system.mem.cached from:everywhere excluding:(none) max by host Metric:system.mem.total from:everywhere excluding:(none) max by host Express these queries as ( a + b + c ) / d ・ディスク使用率 Metric:system.disk.in_use from:everywhere excluding:(none) max by host,device_name ・受信トラフィック Metric:system.net.bytes_rcvd from:everywhere excluding:(none) sum by host,device ・送信トラフィック Metric:system.net.bytes_sent from:everywhere excluding:(none) sum by host,device Express these queries as 0 - a