Os dados da métrica de fração de tempo apresentados no gráfico Web transaction time na páginaSummary do seu aplicativo dependerão da configuração do seu aplicativo web. Os possíveis componentes podem incluir:
- Tempo de resposta
- Tempo total do aplicativo para o idioma do seu agente
- Armazenamento de dados, banco de dados ou banco de dados (Ruby)
- Web externa
- Memcache
- Solicitar tempo de fila
Isto descreve como usar a API REST (v2) para obter os dados mostrados no gráfico Web transaction time .
Importante
Embora os exemplos utilizem New Relic API REST v2 da , recomendamos o uso de NRQL funções para executar consulta métrica de fração de tempo. Cada valor de API pode ser mapeado para uma função NRQL equivalente. Para saber como criar uma consulta NRQL com base nesses exemplos API , consulte nossa documentação.
Valores gerais da API
Ao fazer seus próprios cálculos, esteja ciente do seguinte:
- Você pode alterar o intervalo de tempo padrão (30 minutos) usado nestes exemplos.
- O intervalo de tempo especificado deve ser consistente em all destas consultas; caso contrário, os cálculos finais estarão incorretos.
- O
HttpDispatcher:call_count
é usado em quase todos os cálculos, mas você só precisa adquiri-lo uma vez no intervalo de tempo especificado. - Você deve substituir as variáveis
${APP_ID}
e${API_KEY}
nestes exemplos pelo ID do aplicativo e chave de API específicos.
HttpDispatcher
A linha response time
sobreposta no gráfico Web transaction time representa o horário Request queuing
combinado com o horário HttpDispatcher
. O HttpDispatcher:average_response_time
é o tempo de resposta total para sua aplicação web sem o tempo de fila da solicitação e é obtido diretamente. Não é utilizado para calcular o tempo total do aplicativo.
Use o seguinte comando para obter esta métrica:
$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'
Tempo total do aplicativo
O Application total time
refere-se à linguagem do agente New Relic (horário Java/JVM, PHP, Python etc.). Isso inclui todo o tempo de processamento que não é atribuído a outros valores no gráfico except para o horário Request queuing
e o horário HttpDispatcher
. É por isso que você deve calcular primeiro os outros componentes.
Use esta equação para determinar o Application total time
:
Application total time = WebTransactionTotalTime - Datastore time - Database time - (Ruby) Database - Web external - Memcache
Cada um dos valores nesta equação é descrito em detalhes posteriormente neste documento.
Application total time calculation | Comments |
---|---|
Termos | Nem todos os termos da equação podem ser aplicados. Caso os dados correspondentes não apareçam para o seu aplicativo, os termos correspondentes poderão ser ignorados. |
Armazenamento de dados e banco de dados | Os valores |
Memcache | O termo |
Solicitar tempo de fila | O horário |
Tempo de resposta | O |
Transação da web tempo total vs. HttpDispatcher | Se seu aplicativo não relatar uma métrica |
Transação da web tempo total
O WebTransactionTotalTime
é o tempo total de execução do seu aplicativo web e é obtido diretamente. Use o seguinte comando:
$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'
Armazenamento de dados vs. banco de dados
A partir de fevereiro de 2015, o agente New Relic exibe o horário do banco de dados separado em tipos de banco de dados específicos. Para requisitos específicos de versão do agente, consulte banco de dados e consulta lenta recurso disponibilidade.
Esses agentes New Relic substituirão o nome da métrica Database
por Datastore/${DBTYPE}
, onde ${DBTYPE}
identifica o banco de dados apropriado; por exemplo, Postgres, MongoDB, Microsoft SQL Server, ODBC, Redis, SQLite, Memcached, Solr, Elasticsearch, etc.
Tempo total do armazenamento de dados
Se o gráfico Web transaction time mostrar a categoria genérica Database , não use esses cálculos. Em vez disso, use os cálculos do banco de dados.
O tempo total Datastore
é um valor derivado. Para calculá-lo, use esta equação:
Datastore time = ( Datastore/${DBTYPE}/allWeb:average_response_time * Datastore/${DBTYPE}/allWeb:call_count ) / HttpDispatcher:call_count
O ${DBTYPE}
representa o tipo de banco de dados relatado; por exemplo, Postgres, ODBC, Redis, MongoDB, MySQL, Microsoft SQL Server, SQLite, Cassandra, Memcached, etc. Substitua o nome do banco de dados conforme apropriado.
Para obter os dados para este cálculo, use os comandos a seguir.
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'
Você também pode realizar esta operação em um único comando:
$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'
Tempo total do banco de dados
Se você estiver usando um agente Ruby anterior à versão 3.11.0, não use esses cálculos. Em vez disso, use os cálculos do banco de dados (Ruby) .
O tempo total Database
é um valor derivado. Para calculá-lo, use esta equação:
Database time = ( Database/allWeb:average_response_time * Database/allWeb:call_count ) / HttpDispatcher:call_count
Para obter os dados para este cálculo, use os comandos a seguir.
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) Tempo total do banco de dados
Caso não esteja utilizando um agente Ruby, utilize os cálculos para obter o valor do banco de dados . Esses valores são fornecidos apenas pelas versões 3.10.0.279 ou inferiores do agente Ruby. O agente Ruby versão 3.11.0 ou superior usa valores de armazenamento de dados .
O tempo total (Ruby) Database
é um valor derivado. Para calculá-lo, use esta equação:
(Ruby) Database = ( ActiveRecord/all:average_response_time * ActiveRecord/all:call_count ) / HttpDispatcher:call_count
Para obter os dados para este cálculo, use os comandos a seguir.
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'
Tempo total do Memcache
Se disponível, o tempo de resposta Memcache
será um valor derivado. (Nem todos os aplicativos terão Memcache
tempo de resposta.) Para calculá-lo, use esta equação:
Memcache = ( Memcache/allWeb:average_response_time * Memcache/allWeb:call_count ) / HttpDispatcher:call_count
Para obter os dados para este cálculo, use os comandos a seguir.
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'
Tempo total externo da Web
O tempo total Web external
é um valor derivado. Para calculá-lo, use esta equação:
Web external = ( External/allWeb:average_response_time * External/allWeb:call_count ) / HttpDispatcher:call_count
Para obter os dados para este cálculo, use os comandos a seguir.
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'