Liste nomes de métricas para seu aplicativo
Para visualizar os nomes de métricas disponíveis para sua aplicação:
SELECT uniques(metricTimesliceName) FROM Metric WHERE appId = '$APP_ID' AND newrelic.timeslice.value IS NOT NULL SINCE 30 MINUTES AGO LIMIT MAX
Você também pode filtrar usando o nome do aplicativo:
SELECT uniques(metricTimesliceName) FROM Metric WHERE appName = '$APP_NAME' AND newrelic.timeslice.value IS NOT NULL SINCE 30 MINUTES AGO LIMIT MAX
Ou usando um agente específico (host):
SELECT uniques(metricTimesliceName) FROM Metric WHERE realAgentId = '$AGENT_ID' AND newrelic.timeslice.value IS NOT NULL SINCE 30 MINUTES AGO LIMIT MAX
Obtenha os valores de dados da métrica de fração de tempo do seu aplicativo
A API REST v2 aceita uma lista de nomes de métricas e uma lista de valores para buscar dados de métricas de frações de tempo.
Os nomes das métricas são os mesmos, você pode filtrá-los com o campo metricTimesliceName
na sua consulta NRQL .
Cada valor de API pode ser mapeado para uma função NRQL. Você pode consultar a tabela abaixo.
Exemplo, para a seguinte solicitação de API:
$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'
Você usaria a seguinte consulta:
SELECT count(newrelic.timeslice.value) AS call_count, average(newrelic.timeslice.value) * 1000 AS average_call_timeFROM MetricWHERE appId = $APP_ID AND metricTimesliceName = 'HttpDispatcher'
| Valor (RPM) | Função NRQL | | -------------------------- | ------------------------------------------------------------------------------------------------- | | 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
|
Se a função incluir $TIME_WINDOW_IN_SECONDS
, significa que você precisa substituí-la pela janela de tempo que deseja consultar.
Por exemplo, se você consultar uma janela de tempo de 30 minutos, você substituiria $TIME_WINDOW_IN_SECONDS
por 1800
.
Apdex métricas
| Valor (RPM) | Função NRQL | | ------------- | ---------------------------------------------------------------------------------- | | score
| apdex(newrelic.timeslice.value)
| | s
| apdex(newrelic.timeslice.value)
ou count(newrelic.timeslice.value)
| | t
| apdex(newrelic.timeslice.value)
ou sum(newrelic.timeslice.value)
| | f
| apdex(newrelic.timeslice.value)
ou 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)
|
Métrica do EndUser & Mobile
Essas métricas retornarão o mesmo resultado que você obteria da REST API v2, mas alguns resultados podem ser diferentes do que você vê na interface New Relic . Isso ocorre porque a interface utiliza evento em vez de dados da fração de tempo. Se você quiser obter os mesmos resultados da interface, consulte o evento diretamente.
| Valor (RPM) | Função NRQL | | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 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)
|
Séries temporais e resumos
Por padrão, a API REST retorna uma série de valores de dados métricos baseados. Para obter a média desses valores, você incluiria &summarize=true
na sua chamada de API.
Em NRQL, é o oposto. Você obtém um resumo por padrão e pode obter as séries temporais adicionando TIMESERIES
à sua consulta.
Outra diferença é que a janela de tempo padrão da API REST é de 30 minutos, enquanto na NRQL é de 1 hora.
Consulta múltipla métricas
Você ainda pode consultar várias métricas de uma vez com NRQL, aqui está um exemplo:
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_hostFROM MetricWHERE appName = '$APP_NAME'SINCE 1 day ago