はじめに
New RelicのSynthetic Monitoringでは複数のモニタータイプが用意されていますが、よく使うのは「Ping」と「Simple Browser」の2つではないでしょうか。
この2つの使い分けの考え方と、Simple Browserの具体的な設定方法をまとめます。
PingとSimple Browserの違い
Ping
シンプルなHTTPリクエストを送信し、レスポンスのステータスコードを確認するだけのモニターです。
Simple Browser
実際にブラウザを起動してページをレンダリングし、JavaScriptの実行結果も含めて監視できるモニターです。
どちらを選ぶべきか
Pingを選ぶケース
- リクエストが200で返ってくることだけを確認したい場合(生存確認)
- 静的なHTML内の文字列を確認したい場合
Simple Browserを選ぶケース
- ReactなどのSPAフレームワークを使用しているアプリで表示されている文字列を確認したい場合(JSが動かないとコンテンツが表示されないため)
つまり、「JSを実行したいか」 が判断基準になります。
ReactなどのSPAはSimple Browser一択
ReactやVue.js、Next.jsなどのモダンなフレームワークで作られたアプリは、JavaScriptが実行されて初めてコンテンツが表示されます。
Pingモニターはただ HTTPリクエストを送ってレスポンスを受け取るだけなので、JavaScriptは実行されません。つまり、Pingで取得できるのはほぼ空っぽのHTMLだけです。
<!-- Pingが見ているのはこれだけ -->
<div id="root"></div>
この状態では、画面に表示されるべきテキストを検証することはできません。
「アプリが正常に動作していて、ユーザーに正しいコンテンツが表示されているか」 を確認したい場合は、JavaScriptを実行してくれるSimple Browserを使う必要があります。
Simple Browserの設定方法
1. モニタータイプの選択
Synthetic Monitoring → Create monitor から「Page load performance」を選択し、その中の「Simple browser」を選びます。
2. 基本設定
| 項目 | 設定内容 |
|---|---|
| Name | わかりやすい名前をつける(例:prod-myapp-toppage) |
| URL | 監視対象のアプリケーションURL |
| Period | チェック間隔(後述の注意点を参照) |
| Text Validation | ページに表示されていてほしいテキストを指定 |
| Apdex Target | 許容レスポンスタイム(デフォルト: 7秒) |
3. Text Validationの設定
Simple Browserを使う最大のメリットは、ページ内のテキストを検証できることです。
例えば、トップページに「ようこそ」というテキストが必ず表示されるはずなら、Text Validationに「ようこそ」と設定しておくことで、そのテキストが表示されない場合にアラートを発生させることができます。
4. チェック間隔(Period)の設定
重要:月当たりのチェック数には上限があります。
Edit monitor画面で現在の使用状況を確認できるので、上限を超えないように適度な間隔を設定しましょう。
チェック間隔の目安:
| 間隔 | 月間チェック数 |
|---|---|
| 1分 | 約43,200回 |
| 5分 | 約8,640回 |
| 15分 | 約2,880回 |
本番環境の重要なページは短めの間隔、開発環境や重要度の低いページは長めの間隔で設定するなど、優先度に応じて調整してください。
まとめ
NewRelicって便利だなぁ