L'intervalle de temps métrique présenté sur le Web transaction time graphique de la application Summary page de votre dépendra de de votre application Web.configuration Les composants possibles peuvent inclure :
- temps de réponse
- Durée totale de l'application pour la langue de votre agent
- banque de données, base de données ou (Ruby) base de données
- Web externe
- Cache mémoire
- Demande de temps d'attente
Ceci décrit comment utiliser l'API REST (v2) pour obtenir les données affichées sur le graphique Web transaction time .
Valeurs générales de l'API
Lorsque vous effectuez vos propres calculs, tenez compte des points suivants :
- Vous pouvez modifier la plage horaire par défaut (30 minutes) utilisée dans ces exemples.
- La plage horaire que vous spécifiez doit être cohérente dans all de ces requêtes ; sinon, les calculs finaux seront incorrects.
- Le
HttpDispatcher:call_count
est utilisé dans presque tous les calculs, mais vous n'avez besoin de l'acquérir qu'une seule fois pour la plage de temps spécifiée. - Vous devez remplacer les variables
${APP_ID}
et${API_KEY}
dans ces exemples par votre identifiant d'application et votre clé API spécifiques.
Répartiteur Http
La ligne response time
superposée sur le graphique Web transaction time représente le temps Request queuing
combiné avec le temps HttpDispatcher
. Le HttpDispatcher:average_response_time
est le temps de réponse total de votre application Web sans le temps de mise en file d'attente des requêtes et est obtenu directement. Il n'est pas utilisé pour calculer le temps total d'application.
Utilisez la commande suivante pour obtenir cette métrique :
$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'
durée totale de l'application
Le Application total time
fait référence au langage de votre agent New Relic (heure Java/JVM, PHP, Python, etc.). Cela inclut tout le temps de traitement qui n'est pas attribué à d'autres valeurs sur le graphique except pour l'heure Request queuing
et l'heure HttpDispatcher
. C'est pourquoi vous devez d'abord calculer les autres composants.
Utilisez cette équation pour déterminer le Application total time
:
Application total time = WebTransactionTotalTime - Datastore time - Database time - (Ruby) Database - Web external - Memcache
Chacune des valeurs de cette équation est décrite en détail plus loin dans ce document.
Application total time calculation | Comments |
---|---|
Termes | Il se peut que tous les termes de l’équation ne s’appliquent pas. Si les données correspondantes n'apparaissent pas pour votre application, les termes correspondants peuvent être ignorés. |
datastore et base de données | Les valeurs |
Cache mémoire | Le terme |
Demande de temps d'attente | L'heure |
temps de réponse | Le |
Durée totale des transactions Web par rapport à HttpDispatcher | Si votre application ne signale pas de métrique |
Durée totale de la transaction Web
Le WebTransactionTotalTime
est le temps d’exécution total de votre application Web et est obtenu directement. Utilisez la commande suivante :
$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'
banque de données vs base de données
Depuis février 2015, l'agent New Relic affiche la base de données temporelle séparée en types de base de données spécifiques. Pour connaître les exigences spécifiques de la version agent , consultez la base de données et la requête fonctionnalité lente disponibilité.
Ces agents New Relic remplaceront le nom métrique Database
par Datastore/${DBTYPE}
, où ${DBTYPE}
identifie la base de données appropriée ; par exemple, Postgres, MongoDB, Microsoft SQL Server, ODBC, Redis, SQLite, Memcached, Solr, Elasticsearch, etc.
Durée totale du datastore
Si votre graphique Web transaction time affiche la catégorie générique Database , n'utilisez pas ces calculs. Utilisez plutôt les calculs de la base de données .
Le temps total Datastore
est une valeur dérivée. Pour le calculer, utilisez cette équation :
Datastore time = ( Datastore/${DBTYPE}/allWeb:average_response_time * Datastore/${DBTYPE}/allWeb:call_count ) / HttpDispatcher:call_count
Le ${DBTYPE}
représente le type de base de données signalé ; par exemple, Postgres, ODBC, Redis, MongoDB, MySQL, Microsoft SQL Server, SQLite, Cassandra, Memcached, etc. Remplacez le nom de la base de données selon le cas.
Pour obtenir les données pour ce calcul, utilisez les commandes suivantes.
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'
Vous pouvez également effectuer cette opération en une seule commande :
$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'
Durée totale de la base de données
Si vous utilisez un agent Ruby antérieur à la version 3.11.0, n'utilisez pas ces calculs. Utilisez plutôt les calculs de la base de données (Ruby) .
Le temps total Database
est une valeur dérivée. Pour le calculer, utilisez cette équation :
Database time = ( Database/allWeb:average_response_time * Database/allWeb:call_count ) / HttpDispatcher:call_count
Pour obtenir les données pour ce calcul, utilisez les commandes suivantes.
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'Database/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[]=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) Durée totale de la base de données
Si vous n'utilisez pas d'agent Ruby, utilisez les calculs pour obtenir la valeur de la base de données . Ces valeurs ne sont fournies que par les versions 3.10.0.279 ou inférieures de l'agent Ruby. L'agent Ruby version 3.11.0 ou supérieure utilise à la place les valeurs du datastore .
Le temps total (Ruby) Database
est une valeur dérivée. Pour le calculer, utilisez cette équation :
(Ruby) Database = ( ActiveRecord/all:average_response_time * ActiveRecord/all:call_count ) / HttpDispatcher:call_count
Pour obtenir les données pour ce calcul, utilisez les commandes suivantes.
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'
Durée totale du cache Memcache
Si disponible, le temps de réponse Memcache
est une valeur dérivée. (Toutes les applications n'auront pas Memcache
temps de réponse.) Pour le calculer, utilisez cette équation :
Memcache = ( Memcache/allWeb:average_response_time * Memcache/allWeb:call_count ) / HttpDispatcher:call_count
Pour obtenir les données pour ce calcul, utilisez les commandes suivantes.
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'
Temps total externe Web
Le temps total Web external
est une valeur dérivée. Pour le calculer, utilisez cette équation :
Web external = ( External/allWeb:average_response_time * External/allWeb:call_count ) / HttpDispatcher:call_count
Pour obtenir les données pour ce calcul, utilisez les commandes suivantes.
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'External/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[]=External/allWeb&values[]=call_count'External/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[]=External/allWeb&values[]=average_response_time'