NerdGraph APIを使用して、 NRQLクエリを作成できます。
NerdGraph を使用したクエリの概要
NRQL クエリは、クエリ ビルダーまたは NerdGraph で実行できます。NerdGraph を使用すると、複数のアカウントにまたがるクエリや非同期クエリの実行など、UI では実行できないことを実行できます。
要件
- すべてのユーザー タイプが、アクセス権を持つアカウントのデータを照会できます。NerdGraph 経由でクエリを実行できない場合は、そのアカウントへのアクセス権がない可能性があります。
- すべてのNRQLクエリはNRQLクエリ制限の対象です
NerdGraphでの基本的なNRQLクエリ
NerdGraphを使用して基本的なNRQLクエリを作成するには:
- NerdGraph エクスプローラーに移動します。
- NRQLクエリを文字列引数としてNRQLオブジェクトに渡し、NerdGraphクエリに
results
フィールドを含めます。
たとえば、過去1時間のすべての トランザクションイベント のカウントを取得するには、次のクエリを使用します。
{
actor {
account(id: YOUR_ACCOUNT_ID) {
nrql(query: "SELECT count(*) FROM Transaction SINCE 1 HOUR AGO") {
results
}
}
}
}
このクエリの例は、次のような結果を返します。
{ "data": { "actor": { "account": { "nrql": { "results": [ { "count": 1000 } ] } } } }}
クロスアカウント クエリ
NerdGraph を使用すると、複数のアカウントでクエリを実行できますが、これはクエリ ビルダーでは実行できません。照会するアカウントのアカウント IDが必要です。
クロスアカウント NRQL クエリを実行する例を次に示します。
{ actor { nrql( accounts: [ACCOUNT_ID_1, ACCOUNT_ID_2, ACCOUNT_ID_3] options: {} query: "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 には、次のような他のクエリ オプションがあります。