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 をもっと知りたい方用の情報