New Relic: NerdGraph API を使ってデータを取得する
New Relic に送信したデータは、NerdGraph API という GraphQL を採用した API で参照することができます。こちらは参照用で、データ送信用とは区別されているようです。
API へのアクセス例
GraphQL API に対する一般的な方法になりますが、参考まで。
Altair GraphQL Client を使ってアクセスする
- Chrome に Altair GraphQL Client 拡張機能をインストールする
- Altair GraphQL Client を開き、URL に
https://api.newrelic.com/graphql
と入力する - 左のナビゲーション内にある「Set Headers」アイコンをクリックし、以下のヘッダを追加する
- Header key:
Api-Key
- Header value: (API キーを入力)
- Header key:
Query ペインにクエリを入力して「Send Request」でリクエスト、「Docs」を押すと API ドキュメントを参照することができます。
Curl でアクセスする
以下のようにします。
NEW_RELIC_USER_KEY=(API キー)
QUERY="{requestContext { userId apiKey }}"
curl -X POST "https://api.newrelic.com/graphql" \
-H "Content-Type: application/json" \
-H "Api-Key: ${NEW_RELIC_USER_KEY}" \
-d "{\"query\":\"${QUERY}\"}"
クエリ例
上記 query の部分に、GraphQL としてのクエリを指定します。
アカウント情報を取得
{
actor {
organization {
accountManagement {
managedAccounts {
name
id
regionCode
}
}
}
}
}
最新の値を取得
アカウント ID には、上で取得した id
を指定します。
{
actor {
account(id: (アカウントID)) {
nrql(query: "SELECT latest(temperature) AS temperature FROM Metric WHERE name = 'M5-test'") {
results
}
}
}
}
チャートの画像を取得
{
actor {
account(id: (アカウントID)) {
nrql(query: "SELECT min(temperature), max(temperature) FROM Metric WHERE name = 'M5-test' SINCE 1 DAY AGO TIMESERIES") {
staticChartUrl(width: 640, height: 320)
}
}
}
}