App Analytics

App Analytics

Le 20 octobre 2020, App Analytics a été remplacé par Tracing without Limits. Cette page est obsolète et contient des informations de configuration relatives à l'ancienne version, App Analytics, pouvant s'avérer utiles pour dépanner ou modifier des configurations antérieures. Utilisez désormais Tracing without Limits™ pour profiter d'un contrôle total sur votre ingestion de données et de votre rétention de traces, et ce sans aucun échantillonnage.
Adoptez la rétention et l'ingestion des traces pour utiliser les nouvelles fonctionnalités.

La fonction App Analytics sert à filtrer les spans indexées avec des tags définis par l’utilisateur, comme customer_id, error_type ou app_name, vous permettant ainsi de dépanner et filtrer vos requêtes. Elle peut être activée de deux façons :

Remarque : pour utiliser App Analytics, vous devez utiliser l’Agent v6.7 ou une version ultérieure.

Configuration automatique

La fonction App Analytics est disponible à partir de la version 0.25.0 du client de tracing Java. Elle peut être activée de façon globale pour toutes les intégrations de serveur Web avec un paramètre de configuration unique dans le client de tracing :

  • Propriété système : -Ddd.trace.analytics.enabled=true
  • Variable d’environnement : DD_TRACE_ANALYTICS_ENABLED=true

La fonction App Analytics est disponible à partir de la version 0.19.0 du client de tracing Python. Elle peut être activée de façon globale pour toutes les intégrations Web avec un paramètre de configuration unique dans le client de tracing :

  • Configuration du traceur : ddtrace.config.analytics_enabled = True
  • Variable d’environnement : DD_TRACE_ANALYTICS_ENABLED=true

La fonction App Analytics est disponible à partir de la version 0.19.0 du client de tracing Ruby. Elle peut être activée pour toutes les intégrations Web avec un flag global.

Pour ce faire, définissez DD_TRACE_ANALYTICS_ENABLED=true dans votre environnement ou configurez ce paramètre :

Datadog.configure { |c| c.analytics_enabled = true }
  • true active les analyses pour tous les frameworks Web.
  • false ou nil désactive les analyses, sauf pour les intégrations qui l’activent automatiquement. (Par défaut)

La fonction App Analytics est disponible à partir de la version 1.11.0 du client de tracing Go. Elle peut être activée de façon globale pour toutes les intégrations Web avec :

  • l’option de démarrage du traceur WithAnalytics. Exemple :

    tracer.Start(tracer.WithAnalytics(true))
    
  • la variable d’environnement DD_TRACE_ANALYTICS_ENABLED=true, à partir de la version 1.26.0.

La fonction App Analytics est disponible à partir de la version 0.10.0 du client de tracing Node.js. Elle peut être activée de façon globale pour toutes les intégrations Web avec un paramètre de configuration unique dans le client de tracing :

tracer.init({
  analytics: true
})

Vous pouvez également utiliser le paramètre de configuration suivant :

  • Variable d’environnement : DD_TRACE_ANALYTICS_ENABLED=true

La fonction App Analytics est disponible à partir de la version 1.1.0 du client de tracing .NET. Elle peut être activée de façon globale pour toutes les intégrations Web avec un paramètre de configuration unique dans le client de tracing :

  • Variable d’environnement ou AppSetting : DD_TRACE_ANALYTICS_ENABLED=true

Ce paramètre peut également être défini dans le code :

Tracer.Instance.Settings.AnalyticsEnabled = true;

La fonction App Analytics est disponible à partir de la version 0.17.0 du client de tracing PHP. Elle peut être activée de façon globale pour toutes les intégrations Web avec un paramètre de configuration unique dans le client de tracing :

  • Variable d’environnement : DD_TRACE_ANALYTICS_ENABLED=true

La fonction App Analytics est disponible à partir de la version 1.0.0 du client de tracing C++. Elle peut être activée de façon globale pour toutes les spans de premier niveau en définissant la variable d’environnement DD_TRACE_ANALYTICS_ENABLED sur true. Notez que ce paramètre peut également être défini directement dans le code :

datadog::opentracing::TracerOptions tracer_options;
  tracer_options.agent_host = "dd-agent";
  tracer_options.service = "<NOM_SERVICE>";
  tracer_options.analytics_rate = 1.0;
  auto tracer = datadog::opentracing::makeTracer(tracer_options);

Pour activer la fonction App Analytics pour Nginx :

  1. Définissez la variable d’environnement DD_TRACE_ANALYTICS_ENABLED sur true.

  2. Ajoutez env DD_TRACE_ANALYTICS_ENABLED; en haut de votre fichier nginx.conf.

Une fois la fonction activée, l’interface App Analytics commence à afficher des résultats. Consultez la page App Analytics pour démarrer.

Configurer d’autres services (facultatif)

Configuration par intégration

En plus du paramètre global, vous pouvez activer ou désactiver la fonction App Analytics pour des intégrations spécifiques grâce au paramètre suivant :

  • Propriété système : -Ddd.<intégration>.analytics.enabled=true
  • Variable d’environnement : DD_<INTÉGRATION>_ANALYTICS_ENABLED=true

Utilisez ces options en plus de la configuration globale pour les intégrations qui envoient des services custom. Par exemple, si des spans JMS sont envoyées en tant que service custom, vous pouvez définir le code suivant pour activer le tracing de JMS dans la fonction App Analytics :

  • Propriété système : -Ddd.jms.analytics.enabled=true
  • Variable d’environnement : DD_JMS_ANALYTICS_ENABLED=true

Les noms des intégrations sont disponibles sur le tableau des intégrations.

En plus du paramètre global, vous pouvez activer ou désactiver la fonction App Analytics pour des intégrations spécifiques grâce au paramètre suivant :

  • Configuration du traceur : ddtrace.config.<INTÉGRATION>.analytics_enabled = True
  • Variable d’environnement : DD_<INTÉGRATION>_ANALYTICS_ENABLED=true

Utilisez ces options en plus de la configuration globale pour les intégrations qui envoient des services custom. Par exemple, si des spans Boto sont envoyées en tant que service custom, vous pouvez définir le code suivant pour activer le tracing de Boto dans la fonction App Analytics :

  • Configuration du traceur : ddtrace.config.boto.analytics_enabled = True
  • Variable d’environnement : DD_BOTO_ANALYTICS_ENABLED=true

Remarque : l’implémentation du traceur étant propre à chaque intégration, plusieurs intégrations nécessitent une configuration spéciale. Consultez la documentation des bibliothèques sur App Analytics pour en savoir plus.

La fonction App Analytics peut être activée pour des intégrations spécifiques.

Pour ce faire, définissez DD_<INTÉGRATION>_ANALYTICS_ENABLED=true dans votre environnement ou configurez ce paramètre :

Datadog.configure { |c| c.use :integration, analytics_enabled: true }

intégration est le nom de l’intégration. Consultez la liste des intégrations disponibles pour découvrir les options disponibles.

  • true active l’analyse pour cette intégration, quel que soit le paramètre global.
  • false désactive l’analyse pour cette intégration, quel que soit le paramètre global.
  • nil applique le paramètre global pour l’analyse.

En plus du paramètre global, vous pouvez activer ou désactiver la fonction App Analytics pour chaque intégration. Par exemple, pour configurer le paquet net/http de la bibliothèque standard, vous pouvez procéder ainsi :

package main

import (
    httptrace "gopkg.in/DataDog/dd-trace-go.v1/contrib/net/http"
    "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
)

func main() {
    tracer.Start()
    defer tracer.Stop()

    mux := httptrace.NewServeMux(httptrace.WithAnalytics(true))
    // ...
}

En plus du paramètre global, vous pouvez activer ou désactiver la fonction App Analytics pour des intégrations spécifiques.

Par exemple, pour activer la fonction App Analytics pour express :

tracer.use('express', {
  analytics: true
})

Les noms des intégrations sont disponibles sur le tableau des intégrations.

En plus du paramètre global, vous pouvez activer ou désactiver la fonction App Analytics pour des intégrations spécifiques.

  • Variable d’environnement ou AppSetting : DD_<INTÉGRATION>_ANALYTICS_ENABLED=true

Ou via le code :

Tracer.Instance.Settings.Integrations["<INTÉGRATION>"].AnalyticsEnabled = true;

Par exemple, pour activer la fonction App Analytics pour ASP.NET MVC :

  • Variable d’environnement ou AppSetting : DD_ASPNETMVC_ANALYTICS_ENABLED=true

Ou via le code :

Tracer.Instance.Settings.Integrations["AspNetMvc"].AnalyticsEnabled = true;

Les noms des intégrations sont disponibles sur le tableau des intégrations. Remarque : sous Linux, les noms des variables d’environnement sont sensibles à la casse.

En plus du paramètre global, vous pouvez activer ou désactiver la fonction App Analytics pour des intégrations spécifiques grâce au paramètre suivant :

  • Variable d’environnement : DD_<INTÉGRATION>_ANALYTICS_ENABLED=true

Utilisez ces options en plus de la configuration globale pour les intégrations qui envoient des services custom. Par exemple, si des spans Symfony sont envoyées en tant que service custom, vous pouvez définir le code suivant pour activer le tracing de Symfony dans la fonction App Analytics :

  • Variable d’environnement : DD_SYMFONY_ANALYTICS_ENABLED=true

Les noms des intégrations sont disponibles sur le tableau des intégrations.

Services de base de données

Par défaut, le tracing de base de données n’est pas pris en charge par la fonction App Analytics. Vous devez activer la collecte manuellement pour chaque intégration. Par exemple :

  • Propriété système : -Ddd.jdbc.analytics.enabled=true
  • Variable d’environnement : DD_JDBC_ANALYTICS_ENABLED=true

Par défaut, le tracing de base de données n’est pas pris en charge par la fonction App Analytics. Vous devez activer la collecte manuellement pour chaque intégration. Par exemple :

  • Configuration du traceur : ddtrace.config.postgres.analytics_enabled = True
  • Variable d’environnement : DD_POSTGRES_ANALYTICS_ENABLED=true

Par défaut, le tracing de base de données n’est pas pris en charge par la fonction App Analytics. Vous devez activer la collecte manuellement pour chaque intégration. Par exemple :

Datadog.configure { |c| c.use :mongo, analytics_enabled: true }

Par défaut, le tracing de base de données n’est pas pris en charge par la fonction App Analytics. Vous devez activer la collecte manuellement pour chaque intégration. Par exemple :

// Enregistrer le pilote de base de données avec la fonction Analytics activée.
sqltrace.Register("mysql", &mysql.MySQLDriver{}, sqltrace.WithAnalytics(true))

Par défaut, le tracing de base de données n’est pas pris en charge par la fonction App Analytics. Vous devez activer la collecte manuellement pour chaque intégration. Par exemple :

tracer.use('mysql', {
  analytics: true
})

Par défaut, le tracing de base de données n’est pas pris en charge par la fonction App Analytics. Vous devez activer la collecte manuellement pour chaque intégration. Par exemple, pour activer la fonction App Analytics pour ADO.NET :

  • Variable d’environnement ou AppSetting : DD_AdoNet_ANALYTICS_ENABLED=true

Ou via le code :

Tracer.Instance.Settings.Integrations["AdoNet"].AnalyticsEnabled = true;

Les noms des intégrations sont disponibles sur le tableau des intégrations. Remarque : sous Linux, les noms des variables d’environnement sont sensibles à la casse.

Par défaut, le tracing Datadog n’est pas enregistré par la fonction App Analytics. Vous pouvez activer ou désactiver cette fonction pour des intégrations spécifiques grâce au paramètre suivant :

  • Variable d’environnement : DD_<INTÉGRATION>_ANALYTICS_ENABLED=true

Utilisez cette option en plus de la configuration globale pour les intégrations qui envoient des services custom. Par exemple, pour mysqli :

  • Variable d’environnement : DD_MYSQLI_ANALYTICS_ENABLED=true

Les noms des intégrations sont disponibles sur le tableau des intégrations.

Instrumentation personnalisée

Les applications utilisant une instrumentation personnalisée peuvent activer App Analytics en appliquant le tag ANALYTICS_SAMPLE_RATE à une span :

import datadog.trace.api.DDTags;
import datadog.trace.api.Trace;
import io.opentracing.Tracer;
import io.opentracing.util.GlobalTracer;

class MyClass {
  @Trace
  void myMethod() {
    final Span span = GlobalTracer.get().activeSpan();
    // Span fournie par l'annotation @Trace.
    if (span != null) {
      span.setTag(DDTags.SERVICE, "<NOM_SERVICE>");
      span.setTag(DDTags.ANALYTICS_SAMPLE_RATE, 1.0);
    }
  }
}

Remarque : la fonction App Analytics peut être activée pour dd.trace.methods ou pour les spans des annotations de trace en définissant -Ddd.trace-annotation.analytics.enabled=true.

Les applications utilisant une instrumentation personnalisée peuvent activer App Analytics en appliquant le tag ddtrace.constants.ANALYTICS_SAMPLE_RATE_KEY à une span :

from ddtrace import tracer
from ddtrace.constants import ANALYTICS_SAMPLE_RATE_KEY

@tracer.wrap()
def my_method():
    span = tracer.current_span()
    span.set_tag(ANALYTICS_SAMPLE_RATE_KEY, True)

Les applications utilisant une instrumentation personnalisée peuvent activer App Analytics en appliquant le tag ANALYTICS_KEY à une span :

Datadog.tracer.trace('my.task') do |span|
  # Définir le taux d'échantillonnage de l'analyse sur 1.0
  span.set_tag(Datadog::Ext::Analytics::TAG_ENABLED, true)
end

Pour les instrumentations personnalisées, un tag spécial a été ajouté pour activer la fonction App Analytics sur une span, comme ci-dessous :

span.SetTag(ext.AnalyticsEvent, true)

Ce tag permet de définir la span comme un événement App Analytics.

Les applications utilisant une instrumentation personnalisée peuvent activer App Analytics en appliquant le tag ANALYTICS à une span :

const { ANALYTICS } = require('dd-trace/ext/tags')

span.setTag(ANALYTICS, true)

Les applications utilisant une instrumentation personnalisée peuvent activer App Analytics en appliquant le tag Tags.Analytics à une span :

using Datadog.Trace;

using(var scope = Tracer.Instance.StartActive("web.request"))
{
    // activer l'analyse sur cette span
    scope.span.SetTag(Tags.Analytics, "true");
}

Les applications utilisant une instrumentation personnalisée peuvent activer App Analytics en appliquant le tag ANALYTICS_KEY à une span :

<?php
  // ... la span existante pour laquelle vous souhaitez activer App Analytics
  $span->setTag(Tag::ANALYTICS_KEY, true);
?>

Les applications utilisant une instrumentation personnalisée peuvent activer App Analytics en appliquant le tag analytics_event à une span :

...
#include <datadog/tags.h>
...
auto tracer = ...
auto span = tracer->StartSpan("operation_name");
// Une valeur booléenne true active la fonction App Analytics,
// avec un taux d'échantillonnage de 1.0.
span->SetTag(datadog::tags::analytics_event, true);
// Une double valeur entre 0.0 et 1.0 active la fonction App Analytics
// et définit le taux d'échantillonnage sur la valeur spécifiée.
span->SetTag(datadog::tags::analytics_event, 0.5);