New Relic Insights の NRQL の Facet 句がパワーアップ


New Relic Advent Calendar 2017 7日目。どんどん公開時間が遅くなっている今日このごろ。

今日は時間がないので、小ネタですます。

本日(2017年12月7日)、New Relic ブログで 「[翻訳] New Relic Insights の NRQL クエリの Facet 句で複数属性をサポート開始」とい記事が公開されました。

ということで、新たに追加された Facet 句の複数属性サポートについて紹介する。

その前に、New Relic Insights はあまり使われているイメージないので、そっから紹介。New Relic Insights は、New Relic APM とかの製品が集めたデータをテーブルみたいな扱いにして、それに対して、NRQL という SQL チックなクエリを書いて、問い合わせて、その結果を見るというもの。で、そのクエリと結果を事前に用意しておくことで、複数の結果を1つのダッシュボードで見ることができる。まぁ、New Relic が集めたデータに対するダッシュボードサービスだと思ってもらえればと思う。

(New Relic Insights について気になる方はこちらをご覧ください。

で、NRQL というクエリ言語に、SQL チックというだけあって同じような構文を使える。簡単な NRQL の例はこんな感じ。

Select count(*) From PageView Where pageUrl = "http://example.com/register"

なんとなくわかるよね。PageView というテーブルから URL が "http://example.com/register" のページビュー数は? というクエリ。(ちなみに、期間指定していない場合は、直近1時間のデータということになる)。PageView というのは、New Relic Browser が集めたデータが入っている。APM が集めたトランザクションデータは、Transaction に入っている。pageUrl はカラム名で、デフォルトでパフォーマンス等に関わる様々なカラムが用意されている。さらに、カスタム属性というのを使うと、任意のカラムも追加できる。これが便利。

で、今回の Facet の話。Facet ってのは SQL にないように思うけど、同じ意味なのが、Group By。つまり、指定した属性でグルーピングしてくれる。さっきの例を使うと、以下のようになる。

Select count(*) From PageView Facet pageUrl

これを実行すると、以下のようにページURL毎に直近1時間のページビュー数を表示してくれる。

なんとなくわかっただろうか。で、ここまでは以前もできた。

で、ここからさらに、URLごとのブラウザ種別の違いを見たいとする。つまり、http://example.com/hoge の Chrome と Firefox の差とかを URL のページビュー数の多い順にみたい。このように、2つ以上の軸で、グルーピングすることはできなかった。

で、今日くらいからそれができるようになったらしい。以下のように、userAgentName を追加して、実行する。

Select count(*) From PageView Facet pageUrl, userAgentName

こんな感じで、URLだけでなく、URLとブラウザの組み合わせで、ページビューがわかるようなった。これで、同じ URL でもどのブラウザからのアクセスが多いのかわかるようになった。

こんな感じで、今回は2つだけ指定したけど、3つとか、もっと多く指定することもできる。これによって、よりきめ細やかにデータを見ることができるようになる。

ということで、是非、Insights を活用してパフォーマンス分析にしてみてください。

NRQL をもっと知りたい方用の情報