metric timeslice data アプリケーションの Summary page に表示される Web transaction time chart は、Web アプリケーションの構成によって異なります。考えられるコンポーネントは次のとおりです。
ここでは、REST API(v2)を使用して、 Webトランザクション時間 チャートに表示されるデータを取得する方法について説明します。
一般的なAPIの値
自分で計算する場合は、以下の点に注意してください。
- これらの例で使用されている デフォルトの時間範囲(30分) を変更することができます。
- 指定する時間範囲は、 これらのクエリのすべての で一貫している必要があります。そうでない場合、最終的な計算は正しくありません。
HttpDispatcher:call_count
はほぼすべての計算で使用されますが、指定した時間範囲で取得する必要があるのは 1 回だけです。- これらの例の
${APP_ID}
変数と${API_KEY}
変数を特定の アプリケーション ID と API キーに置き換える必要があります。
HttpDispatcher
Web transaction time グラフに重ねて表示された response time
線は、 Request queuing
時間を HttpDispatcher
時間と組み合わせて表しています。 HttpDispatcher:average_response_time
は、要求のキューイング時間を除いた Web アプリケーションの合計応答時間であり、直接取得されます。 アプリケーションの合計時間の計算には使用されません。
このメトリックを取得するには、次のコマンドを使用します。
$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_response_time'
アプリケーションの合計時間
Application total time
は、New Relic エージェントの言語 (Java/JVM 時間、PHP、Python など) を指します。これには、 Request queuing
時間と HttpDispatcher
時間 を除いて、 チャート上の他の値に起因し ない すべての処理時間が含まれます。これが、最初に他のコンポーネントを計算する必要がある理由です。
次の式を使用して Application total time
を決定します。
Application total time = WebTransactionTotalTime - Datastore time - Database time - (Ruby) Database - Web external - Memcache
この式の各値については、後ほど詳しく説明します。
アプリケーションの合計時間計算 | コメントコメント |
---|---|
条件 | 式の中のすべての項が適用されるとは限りません。対応するデータが表示されない場合は、対応する項を無視しても構いません。 |
データストアとデータベース |
|
メモリキャッシュ |
|
リクエストのキューイング時間 |
|
レスポンスタイム |
|
Web トランザクションの合計時間と HttpDispatcher の比較 | アプリケーションが |
Webトランザクションの合計時間
WebTransactionTotalTime
はウェブ アプリケーションの合計実行時間で、直接取得されます。次のコマンドを使用します。
$curl -X GET "https://api.newrelic.com/v2/applications/${APP_ID}/metrics/data.json" \ > -H "X-Api-Key:${API_KEY}" -i \ > -d 'names[]=WebTransactionTotalTime&values[]=average_response_time'
データストアとデータベースの比較
2015 年 2 月の時点で、New Relic エージェントはデータベース時間を特定のデータベース タイプに分けて表示します。特定のエージェント バージョンの要件については、 「 データベースとスロー クエリ機能の可用性 」を参照してください。
これらの New Relic エージェントは、 Database
メトリック名を Datastore/${DBTYPE}
に置き換えます。ここで、 ${DBTYPE}
適切なデータベースを識別します。たとえば、Postgres、MongoDB、Microsoft SQL Server、ODBC、Redis、SQLite、Memcached、Solr、Elasticsearch など。
データストアのトータルタイム
Webトランザクション時間 チャートが一般的な Database カテゴリを示している場合は、これらの計算を使用しないでください。代わりに、 Database の計算を使用してください。
Datastore
の合計時間は派生値です。計算するには、次の式を使用します。
Datastore time = ( Datastore/${DBTYPE}/allWeb:average_response_time * Datastore/${DBTYPE}/allWeb:call_count ) / HttpDispatcher:call_count
${DBTYPE}
は報告されたデータベースのタイプを表します。たとえば、Postgres、ODBC、Redis、MongoDB、MySQL、Microsoft SQL Server、SQLite、Cassandra、Memcached などです。適切なデータベース名に置き換えてください。
この計算のためのデータを取得するには、以下のコマンドを使用します。
HttpDispatcher:call_count
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[]=call_count'Datastore/${DBTYPE}/allWeb:call_count
bash$curl -X GET "https://api.newrelic.com/v2/applications/${APP_ID}/metrics/data.json" \>-H "X-Api-Key:${API_KEY}" -i \>-d 'names[]=Datastore/${DBTYPE}/allWeb&values[]=call_count'Datastore/${DBTYPE}/allWeb:average_response_time
bash$curl -X GET "https://api.newrelic.com/v2/applications/${APP_ID}/metrics/data.json" \>-H "X-Api-Key:${API_KEY}" -i \>-d 'names[]=Datastore/${DBTYPE}/allWeb&values[]=average_response_time'
また、この操作を1つのコマンドで行うこともできます。
$curl -X GET "https://api.newrelic.com/v2/applications/${APP_ID}/metrics/data.json" \> -H "X-Api-Key:${API_KEY}" -i \> -d 'names[]=Datastore/MongoDB/allWeb&names[]=HttpDispatcher&values[]=average_response_time&values[]=call_count'
データベースの合計時間
3.11.0より古いRubyエージェントを使用している場合は、この計算を使用しないでください。代わりに、 (Ruby) Database の計算を使用してください。
Database
の合計時間は派生値です。計算するには、次の式を使用します。
Database time = ( Database/allWeb:average_response_time * Database/allWeb:call_count ) / HttpDispatcher:call_count
この計算のためのデータを取得するには、以下のコマンドを使用します。
HttpDispatcher:call_count
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[]=call_count'データベース/オールWeb:call_count
bash$curl -X GET "https://api.newrelic.com/v2/applications/${APP_ID}/metrics/data.json" \>-H "X-Api-Key:${API_KEY}" -i \>-d 'names[]=Database/allWeb&values[]=call_count'Database/allWeb:average_response_time
bash$curl -X GET "https://api.newrelic.com/v2/applications/${APP_ID}/metrics/data.json" \>-H "X-Api-Key:${API_KEY}" -i \>-d 'names[]=Database/allWeb&values[]=average_response_time'
(Ruby) データベースの総時間
Rubyエージェントを使用していない場合 Database の値を得るために計算を使用してください。これらの値は Ruby エージェントのバージョン 3.10.0.279 以下でのみ提供されます。Rubyエージェントのバージョン3.11.0以降では、 Datastore の値を代わりに使用します。
(Ruby) Database
の合計時間は派生値です。計算するには、次の式を使用します。
(Ruby) Database = ( ActiveRecord/all:average_response_time * ActiveRecord/all:call_count ) / HttpDispatcher:call_count
この計算のためのデータを取得するには、以下のコマンドを使用します。
HttpDispatcher:call_count
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[]=call_count'ActiveRecord/all:call_count
bash$curl -X GET "https://api.newrelic.com/v2/applications/${APP_ID}/metrics/data.json" \>-H "X-Api-Key:${API_KEY}" -i \>-d 'names[]=ActiveRecord/all&values[]=call_count'ActiveRecord/all:average_response_time
bash$curl -X GET "https://api.newrelic.com/v2/applications/${APP_ID}/metrics/data.json" \>-H "X-Api-Key:${API_KEY}" -i \>-d 'names[]=ActiveRecord/all&values[]=average_response_time'
メモリキャッシュの合計時間
利用可能な場合、 Memcache
応答時間は派生値です。(すべてのアプリケーションの応答時間が Memcache
になるわけではありません。)計算するには、次の式を使用します。
Memcache = ( Memcache/allWeb:average_response_time * Memcache/allWeb:call_count ) / HttpDispatcher:call_count
この計算のためのデータを取得するには、以下のコマンドを使用します。
HttpDispatcher:call_count
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[]=call_count'Memcache/allWeb:call_count
bash$curl -X GET "https://api.newrelic.com/v2/applications/${APP_ID}/metrics/data.json" \>-H "X-Api-Key:${API_KEY}" -i \>-d 'names[]=Memcache/allWeb&values[]=call_count'Memcache/allWeb:average_response_time
bash$curl -X GET "https://api.newrelic.com/v2/applications/${APP_ID}/metrics/data.xml" \>-H "X-Api-Key:${API_KEY}" -i \>-d 'names[]=Memcache/allWeb&values[]=average_response_time'
Web外部集計時間
Web external
の合計時間は派生値です。計算するには、次の式を使用します。
Web external = ( External/allWeb:average_response_time * External/allWeb:call_count ) / HttpDispatcher:call_count
この計算のためのデータを取得するには、以下のコマンドを使用します。
HttpDispatcher:call_count
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[]=call_count'外部/オールWeb:call_count
bash$curl -X GET "https://api.newrelic.com/v2/applications/${APP_ID}/metrics/data.json" \>-H "X-Api-Key:${API_KEY}" -i \>-d 'names[]=External/allWeb&values[]=call_count'外部/オールWeb:アベレージ・レスポンス・タイム
bash$curl -X GET "https://api.newrelic.com/v2/applications/${APP_ID}/metrics/data.json" \>-H "X-Api-Key:${API_KEY}" -i \>-d 'names[]=External/allWeb&values[]=average_response_time'