New Relic

Dashboard New Relic

Présentation

Associez New Relic pour :

  • Visualiser les métriques New Relic clés (comme le délai de réponse et le score Apdex) en contexte avec le reste de vos métriques Datadog
    (fonctionne uniquement avec les comptes New Relic Pro et formules supérieures)
  • Configurer des alertes New Relic dans votre flux d’événements

Configuration

Installation

Alertes New Relic dans le flux d’événements

  1. Depuis l’onglet Alerts & AI, accédez à Notifications Channels.

  2. Sélectionnez New Notification Channel.

  3. Sélectionnez le type de canal Webhook.

  4. Attribuez le nom « Datadog » à votre canal.

  5. Saisissez cette URL de base :

    https://app.datadoghq.com/intake/webhook/newrelic?api_key=<DATADOG_API_KEY>
    
  6. Cliquez sur Custom Payload et vérifiez que la charge est utile est au format JSON. Remarque : consultez la section ci-dessous pour découvrir comment inclure des tags personnalisés au format JSON.

  7. Cliquez sur Create Channel.

  8. Cliquez sur Alert Policies.

  9. Sélectionnez les stratégies d’alertes pour lesquelles vous souhaitez envoyer des alertes à Datadog.

Collecte de métriques New Relic avec l’APM

  1. Repérez votre clé d’API REST sur la page Des clés d’API de New Relic (Account Settings -> Integrations -> API Keys) et saisissez-la dans le formulaire sur la page de l’intégration Datadog/New Relic.
  2. Pour taguer toutes les métriques avec le numéro de votre compte New Relic, ajoutez un tag account.
  3. Choisissez si vous souhaitez recueillir vos métriques par host ou sur l’ensemble de votre app Remarque : si vous activez ces options, cela importera les hosts New Relic dans Datadog.
Vous devrez peut-être attendre 5 à 10 minutes avant que les métriques New Relic custom apparaissent dans Datadog.
Les 5 000 premières métriques custom sont automatiquement proposées lors de la saisie.

Données collectées

Métriques

new_relic.apdex.score
(gauge)
Ratio of satisfactory response times to unsatisfactory response times
Shown as apdex
new_relic.application_summary.apdex_score
(gauge)
Ratio of satisfactory response times to unsatisfactory response times
Shown as apdex
new_relic.application_summary.apdex_target
(gauge)
Threshold ratio of satisfactory response times to unsatisfactory response times
Shown as apdex
new_relic.application_summary.concurrent_instance_count
(gauge)
Number of concurrent instances serving the application
Shown as instance
new_relic.application_summary.error_rate
(gauge)
Ratio of the number of errors reported by the application to the total number of served requests
Shown as percent
new_relic.application_summary.host_count
(gauge)
Number of hosts serving the application
Shown as host
new_relic.application_summary.instance_count
(gauge)
Number of instances serving the application
Shown as instance
new_relic.application_summary.response_time
(gauge)
Application response time
Shown as millisecond
new_relic.application_summary.throughput
(gauge)
Number of requests served by the application
Shown as request
new_relic.database.all.average_exclusive_time
(gauge)
Average time spent in database queries, exclusive of any time instrumented by other metrics
Shown as millisecond
new_relic.errors.all.errors_per_minute
(gauge)
Number of errors reported by the application
Shown as error
new_relic.web_transaction.average_response_time
(gauge)
Average response time of web transactions served by the application
Shown as second
new_relic.web_transaction.requests_per_minute
(gauge)
Number of web transaction requests served by the application
Shown as request
new_relic.synthetics_summary.monitors.count
(gauge)
Count of monitors
Shown as monitor
new_relic.synthetics_summary.monitors.frequency
(gauge)
Frequency of the monitor
Shown as minute
new_relic.synthetics_summary.locations.count
(gauge)
Count of locations associated with the monitor
Shown as location
new_relic.synthetic_check.duration
(gauge)
Total time for the monitor run
Shown as millisecond
new_relic.synthetic_check.total_request_body_size
(gauge)
Size of the body request to the server
Shown as byte
new_relic.synthetic_check.total_request_header_size
(gauge)
Size of the header request to the server
Shown as byte
new_relic.synthetic_check.total_response_header_size
(gauge)
Size of the response header returned by the server
Shown as byte
new_relic.synthetic_check.total_response_body_size
(gauge)
Size of the response body returned by the server
Shown as byte
new_relic.synthetic_check.count
(count)
Count of monitor runs (use result tag to select only successes or failures)
Shown as check
new_relic.synthetic_check.errors
(count)
Count of individual request errors (not check failures)
Shown as error
new_relic.synthetic_request.count
(count)
Count of requests
Shown as request
new_relic.synthetic_request.duration_blocked.average
(gauge)
Average time the requests were blocked
Shown as millisecond
new_relic.synthetic_request.duration_connect.average
(gauge)
Average time the requests were establishing a connection
Shown as millisecond
new_relic.synthetic_request.duration_dns.average
(gauge)
Average time the requests were resolving DNS
Shown as millisecond
new_relic.synthetic_request.duration_receive.average
(gauge)
Average time the requests were receiving data
Shown as millisecond
new_relic.synthetic_request.duration_send.average
(gauge)
Average time the requests were sending data
Shown as millisecond
new_relic.synthetic_request.duration_ssl.average
(gauge)
Average time establishing an SSL connection
Shown as millisecond
new_relic.synthetic_request.duration_wait.average
(gauge)
Average time the requests were waiting
Shown as millisecond
new_relic.synthetic_request.resources_load_time
(gauge)
Average resources load time
Shown as millisecond
new_relic.synthetic_request.time_spent_third_parties
(gauge)
Average time spent by third parties
Shown as millisecond
new_relic.apm_mobile.mobile_application_summary.active_users
(gauge)
The number of active users for a mobile application
Shown as user
new_relic.apm_mobile.mobile_application_summary.launch_count
(count)
The number of mobile applications launched
Shown as execution
new_relic.apm_mobile.mobile_application_summary.throughput
(gauge)
Throughput for a mobile application
Shown as request
new_relic.apm_mobile.mobile_application_summary.response_time
(gauge)
Mobile application response time
Shown as millisecond
new_relic.apm_mobile.mobile_application_summary.calls_per_session
(gauge)
Number of calls per session
Shown as invocation
new_relic.apm_mobile.mobile_application_summary.interaction_time
(gauge)
Interaction time for a mobile application
Shown as millisecond
new_relic.apm_mobile.mobile_application_summary.failed_call_rate
(gauge)
Percentage of failed calls for a mobile application
Shown as percent
new_relic.apm_mobile.mobile_application_summary.remote_error_rate
(gauge)
Percentage of remote error for a mobile application
Shown as percent
new_relic.apm_mobile.mobile_application_summary.unresolved_crash_count
(count)
Number of unresolved crash count for a mobile application
Shown as execution
new_relic.apm_mobile.mobile_application_summary.crash_count
(count)
Crash count for a mobile application
Shown as execution
new_relic.apm_mobile.mobile_application_summary.crash_rate
(gauge)
Crash rate for a mobile application
Shown as percent
new_relic.apm_mobile.mobile.crash.all.call_count
(count)
Total numbers of crashed calls
Shown as execution
new_relic.apm_mobile.session.start.call_count
(count)
Number of started calls for a session
Shown as invocation
new_relic.apm_mobile.mobile.failed_call_rate.call_count
(count)
Failed call rate count for a mobile application
Shown as invocation
new_relic.apm_mobile.session.duration.call_count
(count)
Number of call counts for a session
Shown as invocation
new_relic.apm_mobile.cpu.user.utilization.percent
(gauge)
User space CPU usage utilization
Shown as percent
new_relic.apm_mobile.cpu.system.utilization.percent
(gauge)
Kernel space CPU usage utilization
Shown as percent
new_relic.web_transaction_total_time.average_response_time
(gauge)
Average response time of web transactions served by the application
Shown as second
new_relic.web_transaction_total_time.requests_per_minute
(gauge)
Number of web transaction requests served by the application
Shown as request
new_relic.web_transaction_total_time.calls_per_minute
(gauge)
Number of calls served by the application
Shown as invocation
new_relic.web_transaction_total_time.min_response_time
(gauge)
Minimum response time of web transactions served by the application
Shown as second
new_relic.web_transaction_total_time.max_response_time
(gauge)
Maximum response time of web transactions served by the application
Shown as second
new_relic.web_transaction_total_time.total_call_time_per_minute
(gauge)
Total time, in second per minute, spent in web application transactions
Shown as fraction
new_relic.web_transaction_total_time.standard_deviation
(gauge)
Standard deviation of the response time of web transactions served by the application
Shown as second
new_relic.web_transaction_total_time.average_exclusive_time
(gauge)
Average time spent in web application transactions, exclusive of any time instrumented by other metrics
Shown as millisecond
new_relic.web_transaction_total_time.average_value
(gauge)
Average response time over all instances in the call count
Shown as second

Événements

L’intégration New Relic peut ingérer des alertes New Relic dans le flux d’événements.

Checks de service

L’intégration New Relic n’inclut aucun check de service.

Dépannage

Option Collect metrics by host

Lorsque l’option Collect metrics by host est activée, Datadog recueille les métriques de l’application pour chacun des hosts associés, au lieu de calculer une moyenne globale en fonction du débit de chaque host.

Cela s’avère utile lorsque vous utilisez les métriques de façon distincte. Par exemple, vous pouvez déterminer que le host X présente un taux d’erreur Y aberrant qui est problématique, bien que l’application Z affiche globalement un taux d’erreur acceptable sur de nombreux hosts.

Les hosts New Relic sont alors également importés dans la section Infrastructure de Datadog.

Différence de valeurs entre New Relic et Datadog

Lorsque New Relic calcule la valeur agrégée au niveau de l’application pour les métriques qui sont mesurées au niveau des hosts (par exemple, le délai de réponse), une moyenne pondérée est calculée à partir du débit mesuré sur chaque host.

La valeur la plus proche dans Datadog est celle fournie par l’agrégateur avg, qui calcule la moyenne arithmétique des valeurs. Il s’agit également de l’agrégateur par défaut. Vous pouvez l’obtenir avec une requête très simple, comme new_relic.web_transaction.average_response_time{*}. Si vos hosts présentent tous approximativement le même débit, l’agrégation moyenne de Datadog et l’agrégation pondérée en fonction du débit de New Relic génèrent des résultats similaires. Cependant, si le débit n’est pas équilibré, les valeurs agrégées au niveau de l’application varient entre New Relic et Datadog.

Par exemple, imaginez que vous avez une application avec trois hosts. Ces hosts présentent les valeurs suivantes à un moment t :

           débit    délai de réponse
hostA         305 rpm           240 ms
hostB         310 rpm           250 ms
hostC          30 rpm            50 ms

New Relic calcule alors le délai de réponse au niveau de l’application comme suit :

hostA : 240 ms * 305 rpm = durée totale de 73 200
hostB : 250 ms * 310 rpm = durée totale de 77 500
hostC :  50 ms *  30 rpm =  durée totale de 1 500

débit total = 305 + 310 + 30 = 645 rpm
délai de réponse moyen = (73 200 + 77 500 + 1 500) / 645 = 236,0 ms

De son côté, Datadog calcule la moyenne arithmétique :

délai de réponse moyen = (240 + 250 + 50) / 3 = 180,0 ms

Inclure des tags personnalisés pour les alertes bêta

Vous pouvez inclure des tags personnalisés avec l’option Use Custom Payload via la fonctionnalité d’alertes bêta de News Relic. Pour ce faire, accédez à votre compte New Relic, puis cliquez sur le bouton Alerts Beta dans le coin supérieur droit de l’écran. Sélectionnez ensuite la section Notification channels et recherchez le webhook que vous avez configuré pour Datadog. Sélectionnez la section Use Custom Payload pour afficher une charge utile JSON. Modifiez-la en ajoutant un attribut « tags ». Voici un exemple de charge utile modifiée :

{
    "account_id": "$ACCOUNT_ID",
    "account_name": "$ACCOUNT_NAME",
    "condition_id": "$CONDITION_ID",
    "condition_name": "$CONDITION_NAME",
    "current_state": "$EVENT_STATE",
    "details": "$EVENT_DETAILS",
    "event_type": "$EVENT_TYPE",
    "incident_acknowledge_url": "$INCIDENT_ACKNOWLEDGE_URL",
    "incident_id": "$INCIDENT_ID",
    "incident_url": "$INCIDENT_URL",
    "owner": "$EVENT_OWNER",
    "policy_name": "$POLICY_NAME",
    "policy_url": "$POLICY_URL",
    "runbook_url": "$RUNBOOK_URL",
    "severity": "$SEVERITY",
    "targets": "$TARGETS",
    "timestamp": "$TIMESTAMP",
    "tags": ["application:yourapplication", "host:yourhostname", "sometag"]
}

Une fois vos modifications terminées, assurez-vous de sélectionner « Update Chanel » pour enregistrer vos changements.