New Relic NerdGraphの概要

NerdGraphはNew RelicのGraphQL APIであり、効率的で柔軟なクエリ言語で、フェッチの過不足なしに、必要なデータだけをリクエストできます。一般的なREST APIであれば複数のURLからロードする必要があるものの、NerdGraphコールは単一のリクエストですべてのデータを取得できます。また、NerdGraphは、APIを経時的に進化させて、強力な開発者ツールとなります。

お使いのアカウントがEUデータセンターでデータをホストする場合は、適切なEUリージョンアカウント向けAPIエンドポイントを使用していることを確認してください。

NerdGraph GraphiQLエクスプローラーを使用

NerdGraphには、スキーマを詳しく調べ定義を検索するためのGraphiQLエクスプローラーが含まれます。エクスプローラーを使用するには:

  1. 有効なNew Relic APIキーを必ず用意しておきます。
  2. api.newrelic.com/graphiqlへ移動します。

EUデータセンターのアカウントにアクセスするには、api.eu.newrelic.com/graphql.を使用してください

認証

NerdGraph GraphiQLエクスプローラーを開始するには、New RelicパーソナルAPIキーが必要です。まだキーがない場合:

NerdGraphエンドポイント

NerdGraph には、単一のエンドポイントがあります:

https://api.newrelic.com/graphql

EUデータセンターのアカウントにアクセスするには、https://api.eu.newrelic.com/graphqlを使用してください

エンドポイントにアクセスするには、次のcURLコマンドを使用します:

curl -X POST https://api.newrelic.com/graphql \
-H 'Content-Type: application/json' \
-H 'API-Key: YOUR_API_KEY' \
-d '{ "query":  "{ requestContext { userId apiKey } }" } '

NerdGraphエクスプローラーを使用して、エンドポイントにアクセスすることもできます。

NerdGraphの例

NerdGraphを使用して、次のことを行えます:

NerdGraph GraphiQLエクスプローラー
アカウントに関連するすべてのエンティティをクエリする。

エンティティチュートリアルを参照してください。

御社のアカウントに関連するワークロードのクエリと作成、更新を行います。

ワークロードのチュートリアルをご覧ください。

タグを作成、管理し、エンティティに追加する。

詳細と例についてはタグ作成チュートリアルを参照してください。

ディストリビューティッド(分散)トレーシングデータのクエリを行う。

トレースデータのチュートリアルを参照してください。

New Relic Oneアプリを構築する際にデータをフェッチする。

New Relic Oneのデータクエリおよびミューテーションを参照してください。

サービスとのアップストリームとダウンストリームの関係を理解する。

関係チュートリアルを参照してください。

New Relic Infrastructureクラウドインテグレーションを設定する。

クラウドインテグレーションの例を参照してください。

NRQLによりNew Relicイベントデータカスタムイベントデータをクエリする。

NerdGraph GraphiQLおよびNRQLチュートリアルを参照してください。

NerdGraphについてのビデオチュートリアルを見る。

New Relic University チュートリアル New Relic NerdGraphの説明にアクセスします。または、完全なオンラインコースのNew Relic APIにアクセスしてください。

NerdGraphテクノロジー

New Relic GraphQLサーバーは、NerdGraphのグラフ構造を明示的に定義します。次のキーワードは、すべてのGraphQLサーバーに共通しています。このキーワードを使用して、独自のクエリを構築し理解に役立ててください。さらに、以下の手順に従います。

用語 定義
クエリ

クエリとは、追加のアクションなしにデータのみをフェッチするための、基本的なリクエストです。NerdGraph GraphiQLエクスプローラーでのクエリは静的ではありません。つまり、ニーズに応じて、求めるデータの量を加減することができます。各クエリについて、スキーマでサポートされている限り、どのデータを取得するかを厳密に指定できます。

ミューテーション

ミューテーションとは、データの作成やサーバーでのデータ更新など、アクションを追加するためのリクエストです。ミューテーションでは、キーワードmutationと、ミューテーションのnameが必要です。

種類

Data in GraphQLはタイプにまとめられます。タイプは、スカラー(文字列や数字、booleanなど)またはオブジェクトタイプとなります。

オブジェクトタイプは、一連のフィールドで構成されるカスタムタイプです。たとえば、Userと呼ばれるオブジェクトタイプは、システムのユーザーを表します。

フィールド フィールドは、クエリを行えるオブジェクトタイプについての一片の情報を表します。フィールドとしては、スカラーやリスト、オブジェクトがあります。たとえば、Userオブジェクトは、nameと呼ばれる文字列フィールドを有することができます。
インタフェース インタフェースとは、その他のオブジェクトタイプがimplement可能な一連の一般的なフィールドを表す抽象型です。

エクスプローラーを使用してクエリを行う

NerdGraph GraphiQL エクスプローラーを使用して、クエリを行うことができます。エクスプローラーは、自動完了およびクエリ検証を含む、組み込み型のスキーマ定義と機能を備えています。

GraphQLで、New Relicのデータのグラフ構成で特定の情報を尋ねます。グラフのノードに従い、希望するデータそのもののクエリを行えます。

新規フィールドがシームレスに追加され、古いフィールドには非推奨として印が付けられ、ドキュメントから削除され、最終的にはそのフィールドを円満にシャットダウンできます。

New Relicユーザーがアクセスできるアカウントのクエリを行う

actor(New Relicの正規ユーザー)がアクセスできるアカウント名のクエリを行えます:

query {
   actor {
      account(id: YOUR_ACCOUNT_ID) {
         name
      }
   }
}

回答では、リクエストで定義したクエリ構成が反映され、お望みの特定のデータが簡単に求められます。

{
  "data": {
      "actor": {
         "account": {
            "name": "Data Nerd"
         }
      }
   }
}
ユーザーとアカウント、NRQLを1つのNerdGraph GraphiQLリクエストでクエリ

グラフ構成には、クエリが複雑になった場合の機能が示されています。たとえば、ユーザー情報やアカウント情報のクエリを行い、NRQLクエリを1回のリクエストで行えます。REST APIを使用すると、3つの異なるリクエストが、3つの異なるエンドポイントとなります。

query {
   actor {
      account(id: YOUR_ACCOUNT_ID) {
         name
         nrql(query: "SELECT * FROM Transaction") {
            results
         }
      }
      user {
         name
         id
      }
   }
}

その他のヘルプ

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