NerdGraph API を使用して NRQL クエリを作成できます。
NerdGraph を使用したクエリの概要
UI の クエリ ビルダー を使用して NRQL クエリを実行することも、NerdGraph API を使用することもできます。NerdGraph を使用すると、 複数のアカウントにわたるクエリや 非同期クエリの実行など、UI からは実行できないことを実行できます。
要件
- すべてのユーザー タイプが、アクセス権を持つアカウントのデータを照会できます。NerdGraph 経由でクエリを実行できない場合は、そのアカウントへのアクセス権がない可能性があります。
- すべてのクエリは NRQL クエリ制限の対象となります
NerdGraphでの基本的なNRQLクエリ
NerdGraph を使用して基本的な NRQL クエリを作成するには、主に 2 つの要件があります。
- NRQL クエリを文字列引数として NRQL オブジェクトに渡す必要があります。
- クエリには
results
フィールドを含める必要があります
たとえば、過去 1 時間のすべての トランザクション イベント の数を取得するには、 New Relic アカウント IDを指定して次のクエリを実行します。
{ actor { account(id: YOUR_ACCOUNT_ID) { nrql(query: "SELECT count(*) FROM Transaction SINCE 1 HOUR AGO") { results } } }}
このクエリの例は、次のような結果を返します。
{ "data": { "actor": { "account": { "nrql": { "results": [ { "count": 1000 } ] } } } }}
NRQL クエリの作成方法の詳細をお探しですか? NRQL ドキュメントのセクションを参照してください。
クロスアカウント クエリ
NerdGraph を使用すると、複数のアカウントでクエリを実行できますが、これはクエリ ビルダーでは実行できません。照会するアカウントのアカウント IDが必要です。
クロスアカウント NRQL クエリを実行する例を次に示します。
{ actor { nrql( accounts: [ACCOUNT_ID_1, ACCOUNT_ID_2, ACCOUNT_ID_3] options: {} query: "YOUR_NRQL_QUERY" timeout: 70 ) { results } }}
複数のアカウントからのデータを使用してダッシュボードを作成する方法については、NerdGraph ダッシュボードのチュートリアルを参照してください。
埋め込み可能なチャートの作成
生データを返すだけでなく、アプリケーションで使用するデータの埋め込み可能なチャート リンクを取得することもできます。 たとえば、 トランザクションの単一のカウントの代わりに、時間の経過に伴うバケット化されたカウントの時系列を示すグラフを作成できます。 embeddedChartUrl
を使用してクエリにTIMESERIES
を追加します:
{ actor { account(id: YOUR_ACCOUNT_ID) { nrql(query: "SELECT count(*) from Transaction TIMESERIES") { embeddedChartUrl } } }}
このNerdGraphのクエリ例では、チャートのURLを次のようなレスポンスで返しています。
{ "data": { "actor": { "account": { "nrql": { "embeddedChartUrl": "https://chart-embed.service.newrelic.com/charts/EMBEDDABLE-CHART-ID" } } } }}
標準のHTTPクライアントを使用して埋め込みグラフのURLを表示すると、送信したクエリへの応答を視覚化した画像が返されます。これらのグラフは、他の場所で作成された埋め込みグラフと同じ埋め込みグラフのルールに従います。データ視覚化のスタイルを変更するには、 chartType
引数をembeddedChartUrl
に渡します。
提案されたファセット
NerdGraphを使用してデータを探索する場合、 suggestedFacets
フィールドを使用して、 ファセットNRQLクエリで使用するための推奨属性を返すことができます。
実行時間の長いクエリ
実行時間の長いNRQLクエリを実行する必要がある場合は、非同期クエリを参照してください。
その他のクエリ オプション
NerdGraph には、次のような他のクエリ オプションがあります。