サービスレベルアラートを数ステップで簡単設定！

# はじめに
昨今注目を集めるサイトリアライアビリティエンジニアリング（SRE）が、サービスの信頼性維持のために取り組む活動としてサービスレベル管理があります。サービスレベルを適切に定義できると、サービス品質の維持・向上や顧客満足度向上のほか、組織内のステークホルダーとのコミュニケーションが取りやすくなるなど、さまざまなメリットを享受できます。さらに、サービスレベルに対してアラートを設定することで、サービスの信頼性を損ねる前に予防策を講じることができるようになります。

本記事ではNew Relicを活用して、既に設定されたサービスレベルに対し、アラートを簡単に設定する方法をご紹介します！

:::note info
最新のアップデートの詳細はこちら。[New Relic アップデート(2023年2月)
](https://newrelic.com/jp/blog/nerdlog/new-relic-update-202302 "New Relic アップデート(2023年2月)")
:::

# 3つのサービスレベルアラート
New Relicでは3つのサービスレベルアラートを、ガイドに従って簡単にセットアップすることができます。

### ファストバーンレートアラート

| 目的 | アラートのトリガー |
|:-|:-|
|エラーバジェットの消費量が突然大きく変化したことを検知する |エラーガジェットを1時間以内に2％消費した場合に通知|

### エラーバジェットアラート

| 目的 | アラートのトリガー |
|:-|:-|
|エラーバジェットが無くなりそうなことを検知する |エラーバジェットの80％を消費した場合に通知|

### SLOコンプライアンスアラート

| 目的 | アラートのトリガー |
|:-|:-|
|  SLOを順守できていないことを検知する |SLOを下回った場合に通知|

# サービスレベルアラートの設定手順

設定されたサービスレベルに対して、アラートを設定する手順を紹介します。
この画面は、あるWebサービスにおいて以下のようなSLI/SLOを設定しています。

- SLI：0.5秒以内にレスポンスを返すこと
- SLO：SLIを7日間で94％順守すること

![image3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227243/605934a5-fae4-af81-7b13-f248a8d1cc43.png)



このようなSLI/SLOを設定することによって、New Relic UI上では以下のようなダッシュボードでサービスの信頼性を可視化することができます。

ただ、可視化だけでは常時ダッシュボードを確認しないとサービスレベルの状態を把握することができないため、先ほどの3つのアラートを設定して、サービスレベルが低下したらアラート通知するサービスレベルアラートを設定していきましょう。

画面右上の3点リーダーから[Create an alert]を選択します。

上記3つのサービスレベルアラートを選択する画面が表示されるので、いずれかを選択します。

![image1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227243/0c5e4ee6-ace1-b53e-c63f-99b62cf67781.png)


選択したサービスレベルアラート(Alert condition)を既存のPolicyに含めるか、新規に作成するPolicyに含めるかを選択します。

既存のPolicyに含める場合は既存のPolicyリストから選択します。

![image5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227243/ce960bdf-218f-ed6f-7332-f646123f21fe.png)

新規に作成するPolicyに含める場合はPolicy名を入力し、[Group incidents into issues]でIncidentをIssueにグループ化して通知をまとめる単位を選択します。

![image2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227243/2728fbe5-1ae3-932c-19cb-490cd50242cd.png)




次に、[Create policy] > [Enable condition]を順番にクリックします。

![image8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227243/52d44cbc-829d-8c43-f43e-b3d469714d76.png)



上記の手順と同様に他の2つのサービスレベルアラートも作成してみましょう。

[Alert conditions]に3つのサービスレベルアラート(Alert condition)が作成されたことが確認できます。
このように数ステップで簡単にサービスレベルアラートを作成することができます。


![image6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227243/6ecb37fe-3f92-5783-22ee-89d79eaab816.png)


# サービスレベルアラートの設定画面の確認

それでは、実際にどのようなアラートが設定されているのか、設定した3つのアラートの中身を見ながら解説していきます。
上記の画面から[Go to policy]を選択し、実際のアラートの設定画面に遷移します。

![image4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227243/841128a8-38ae-897a-eac3-c8671b4ac167.png)



### ファストバーンレートアラートの設定画面
[Tell us where to look]では、監視したい対象データであるエラーバジェットを抽出するためのNRQLが自動的に設定されているのが分かります。

![image7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227243/c094c129-c6f4-f77f-9b3e-456614c811ff.png)


また、[Set thresholds]では、過去60分のデータを使って1分間で評価を行い、1度でも20.16xxx (エラーバジェットの2％が自動的に算出) を超えたらCriticalのアラート通知を行う設定になっています。

![image9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227243/76f8e3aa-5799-f1ef-9f73-813c655f1261.png)


### エラーバジェットアラートの設定画面

[Tell us where to look]では、監視したい対象データとしてエラーバジェットを抽出するためのNRQLが自動的に設定されているのが分かります。NRQLのFROM句を見ると[ServiceLevelSnapshot]というイベントが使われています。

通常、アラート設定の評価期間は最長2時間までしか設定することができません。[ServiceLevelSnapshot]は、エラーバジェットアラートを設定する際にNRQLの中で使われるイベントデータで、SLOを設定する際、1日/7日/28日といった評価期間を選択することができ、選択した期間で分析するための中間データとして使われます。

![image12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227243/fa715581-0f56-1564-a719-45c271ca3696.png)


[Set thresholds]では、過去10分のデータを使って評価を行います。エラーバジェットが20分間に渡り継続して20％を下回ったらWarning、10％を下回ったらCriticalのアラート通知を行う設定になっています。

![image10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227243/22fe7570-7c59-603e-e0f5-7e37e2f83726.png)






### SLOコンプライアンスアラートの設定画面
それでは3つ目のアラートの中身を見ていきましょう。
[Tell us where to look]では、監視したい対象データの値であるSLOコンプライアンスを抽出するためのNRQLが自動的に設定されているのが分かります。

![image11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227243/569a3c6d-d6bb-c6e4-048b-12a665ad12fc.png)


[Set thresholds]では、過去60分のデータを使って5分間隔で評価を行い、SLOコンプライアンスが1回でも94％を下回ったらアラート通知を行う設定になっています。

![image13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227243/0a1f18e5-bb65-5f25-cec5-c05282e3513b.png)


以上、サービスレベルにおいて3つの主要なアラートの設定手順と自動設定されたアラート条件の中身について解説してきました。


# まとめ

このようにNew Relic のサービスレベルアラートの設定は、GoogleのSRE書籍の推奨事項に基づいて数クリックで評価期間やエラーバジェット、閾値などを自動的に設定してくれるので非常に便利です。もちろん自動設定後に手動でチューニングも可能です。適切なアラート設定を行い、サービスの品質を最適化していきましょう！

:::note info
最新のアップデートの詳細はこちら。[New Relic アップデート(2023年2月)
](https://newrelic.com/jp/blog/nerdlog/new-relic-update-202302 "New Relic アップデート(2023年2月)")
:::

:::note info
[New Relic株式会社のQiita Organization](https://qiita.com/organizations/newrelic)では、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。
:::