NRQL(New Relicクエリ言語)入門

New Relicデータのクエリを行う1つの方法が、New Relic Query Language(NRQL)の使用です。このリソースでは、NRQL とは何か、いつ、どのように使用できるか、および基本的な構文ルールについて説明します。句と関数のリストやクエリの例など、クエリの詳細については、 NRQL の構文、句、関数を参照してください。

NRQLとは

NRQLは、New RelicのSQLに似たクエリ言語です。NRQLを使用して、詳細なNew Relicデータを取得し、アプリケーションやホスト、ビジネスで重要なアクティビティについての洞察を得ることができます。

NRQLを使用する理由としては、次の点があります。

  • トラブルシューティングやビジネス分析目的で質問に答える
  • 新規チャートを作成する
  • (例えば当社のNerdGraph APIを使用して)New RelicデータのAPIクエリを行うには

NRQLは、一部のNew Relicチャートを生成する際に背後で使用するものです:

New Relic チャートを表示 NRQL クエリ
一部のNew RelicチャートはNRQLで作成されています。NRQLを使い始めるには、チャートのクエリを表示して、独自のカスタムチャートを作成できるよう編集する方法もあります。

どこでNRQLを使用可能ですか?

次の場所でNRQLを使用できます。

  • New Relic Oneクエリビルダー:
    • 上級モードは、NRQLクエリインタフェースです
    • 基本モードでは、NRQLについての知識は不要ですがNRQLを使用して結果を生成するので、クエリが単純化されます。
  • New Relic Insights
  • NerdGraph: 当社のGraphQLフォーマットのAPIで、NRQLクエリ作成のオプションを含みます
nrql_example.png
one.newrelic.com > データのクエリ: New Relic OneNew Relic Insightsの両方で、NRQLクエリを実行できます。このNRQLクエリには、エンティティ名別にファセットしたディストリビューティッド(分散)トレーシングスパンの数が表示されます。

NRQLは、New Relicデータのクエリを行ういくつかの方法のうちの1つです。すべてのクエリオプションについて詳しくはデータのクエリ(Query your data)を参照してください。

どのデータをNRQLでクエリできるか?

NRQLを使用して、これらのNew Relic のデータタイプのクエリを実行できます:

モニタリング対象エンティティ間の関係など、一部のデータは NRQL を介して利用できませんが、NerdGraph APIを介して利用できます。

NRQLを使い始めるには

NRQLを使い始めて、どのデータを利用できるのか理解するには、NRQLインタフェース(例:New Relic Oneクエリビルダー)からFROMと入力し、スペースキーを押します。インタフェースが、利用可能なデータタイプを提案します:

nrql_query01.png

どの属性を特定のデータタイプに使用できるかを理解するには、FROM DATA_TYPE SELECTと入力し、スペースキーを押します。インタフェースで、利用可能な属性が提案されます。例えば:

nrql_query02.png

すべての属性を含む、データタイプに関連した完全なJSONを表示するには、keyset()属性を使用します。例えば:

FROM Transaction SELECT keyset()

NRQLは、一部のNew Relicチャートおよびダッシュボードを作成する際に背後で使用するものです。NRQLを学習するには、こうしたNRQLが作成したチャートを見つけて、新しい、カスタマイズしたクエリとチャートをNRQLで作成し始める方法があります:

New Relic チャートを表示 NRQL クエリ
NRQLで作成したチャートには、オプションとしてクエリを表示があります。ここからクエリを編集・カスタマイズして、変更内容が視覚的な結果にどのような影響を及ぼすのか確認できます。

NRQLを使用せずにデータを詳しく調べるには、New Relic Oneクエリビルダーの基本モードを使用します。

NRQL クエリの例

以下は、New Relic APMが報告する、Transaction データのNRQLクエリ例になります。

FROM Transaction SELECT average(duration) 
  FACET appName TIMESERIES auto

これによって、次のようなチャートが作成されます:

nrql_example.png

以下は、クエリの例です:

Browserデータの基本的なNRQLクエリ

以下は、New Relic Browserが報告したPageViewデータのNRQLクエリになります。

SELECT uniqueCount(user) FROM PageView 
  WHERE userAgentOS = 'Mac' 
  FACET countryCode
  SINCE 1 day ago 
  LIMIT 20 
スペースが入った属性名

カスタム属性名にスペースが入っている場合、バックティックで属性名を挟みます。

SELECT count(*)
 FROM Transaction
 FACET `Logged-in user`
複数のデータソースのクエリ実行
2つのデータソースからデータを返すには、データタイプをコンマで区切ります。たとえば、このクエリは直近 3 日間のAPMトランザクションBrowserイベントの全カウント数を返します。
 SELECT count(*) FROM Transaction, PageView SINCE 3 days ago
複数列を返すクエリ
データセットから複数のカラムを取得するには、集計引数をカンマで区切ります。
 SELECT function(attribute), function(attribute) ... FROM ...

このクエリは、直近1週間のNew Relic Browser PageViewイベントから持続時間の最小値、平均値、最大値を返します。

SELECT min(duration), max(duration), average(duration)
  FROM PageView SINCE 1 week ago

詳細については、NRQLクエリの例をご覧ください。

NRQL の構文

NRQLクエリの構文は標準的な SQL クエリとほぼ同じです。NRQLクエリの構造の内訳は次のとおりです。

SELECT function(attribute) [AS 'label'][, ...] 
  FROM data type
  [WHERE attribute [comparison] [AND|OR ...]][AS 'label'][, ...]
  [FACET attribute | function(attribute)]
  [LIMIT number]
  [SINCE time]
  [UNTIL time]
  [WITH TIMEZONE timezone]
  [COMPARE WITH time]
  [TIMESERIES time]

基本的なルールは以下のとおりです。

NRQLの条件 詳細
必須の値

SELECT文とFROM句は必須です。その他すべての句は任意です。クエリはSELECTまたはFROMから開始することができます。

クエリ文字列のサイズ

クエリ文字列は4KB未満でなければなりません。

大文字と小文字の区別
  • データタイプ名と属性名は区別されます。
  • NRQL句関数では、大文字と小文字は区別されません。
文字列の構文 NRQLでは文字列の指定にシングルクォーテーションを使用します。例:
... ここで、traceId = '030a573f0df02c57' 
スペースの入った属性名

バックティック``を使用して、スペースが入っているカスタム属性名を引用します。例えば:

... FACET `Logged-in user`
データタイプの型強制 Insights はデータタイプの「型強制」に対応していません。詳しくはデータタイプの変換を参照してください。
数学関数の使用 基本的で高度な関数は、SELECT文でサポートされています。
JOIN 関数 NRQLには SQL JOIN に相当する関数はありませんが、カスタム属性を使用して JOIN をシミュレートできます。

NRQLの構文と関数についてさらに詳しくお読みください。

その他のヘルプ

さらに支援が必要な場合は、これらのサポートと学習リソースを確認してください: