• /
  • EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

NRQLへの移行

アプリのメトリクス名をリストする

アプリケーションで利用可能なメトリクス名を表示するには:

SELECT uniques(metricTimesliceName) FROM Metric WHERE appId = '$APP_ID' AND newrelic.timeslice.value IS NOT NULL SINCE 30 MINUTES AGO LIMIT MAX

アプリケーション名を使用してフィルタリングすることも可能:

SELECT uniques(metricTimesliceName) FROM Metric WHERE appName = '$APP_NAME' AND newrelic.timeslice.value IS NOT NULL SINCE 30 MINUTES AGO LIMIT MAX

または特定のエージェント (ホスト) を使用:

SELECT uniques(metricTimesliceName) FROM Metric WHERE realAgentId = '$AGENT_ID' AND newrelic.timeslice.value IS NOT NULL SINCE 30 MINUTES AGO LIMIT MAX

アプリのメトリックタイムスライスデータ値を取得する

REST API v2は、メトリクス名のリストと値のリストを受け取り、メトリックタイムスライスデータを取得します。

メトリクス名は同じなので、 NRQLクエリの metricTimesliceNameフィールドを使用してフィルタリングできます。

各API値はNRQL関数にマッピングできます。以下の表を参照してください。

たとえば、次のAPIリクエストの場合:

bash
$
curl -X GET "https://api.newrelic.com/v2/applications/${APP_ID}/metrics/data.json" \
>
-H "X-Api-Key:${API_KEY}" -i \
>
-d 'names[]=HttpDispatcher&values[]=average_call_time&values[]=call_count'

次のクエリを使用します。

SELECT COUNT(newrelic.timeslice.value) AS call_count, average(newrelic.timeslice.value) * 1000 AS average_call_time
FROM Metric
WHERE appId = $APP_ID AND metricTimesliceName = 'HttpDispatcher'

| Value (RPM) | NRQL Function | | -------------------------- | ------------------------------------------------------------------------------------------------- | | average_response_time | average(newrelic.timeslice.value) * 1000 | | calls_per_minute | rate(count(newrelic.timeslice.value), 1 minute) | | call_count | count(newrelic.timeslice.value) | | min_response_time | min(newrelic.timeslice.value) * 1000 | | max_response_time | max(newrelic.timeslice.value) * 1000 | | average_exclusive_time | average(newrelic.timeslice.value['totalExclusive'] / newrelic.timeslice.value['count']) * 1000 | | average_value | average(newrelic.timeslice.value) | | total_call_time_per_minute | rate(sum(newrelic.timeslice.value), 1 minute) | | requests_per_minute | rate(count(newrelic.timeslice.value), 1 minute) | | standard_deviation | stddev(newrelic.timeslice.value) * 1000 | | average_time | average(newrelic.timeslice.value) * 1000 | | count | count(newrelic.timeslice.value) | | used_bytes_by_host | average(newrelic.timeslice.value) * 1024 * 1024 | | used_mb_by_host | average(newrelic.timeslice.value) | | total_used_mb | sum(newrelic.timeslice.value) | | average_call_time | average(newrelic.timeslice.value) * 1000 | | total_value | sum(newrelic.timeslice.value) | | min_value | min(newrelic.timeslice.value) | | max_value | max(newrelic.timeslice.value) | | rate | rate(sum(newrelic.timeslice.value), 1 second) | | throughput | rate(count(newrelic.timeslice.value), 1 second) | | as_percentage | average(newrelic.timeslice.value) * 100 | | errors_per_minute | rate(count(newrelic.timeslice.value), 1 minute) | | error_count | count(newrelic.timeslice.value) | | total_time | sum(newrelic.timeslice.value) * 1000 | | sessions_active | average(newrelic.timeslice.value) | | total_visits | sum(newrelic.timeslice.value) | | percent | average(newrelic.timeslice.value) * 100 | | percent (CPU/User Time) | 100 * sum(newrelic.timeslice.value) / $TIME_WINDOW_IN_SECONDS | | time_percentage | 100 * sum(newrelic.timeslice.value) / $TIME_WINDOW_IN_SECONDS | | utilization | 100 * sum(newrelic.timeslice.value) / $TIME_WINDOW_IN_SECONDS | | visits_percentage | 100 * sum(newrelic.timeslice.value) / $TIME_WINDOW_IN_SECONDS |

関数に$TIME_WINDOW_IN_SECONDSが含まれている場合は、クエリを実行する時間枠に置き換える必要があります。

たとえば、30分の時間枠をクエリする場合は、 $TIME_WINDOW_IN_SECONDS 1800に置き換えます。

Apdex メトリクス

| Value (RPM) | NRQL Function | | ------------- | ---------------------------------------------------------------------------------- | | score | apdex(newrelic.timeslice.value) | | s | apdex(newrelic.timeslice.value) or count(newrelic.timeslice.value) | | t | apdex(newrelic.timeslice.value) or sum(newrelic.timeslice.value) | | f | apdex(newrelic.timeslice.value) or sum(newrelic.timeslice.value['totalExclusive']) | | count | apdex(newrelic.timeslice.value) | | value | apdex(newrelic.timeslice.value) | | threshold | max(newrelic.timeslice.value) | | threshold_min | min(newrelic.timeslice.value) |

エンドユーザーとモバイルのメトリクス

これらのメトリックは、REST API v2と同じ結果を返しますが、一部の結果はNew Relic UIに表示されるものと異なる場合があります。これは、 UIが時間区切りデータの代わりにイベントを使用しているためです。UIと同じ結果を取得したい場合は、イベントを直接クエリする必要があります。

| Value (RPM) | NRQL Function | | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | average_response_time | sum(newrelic.timeslice.value) / count(newrelic.timeslice.value) * 1000 | | error_percentage | (filter(count(newrelic.timeslice.value), WHERE metricTimesliceName = 'EndUser/errors') / filter(count(newrelic.timeslice.value), WHERE metricTimesliceName = 'Browser')) | | average_fe_response_time | sum(newrelic.timeslice.value['totalExclusive']) / count(newrelic.timeslice.value) * 1000 | | average_be_response_time | 1000 * (sum(newrelic.timeslice.value) - sum(newrelic.timeslice.value['totalExclusive'])) / count(newrelic.timeslice.value) | | average_network_time | (sum(newrelic.timeslice.value) - sum(newrelic.timeslice.value['totalExclusive']) - sum(newrelic.timeslice.value['sumOfSquares'])) / count(newrelic.timeslice.value) | | total_network_time | (sum(newrelic.timeslice.value) - sum(newrelic.timeslice.value['totalExclusive']) - sum(newrelic.timeslice.value['sumOfSquares'])) | | network_time_percentage | (sum(newrelic.timeslice.value) - sum(newrelic.timeslice.value['totalExclusive']) - sum(newrelic.timeslice.value['sumOfSquares'])) / $TIME_WINDOW_IN_SECONDS | | total_fe_time | sum(newrelic.timeslice.value['totalExclusive']) | | fe_time_percentage | 100 * sum(newrelic.timeslice.value['totalExclusive']) / $TIME_WINDOW_IN_SECONDS | | average_dom_content_load_time | average(newrelic.timeslice.value) * 1000 | | average_queue_time | average(newrelic.timeslice.value['totalExclusive']) * 1000 | | total_queue_time | sum(newrelic.timeslice.value['totalExclusive']) * 1000 | | total_dom_content_time | sum(newrelic.timeslice.value) * 1000 | | total_app_time | sum(newrelic.timeslice.value['sumOfSquares']) | | average_app_time | sum(newrelic.timeslice.value['sumOfSquares']) / count(newrelic.timeslice.value) | | average_sent_bytes | sum(newrelic.timeslice.value['totalExclusive']) * 1000 | | average_received_bytes | 1000 * sum(newrelic.timeslice.value) / count(newrelic.timeslice.value) | | launch_count | count(newrelic.timeslice.value) |

時系列とサマリー

デフォルトでは、REST APIは一連のメトリクスデータ値を返します。これらの値の平均を取得するには、 APIコールに&summarize=true を含めます。

NRQLの場合は、その逆となります。デフォルトではサマリーが取得され、クエリにTIMESERIESを追加することで時系列を取得できます。

もう一つの違いは、REST APIのデフォルトの時間枠が30分であるのに対し、NRQLでは1時間であることです。

複数のメトリクスをクエリする

NRQLを使用すると、複数のメトリクスを一度にクエリすることができます。以下はその例です。

SELECT
FILTER(1000 * AVERAGE(newrelic.timeslice.value), WHERE metricTimesliceName = 'HttpDispatcher') as average_response_time,
FILTER(count(newrelic.timeslice.value), WHERE metricTimesliceName = 'Errors/all') as error_count,
FILTER(average(newrelic.timeslice.value), WHERE metricTimesliceName = 'Memory/Heap/Max') as used_mb_by_host
FROM Metric
WHERE appName = '$APP_NAME'
SINCE 1 day ago
Copyright © 2025 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.