NRQL(New Relic Query Language)をどうやって身につける？... まずはNRQL Lessonsをつかってみて!

# はじめに
New Relicを利用してくれてありがとうございます。New Relicはとても多くの情報をデフォルト機能で確認することができますが、New Relicを使えば使うほど、『あのアプリって、あの時どんな挙動だったんだろ？』『利用者って、どんなページ遷移でこの処理をしたんだろ？』などなど色々なことを調査したくなりますよね。そんな時に、収集したデータを自由に深掘りして解析するために使うのが<strong>NRQL</strong>(New Relic Query Language)になります。SQLに非常に近い言語で、New Relicのポータル上で用いたり、APIでNRQLを流し込むことで、必要なデータを取得することが可能です。
# じゃあ、どうやって学習すればいいんだ？
『なんかNRQL推ししてくるし、便利そうなのはなんかわかった。じゃあ、それどうやって情報をゲットすればいいの？』って、なりますよね？わかります。自分もそうだったから。過去を振り返って、キャッチアップをどうやればスムーズに行くかを簡単にまとめてみました。多分、以下のステップを踏んでもらうと最新の情報をキャッチアップできるはず。

:::note info
とにかくNRQL Lessonsを試してみたい方は以下をスキップして、[こちら](https://qiita.com/khara-nrkk/private/88927d8ddfcd63f25f61#nrql-lessons%E3%81%AE%E5%B0%8E%E5%85%A5%E6%96%B9%E6%B3%95%E3%82%92%E6%94%B9%E3%82%81%E3%81%A6 "このセクションをスキップ")にジャンプして下さい。
:::
1. 初期学習
    そもそも、NRQLってどこからどうやって使うの？という、いわゆるハローワールド的な最初の一歩って一番大変ですよね。ここは是非New Relicが提供している[定期セミナー(New Relic University)](https://newrelic.com/jp/learn "New Relicを学ぶ")を受講するのが良いかと思います。
    特にお勧めなのは、<strong>実践方法を学ぶ</strong>のセクションから開催を確認できる<strong>NRU302</strong>です。New Relicポータル上でのNRQLを利用するツールの紹介や具体的なNRQL内容、さらには得たデータの可視化などを体系的に学習することができるので、一気に実用のための方法を学べます。
    
    <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3534647/d1290cca-8731-e710-13ac-6cb5d563202a.png">
    
    :::note info
    New Relic Universityの日程について
    New Relic Univeristyは四半期で1サイクルが実施されています。日程が確定次第、上記のページに日程が表示されますが、もしご都合が合わなかったとしても次の四半期にて受講が可能です。

1. 理解
    さてさて、NRQLを実行する環境の利用方法や、NRQLの具体的な中身がわかってきたら、もう少しNRQLの中身を詳しく見ていきたいなと思う様になる(なった)のではないでしょうか？NRU302を受講してもらうとイメージがつくかと思うのですが、NRQLがカバーしている機能は想定よりも多く、細かいことまで把握したいけど、ちょっと大変そうという気持ちになりますよね。(あれ？自分だけでしょうか？？)
    そんな時に使ってもらいたいのが、今回の本題の[NRQL Lessons](https://opensource.newrelic.com/projects/newrelic/nr1-learn-nrql "NRQL Lessons")というツールです。([こちら](https://newrelic.com/jp/blog/nerdlog/nrql-lessons "NRQL Lessonsの紹介と有効化手順")がその紹介ブログです。)
    導入の手順は後ほど触れさせてもらいますが、NRQL Lessonsを導入してもらうと、導入したアカウントで保持しているデータを用いて、具体的なNRQLでクエリをかけた結果どの様な結果を得ることができるかを確認することができるようになっています。NRQLの構文と結果を一度に確認できるので、NRQLで実現したい結果のイメージを持っている場合には、いわゆる逆引き的な利用方法を探すことができるため非常に便利で学びがあるアプローチになります。
    <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3534647/84fc899c-7df5-5067-1de4-759a7f7d4c44.png">

1. 活用
    ここまで到達できているのであれば、あなたはかなりのNRQL上級者です。ここまで来ると、『じゃあ、New Relicのエージェントが提供する機能ではどんなデータが集められているんだろう？詳細を把握して、データ解析で使っていきたい』と考えられているのではないでしょうか？
    大丈夫です。そんなご要望に応えるための情報をNew Relicは提供しています。[Data Dictionary](https://docs.newrelic.com/attribute-dictionary/ "New Relic Data Dictionary")というページがあり、具体的な収集データ内容を確認することができます。
    ここまでくれば、NRQLの役割やどういったデータをNRQL経由で取得することができるのか、また実際のデータ内容の確認方法など実践的な知識が増えてきている状況です。これらをうまく活用する方法として[こちら](https://newrelic.com/jp/blog/how-to-relic/bestpractice-of-catchup-newrelic-data "NRQLを活用する実践的なブログ")のブログを参考にしてもらうと良いかなと思います。
    <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3534647/94f4627c-573b-f01f-2849-0c5d6ef17afa.png">

1. 更新
    ここまできたら、後は新しく出てくる機能や関数を定期的に学習してもらえれば問題なしです。むしろ周りに教えてあげる立場です。New Relicでは毎月新しい機能がリリースされた情報を紹介したり解説する情報を発信しています。例えば、2024年1月分は[こちら](https://newrelic.com/jp/blog/nerdlog/new-relic-update-202401 "2024年1月分アップデート")のブログから確認することができます。この様にどんどん情報を発信していますので、定期的に[New Relicのブログ](https://newrelic.com/jp/blog "New Relic KK公式ブログ")に遊びにきてくれると良いかと思います。
    <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3534647/9fbc8126-786f-7e4c-b84b-d63b56ebedd3.png">


# NRQL Lessonsの導入方法を改めて
1. [New Relicポータル](https://login.newrelic.com/ "New Relicポータル")にログインする
1. 左にある<strong>Apps</strong>メニューをクリックし、右の表示部分下部にある<strong>Go to Apps and Visualizations</strong>ボタンをクリックする
    <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3534647/e82362f3-3764-d36e-ea45-383a3547bff9.png" />
    <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3534647/d425cab6-0f3c-e252-dc91-9bd9c013a248.png">
1. 次に検索が面が表示されるので、NRQL Lessonsとテキストを入力し、NRQL Lessonsという表示のタイルをクリックする
    <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3534647/fbd3d135-3c27-2394-6fd0-14baa03fde4e.png">
1. クリック後、NRQL Lessonsを説明するUIがスライドされて表示されるので、<strong>Add this app</strong>ボタンをクリックする
    <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3534647/52887606-6f56-64f9-99f2-2f47a211bcb9.png">
1. ご利用の環境下で利用可能なアカウント一覧が表示されるので、利用したいアカウント一覧から対象アカウントをチェックし、右上の<strong>Update 1 account</strong>ボタンをクリックする
    <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3534647/ecc96b3c-883c-043d-f953-afc4a6b3c5d3.png">
1. 上記の<strong>ステップ2</strong>でアクセスしたAppsに再度アクセスすると、新たにNRQL Lessonsタイルが追加されているので、NRQL Lessonsタイルをクリックする
1. NRQL Lessonsを有効化するかのUIがスライドされて表示されるので、<strong>Enable</strong>ボタンをクリックする
    <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3534647/aaacdf26-1a07-1bd8-fa35-e618ccae869c.png">

1. NRQL Lessonsが起動するので、起動がするので、左上の<strong>Select Language</strong>から<strong>日本語</strong>を選択する
    <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3534647/1e064d9c-4528-54c6-bf3e-4bb06a510969.png">
1. NRQL Lessonsの表記が日本語に更新されるので、後はコンテンツを楽しむ!! Enjoy!!

# ちょっとだけNRQL Lessonsの中身を紹介
実際のデータをみてもらうことで多くの気づきを得ることができるのですが、その前に簡単にいくつかの画面をご紹介します。
例えば、最初にみんなが目にするであろう**初めてのクエリ**のページでは、みなさんのアプリケーションがどの様なリクエストを受け付けているのかを確認することができます。
(初めてみた時、『なに？アプリのアクセスログを見に行かなくても良いの？あれ？楽ちんじゃない？』と思ったのは自分だけでしょうか？)
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3534647/eeda7d79-fdb9-2ff7-f492-0d9a9640eee0.png">

次に、じゃあ、実際のアプリケーションの応答時間はどうなっていて、どういうNRQLを実行すればいいのかなんかも一目瞭然。もうログファイルからエンジニアが頑張って解析する必要はないです。(やったコード触る時間が増えた!!)
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3534647/41b33017-7f66-ee02-1488-9fd740794017.png">

この他にも、チャートを書く時にどの様なNRQLを実施すればいいのかといった分かりやすい例や特定のデータをひとまとめにして計測する方法などが実データを元に説明が行われています。是非是非試してみて下さい。

こんな章立てになっているので、見ごたえば抜群で、色々な疑問が解決すること間違いなしです。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3534647/a9d6a129-8dc3-77c3-3eaf-7078ff4cbabd.png" width="60%">


今回お見せしているデータはサンプルアプリに短期間だけリクエストを集中させた結果なので、あまり派手なデータはないのですが、ステージング環境やテスト環境でも数日データを溜めてみることで、NRQL Lessonsを通せば何かしらの傾向や特徴がわかってくるかもしれませんね。


# さいごに
NRQL Lessonsは、どうでしたか？改めて自分が利用している環境のデータを確認してみて、新しい発見があった人もいるのではないでしょうか？
New Relicは元々提供している機能だけでもとてもさまざまな情報を参照したり活用したりすることができます。NRQLを使ってもらうと、さらにさらに自由度が増して、みなさんがやりたい様にデータを活用することができるお手伝いするものです。そのためにはNRQLの基礎を学んでいただく必要はあるのですが、New Relicはさまざまな情報やツールをどんどん提供しているので、それらの情報やツールを活用して、最小限の労力でキャッチアップしてもらえれば幸いです。

# ほんとのほんとの最後に..
個人てもNew Relic触ってみたな..という方もいるかもしれないので、下のリンクから無料ユーザを作成してみてください。
[New Relic無料サインアップ](https://newrelic.com/jp/sign-up-japan "New Relic無料サインアップ")
無料サインアップの手順説明のブログは[こちら](https://newrelic.com/jp/blog/how-to-relic/create-new-account "これからはじめるNew Relicライフ！ 無料でアカウントを開設しよう！")
サインアップ後は、[こちら](https://docs.newrelic.com/jp/docs/new-relic-solutions/get-started/intro-new-relic/ "New Relicの使用開始")の公式ドキュメントをみながら進めてみてください。

:::note info
[New Relic株式会社のQiita Organization](https://qiita.com/organizations/newrelic)では、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。
:::