概要
NRQLアラートで監視し、通知する方法をまとめる。
NRQLとは
以下参照。
NRQLアラートとは
New Relicアラートの種類の一つで、NRQLで対象のメトリクスを定義できる。
メリット
- 汎用的なNRQLを使うため、インフラ監視だけでなく、外形監視、APM、使用量などあらゆるアラートをNRQLアラート一つで作成できる。
- FACET句を使えば、任意のメタ情報を含めてアラートを飛ばすことができる。
- New Relic側としてもNRQLアラートの使用を推奨している
デメリット
- NRQLが使えないといけない
- New Relicを利用する上でNRQLを使うことはほぼ必須なので、使っていくと自然と身につくはず
使い方: AWSのEC2インスタンスのCPU使用率の監視をする場合
0. 準備
まずは対象のメトリクスについて、「Data explorer」または「Query builder」で参照してみて、データの挙動やメタ情報、実際のNRQL文を確認する。
または、Infrastructure等の画面に表示されたグラフから、そのグラフを作るNRQL文が「View query」で参照できるため、それも参考にする。
1. 通知チャンネルとポリシーを作成する (説明割愛)
「Alert」ページから「Notification channels」(通知先) と「Policy」(アラートのグループ) を作成する (以下ドキュメント参考)。
https://docs.newrelic.co.jp/docs/alerts-applied-intelligence/new-relic-alerts/alert-notifications/notification-channels-control-where-send-alerts
https://docs.newrelic.co.jp/docs/alerts-applied-intelligence/new-relic-alerts/alert-policies/create-edit-or-find-alert-policy
2. NRQLアラート作成
1) 作成したポリシーを選択し、右上の「Add a Condition」を選択
2) 「Categorize」で「NRQL」を選択
3) 「NRQL>」にNRQL文を入力し、メトリクスを定義する
SELECT average(`aws.ec2.instance.cpuUtilization`) FROM Metric WHERE aws.accountId = '443553437457' FACET tags.Name, aws.accountId, aws.ec2.instanceId
- WHERE句で、グルーピング
- FACET句で、メトリクスの分離 (DatadogでいうところのMulti Alert)。 ここに記入したカラムがメタ情報としてアラートに載る。
4) 「Thresholds」を設定
5) 「Condition settings」を設定
- FACET句で指定したカラムは、Descriptionで変数として指定できる 参考
6) 「Create condition」で作成
NRQLサンプル
AWS EC2 CPU使用率
SELECT average(`aws.ec2.instance.cpuUtilization`) FROM Metric
AWS RDS CPU使用率
SELECT average(`aws.rds.instance.cpuUtilization`) FROM Metric
AWS Lambdaエラー件数
SELECT average(`aws.lambda.function.errors`) FROM Metric
Synthetics結果
SELECT count(*) FROM SyntheticCheck WHERE result = 'SUCCESS'