Advent Calendar 6日目は、New Relic Insights (インサイト)というサービスにについて紹介したいと思います。これは、New Relic の他の製品とかなり毛色のかわったサービスです。わかりやすくいうと、ダッシュボードサービスです。New Relic 的には、リアルタイム分析プラットフォームと謳っています。どちらかというとビジネス向けの機能です。
他のダッシュボードサービスと何が違うの?
他のダッシュボードサービスについて詳しくないのですが、New Relic ならではの特徴が 2 つあるかなと思っています。1つ目は、データソースとして、New Relic の他の製品が収集したデータを利用できまること。そのため、データソースの設定が必要ありませんし、APM を使って言いる場合は、すぐに分析が始められます。2つ目は、専用のクエリ言語 (NRQL) があることです。これにより、専用のエンジニアでなくても、使い方が分かっていれば、直ぐにクエリを書き換えて、見たいデータを見ることができます。
デジカでの使い方
弊社では、Insights で、Komoju という決済サービスにおける各種データを見えるようにしています。例えば、各種支払方法別の割合や、売上推移、顧客平均単価やコンバージョンレートなどです。以下に紹介するデータソースとNRQLを組み合わることで、他の製品単体ではできないような、非常に強力なパフォーマンス分析ツールであり、ビジネス分析ツールになります。
デフォルトだけでも多くのデータソースが使える
現在、New Relic は、データソースとしてデフォルトで以下、4 製品のデータを Insights 上で利用できます。
- APM: トランザクションデータ、エラーデータ
- Browser: ページビューデータ
- Mobile: クラシュデータ、インタラクションデータ、セッションデータ
- Synthetics: Synthetic チェックデータ、Synthetic リクエストデータ
例えば、APM のトランザクションデータでは、データベースの呼び出し回数、HTTP のレスポンスコード、パス、ホストやユーザーエージェントなどを利用できます。
それにより、APM が提供しているダッシュボードでは見れないデータの表示や比較なども行えます。
このダッシュボードのいいところは、複数のデータソースのデータを1つダッシュボードにまとめて見れることです。トランザクションデータ、ページビューデータ、Sythenticsのデータを組み合わせて、総合的なサイトの情報の比較が簡単に行えます。
また、Insights では、複数のアプリを利用している場合は、アプリ名を指定して、データを絞る必要があります。逆に言えば、アプリを跨いだデータの比較もできるということです。
データソースの絞り込みは、NRQL で
NRQL は、New Relic Query Language の略で、New Relic が SQL をベースに独自に開発した、クエリ言語です。これを使って、上記のデータソースから、データを絞り込みます。SQL ベースなので、基本的には SELECT
, FROM
, WHERE
を使います。例えば、ブラウザの Apdex スコアを取得するNRQLは以下のようになります。
SELECT apdex(duration, t: 2.0) FROM PageView WHERE appName='Komoju'
SELECT
では取りたいデータ、FROM
はデータソース(イベント)、WHERE
はここでは、アプリ名を指定しています。
基本的には、上記のように NRQL を書いていくことで、様々なデータリストやグラフを作成し、ひとつのダッシュボードにまとめ、日々眺め、必要に応じて、修正や追加を行うといった感じです。すごい簡単な紹介ですが、雰囲気は分かってもらえるかと思います。
NQRL の構文やキーワードはNRQL referenceに詳しく書いてあります。
NRQL いらずの データエクスプローラー
ただし、NRQL のキーワードはいくつかなじみのないものも多く、慣れるまで多少勉強が必要になります。そこが、エンジニア以外も使えると言っておきながら、なかなかとっつきずらい点でした。しかし、Future Stack 15 の際に、Insights のデータエクスプローラーを大幅に変更したというアナウンスとデモがありました。データエクスプローラーは、それまでは単に、収集したデータのリストが見えるだけでした。しかし、今は違います。今は、以下のような画面となっています。
つまり、今では、クリックで条件を指定していくだけで、自動的にNRQLが作成され、ダッシュボードに追加できるようになりました。これにより、本当にエンジニア以外の方でも、画面上でポチポチ試行錯誤しながら、自分だけで見たいデータを見ることができるようになったのです。これは、非常に強力な機能であり、Insights を1段上のサービスに押し上げたと思います。
おわりに
今回は、非常にさらっと Insights について紹介しました。ある程度サービスの利用イメージが分かって頂けたかと思います。
ただ、弊社でもそうですが、New Relic がデフォルトで収集するデータだけでは、ビジネスで経営判断に使っていくには、データが足りません。そこで、独自のデータを送信する機能である、カスタムイベント API を組み合わせることで、Insights の可能性が大幅に広げることができます。それは、また別の日に紹介したいと思います。