Skip to main content

New Relic: NerdGraph API を使ってデータを取得する

New Relic に送信したデータは、NerdGraph API という GraphQL を採用した API で参照することができます。こちらは参照用で、データ送信用とは区別されているようです。

API へのアクセス例

GraphQL API に対する一般的な方法になりますが、参考まで。

Altair GraphQL Client を使ってアクセスする

  1. Chrome に Altair GraphQL Client 拡張機能をインストールする
  2. Altair GraphQL Client を開き、URL に https://api.newrelic.com/graphql と入力する
  3. 左のナビゲーション内にある「Set Headers」アイコンをクリックし、以下のヘッダを追加する
    • Header key: Api-Key
    • Header value: (API キーを入力)

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)
}
}
}
}

チャートの画像を取得