New Relicを使い始めた皆さん、「データを最大限に活用したいけど、何から手をつければいいの?」と感じていませんか?
特に、ダッシュボードのカスタマイズや詳細な分析に不可欠なNRQL (New Relic Query Language)に、少し高いハードルを感じている方も多いかもしれません。
New Relicには、そんな私たちのために無料で、しかもブラウザ上で対話的にNRQLを学べる「NRQL Lessons」という、公式チュートリアルが用意されています。
この記事では、まず日々役立つNRQLのTipsをご紹介し、その上でそれらを楽しくマスターできる「NRQL Lessons」について解説します。この記事を読み終える頃には、きっとNRQL学習の第一歩を踏み出したくなるはずです
そもそもNRQLとは? なぜ重要なのか?
NRQLとは、「New Relic Query Language」の略で、New Relicに集められた膨大なパフォーマンスデータを自由自在に問い合わせるための”言葉”です。SQLを使ったことがある方なら、非常に親しみやすい構文だと感じるでしょう。
NRQLが使えるようになると、標準のダッシュボードを眺めるだけでは見えてこなかった、システムの深い情報を思い通りに得られるようになります。具体的には、以下のような場面で効果を発揮します。
- 障害調査の迅速化: 「特定のエラーが多発している時間帯の、関連サービスのレスポンスタイムは?」といった複合的な調査を、クエリ一つで実行できます。
- パフォーマンス分析: 「A/Bテスト中の新機能について、機能別の平均処理速度を比較したい」など、ビジネスロジックに踏み込んだ詳細な分析が可能です。
- サービス状況の可視化: サービスのSLO/SLIやビジネスKPIなど、チームが本当に見たい指標をまとめた、オリジナルのダッシュボードを簡単に作成できます。
つまりNRQLは、New Relicを「システムの健全性を高めるための強力な分析ツール」として使うための鍵なのです。
NRQL 使いこなしTips
ここでは、日々の運用で特に役立つNRQLの重要な構文や関数を、Tipsとして抜粋してご紹介します。より詳細なリストは公式リファレンスもご参照ください。NRQLの第一歩として、まずは以下の構文を試してみましょう。
NRQLの第一歩として、まずは以下の構文を試してみましょう。
Tips1: これだけは押さえたい!NRQLの基本構造
NRQLのクエリは、いくつかの句をパズルのように組み合わせて作られます。最初は以下の5つを覚えておけば、基本的な分析はほとんどカバーできます。
FROM
データタイプ名: どのテーブルから情報を取得するかを指定します。例えば、トランザクション情報ならTransaction
、ページ表示情報ならPageView
を指定します。SELECT
属性: どの情報(列)が見たいかを指定します。SELECT
ですべての情報を表示したり、イベント数を数えるSELECT count()
も頻繁に使います。WHERE
条件: 取得するデータを特定の条件で絞り込みます。「この機能だけのデータ」や「エラーが発生したデータだけ」といった場合に必須です。FACET
属性: 指定した属性でデータをグループ分けして表示します。例えば、FACET appName
とすれば、アプリケーション名ごとに結果が表示され、比較分析が非常に楽になります。SINCE
/UNTIL
時間: データの検索範囲を指定します。SINCE 1 day ago
(過去1日間)のように相対的な指定が便利です。文末にTIMESERIES
を付けると、時系列の折れ線グラフで表示できます。
Tips2: データを集計・分析する便利な関数たち
NRQLは豊富な集計関数をサポートしています。SELECT
句でこれらの関数を使うことで、単にデータを表示するだけでなく、様々な角度から分析できます。
- 平均値 (average):
average(duration)
のように使い、レスポンスタイムなどの平均を算出します。 - パーセンタイル (percentile):
percentile(duration, 95)
とすれば、95パーセンタイルのレスポンスタイムがわかります。外れ値に惑わされない、より実態に近いパフォーマンス把握に役立ちます。 - 最大値・最小値 (max, min):
max(duration)
やmin(duration)
で、特定の期間で最も時間がかかった処理などを特定できます。 - 合計 (sum):
sum(requestCount)
のように、合計リクエスト数などを計算するのに使います。 - 条件付きの割合 (percentage):
percentage(count(*), WHERE error IS true)
のように書くと、全体のリクエストに対するエラー率を簡単に算出できて非常に便利です。 - ユニークカウント (uniqueCount):
uniqueCount(userId)
で、特定の期間にアクセスしたユニークユーザー数を把握できます。
Tips3: データを自在に絞り込む!WHERE句のテクニック
データを正確に分析するためには、WHERE
句による絞り込みが欠かせません。以下のようなテクニックを知っていると、調査の効率が格段に上がります。
- 部分一致 (LIKE):
WHERE name LIKE ‘%Login%'
のように、名前に ‘Login’ を含むトランザクションだけを抽出できます。ワイルドカード%
が使えて便利です。 - 正規表現 (RLIKE):
WHERE city RLIKE ‘T.ky.'
のように、RLIKE
を使えば、さらに複雑なパターンでの絞り込みも可能です。 - 複数条件 (IN):
OR
を何度も書く代わりにWHERE httpResponseCode IN (‘500’, ‘503’, ‘504’)
のように書くことで、複数のサーバーエラーコードに一致するデータをまとめて抽出でき、クエリがスッキリします。 - 数値比較 (>, <):
WHERE duration > 1
のように、処理時間が1秒を超えたトランザクションだけを抽出するなど、パフォーマンスが悪い処理の特定に役立ちます。
最高の学習法!公式チュートリアル「NRQL Lessons」
ここまでNRQLの強力な機能を見てきましたが、「これを全部覚えるのは大変そう…」と感じたかもしれません。ご安心ください。これらの強力な機能を、対話形式で楽しくマスターできるのが「NRQL Lessons」です。
「NRQL Lessons」は、New Relicが公式に提供している完全無料の学習コースです。特別な環境構築は一切不要で、New Relicのアカウントさえあれば、いつでもブラウザから始めることができます。
New Relicにログイン後、「Integrations & Agents」画面からアクセスできます。
デモデータを使いながら、実際に手を動かしてクエリを書き、その場で正解かどうかを確認しながら進められる対話形式が最大の特徴です。手を動かしながらゲーム感覚でNRQLを学べる、まさにNRQLを身につける上で最適な学習ツールと言えるでしょう。
NRQLを覚えると、開発・運用はこう変わる!
NRQLの基礎を身につけると、日々の業務がこんなに変わります。
- Before: 「あの機能のレスポンスタイム、どこで見れるんだっけ…?」と、GUI画面をあちこちクリックして探していた…。
- After:
SELECT average(duration) FROM Transaction WHERE name = ‘あの機能'
とクエリを1行入力。瞬時にグラフで状況を把握できます。
- Before: チームメンバーから「最近のエラー発生状況をまとめて」と頼まれ、スクリーンショットを何枚も撮って報告資料を作っていた…。
- After: 状況が一目でわかるダッシュボードをNRQLでサッと作り、「このURL見てください」で共有完了です!
このように、これまで時間をかけていた作業が劇的に効率化され、より本質的な分析や改善活動に時間を使えるようになります。
まとめ
この記事では、NRQLの基本的な構文と、New Relicの公式無料チュートリアル「NRQL Lessons」についてご紹介しました。
- NRQLは、New Relicを使いこなすための強力な武器
- Tipsで紹介した構文や関数を覚えるだけで、分析の幅が大きく広がる
- 「NRQL Lessons」なら、無料で・ブラウザだけで・対話的に楽しく学べる
もしあなたが「NRQL、難しそう…」と少しでも感じているなら、ぜひ一度「NRQL Lessons」にアクセスしてみてください。ゲーム感覚で進められるレッスンに、きっと夢中になるはずです。
まずは最初のレッスンだけでも、試してみませんか?
最後までお読みいただき、ありがとうございました。