過去と現在を比較するモニタリング | Observability Design Pattern

所要時間:約 3分

対象者

APMを使って予想外の自体が発生していることを特定したい人

効果

レスポンスタイム、スループットなど様々なメトリクスを見るときに、昨日や先週の同時刻といった一定期間前の値を比較したい場合があります。特に、曜日や時間によってスループットの変動が大きいサービスの場合、同じ程度のアクセスが期待される時間帯を基準にすることで、現在予想していない事態が発生していないか確認することができます。

New Relic 製品

New Relic APM, New Relic One

 


 

実装方法

 

このように過去と現在の特定時間を比較したい場合、な場合メトリクスを表示するグラフに比較対象を重ねて視覚化することができます。New Relicの場合、APMのレスポンスタイムとスループットについては、昨日および先週の同時刻との比較をチェックボックス一つで表示することができます。

 

 

これ以外のメトリクスやイベントの数値データ、あるいは任意の時間帯との比較を行いたい場合はNRQLのCOMAPRE WITH句を利用できます。COMPARE WITH句は時間範囲を指定するSINCE句やUNTIL句と一緒に指定し、SINCE句やUNTIL句で指定した時間範囲からCOMPARE WITH句で指定した相対時間だけ前の時間範囲を表示します。詳細な文法についてはこちらのドキュメントに記載があります。

実際に試してみましょう。NRQLはInsightsおよびNew Relic Oneのチャートビルダーが手早く確認できます。今回はNew Relic Oneで試してみましょう。New Relic Oneにログインして、右上の「Chart Builder」のメニューを選択し以下の画面を表示します。画面が異なる場合はBasicモードですのでチャートビルダー右上の「Advanced (NRQL)」をクリックします。

 

 

SELECTが表示されている箇所に以下のNRQLを貼り付けて「Run」をクリックして実行しみてください。なお、APMで取得できるデフォルトイベントをクエリしているため、APM agentをインストールしているアプリケーションがないと取得できません。

 

SELECT count(*) FROM  TransactionError SINCE 1 hour ago TIMESERIES COMPARE WITH 4 hours ago

 

 

このNRQLにより、お客様のアカウントでAPMで計測している全てのアプリケーションのTransactionErrorの件数について、1時間前から現在までと5時間前から4時間前まで取得できます。もう少し複雑な条件として、3日前から2日前までと、5日前から4日前までを比較する場合は次のようになります。

 

SELECT count(*) FROM  TransactionError SINCE 3 days ago UNTIL 2 days ago TIMESERIES COMPARE WITH 2 days ago

 

COMPARE WITH句の使い方としては、SINCEやUNTILと一緒に使い、SINCEやUNTILからどれくらい前のデータと比較するかという相対時間を指定することになります。

 


 

New Relic 担当者にもう少し話を聞いてみたい場合はこちらまで。