Syntaxe de requête

Requête de recherche

Tous les paramètres de recherche sont contenus dans l’URL de la page, ce qui permet de partager facilement votre vue.

Syntaxe de recherche

Une requête est composée de termes et opérateurs.

Il existe deux types de termes :

  • Attribut de span : Contenu du span, collecté avec une instrumentation automatique ou manuelle dans l’application.
  • Tag de span : Enrichissements de contexte liés au span. Par exemple, des tags d’hôte ou de conteneur décrivant l’infrastructure sur laquelle le service fonctionne.

Pour combiner plusieurs termes en une requête complexe, utilisez l’un des opérateurs booléens suivants :

OpérateurDescriptionExemple
ANDIntersection : les deux termes figurent dans les événements sélectionnés (si rien n’est ajouté, AND est utilisé par défaut)authentication AND failure
ORUnion : l’un ou l’autre des termes figure dans les événements sélectionnésauthentication OR password
-Exclusion : le terme suivant n’est PAS dans l’événementauthentication AND -password

Pour rechercher un attribut de span, vous devez ajouter @ au début de la clé de l’attribut.

Par exemple, si vous voulez accéder à une span avec l’attribut ci-dessous, vous pouvez utiliser :

@git.commit.sha:12345

  "git": {
    "commit": {
      "sha": "12345"
    },
    "repository": {
      "id": "github.com/datadog/datadog"
    }
  }

Les attributs de span sont visibles dans l’onglet Aperçu du panneau latéral de trace.

Remarque : Vous n’avez pas besoin d’utiliser @ sur les attributs réservés : env, operation_name, resource_name, service, status, span_id, timestamp, trace_id, type, link

Vos spans héritent des tags des hosts et des intégrations qui les génèrent.

Exemple :

RequêteCorrespondance
(hostname:web-server OR env:prod)Toutes les traces avec la balise d’infrastructure hostname:web-server ou l’attribut réservé env:prod
(availability-zone:us-east OR container_name:api-frontend)Toutes les traces avec l’une de ces balises d’infrastructure
(service:api AND -kube_deployment:canary)Toutes les traces du service api qui ne sont pas déployées sur le déploiement canary

Les balises de span sont visibles dans l’onglet Infrastructure du panneau latéral de trace.

Formats de balises non standards

Si vos balises ne respectent pas les meilleures pratiques des balises, alors n’utilisez pas la syntaxe key:value. Utilisez plutôt la requête de recherche suivante :

tags:<MY_TAG>

Par exemple, cette balise ne suit pas les meilleures pratiques :
auto-discovery.cluster-autoscaler.k8s.io/daffy

Pour rechercher cette balise, utilisez la requête suivante :
tags:"auto-discovery.cluster-autoscaler.k8s.io/daffy"

Wildcards

Pour effectuer une recherche avec un wildcard multi-caractères, utilisez le symbole * comme suit :

  • service:web* correspond à chaque trace ayant un service commençant par web
  • @url:data* correspond à chaque trace ayant un url commençant par data.

Valeurs numériques

Utilisez <, >, <= ou >= pour effectuer une recherche sur des attributs numériques. Par exemple, récupérez toutes les traces ayant un temps de réponse supérieur à 100 ms avec :

@http.response_time:>100

Il est également possible de rechercher des attributs numériques dans une plage spécifique. Par exemple, récupérez toutes vos erreurs 4xx avec :

@http.status_code:[400 TO 499]

Autocomplétion

Taper une requête complexe peut être fastidieux. Utilisez la fonctionnalité de saisie automatique de la barre de recherche pour compléter votre requête en utilisant des valeurs existantes :

auto-complétion de la barre de recherche

Échappement des caractères spéciaux

Les attributs suivants sont considérés comme spéciaux : ?, >, <, :, =, ", ~, / et \ nécessitent un échappement. Par exemple, pour rechercher des traces contenant user=JaneDoe dans leur url, la recherche suivante doit être saisie :

@url:*user\=JaneDoe*

La même logique doit être appliquée aux espaces dans les attributs de trace. Il n’est pas recommandé d’avoir des espaces dans les attributs de trace, mais dans de tels cas, les espaces nécessitent un échappement. Si un attribut s’appelle user.first name, effectuez une recherche sur cet attribut en échappant l’espace :

@user.first\ name:myvalue

Recherches enregistrées

Ne perdez pas de temps à construire les mêmes vues chaque jour. Les recherches enregistrées contiennent votre requête de recherche, les colonnes et l’horizon temporel. Elles sont ensuite disponibles dans la barre de recherche grâce à l’auto-complétion qui correspond soit au nom de la recherche, soit à la requête.

Recherche enregistrée

Pour supprimer une recherche enregistrée, cliquez sur l’icône en forme de corbeille sous le menu déroulant de la recherche de traces.

Rechercher des services et des entités

Pour rechercher un service, utilisez l’attribut service. Pour rechercher un autre type d’entité (par exemple, une base de données, une file d’attente ou un fournisseur tiers), reposez-vous sur d’autres attributs pairs que Datadog utilise pour décrire les dépendances qui ne sont pas instrumentées avec APM. Par exemple, pour trouver des spans représentant des appels à une table users d’une base de données postgres, utilisez la requête suivante : @peer.db.name:users @peer.db.system:postgres

Remarque : Le tag service du span représente le service émettant le span si vous avez migré vers la nomenclature de service globale en définissant DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAME_ENABLED=true.

Plage horaire

La plage horaire vous permet d’afficher des traces dans une période donnée. Changez rapidement la plage horaire en sélectionnant une plage prédéfinie dans le menu déroulant (ou en saisissant une plage horaire personnalisée) :

Sélectionner la période

Table des spans

Le tableau des spans est la liste des spans qui correspondent au contexte sélectionné. Un contexte est défini par un filtre de barre de recherche et une plage horaire.

La colonne de service

Par défaut, la colonne de service affiche l’attribut service réservé du span.

Colonne de service du tableau des spans

Lorsque la span représente un appel client depuis un service instrumenté vers un service déduit, la colonne service affiche :

  • le service, identifié par l’attribut service réservé.

  • le service inféré : nom de l’entité inférée appelée par le service de base, identifiée par l’un des attributs pairs

    Colonne de service du tableau des spans avec service inféré

Lorsque le nom de service est une substitution du nom du service de base, la colonne service affiche :

  • le service de base : service à partir duquel le span est émis, identifié par l’attribut @base_service.

  • le service override : nom du service, différent du nom du service de base, défini automatiquement dans les intégrations Datadog ou modifié via l’API programmatique. Le service override est identifié par l’attribut service réservé.

    Colonne de service du tableau des spans avec service override

Affichage d’une trace complète

Cliquez sur une span pour afficher les détails de la trace associée :

Trace dans le flux de traces

Colonnes

Pour ajouter d’autres span tags ou attributs en tant que colonnes à la liste, cliquez sur le bouton Options et sélectionnez la dimension que vous souhaitez ajouter :

Liste de traces avec colonnes

Groupes de traces

Regroupez la requête par toute balise ou attribut span pour observer les comptes de requêtes, les taux d’erreur et les distributions de latence dans la vue de liste. Vous pouvez sélectionner jusqu’à quatre dimensions dans la clause Grouper par.

Clause de regroupement

Requêtes ‘Grouper par’ avancées

Après avoir sélectionné une dimension à regrouper, vous pouvez spécifier d’où obtenir les valeurs de la dimension en utilisant le menu déroulant de :

  • Span : Regroupez par la dimension du span interrogé (par défaut). Par exemple, a.
  • Parent du span : Regroupez par la dimension spécifiée du span parent des spans correspondant à la requête. Par exemple, pour visualiser comment un point de terminaison API fonctionne en fonction du service qui l’appelle, regroupez par service de parent(a).
  • Span racine : Regroupez par la dimension spécifiée du span racine de la trace. Par exemple, pour analyser les modèles de requêtes backend en fonction des pages frontend d’où proviennent les requêtes, regroupez par @view.name de root.
Regroupez par depuis la racine

Voir les groupes de traces dans la liste des groupes

Les groupes de traces sont affichés comme des valeurs uniques de la dimension sélectionnée. Chaque groupe est présenté avec trois indicateurs clés :

  • REQUÊTES : Nombre de spans au sein du groupe.
  • ERREURS : Taux d’erreur et nombre d’erreurs.
  • P95 Latency : Latence P95 des spans.

Pour voir ces indicateurs agrégés sur le span parent ou racine au lieu du span interrogé, sélectionnez parent(a) ou root dans l’instruction Afficher les indicateurs de.

De plus, le Latency Breakdown montre comment le temps est réparti entre différents services au sein des requêtes de chaque groupe, vous permettant de repérer visuellement les goulets d’étranglement de latence pour les groupes donnés.

Liste des groupes

Pour une analyse plus approfondie, cliquez sur n’importe quel groupe pour examiner les événements individuels qui composent les métriques agrégées.

Facettes

Une facette affiche toutes les valeurs distinctes d’un attribut ou d’une étiquette et fournit des analyses de base telles que le nombre de traces représentées. Ce commutateur permet également de filtrer vos données.

Les facettes vous permettent de pivoter ou de filtrer vos ensembles de données en fonction d’un attribut donné. Des exemples de facettes incluent des utilisateurs, des services, etc…

Démonstration des facettes

Mesures

Les mesures sont un type spécifique de facettes destiné aux valeurs quantitatives.

Les mesures vous permettent d’accomplir les tâches suivantes :

  • Valeurs agrégées provenant de plusieurs traces. Par exemple, créez une mesure sur le nombre de lignes dans Cassandra et visualisez le P95 ou les référents les plus importants par somme de taille de fichier demandée.
  • Calculez numériquement les services ayant la latence la plus élevée pour les valeurs de panier d’achat supérieures à 1000 $.
  • Filtrer les valeurs continues. Par exemple, la taille en octets de chaque segment de charge utile d’un flux vidéo.

Types

Les mesures disposent d’un entier (long) ou d’une double valeur. Ces deux types proposent des fonctionnalités équivalentes.

Unités

Les mesures prennent en charge les unités (temps en secondes ou taille en octets) pour le traitement des ordres de grandeur lors de la requête et de l’affichage. L’unité est une propriété de la mesure elle-même, et non du champ. Par exemple, considérez une mesure de durée en nanosecondes : vous avez une étiquette de portée de service:Aduration:1000 représente 1000 milliseconds, et d’autres étiquettes de portée de service:Bduration:500 représente 500 microseconds : Convertissez la durée en nanosecondes pour toutes les balises span traitées par le processeur arithmétique. Utilisez un multiplicateur de *1000000 sur les balises span de service:A, et un multiplicateur de *1000 sur les balises span de service:B. Utilisez duration:>20ms (voir la syntaxe de recherche pour référence) pour interroger de manière cohérente les balises span des deux services en même temps, et voir un résultat agrégé d’une minute maximum.

Créez une facette

Pour commencer à utiliser un attribut en tant que facette ou dans une recherche, cliquez dessus et ajoutez-le en tant que facette :

Créez une facette

Après avoir créé une nouvelle facette, elle est disponible dans le volet de facettes pour le filtrage et l’analyse de base.

Panneau de facettes

Utilisez des facettes pour filtrer vos traces. La barre de recherche et l’URL reflètent automatiquement vos sélections.

Volet des facettes

Visualisations

Sélectionnez un type de visualisation d’analyse à l’aide du sélecteur d’analyse :

Séries temporelles

Visualisez l’évolution de la métrique Duration (ou un compte unique de valeurs d’une facette) sur une période de temps sélectionnée, et (optionnellement) divisez par une facette disponible.

Les analyses de séries temporelles suivantes montrent l’évolution de la pc99 durée par étapes de 5min pour chaque Service.

exemple de série temporelle

Liste des meilleurs

Visualisez les meilleures valeurs d’une facette selon leur Duration (ou un compte unique de valeurs d’une facette).

Les analyses de liste principale suivantes montrent la pc99 durée de Service :

exemple de liste principale

Table

Visualisez les valeurs principales d’une facette selon une mesure choisie (la première mesure que vous choisissez dans la liste), et affichez la valeur des mesures supplémentaires pour les éléments apparaissant dans cette liste principale. Mettez à jour la requête de recherche ou examinez les journaux correspondant à l’une ou l’autre dimension.

  • Lorsque plusieurs dimensions sont présentes, les valeurs principales sont déterminées selon la première dimension, puis selon la deuxième dimension parmi les valeurs principales de la première dimension, puis selon la troisième dimension parmi les valeurs principales de la deuxième dimension.
  • Lorsque plusieurs mesures sont présentes, la liste supérieure ou inférieure est déterminée selon la première mesure.
  • Le sous-total peut différer de la somme réelle des valeurs dans un groupe, car seul un sous-ensemble (supérieur ou inférieur) est affiché. Les événements avec une valeur nulle ou vide pour cette dimension ne sont pas affichés comme un sous-groupe.

Remarque : Une visualisation de tableau utilisée pour une seule mesure et une seule dimension est la même qu’une liste principale, juste avec un affichage différent.

Les analyses de journaux de tableau suivantes montrent l’évolution des codes d’état principaux selon leur débit, ainsi que le nombre d’adresses IP client uniques, et ce, au cours des 15 dernières minutes :

exemple de liste principale

Sélectionnez une section du graphique ou cliquez dessus pour l’agrandir ou consulter la liste des traces correspondant à votre sélection :

Voir les traces

Exporter

Exporter vos analyses

Exporter vos requêtes :

Vous pouvez également générer une nouvelle mesure pour la requête.

Remarque : Les requêtes APM dans les tableaux de bord et [notebook] sont basées sur tous les spans indexés. Les requêtes APM dans les moniteurs sont basées uniquement sur les spans indexés par custom retention filters.

Lectures complémentaires