はじめに

エージェントから自動収集したデータをAPMなどで簡単に分析できるのは素晴らしいことです。また、New Relic Instant Observabilityには沢山のダッシュボードテンプレートが用意されており、テンプレートから簡単にダッシュボードを作成することができます。しかしながら、いざ独自ダッシュボードを作成しようとなったときに、途端に手が止まる・・・ということはありませんか?
本Postでは、そんな時のために、実際に収集されたデータはどんなテーブルにどのような値が保存されているのか、どのようにクエリを書けば良いのかをいち早くキャッチアップ理解する方法をご紹介します。

その1: Data dictionaryを見る

New Relicは、Data dictionaryというページを提供しており、ここでいわゆるテーブル定義を公開しています。データソース毎に自動収集されるデータの定義を確認することができます。例えば、APMだとTransactionとTransactionErrorが記録されることがわかります。またイベントタイプ毎の属性も確認することができます。まだセットアップできてないけどどんなデータが入るんだろう?というフェーズからデータを理解することができますので、まずは概要を理解したい場合には最適な情報源になります。

その2: Data Explorerで実際のデータを探索する

テーブル定義を確認できたら実際に自分のアカウント内に取り込まれているデータを確認したくなりますね。New Relicには、実際に取り込まれたデータを自由に探索できるData Explorerという機能が提供されています。

左メニューの[Metrics & Events]を選択するとメインの画面にData explorerが表示されます。左ペインには実際に取り込まれているイベント一覧が表示されます。ここからEvent typeを選択し、Plotから集計したい属性と集計関数(平均や合計、最大値や最小値など)を選択すると、右ペインにその結果を表示することができます。さらにDimensionsでグループ化したい属性を選択するとそのグループごとの集計結果を表示することもできます。例えば、Transactionのレイテンシ(duration)の平均をマイクロサービス毎に求めたい、といったことが画面から選択するだけで自動的にクエリが生成されます。とても便利ですよね。また、表示されたグラフはそのタイプを切り替えることもできますので、いろいろな見せ方も試すことができます。

その3: NRQL Lessonsでクエリをマスターする

どんなデータが入っているのか、そのデータがどんな属性を持っているのかはわかりました。そして、なんとなく可視化するやり方も分かってきました。ここまで来ると、次は「具体的に求めたい指標を得るためにどのようなクエリを投げれば良いのか?」、「そもそもNRQLはどんなクエリが書けるのか?」を知りたくなりませんか?そこでパワーを発揮するのがNRQL Lessonsです。

NRQL Lessonsは、実際に登録されているデータを使ってNRQLの様々な関数や条件指定の仕方をチュートリアル方式で学ぶことができます(日本語で学ぶことができます!)。基本的な構文から簡単な集計関数やWHERE句などの条件指定の仕方から始まり、正規表現による検索や高度な演算など、NRQLの柔軟性を完全に習得することができます。これらの表現は公式ドキュメントにも記載されているのですが、百聞は一見に如かず、思ってもみなかった表現方法に必ず出会うことができると思いますので、ぜひ一度お試しください。

その4: チャートタイプに合わせたクエリを記述する

ここまで来ればもう完璧です。あとは実際にデータに対してクエリをかけ、表現したい形式でチャートタイプを選択するだけです。ここであとひとつだけ気にしましょう。クエリによって選択できるチャートタイプが異なります。例えば、時系列でデータを表現するラインチャート(折れ線グラフ)などはTIMESERIES句が必須になるなど、そのチャートの特性に合わせたクエリを投げてあげる必要ががあります。ここは、やっていればすぐに慣れる部分かと思いますが、しっかり把握していると可視化しようとした際に頭に浮かんでくるクエリのレベルが変わってきます。チャートタイプ毎に必要となるクエリ条件は公式ドキュメントにも定義されていますので、ぜひこちらも眺めてみてください。

まとめ

いかがでしたか?New Relicは様々なデータを収集して分析・可視化することができる非常に強力なソリューションです。ぜひその中身も理解してお好みのカスタマイズを楽しんでみてください。