Nouvelles annonces sur les technologies sans serveur et réseau ainsi que sur le RUM (Real-User Monitoring) dévoilées à la conférence Dash ! Nouvelles annonces dévoilées à la conférence Dash !

App Analytics


La fonction App Analytics (anciennement dénommée Trace Search & Analytics) sert à filtrer les spans analysées en fonction 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. Pour l’activer, deux options s’offrent à vous :

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

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

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

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

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)

Une fois la fonction activée, la page App Analytics commence à afficher des informations.

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. Par exemple :

tracer.Start(tracer.WithAnalytics(true))

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

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

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

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;

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

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

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)

Configurer 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 renvoie au 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 en 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 en code :

Tracer.Instance.Settings.Integrations["AspNetMvc"].AnalyticsEnabled = 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 :

  • 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 l'analyse 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 en code :

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

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

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('mysqli', {
  analytics: true
})

Instrumentation personnalisée

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

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_NAME, "my-custom-service");
      span.setTag(DDTags.ANALYTICS_SAMPLE_RATE, 1.0);
    }
  }
}

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

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 à la span racine du service :

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 à la span racine du service :

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 à la span racine du service :

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 à la span racine du service :

<?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 à la span racine du service :

...
#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);

Filtrage des spans

Une span analysée représente la span supérieure d’un service, métadonnées incluses. Une fois activées, les spans analysées sont envoyées à un débit de 100 % par défaut. Par exemple, un service Java avec 100 requêtes générera 100 spans analysées depuis ses spans servlet.request, car chaque span servlet.request génère une span analysée. Le filtrage de spans analysées offre l’avantage de réduire le nombre de spans analysées facturables sans pour autant affecter l’échantillonnage des traces. Lorsqu’un service est filtré et que moins de 100 % des spans sont envoyées, l’analyse des spans analysées est mise à l’échelle pour afficher une estimation par défaut, et vous avez la possibilité d’afficher la valeur filtrée.