Choisissez un mode adapté à votre scénario afin de collecter les données de trace nécessaires à moindre coût.
Dans la plupart des systèmes distribués, il n'est pas nécessaire d'enregistrer chaque trace. De nombreuses traces contiennent des informations répétitives ou peu prioritaires. L'échantillonnage permet de réduire les coûts d'observabilité et de filtrer le bruit inutile.
Le principe fondamental de l'échantillonnage des traces consiste à prioriser l'enregistrement des traces les plus importantes et les plus susceptibles d'être consultées. ARMS propose les modes d'échantillonnage suivants :
Échantillonnage à taux fixe
L'échantillonnage à taux fixe enregistre un pourcentage spécifique de traces en fonction du TraceId. Par exemple, un taux de 10 % signifie qu'une trace sur dix est enregistrée. Cette méthode garantit qu'une trace entière est soit entièrement conservée, soit entièrement rejetée, évitant ainsi les données de trace incomplètes.
Pour configurer l'échantillonnage à taux fixe, suivez ces étapes :
Connectez-vous à la console ARMS. Dans le volet de navigation de gauche, choisissez .
-
En haut de la page Application List, sélectionnez la région cible, puis cliquez sur l'application souhaitée.
RemarqueLes icônes de la colonne Language ont la signification suivante :
: une application Java connectée à Application Monitoring.
: une application Go surveillée par Application Monitoring.
: une application Python surveillée par Application Monitoring.- : une application intégrée à Managed Service for OpenTelemetry.
Dans le volet de navigation de gauche, cliquez sur Application Settings. Sur la page qui s'affiche, cliquez sur l'onglet Custom Configuration.
-
Dans la section sampling rate settings, définissez le taux d'échantillonnage. Définissez le sampling mode sur fixed-rate sampling, puis saisissez la valeur en pourcentage dans le champ sampling rate. Par exemple, saisissez 10 pour 10 %.
RemarqueLes modifications prennent effet immédiatement sans nécessiter de redémarrage de l'application. Le taux d'échantillonnage par défaut varie selon le langage : pour les applications Java et Go, la valeur par défaut est 10 ; pour les applications Python, elle est de 100. Un taux plus élevé consomme davantage de ressources système. Nous vous recommandons de conserver la valeur par défaut.
Échantillonnage adaptatif
Pour réduire davantage les coûts et améliorer les performances des requêtes de traces, ARMS propose l'échantillonnage adaptatif. Contrairement à l'échantillonnage à taux fixe, l'échantillonnage adaptatif utilise plusieurs politiques pour décider dynamiquement si une trace doit être échantillonnée. Cette approche résout les problèmes de couverture liés à un faible taux d'échantillonnage et les problèmes de coût associés à un taux élevé. Nous recommandons l'échantillonnage adaptatif pour les scénarios à fort trafic ou pour les applications dont le trafic fluctue.
L'échantillonnage adaptatif repose sur trois politiques principales : l'échantillonnage complet pour des API spécifiques, l'échantillonnage Top-N pour les API et l'échantillonnage minimal pour les API à faible trafic.
Échantillonnage complet pour des API spécifiques : vous pouvez spécifier des noms d'API, des préfixes ou des suffixes pour marquer les API nécessitant un échantillonnage à 100 %. Toutes les requêtes adressées à ces API déclencheront un échantillonnage à 100 % pour la trace entière. N'activez cette option que pour vos API les plus critiques ou pour un débogage temporaire, car elle augmente considérablement le volume de données collectées.
Échantillonnage Top-N pour les API : cette politique utilise un algorithme LFU (Least Frequently Used) modifié pour échantillonner un nombre limité de requêtes pour chaque API sur une période donnée. Cela garantit que la collecte de données n'augmente pas linéairement avec le trafic des API.
Échantillonnage minimal pour les API à faible trafic : cette politique garantit qu'au moins une trace est échantillonnée pour chaque API sur une période donnée. Elle assure ainsi l'enregistrement d'informations caractéristiques précieuses pour chaque API métier, même pendant les périodes de faible trafic.
Actuellement, ARMS vous permet uniquement de personnaliser les paramètres de l'échantillonnage complet. Les ajustements fins pour l'échantillonnage Top-N et l'échantillonnage minimal ne sont pas pris en charge.
Pour configurer l'échantillonnage adaptatif, suivez ces étapes :
Connectez-vous à la console ARMS. Dans le volet de navigation de gauche, choisissez .
-
En haut de la page Application List, sélectionnez la région cible, puis cliquez sur l'application souhaitée.
RemarqueLes icônes de la colonne Language ont la signification suivante :
: une application Java connectée à Application Monitoring.
: une application Go surveillée par Application Monitoring.
: une application Python surveillée par Application Monitoring.- : une application intégrée à Managed Service for OpenTelemetry.
Dans le volet de navigation de gauche, cliquez sur Application Settings. Sur la page qui s'affiche, cliquez sur l'onglet Custom Configuration.
-
Dans la section sampling rate settings, définissez le taux d'échantillonnage. Définissez le sampling mode sur adaptive sampling. Vous pouvez ensuite spécifier les noms, préfixes et suffixes des API que vous souhaitez échantillonner intégralement.
RemarqueLes modifications prennent effet immédiatement sans nécessiter de redémarrage de l'application. L'échantillonnage adaptatif nécessite une version d'agent 2.8.3 ou ultérieure.
Échantillonnage Édition de base
L'échantillonnage Édition de base est disponible uniquement pour les utilisateurs d'Application Monitoring Édition de base. Il inclut une politique d'échantillonnage gratuite et plusieurs politiques d'échantillonnage personnalisées.
Échantillonnage par défaut (gratuit) : par défaut, ARMS collecte gratuitement une trace par minute depuis chaque agent pour toutes les API associées à votre compte.
-
Politique d'échantillonnage personnalisée : vous pouvez configurer des politiques d'échantillonnage personnalisées. Chaque politique peut échantillonner selon un pourcentage fixe ou un quota de trafic fixe, et s'appliquer à toutes les API ou à des API spécifiques.
Pour configurer une politique d'échantillonnage personnalisée, suivez ces étapes :
Connectez-vous à la console ARMS. Dans le volet de navigation de gauche, choisissez .
-
En haut de la page Application List, sélectionnez la région cible, puis cliquez sur l'application souhaitée.
RemarqueLes icônes de la colonne Language ont la signification suivante :
: une application Java connectée à Application Monitoring.
: une application Go surveillée par Application Monitoring.
: une application Python surveillée par Application Monitoring.- : une application intégrée à Managed Service for OpenTelemetry.
Dans le volet de navigation de gauche, cliquez sur Application Settings. Sur la page qui s'affiche, cliquez sur l'onglet Custom Configuration.
-
Dans la section sampling rate settings, cliquez sur Add Client Sampling Policy, définissez les paramètres suivants, puis cliquez sur OK.
Paramètre
Description
Policy Name
Un nom personnalisé pour la politique d'échantillonnage.
Sampling Type et Samples
Fixed-rate Sampling : échantillonne les traces selon une proportion fixe. Si vous sélectionnez cette option, définissez la valeur de Samples sur un pourcentage fixe, tel que 10 %.
Traffic Limit : si vous sélectionnez cette option, définissez la valeur de Samples sur le nombre de traces que chaque agent collecte dans la fenêtre de temps spécifiée. Par exemple, un paramétrage de 5 traces par agent par 1 seconde signifie que chaque agent collecte au maximum 5 traces par seconde.
Applicable interface
Spécifiez la portée d'application de la politique d'échantillonnage. Vous pouvez sélectionner per span ou choisir Specify a span et saisir le nom de l'interface.
RemarqueActuellement, chaque politique d'échantillonnage ne prend en charge qu'un seul nom d'interface. Pour échantillonner les traces de plusieurs interfaces, vous devez configurer plusieurs politiques d'échantillonnage.
Exemples de politiques d'échantillonnage personnalisées :
Pour l'API /elastic/update, échantillonner 20 traces par minute.
Pour toutes les API, échantillonner 20 % des traces.
Échantillonnage des requêtes en échec ou lentes
Ce mode échantillonne tous les spans associés à une requête si celle-ci remplit les critères suivants :
-
La requête échoue. Un échec est déterminé par l'une des deux conditions suivantes :
Pour les API HTTP, le code d'état n'est pas 2xx ou 3xx.
Une exception est interceptée par la méthode d'instrumentation
LocalRootSpan, ce qui se produit généralement lorsqu'une exception métier est propagée au framework.
La durée de l'appel dépasse la latence P99 des appels précédents vers la même API. Remarque : cette valeur P99 est calculée par regroupement (bucketing) et constitue donc une approximation.
Une méthode interne au sein de l'appel lève une exception (pris en charge à partir de la version 4.1.x de l'agent).
Cette politique d'échantillonnage ne garantit pas une trace complète de bout en bout. Elle enregistre uniquement les spans liés à l'appel au sein d'une seule application.
Informations complémentaires
Pour éviter une dégradation des performances lors des pics de trafic, ARMS limite le nombre de traces qu'un agent peut collecter par seconde. La valeur par défaut est de 100 traces. Cette protection s'applique à la fois à l'échantillonnage à taux fixe et à l'échantillonnage adaptatif. Vous pouvez modifier cette limite en ajustant le seuil de limitation (throttling threshold) dans l'onglet custom configuration.
Nous vous recommandons d'utiliser la valeur par défaut, car son augmentation consomme davantage de ressources système.
Documents connexes
Une fois les traces collectées, vous pouvez analyser les données stockées en temps réel en combinant diverses conditions de filtrage et dimensions d'agrégation. Pour plus d'informations, consultez la rubrique analyse des traces.