📈

New RelicのNerdGraphとNRQLを使ってみる

2023/08/15に公開

はじめに

New Relicは、クラウドベースのサービス監視ツールで、アプリケーションやインフラの稼働状況を可視化し、アラート通知や改善点の確認などに利用できます。
今回は、New RelicのNerdGraphとNRQLを使い、APIでデータを取得してみます。

https://newrelic.com/jp

NerdGraphとは

NerdGraphは、New Relicのデータを取得したり設定がおこなえるGraphQL形式のAPIです。

https://docs.newrelic.com/jp/docs/apis/nerdgraph/get-started/introduction-new-relic-nerdgraph/

NRQLとは

NRQLは、SQLクエリに似たクエリ言語でNew Relicのデータを柔軟に取得することができます。

https://docs.newrelic.com/jp/docs/query-your-data/nrql-new-relic-query-language/get-started/introduction-nrql-new-relics-query-language/

NerdGraph API Explorerを使ってみる

「NerdGraph API Explorer」ではNew Relicの画面上で取得したい項目を選択し、APIを簡単に実行できます。
先ずは以下手順で、自身のユーザーIDとAPIキーを確認するAPIを実行してみます。

  1. New Relicにログインします。
  2. NerdGraph API Explorer」の画面にアクセスします。
  3. Query Builderの項目一覧から、以下項目にチェックを入れます。
    requestContext
     ・apiKey
     ・userId
  4. 自動でGraphQLのクエリが生成されるので、実行ボタン「▶️」をクリックします。
  5. 画面の右に、実行結果が表示されます。

    apiKeyとuserIdを取得できました!

NRQLを使ってみる

NRQLもNerdGraphと同様に「Data explorer」画面から取得したい項目を選択し、自動生成されたクエリを実行できます。
ここでは応答時間を取得するクエリを生成し、その後、「Query builder」でクエリを編集して実行します。

  1. Query Your Data」メニューの「Data explorer」画面にアクセスします。
  2. 取得項目を絞るため、検索欄に「responsetime」と入力します。
  3. 検索欄の下に表示された以下項目をクリックします。
    newrelic.goldenmetrics.apm.application.responseTimeMs(Average)
  4. 画面の右に、実行結果とNRQLが表示されます。

    グラフも自動で表示されます!
  5. NRQL表示欄の「Edit in query builder」ボタンをクリックします。
  6. 取得期間や集計間隔の指定を編集し、実行します。

    取得データは自由自在!

NRQLの結果をCURLで取得してみる

NerdGraph APIでは、NRQLのクエリを指定することもできます。
先程のNRQLをNerdGraph APIで実行し、応答時間のグラフ画像を取得してみます。

  1. NerdGraph API Explorer」の画面にアクセスします。
  2. Query Builderの項目一覧から、以下項目にチェックを入れます。
    actor
     ・account
      ・id
      ・nrql
       ・query
       ・staticChartUrl
        ・chartType
  3. 以下を指定します。
    ・accountのid:アカウントIDを指定します。
    ・nrqlのquery:NRQLのクエリを指定します。
    ・staticChartUrlのchartType:LINE(折れ線)、VERTICAL_BAR(棒)などグラフの種類を指定します。
  4. 実行ボタン「▶️」をクリックし、応答を確認します。
  5. 画面上部の「Tool」メニューから「Copy as CURL」を選択します。
  6. コピーしたGraphQLのクエリで、CURLを実行します。
    以下のようなコマンドになります。
curl https://api.newrelic.com/graphql \
  -H 'Content-Type: application/json' \
  -H 'Api-Key: {APIキー}' \
  --data-binary '{"query":"{クエリ}", "variables":""}'
  1. 「NerdGraph API Explorer」と同じ実行結果が返ります。
    実行結果のURL(staticChartUrl)にアクセスし、グラフの画像を取得します。

おわりに

CURLでNew Relicの監視データを取得することができました!🎉
自由度が高いNerdGraphとNRQLを活用することで、より目的に沿った監視ができそうです✨

NerdGraph、NRQLの詳細は以下ページで確認できます!
NerdGraphエクスプローラーを使用する
NerdGraphの機能とチュートリアル
NRQLの使用方法:クエリの仕組み
NRQLリファレンス

コラボスタイル Developers

Discussion