APIによるInsightsイベントデータのクエリ

New Relic InsightsのクエリAPIは、Insights イベントデータを照会するためのREST APIです。HTTPSリクエスト経由で標準的なNRQLクエリを発行すると、クエリAPIは解析用のJSON応答を返します。

カスタムイベントをInsightsに追加するには、 Insightsの挿入APIを使用します。

入手可能なすべてのNew Relic APIを見るには、API入門を参照してください。

お使いのアカウントがEUデータセンターでデータをホストする場合は、適切なEUリージョンアカウント向けAPIエンドポイントを使用していることを確認してください。

1. API キーの登録

所有者、管理者、またはアドオン管理者

InsightsのクエリAPIを使用するには、クエリキーが必要です。クエリキーは複数所有することができ、いずれかのクエリキーを使用してInsights APIクエリを発行することができます。Insightsや異なるデータ送信先を紹介するシステムが複数存在する場合、New Relicは複数のクエリキーを使用したデータセキュリティの向上を推奨します。

安全上の理由から、APIキーを使用したクエリキーの変更や読み出しはできません。クエリキーの変更・読み出しには、New Relic UIを使用してください。

新しいクエリキーを作成する方法は以下の通りです。

  1. insights.newrelic.com > Manage data > API keysを開きます。
  2. Query keys見出しの隣にある アイコンを選択します。
  3. キーの簡単な説明を入力します。
  4. Save your notesを選択します。

2. APIクエリリクエストの作成

クエリキーを作成または編集する際には、テンプレートとして利用可能な以下のサンプルcURLクエリが表示されます。

curl -H "Accept: application/json" -H "X-Query-Key: YOUR_QUERY_KEY" "https://insights-api.newrelic.com/v1/accounts/YOUR_ACCOUNT_ID/query?nrql=YOUR_QUERY_STRING"

以下の決まったクエリルールに従う必要があります。 従わなかった場合、クエリは失敗する可能性があります。

Windowsユーザーは、 Powershell を使用することでAPIを介してクエリイベントを照会できます。

Invoke-WebRequest -Uri https://insights-api.newrelic.com/v1/accounts/YOUR_ACCOUNT_ID/query?nrql=YOUR_QUERY_STRING -Headers @{"X-Query-Key"="YOUR_QUERY_KEY"} -ContentType "application/json" -Method GET

3. JSON応答の処理

クエリAPIはJSON 形式で結果を返します。1回のリクエストで取得可能な結果は最大1,000件です。

JSONデータの構造は、リクエストで使用したNRQLによって異なります。SELECT文、句、関数の異なる組み合わせは、それぞれ適切なレスポンスを返します。JSONを処理するコードを書く際は、クエリのテストを実行して結果のJSONを確認してください。

InsightsクエリAPIはJSONデータを返します。以下に Insights クエリとそのクエリリクエストの形式、および結果データの例を示します。

クエリ、クエリAPIリクエスト、結果データ

元のNRQLクエリ:

SELECT count(appName) FROM PageView SINCE '2014-08-04 00:00:00+0500'

cURLによるクエリリクエスト(URLエンコードされたNRQLクエリ)

curl -H "Accept: application/json" -H "X-Query-Key: YOUR_QUERY_KEY" "https://insights-api.newrelic.com/v1/accounts/YOUR_ACCOUNT_ID/query?nrql=SELECT+count%28appName%29+FROM+PageView+SINCE+%272014-08-04+00%3A00%3A00%2B0500%27"

JSON形式の結果データ:

{
  "results": [
    {
      "count": 80275388
    }
  ],
  "metadata": {
    "eventTypes": [
      "PageView"
    ],
    "eventType": "PageView",
    "openEnded": true,
    "beginTime": "2014-08-03T19:00:00Z",
    "endTime": "2017-01-18T23:18:41Z",
    "beginTimeMillis=": 1407092400000,
    "endTimeMillis": 1484781521198,
    "rawSince": "'2014-08-04 00:00:00+0500'",
    "rawUntil": "`now`",
    "rawCompareWith": "",
    "clippedTimeWindows": {
      "Browser": {
        "beginTimeMillis": 1483571921198,
        "endTimeMillis": 1484781521198,
        "retentionMillis": 1209600000
      }
    },
    "messages": [],
    "contents": [
      {
        "function": "count",
        "attribute": "appName",
        "simple": true
      }
    ]
  }
}

レート制限のガイドライン

New Relic Insightsでは、すべてのユーザーに対して高度な可用性と信頼性を確保するため、レート制限を使用しています。正常に実行可能なリクエスト数は、クエリのタイプによって決まります。イベントに連動するクエリが実行された際には常に Insights に対するクエリが発生します。 以下にその例を示します。

  • イベントチャートが既存のダッシュボードに描画されるとき
  • NRQLクエリバーを使用してチャートが描画されるとき
  • InsightsクエリAPI

ほとんどのユーザーは、レート制限に引っかかることはありません。 特に、以下の一般的なガイドラインに従っている場合は問題ありません。

  • 同時に実行される複雑なクエリ(例:FACET句やTIMESERIES句を含むクエリ、または100万件を超えるイベントのクエリ)でのリクエスト数を制限する。
  • 特に複雑なクエリを含む場合は、長期間にわたって並行して実行するリクエストの数を最大5件に制限します。

New Relic によって レート制限がアカウントに適用されている場合、クエリAPIは503エラーを返します。また、New Relic UIのダッシュボードチャートにタイムアウトエラーのメッセージが表示されることもあります。

その他のヘルプ

推奨する詳細情報: