📈
New RelicのNerdGraphとNRQLを使ってみる
はじめに
New Relicは、クラウドベースのサービス監視ツールで、アプリケーションやインフラの稼働状況を可視化し、アラート通知や改善点の確認などに利用できます。
今回は、New RelicのNerdGraphとNRQLを使い、APIでデータを取得してみます。
NerdGraphとは
NerdGraphは、New Relicのデータを取得したり設定がおこなえるGraphQL形式のAPIです。
NRQLとは
NRQLは、SQLクエリに似たクエリ言語でNew Relicのデータを柔軟に取得することができます。
NerdGraph API Explorerを使ってみる
「NerdGraph API Explorer」ではNew Relicの画面上で取得したい項目を選択し、APIを簡単に実行できます。
先ずは以下手順で、自身のユーザーIDとAPIキーを確認するAPIを実行してみます。
- New Relicにログインします。
- 「NerdGraph API Explorer」の画面にアクセスします。
- Query Builderの項目一覧から、以下項目にチェックを入れます。
・requestContext
・apiKey
・userId
- 自動でGraphQLのクエリが生成されるので、実行ボタン「▶️」をクリックします。
- 画面の右に、実行結果が表示されます。
apiKeyとuserIdを取得できました!
NRQLを使ってみる
NRQLもNerdGraphと同様に「Data explorer」画面から取得したい項目を選択し、自動生成されたクエリを実行できます。
ここでは応答時間を取得するクエリを生成し、その後、「Query builder」でクエリを編集して実行します。
- 「Query Your Data」メニューの「Data explorer」画面にアクセスします。
- 取得項目を絞るため、検索欄に「responsetime」と入力します。
- 検索欄の下に表示された以下項目をクリックします。
・newrelic.goldenmetrics.apm.application.responseTimeMs(Average)
- 画面の右に、実行結果とNRQLが表示されます。
グラフも自動で表示されます! - NRQL表示欄の「Edit in query builder」ボタンをクリックします。
- 取得期間や集計間隔の指定を編集し、実行します。
取得データは自由自在!
NRQLの結果をCURLで取得してみる
NerdGraph APIでは、NRQLのクエリを指定することもできます。
先程のNRQLをNerdGraph APIで実行し、応答時間のグラフ画像を取得してみます。
- 「NerdGraph API Explorer」の画面にアクセスします。
- Query Builderの項目一覧から、以下項目にチェックを入れます。
・actor
・account
・id
・nrql
・query
・staticChartUrl
・chartType
- 以下を指定します。
・accountのid:アカウントIDを指定します。
・nrqlのquery:NRQLのクエリを指定します。
・staticChartUrlのchartType:LINE(折れ線)、VERTICAL_BAR(棒)などグラフの種類を指定します。 - 実行ボタン「▶️」をクリックし、応答を確認します。
- 画面上部の「Tool」メニューから「Copy as CURL」を選択します。
- コピーしたGraphQLのクエリで、CURLを実行します。
以下のようなコマンドになります。
curl https://api.newrelic.com/graphql \
-H 'Content-Type: application/json' \
-H 'Api-Key: {APIキー}' \
--data-binary '{"query":"{クエリ}", "variables":""}'
- 「NerdGraph API Explorer」と同じ実行結果が返ります。
実行結果のURL(staticChartUrl)にアクセスし、グラフの画像を取得します。
おわりに
CURLでNew Relicの監視データを取得することができました!🎉
自由度が高いNerdGraphとNRQLを活用することで、より目的に沿った監視ができそうです✨
NerdGraph、NRQLの詳細は以下ページで確認できます!
・NerdGraphエクスプローラーを使用する
・NerdGraphの機能とチュートリアル
・NRQLの使用方法:クエリの仕組み
・NRQLリファレンス
Discussion