NRQL入門

New Relic Query Language(NRQL)は、Insights のイベントデータベースに対して問い合わせを行うための SQL に似たクエリ言語です。NRQL を使用すると、アプリケーション、ホスト、またはその他のエンティティから収集したデータをクエリし、該当データをダイナミックなチャートに変換することができます。そのチャートからデータを解釈することで、システム、アプリケーション、そしてビジネスをより深く理解できるようになります。

  • NRQLの概要については、New Relic Universityのチュートリアル、Writing NRQL queriesをご覧ください。複雑なクエリのヘルプについては、Advanced NRQLコースをご覧ください。
  • NRQL を使用して New Relic APM やその他の製品によって収集したデータを調査する例については、 NRQL の例を記したドキュメントをご覧ください。

クエリツールの使用

crop-nrql-command-line
insights.newrelic.com > (クエリの実行): Insightsクエリを実行後、必要な結果を取得するのに必要な調整を行うか、 Add to this dashboardおよびAdd toボタンを使用してダッシュボードにクエリを追加します。

コマンドラインクエリツールは、ダッシュボードの最上部とQueryページに表示されます。このツールを使用して、SQL 形式の構文でコマンドを作成します。入力すると、自動補完機能によって属性の候補が表示され、構文エラーに赤い下線でフラグが立てられます。NRQLの構文の詳細については、NRQLリファレンスをご覧ください。

貴社が複数の New Relic アカウントを各チームにわたって使用している場合は、クエリツール内のアカウントスイッチャーからソースアカウントを選択してソースアカウントのデータをクエリできます。

パーサーは構文エラーを認識できますが、論理エラーに関しては通常はクエリの実行を試みるまで分かりません。クエリを実行できない場合、最初に見つかったエラーの位置がエラーレポートに表示されます。New Relic Insightは、クエリでNULL結果が明示的に要求されている場合を除き、NULL結果も全て無視します。

NRQL の構文

    SELECT function(attribute) [AS 'label'][, ...] 
     FROM event
     [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]

New Relic は NRQL の文を イベントクエリ として参照します。NRQL イベントクエリの構文は標準的な SQL クエリとほぼ同じです。基本的な構文ルールは以下の通りです。

NRQL の構文 コメント
必須の値

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

  • SELECTでクエリを開始する場合、自動的に表示されるPageViewイベントタイプの属性から選択することができます。
  • FROMでクエリを開始する場合、イベントタイプを選択した後で、SELECT句を追加して、そのイベントタイプからの属性を選択することができます。
大文字と小文字の区別
  • 属性名の大文字と小文字は区別されます。
  • NRQL句関数では、大文字と小文字は区別されません。
文字列 NRQLは、文字列の指定にシングルクォート''を使用します。
スペース

スペースを含むカスタムアトリビュートを引用符で囲むには、バッククォート``を使用する必要があります(例:`Logged-in user`)。

フロート値 Insights は「型強制」をサポートしていません。つまり、文字列として保存されたフロートは文字列として取り扱われ、フロート値を要求する関数に渡しても操作できません。
集計関数 基本的で高度な関数は、SELECT文でサポートされています。
JOIN 関数 Insights には SQL JOIN に相当する関数はありませんが、カスタムアトリビュートを使用して JOIN をシミュレートすることができます。

NRQL クエリの例

基本的な NRQL クエリの例
SELECT uniqueCount(user) 
 FROM  PageView 
 WHERE userAgentOS = 'Mac' 
 FACET countryCode
 SINCE 1 day ago 
 LIMIT 20 
属性名にスペースがある場合の NRQL クエリの例
SELECT count(*)
 FROM Transaction
 FACET `Logged-in user`
複数のイベントをクエリする場合の例
2 種類のイベントタイプからデータを取得するには、以下のようにイベントタイプをカンマで区切ってください。
 SELECT ... FROM event, event ...

このクエリは直近 3 日間のAPMトランザクションBrowserイベントの全カウント数を返します。

SELECT count(*) FROM Transaction, PageView SINCE 3 days ago
複数のカラムをクエリする場合の例
データセットから複数のカラムを取得するには、集計引数をカンマで区切ります。
 SELECT function(attribute), function(attribute) ... FROM ...

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

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

Insights APIクエリでのNRQLの使用

NRQLをInsights APIと共に使用し、 データをリモート照会することもできます。APIリクエストで使用する場合は、 書式の要件 に従ってNRQLクエリを作成してください。

その他のヘルプ

推奨する詳細情報: