Listez les noms métriques pour votre application
Pour afficher les noms métriques disponibles pour votre application:
SELECT uniques(metricTimesliceName) FROM Metric WHERE appId = '$APP_ID' AND newrelic.timeslice.value IS NOT NULL SINCE 30 MINUTES AGO LIMIT MAX
Vous pouvez également filtrer en utilisant le nom de l'application :
SELECT uniques(metricTimesliceName) FROM Metric WHERE appName = '$APP_NAME' AND newrelic.timeslice.value IS NOT NULL SINCE 30 MINUTES AGO LIMIT MAX
Ou en utilisant un agent spécifique (hôte) :
SELECT uniques(metricTimesliceName) FROM Metric WHERE realAgentId = '$AGENT_ID' AND newrelic.timeslice.value IS NOT NULL SINCE 30 MINUTES AGO LIMIT MAX
Obtenez les valeurs des données d'intervalle de temps métrique de votre application
L'API REST v2 accepte une liste de noms de métriques et une liste de valeurs pour récupérer des données d'intervalle de temps métrique.
Les noms des métriques sont les mêmes, vous pouvez les filtrer avec le champ metricTimesliceName
dans votre requête NRQL .
Chaque valeur d'API peut être mappée à une fonction NRQL, vous pouvez vous référer au tableau ci-dessous.
Exemple, pour la requête API suivante :
$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'
Vous utiliseriez la requête suivante :
SELECT count(newrelic.timeslice.value) AS call_count, average(newrelic.timeslice.value) * 1000 AS average_call_timeFROM MetricWHERE appId = $APP_ID AND metricTimesliceName = 'HttpDispatcher'
Valeur (RPM) | Fonction 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 |
Si la fonction inclut $TIME_WINDOW_IN_SECONDS
, cela signifie que vous devez la remplacer par la fenêtre temporelle que vous souhaitez interroger.
Par exemple, si vous interrogez une fenêtre temporelle de 30 minutes, vous remplacerez $TIME_WINDOW_IN_SECONDS
par 1800
.
Apdex métriques
Valeur (RPM) | Fonction 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étriques des utilisateurs finaux et des appareils mobiles
Ces métriques renverront le même résultat que celui que vous obtiendriez à partir de l'API REST v2, mais certains résultats peuvent différer de ce que vous voyez sur l'UI de New Relic. En effet, l'UI utilise des événements au lieu de données d'intervalle de temps. Si vous souhaitez obtenir les mêmes résultats que l'UI, vous devez interroger directement l'événement.
Valeur (RPM) | Fonction 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 chronologiques et résumés
Par défaut, l'API REST renvoie une série de valeurs de données métriques basées sur. Pour obtenir la moyenne de ces valeurs, vous devez inclure &summarize=true
dans votre appel d'API.
Dans NRQL, c'est le contraire. Vous obtenez un résumé par défaut et vous pouvez obtenir la série chronologique en ajoutant TIMESERIES
à votre requête.
Une autre différence est que la fenêtre temporelle par défaut de l’API REST est de 30 minutes, alors que dans NRQL, elle est de 1 heure.
requête multiple métrique
Vous pouvez toujours interroger plusieurs métriques à la fois avec NRQL, voici un exemple :
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