Dans l'onglet Custom Configuration, ajustez les paramètres courants, tels que les commutateurs de fonctionnalités de l'agent et les politiques d'échantillonnage.
Pour ajuster ces paramètres via une API, consultez SaveTraceAppConfig.
Prérequis
Un agent est installé pour votre application. Pour plus d'informations, consultez la page présentation de l'intégration de la surveillance des applications.
Procédure
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 concernée.
RemarqueLes icônes de la colonne Language ont les significations suivantes :
: 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, puis sur l'onglet Custom Configurations.
Définissez les paramètres de configuration personnalisée, puis cliquez sur Save en bas de la page.
Paramètres du taux d'échantillonnage
ARMS Pro Edition
Dans la section Sampling Rate Setting, configurez les politiques d'échantillonnage et spécifiez les interfaces à échantillonner pour les traces. Pour plus d'informations, consultez la page Sélectionner un mode d'échantillonnage des traces (pour les versions d'agent antérieures à 3.2.8).
Le taux d'échantillonnage des traces est prioritaire sur le seuil de limitation du débit.
Vous pouvez configurer les paramètres suivants : Sampling Rate Mode (le taux d'échantillonnage fixe est pris en charge, nécessite l'agent v2.8.3 ou version ultérieure), Sampling Rate Setting (par défaut : 10 pour les applications Java et Go ; par défaut : 100 pour les applications Python), Interfaces to Sample (permet de sélectionner des interfaces spécifiques, nécessite l'agent v3.2.0 ou version ultérieure), ainsi que les préfixes et suffixes des interfaces échantillonnées.
ARMS Basic Edition
ARMS Basic Edition prend en charge les politiques d'échantillonnage côté client, avec une facturation basée sur le nombre de lignes de données collectées. Par défaut, ARMS collecte gratuitement une trace par minute pour chaque interface depuis chaque agent. Vous pouvez également cliquer sur Add Client Sampling Policy pour ajouter des politiques d'échantillonnage personnalisées.
Paramètre | Description |
Policy Name | Nom personnalisé de la politique d'échantillonnage. |
Sampling Type et Samples |
|
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. Remarque Actuellement, 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. |
Après avoir configuré les politiques d'échantillonnage, activez-les ou désactivez-les dans la console. Plusieurs politiques d'échantillonnage peuvent être actives simultanément, avec la priorité suivante : échantillonnage par défaut (gratuit) > limitation du débit pour une seule interface > échantillonnage proportionnel fixe pour une seule interface > limitation du débit pour toutes les interfaces > échantillonnage proportionnel fixe pour toutes les interfaces. Vous pouvez également modifier les politiques d'échantillonnage existantes ou supprimer celles dont vous n'avez plus besoin.
Cette fonctionnalité nécessite l'agent v2.7.1.3 ou version ultérieure. La liste des politiques s'affiche dans un tableau comprenant des colonnes telles que le nom de la politique, la portée d'application, la limitation du débit, l'échantillonnage proportionnel fixe, l'état d'activation et les actions.
Commutateurs de l'agent et niveau de journalisation
Dans la section Agent Switch Settings, activez ou désactivez le commutateur principal de l'agent et les commutateurs individuels des plug-ins, et configurez le niveau de journalisation.
Les modifications apportées au commutateur principal de l'agent et au niveau de journalisation prennent effet immédiatement sans redémarrage de l'application. Si vous désactivez le commutateur principal de l'agent, le système ne peut plus surveiller votre application. Agissez avec prudence. Pour appliquer les modifications aux commutateurs des plug-ins, vous devez redémarrer manuellement l'application.
Les commutateurs de plug-ins pris en charge incluent : dubbo-plugin, mongodb-plugin, ali-hsf-plugin, httpclient3-plugin, httpclient4-plugin, jdk-http-plugin, jetty-plugin, mybatis-plugin, mysql-plugin, okhttp-plugin, oracle-plugin, postgresql-plugin, redis-plugin, spring-plugin, springboot-plugin, tomcat-plugin, lettuce-plugin, grpc-plugin, thrift-plugin, google-httpclient-plugin, hystrix-plugin et rxjava-plugin. Le niveau de journalisation par défaut est WARN.
Paramètres de seuil
Dans la section Threshold Settings, configurez le seuil pour les requêtes SQL lentes.
Le seuil des requêtes SQL lentes est mesuré en millisecondes (ms) et sa valeur par défaut est de 500 ms. Une requête SQL est considérée comme lente si son temps d'exécution dépasse ce seuil.
Configuration de la file d'attente de messages
Dans la section Message Queue Configurations, configurez les paramètres liés aux messages.
Les paramètres Custom RabbitMQ Consumer et Custom Kafka Consumption Method nécessitent l'agent v4.x ou version ultérieure et prennent effet après le redémarrage de l'application. Le paramètre Automatic Context Propagation for Kafka Messages est pris en charge uniquement pour Kafka v0.11.0 ou version ultérieure.
Custom RabbitMQ consumer : spécifiez le nom de classe d'un consommateur personnalisé ou d'une classe contenant un consommateur interne anonyme pour afficher la trace de ce consommateur. Séparez les noms de classes de consommateurs multiples par des virgules (,).
Custom Kafka consumption method : définissez une méthode de consommation personnalisée pour afficher les traces et les métriques lors de la consommation de messages avec le SDK Kafka natif.
Automatically propagate context for Kafka messages : lors de l'envoi d'un message, ajoutez automatiquement des en-têtes au message Kafka pour corréler les traces du producteur et du consommateur.
Paramètres de collecte de l'agent
Le paramètre Collect Traces nécessite l'agent v4.2.0 ou version ultérieure. Le paramètre Agent Maximum QPS Threshold a pour valeur par défaut 10 000 et nécessite l'agent v4.1.10 ou version ultérieure. Le Log Level par défaut est WARN.
Collect traces : contrôle si les données de trace sont rapportées. Cette option est activée par défaut. Si elle est désactivée, les données de trace ne sont plus rapportées.
-
Throttling threshold : nombre maximal de requêtes que l'agent peut traiter par seconde. La valeur par défaut est 100. Les traces des requêtes dépassant ce seuil ne sont pas collectées.
RemarqueLe taux d'échantillonnage des traces est prioritaire sur le seuil de limitation du débit.
Agent maximum QPS threshold : nombre de requêtes que l'agent peut gérer par seconde. Pour des raisons de performances, le seuil effectif peut s'écarter du seuil configuré jusqu'à 5 %. Les requêtes dépassant ce seuil ne seront pas surveillées, ce qui signifie qu'aucune span ni métrique ne sera générée et que l'association ID de trace-journal ne fonctionnera pas.
Collect data for internal calls without entry points : les appels internes sans point d'entrée font généralement référence aux données de span et de métriques générées par des tâches planifiées qui envoient des requêtes HTTP, interagissent avec des bases de données, envoient des messages ou effectuent des appels RPC initiés via le pool de threads JDK.
Log level : ajuste le niveau de journalisation de l'agent pour le dépannage.
Paramètres d'appel d'API
Interface response time threshold : lorsque le temps de réponse d'une interface dépasse ce seuil, le système marque l'interface comme un appel lent.
Exception filtering : ARMS n'affiche pas les exceptions que vous saisissez ici dans les graphiques des pages de détails de l'application et d'analyse des exceptions.
-
Inherit exception filter for parent classes : si vous activez cette option et qu'une exception collectée est une sous-classe d'une classe d'exception configurée dans la liste d'autorisation du filtre d'exceptions, ARMS la filtre également.
Par conséquent, les exceptions répondant aux critères de filtrage n'apparaissent pas dans la console ARMS.
Error count filtering : par défaut, ARMS compte les codes d'état supérieurs à 400 comme des erreurs. Vous pouvez personnaliser les codes d'état HTTP supérieurs à 400 qui ne sont pas comptés comme des erreurs.
Invalid interface call filtering : saisissez les interfaces que vous ne souhaitez pas surveiller. L'agent ne rapportera pas les données d'observabilité pour ces interfaces, les masquant ainsi de la page des appels d'interface.
-
Record upstream interface name in metrics et Record upstream application name in metrics :
Contrôle si les métriques d'interface enregistrent l'application et l'interface amont qui appellent l'interface actuelle. Cela affecte principalement la disponibilité des données amont et aval pour les dépendances de service. Lorsqu'une application possède de nombreux appelants amont, l'enregistrement de ces informations peut augmenter considérablement le volume de métriques rapportées et les coûts associés.
Record original status code in metrics : enregistre le code de réponse original dans les métriques liées aux interfaces HTTP.
Paramètres de surveillance du pool
Le paramètre Thread Pool and Connection Pool Monitoring nécessite l'agent v2.7.3.5 ou version ultérieure et prend effet après le redémarrage de l'application. Le paramètre Thread Name Pattern Extraction Policy for Thread Pools nécessite l'agent v4.1.10 ou version ultérieure.
Thread pool and connection pool monitoring : prend en charge la surveillance des métriques des pools de threads pour des frameworks tels que Tomcat, Dubbo et High-speed Service Framework (HSF). Nécessite une mise à niveau vers la dernière version de l'agent.
Thread name pattern extraction policy for thread pools : par défaut, cette fonctionnalité remplace tous les caractères numériques dans le nom du thread de tout thread en cours d'exécution dans un pool de threads par
*. Vous pouvez également ajuster ce paramètre pour remplacer uniquement les caractères finaux du nom du thread par*. Si votre application démarre plusieurs fournisseurs Dubbo qui écoutent sur différents ports, la stratégie par défaut peut agréger leurs pools de threads en un seul, car les modèles de noms de threads extraits sont identiques. Dans ce cas, ajustez la stratégie pour les distinguer en tant que pools de threads séparés.-
Filter by thread pool usage scenario et Filter by thread pool name pattern : filtre les métriques de surveillance de certains pools de threads en fonction de leur scénario d'utilisation et du modèle de nom de thread.
RemarqueCette configuration prend effet uniquement pour l'agent Java v4.2.0 et versions ultérieures.
Scénario d'utilisation du pool de threads : contexte dans lequel le thread est utilisé. Les scénarios pris en charge incluent Tomcat, Vert.x, Undertow, Dubbo, Jetty, AliyunJavaAgent et default. AliyunJavaAgent représente le pool de threads utilisé par l'agent, et default représente les autres pools de threads non classés.
Modèle de nom de pool de threads : modèle dérivé du traitement des noms de threads dans le pool. Par exemple, http-nio--exec- est généralement obtenu en remplaçant les parties numériques du nom de thread réel par *.
Paramètres des attributs de span
Les deux paramètres suivants nécessitent l'agent v4.x ou version ultérieure. Record OpenTelemetry Specification Attributes est désactivé par défaut. Le paramètre Application Tag Association for Spans a pour valeur par défaut All Spans.
Record OpenTelemetry specification attributes : la spécification OpenTelemetry définit les attributs à inclure dans les spans générées par chaque type de plug-in. Pour réduire le volume de données, l'agent ARMS n'enregistre pas ces attributs par défaut. Vous pouvez activer ce paramètre selon vos besoins. Pour obtenir des informations sur les attributs ajoutés pour chaque framework après l'activation de ce paramètre, consultez la spécification OpenTelemetry.
Application tag association for spans : contrôle quelles spans incluent les tags que vous avez liés à l'application sur la page liste des applications de la console. Par défaut, toutes les spans incluent les tags d'application. Pour gérer l'utilisation des données, vous pouvez choisir d'attacher les tags d'application uniquement aux spans d'entrée. Les spans d'entrée incluent généralement HTTP Server, RPC Server, la consommation de messages MQ et les tâches planifiées.
Paramètres avancés
Maximum method stack length : la valeur par défaut est 128 et le maximum est 400.
Stack depth for exception differentiation : ce paramètre spécifie la profondeur de la pile pour différencier les exceptions du même type. Il est généralement défini sur la profondeur du premier appel différent.
Maximum SQL length : la valeur par défaut est de 1 024 caractères, avec un minimum de 256 et un maximum de 4 096.
Collect SQL bind values : capture les valeurs de variables liées aux paramètres PreparedStatement. Cela prend effet sans redémarrage de l'application et prend actuellement en charge uniquement les scénarios où vous définissez les valeurs des variables SQL dans un PreparedStatement.
Original SQL Statements : tronque uniquement les instructions SQL sans traitement supplémentaire.
Record MySQL query return value size : lorsqu'il est activé, ARMS enregistre la taille des valeurs de retour des requêtes MySQL.
New trace storage format : utilise un nouveau format de stockage qui prend en charge le tri des traces par heure (activé par défaut).
Trace compression : simplifie les traces en réduisant les appels répétés, tels que ceux effectués dans une boucle for. Cela prend effet sans redémarrage de l'application.
Maximum length of request parameters : la valeur par défaut est de 512 caractères et la longueur maximale prise en charge est de 2 048 caractères.
-
Quantile statistics : active la fonctionnalité de statistiques de quantiles.
RemarqueUn quantile est un point qui divise la plage d'une distribution de probabilité d'une variable aléatoire en intervalles continus ayant des probabilités égales. Les quantiles courants incluent la médiane (2-quantile), les quartiles et les percentiles.
Automatic async propagation : propage automatiquement le contexte asynchrone lorsqu'une tâche asynchrone est soumise via un pool de threads.
Packages to scan for async propagation : ajoutez des packages à analyser pour activer la surveillance des tâches asynchrones. Lorsque de nouveaux objets implémentant les interfaces Runnable, Callable ou Supplier sont créés dans un package analysé, l'agent capture automatiquement le contexte de trace du thread actuel. Lorsque le thread asynchrone s'exécute, il utilise ce contexte pour compléter la liaison de trace. Nécessite l'agent v2.7.1.3 ou version ultérieure.
Return trace ID in response : uniquement pour les requêtes HTTP, ce paramètre ajoute le champ eagleeye-traceid à l'en-tête de réponse.
Paramètres des threads
Dans la section Thread settings, activez ou désactivez le commutateur principal pour l'analyse des threads.
Cette fonctionnalité est disponible uniquement dans ARMS Pro Edition.
À partir de l'agent v4.x, en raison de changements d'implémentation, cette fonctionnalité est contrôlée par le commutateur de point chaud CPU dans le profilage continu.
Configuration de l'association des journaux
Dans la section Application Log Association, configurez les informations de source de journal associées à l'application. Pour plus d'informations, consultez la page analyse des journaux.
Cette fonctionnalité est disponible uniquement dans ARMS Pro Edition.
Vous pouvez associer les journaux à Log Service (SLS) en configurant le Project et le Logstore correspondants. Vous pouvez également activer le comptage des erreurs basé sur les journaux et configurer l'association de tags personnalisés et les chemins d'accès aux journaux.
Règles de convergence d'URL
Dans la section URL Convergence Settings, activez ou désactivez la fonctionnalité de convergence d'URL et configurez son seuil et ses règles. La convergence d'URL regroupe les URL similaires pour les afficher comme un seul élément. Par exemple, une série d'URL commençant par /service/demo/ peut être regroupée. Le seuil de convergence est le nombre minimal d'URL requis pour déclencher la convergence. Par exemple, si le seuil est de 100, le système converge les URL correspondant à l'expression régulière de la règle uniquement lorsque leur nombre atteint 100.
Les règles de convergence d'URL sont actuellement prises en charge uniquement par l'agent ARMS Java. L'agent ARMS Python ne prend pas encore en charge cette configuration.
Le seuil de convergence par défaut est de 1 000. La convergence se produit lorsque le nombre d'URL correspondant à l'expression régulière dépasse ce seuil. Les règles de convergence prennent en charge les expressions régulières. Séparez plusieurs règles par des virgules (,), par exemple /service/(*?)/demo.
Surveillance Arthas
Dans la section Arthas Monitoring, activez ou désactivez la fonctionnalité de diagnostic Arthas et spécifiez les adresses IP pour lesquelles elle est activée. Pour plus d'informations, consultez la page diagnostic Arthas.
Cette fonctionnalité est disponible uniquement dans ARMS Pro Edition.
Cette fonctionnalité nécessite l'agent v2.7.1.3 ou version ultérieure. Vous pouvez spécifier les adresses IP pour lesquelles le diagnostic Arthas est activé. Si vous spécifiez des adresses IP, la fonctionnalité est activée uniquement pour ces adresses IP. Si vous ne spécifiez aucune adresse IP, la fonctionnalité est activée pour toutes les adresses IP.
Profilage continu
Dans la section Continuous Profiling, activez ou désactivez le commutateur principal, ainsi que les commutateurs pour les fonctionnalités de point chaud CPU, de point chaud mémoire et de point chaud de code. Vous pouvez également spécifier les adresses IP ou les segments de réseau pour lesquels ces fonctionnalités prennent effet. Pour plus d'informations, consultez la page Intégrer la fonctionnalité de profilage continu. La liste d'autorisation d'IP prend en charge plusieurs adresses IP d'instance séparées par des virgules (,). La liste d'autorisation de segment de réseau prend en charge le format CIDR (par exemple, 10.0.0.0/8), mais ne prend pas en charge plusieurs segments.
Paramètres du protocole de propagation des traces
Dans la section Trace Propagation Protocol Settings, sélectionnez le protocole de propagation des traces à utiliser selon vos besoins. Pour obtenir des informations sur les protocoles pris en charge par ARMS, consultez la page Protocoles de propagation du contexte de trace pris en charge par ARMS.
Par défaut, aucun Propagation protocol n'est défini et le Propagation mode est Priority. Cette fonctionnalité nécessite l'agent v4.1.x ou version ultérieure.
Par défaut, lorsqu'un appel arrive, l'agent ARMS vérifie les en-têtes de requête dans l'ordre suivant : EagleEye, OpenTelemetry, SkyWalking, Jaeger et Zipkin. Si l'agent détecte un en-tête pour un protocole spécifique, il restaure le contexte de trace basé sur ce protocole et injecte les en-têtes correspondants pour les appels aval suivants. Si aucun en-tête de protocole n'est détecté, l'agent utilise le protocole EagleEye par défaut.
Vous pouvez sélectionner n'importe quel protocole sur cette page comme protocole prioritaire. Après avoir sélectionné et enregistré le paramètre, ARMS vérifiera d'abord les en-têtes de requête du protocole spécifié. Par exemple, si vous définissez le Propagation protocol sur Jaeger et le Propagation mode sur Priority, l'agent ARMS modifiera l'ordre de détection en Jaeger, EagleEye, OpenTelemetry, SkyWalking, puis Zipkin.
Vous pouvez également forcer l'utilisation d'un protocole spécifique. Par exemple, si vous définissez le Propagation protocol sur Jaeger et le Propagation mode sur Force, l'agent ARMS vérifiera uniquement les en-têtes du protocole Jaeger. Si aucun en-tête de protocole Jaeger n'est trouvé, l'agent ne vérifie pas les autres protocoles et générera plutôt un nouveau contexte de trace.
Masquage des données
Dans la section Data Redaction, définissez des règles de masquage. L'agent masque ensuite le contenu des paramètres système JVM, des fichiers YAML Kubernetes, des paramètres d'entrée de méthode et des variables d'environnement et système Arthas lors de la collecte. Dans les règles de masquage, les éléments sont séparés par des virgules (,). Chaque élément représente une expression régulière insensible à la casse. Par exemple, la règle password équivaut à l'expression régulière .password.. Les règles de masquage par défaut incluent password, secret, key, token et credentials.
Lorsqu'un agent collecte des données, il filtre les clés de données en fonction des expressions correspondantes. Si une clé répond à la condition, elle est considérée comme contenant des données sensibles et est anonymisée. Par exemple, si une règle d'anonymisation contient licenseKey, les informations avec la clé -Darms.licenseKey sont anonymisées. Lorsque la règle d'anonymisation est licenseKey, elle anonymise les informations avec la clé -Darms.licenseKey.
Copie des configurations
Si vous devez appliquer les mêmes configurations à d'autres applications, copiez-les.
Copier une seule configuration vers d'autres applications
Dans la section de configuration correspondante, cliquez sur Batch copy to other applications.
-
Dans la boîte de dialogue qui s'affiche, sélectionnez les applications auxquelles vous souhaitez appliquer la configuration, puis cliquez sur OK.
La boîte de dialogue propose deux modes : Copy to all other applications et Select monitored applications. Les modifications prennent effet 1 à 2 minutes après une copie réussie.
Copier toutes les configurations vers d'autres applications
En bas de la page, cliquez sur Batch copy to other applications.
-
Dans la boîte de dialogue qui s'affiche, sélectionnez les applications auxquelles vous souhaitez appliquer les configurations, puis cliquez sur OK.
La boîte de dialogue propose deux modes : Copy to all other applications et Select monitored applications. Les modifications prennent effet 1 à 2 minutes après une copie réussie.
Configuration par défaut globale
Vous pouvez enregistrer les configurations actuelles comme configuration par défaut globale. Les nouvelles applications que vous créez utiliseront ces configurations par défaut.
En bas de la page, cliquez sur Save Current Application Settings as Global Default Configurations.
Dans la boîte de dialogue qui s'affiche, cliquez sur Confirm.