Configuration des traceurs à l'aide du fichier de configuration de l'agent
Vous pouvez configurer les paramètres spécifiques au traceur à l'aide du fichier de configuration de l'agent (instanaAgentDir/etc/instana/configuration.yaml) si celui-ci est installé sur un hôte. Ces configurations déterminent la manière dont les traceurs d' Instana s capturent et traitent les données de traçage au sein de vos applications surveillées.
Pour une liste détaillée de tous les paramètres de configuration Instana, consultez le graphique Helm Instana.
Pour les déploiements d' Instana sur Kubernetes, consultez la section « Configuration de l'agent d' Kubernetes à l'aide du fichier de configuration ».
Pour connaître les options générales de configuration des agents, consultez la section « Configuration des agents hôtes à l'aide du fichier de configuration des agents ».
Interception des en-têtes d' HTTP s personnalisés
Par défaut, Instana ne collecte pas les en-têtes d' HTTP s lorsqu'il trace les appels à HTTP.
Si nécessaire, vous pouvez activer cette fonctionnalité en appliquant la configuration suivante dans le fichier de configuration de l'agent :
com.instana.tracing:
extra-http-headers:
- 'x-request-id'
- 'x-loadtest-id'
- ...
Les valeurs ne sont pas sensibles à la casse. Les en-têtes enregistrés apparaissent dans les détails de l'appel (dans la section « Détails de l'appel » ). Vous pouvez également utiliser les noms des en-têtes et leurs valeurs pour rechercher des appels et des traces (dans l'interface utilisateur ou via l' API ) ainsi que pour la configuration des services.
Cette fonctionnalité est actuellement soumise aux restrictions suivantes :
- Tous les traceurs enregistrent les en-têtes de requête au niveau des entrées « HTTP » (les appels HTTP s reçus par le processus instrumenté).
- Certains traceurs peuvent enregistrer les en-têtes de réponse lors des requêtes sur HTTP. Pour plus d'informations, voir le tableau 1.
- Certains traceurs peuvent enregistrer les en-têtes de requête et de réponse lors des sorties d' HTTP s (appels HTTP où le processus instrumenté joue le rôle du client). Pour plus d'informations, voir le tableau 1.
- Si un même en-tête apparaît à la fois dans les en-têtes de requête et dans les en-têtes de réponse, il se peut que l'une des deux valeurs ne soit pas enregistrée par l'outil de traçage.
| Traceur | En-têtes de requête sur les entrées d' HTTP | En-têtes de réponse dans les entrées d' HTTP | En-têtes de requête lors des sorties d' HTTP | En-têtes de réponse lors des sorties d' HTTP |
|---|---|---|---|---|
| Go | ✅ | ✅ | ✅ | ✅ |
| Java | ✅ | ✅1 | ❌ | ❌ |
| .NET | ✅ | ✅ | ✅ | ✅ |
| Node.js | ✅ | ✅ | ✅ | ✅ |
| PHP | ✅ | ❌ | ❌ | ❌ |
| NGINX | ✅ | ❌ | — | — |
| Python | ✅ | ✅ | ✅ | ✅ |
| Ruby | ✅ | ✅ | ✅ | ✅ |
| HTTPd | ✅ | ❌ | — | — |
Configuration des en-têtes de corrélation des traces d' Kafka
Vous pouvez configurer le format des en-têtes de corrélation de trace d' Kafka, utilisés par les traceurs d' Instana, à l'aide du paramètre com.instana.tracing.kafka.header-format. Les valeurs valides sont binary, string, ou both. Voir l'exemple suivant :
com.instana.tracing:
kafka:
header-format: string # possible values: binary, both, string
Vous ne devez pas désactiver complètement la corrélation de trace d' Kafka. com.instana.tracing.kafka.trace-correlation: falseToutefois, si vous devez désactiver complètement la corrélation des traces d' Kafka, définissez alors. Voir l'exemple suivant :
com.instana.tracing:
kafka:
trace-correlation: false
SimpleHeaderConverter comme mécanisme par défaut pour la gestion des en-têtes de messages « Kafka ». Ce convertisseur peut rencontrer des problèmes lors du traitement des en-têtes de traçage « Instana », car il tente de désérialiser les valeurs des en-têtes en types natifs, ce qui peut provoquer des erreurs de débordement numérique. Pour résoudre ce problème, configurez le fichier « Kafka Connect » de manière à utiliser StringConverter:header.converter=org.apache.kafka.connect.storage.StringConverter
Pour plus d'informations, consultez la section Migration des en-têtes Kafka.
Désactiver le traçage
Vous pouvez désactiver le traçage pour un type de segment spécifique (frameworks, bibliothèques ou instruments) ou pour des groupes entiers de bibliothèques (catégorie de segments). Par exemple, pour exclure complètement le redis paquet du traçage ou désactiver le traçage pour toutes les bibliothèques liées à la journalisation, utilisez l'option disable de configuration.
Pour configurer ce paramètre, définissez les types ou catégories que vous souhaitez désactiver dans la com.instana.tracing.disable section de votre fichier de configuration d'agent, comme le montre l'exemple suivant :
com.instana.tracing:
disable:
redis: true # Disable Redis
console: false # Keep console enabled
logging: true # Disable the entire logging category
où :
true: Désactive le traçage pour le type ou la catégorie spécifié(e).false: Permet de maintenir explicitement le type ou la catégorie spécifié(e) activé(e).
Dans l'exemple précédent, la configuration désactive toutes les instrumentations de la logging catégorie, à l'exception de console, qui est explicitement activée. De plus, cette configuration exclut également toutes redis les sections associées du traçage. Aucune période n'est enregistrée ni communiquée pour les bibliothèques ou catégories désactivées.
Informations de support
Le tableau suivant répertorie les traceurs qui prennent en charge la désactivation des traces :
| Traceur | Permet de désactiver les traces |
|---|---|
| Node.js | ✅ |
| Go | ❌ |
| Java | ✅ |
| Python | ✅ |
| Ruby | ❌ |
| PHP | ✅ |
| .Net | ❌ |
| NGINX | ❌ |
Désactivation d' W3C
Par défaut, les traceurs d' Instana traitent et propagent les en-têtes tracestate W3C traceparent et afin de permettre la corrélation des traces distribuées. Vous pouvez désactiver la corrélation, la propagation ou les deux à la fois dans « W3C » de manière indépendante à l'aide du fichier de configuration de l'agent.
Désactivation de la corrélation « W3C »
Désactive le traitement des en-têtes « W3C » ou traceparent des tracestate en-têtes sans affecter la propagation des messages sortants.
com.instana.tracing:
global:
disable-w3c-correlation: true
Désactivation de la propagation d' W3C
Désactive l'injection d' W3C s traceparentettracestate d'en-têtes dans les requêtes sortantes.
com.instana.tracing:
global:
disable-w3c-propagation: true
Désactiver complètement l' W3C
Désactive à la fois la corrélation et la propagation des « W3C s ».
com.instana.tracing:
global:
disable-w3c: true
Informations de support
Le tableau suivant répertorie les traceurs qui permettent de désactiver l' W3C ation via la configuration de l'agent :
| Traceur | Pris en charge |
|---|---|
| Node.js | ✅ |
| Go | ❌ |
| Java | ❌ |
| Python | ❌ |
| Ruby | ❌ |
| PHP | ❌ |
| .NET | ❌ |
| NGINX | ❌ |
Capture des traces de pile
Vous pouvez configurer la capture de la trace de pile pour les segments de sortie dans l'ensemble de vos services. Par défaut, les traceurs enregistrent les 10 derniers points d'appel pour chaque intervalle de sortie capturé.
- Cette fonctionnalité n'est pas encore prise en charge par tous les traceurs.
- Les traces de pile des intervalles d'entrée d' HTTP s ne sont généralement pas collectées, car elles ne montrent que le code du framework ou le code de base du runtime.
Vous pouvez configurer deux aspects de la capture de la trace de pile :
- Longueur de la trace de pile : nombre de points d'appel à capturer.
- Valeurs prises en charge : 0 à 500
- Valeur par défaut : 10
- Mode trace de pile : comment les traces de pile sont capturées.
- Valeurs prises en charge :
all: Récupère la trace de pile pour tous les segments de sortie (par défaut).error: Ne recueille la trace de la pile que pour les segments présentant des erreurs.none: Ne recueille pas la trace de la pile.
- Valeurs prises en charge :
Pour configurer la capture de la trace de pile, définissez les paramètres dans la com.instana.tracing.global section de votre fichier de configuration d'agent, comme le montre l'exemple suivant :
com.instana.tracing:
global:
stack-trace-length: 15
stack-trace: 'error'
Dans l'exemple précédent, la configuration définit la profondeur de la trace de pile à 15 sites d'appel pour tous les intervalles de sortie et utilise le error mode.
Informations de support
Le tableau suivant répertorie les traceurs qui prennent en charge la configuration de la capture de traces de pile via la configuration de l'agent :
| Traceur | Prend en charge la configuration de la trace de pile | Version minimale de Tracer ou Collector |
|---|---|---|
| Node.js | ✅ | Instana Node.js 5.2.0, modèle de collection et versions ultérieures |
| Go | ❌ | — |
| Java | ✅ | Instana Java Tracer 2.0.20 et versions ultérieures |
| Python | ✅ | Instana Python 3.10.0, version et suivantes du paquet « sensor » |
| Ruby | ✅ | Instana Ruby gem/sensor 2.5.0 et versions ultérieures |
| PHP | ✅ | Instana PHP Tracer 5.9.0 et versions ultérieures |
| .Net | ❌ | — |
| NGINX | ❌ | — |
Ignorer les points de terminaison
Vous pouvez exclure certains points de terminaison du traçage. Par exemple, si vous utilisez le redis paquet et que vous souhaitez désactiver le suivi des commandes telles que GET, TYPE, ou d'autres, vous pouvez utiliser l'option ignore-endpoints de configuration.
- Seuls certains paquets sont pris en charge.
- Tous les traceurs ne sont pas pris en charge.
Pour plus d'informations sur les paquets et les traceurs spécifiques prenant en charge cette fonctionnalité, consultez la section « Informations sur la prise en charge ».
Options de filtrage
Vous pouvez filtrer les traces à l'aide des options suivantes :
- Filtrage par nom de méthode : cette option vous permet de filtrer les traces en fonction uniquement des noms de méthode. Cela s'avère utile lorsque vous souhaitez ignorer certaines opérations, telles que
GETles appels dansRedisouQUERYles appels dansDynamoDB. - Filtrage par nom de méthode et point de terminaison : cette option vous permet d'exclure des traces en fonction à la fois de la méthode et de points de terminaison spécifiques.
topic2Cette option est particulièrement utile pour certaines technologies, telles queKafka[...], où vous pouvez exclure les traces d'une méthode spécifique (par exemple,consume[...]) mais uniquement pour certains sujets (par exemple, [...],topic1ou [...]).
Règles de filtrage
Les règles de filtrage des traces sont les suivantes :
- Lorsqu'une trace est ignorée, toutes les traces suivantes sont également ignorées.
- Utilisez
*pour ignorer tous les points de terminaison ou toutes les méthodes. - Les valeurs des points de terminaison (telles que les noms de sujets « Kafka ») restent cohérentes d'un service à l'autre.
- Les noms des méthodes peuvent varier en fonction du langage de programmation et de la technologie utilisés. Pour déterminer la méthode et le point de terminaison appropriés pour votre service, consultez l'interface utilisateur d' Instana.
La capture d'écran suivante de l'interface utilisateur d' Instana fournit une référence visuelle permettant d'identifier la méthode et le point de terminaison appropriés pour la configuration :

Configuration des points de terminaison à exclure
Pour configurer les points de terminaison à ignorer, indiquez ceux qui doivent être exclus de la surveillance dans la com.instana.tracing.ignore-endpoints section de votre fichier de configuration d'agent, comme le montre l'exemple suivant :
com.instana.tracing:
ignore-endpoints:
# Filtering by Method Name
redis:
- 'get'
- 'type'
dynamodb:
- 'query'
kafka:
- 'send'
# Filtering by Method Name and Endpoint for Kafka
kafka:
- methods: ["consume"]
endpoints: ["topic1", "topic2"] # Exclude consume calls for topic1 and topic2
- methods: ["consume", "send"]
endpoints: ["topic3"] # Exclude both consume and send calls for topic3
- methods: ["*"]
endpoints: ["topic4"] # Exclude all methods for topic4
- methods: ["consume"]
endpoints: ["*"] # Exclude consume method for all topics
Dans l'exemple précédent, les traces suivantes sont ignorées pour les options de filtrage indiquées :
- Filtrer par méthode (
Redis,DynamoDB, etKafka)GETetTYPEles commandes dansRedisQUERYcommande dansDynamoDBSENDméthode dansKafkaet toutes les traces en aval
- Filtrer par méthode et critère d'évaluation (
Kafkauniquement)CONSUMEméthode pourtopic1ettopic2dansKafkaet toutes les traces en avalCONSUMEetSENDles méthodes pourtopic3toutes les traces enKafkaaval- Toutes les méthodes (
*) pourtopic4dansKafkaet toutes les traces en aval CONSUMEméthode pour tous les sujets (*) et toutes les traces en aval
Informations de support
Le tableau suivant répertorie les traceurs et les paquets qui prennent en charge l'ignorance des points de terminaison :
| modules pris en charge | Node.js | Java | Go | PHP | Python | Ruby | .NET | NGINX |
|---|---|---|---|---|---|---|---|---|
| Redis | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
| DynamoDB | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Kafka | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
| HTTP | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
HTTP 4xx Signalement des erreurs via les codes d'état
Par défaut, Instana ne considère pas les réponses de type « HTTP » 4xx comme des erreurs lors des appels à HTTP. Vous pouvez activer cette fonctionnalité pour surveiller les erreurs côté client, telles que les réponses 403 Forbidden répétées ou 401 Unauthorized .
- Ce paramètre s'applique uniquement aux appels sortants (de sortie) d' HTTP. Les appels entrants (d'entrée) de type « HTTP » ne sont jamais signalés comme des erreurs sur la base des codes de réponse « 4xx », quelle que soit cette configuration.
- Tous les traceurs ne sont pas pris en charge.
Les options de configuration suivantes sont disponibles sous com.instana.tracing.http.exit:
classify-all-4xx-as-errors: Signale toutes les réponses de type « 4xx » comme des erreurs.classify-as-errors: Ne signale comme erreurs que les codes d'état « 4xx » spécifiés.
Lorsque ces deux options sont activées, classify-as-errors a la priorité, et seuls les codes répertoriés sont considérés comme des erreurs. Les codes d'état pour classify-as-errors doivent se situer dans l'intervalle 400–499. Tout code ne se situant pas dans cette plage est ignoré.
Considérer toutes les réponses « 4xx » comme des erreurs
Pour traiter chaque réponse « 4xx » lors d'un appel sortant comme une erreur, ajoutez ce qui suit à votre fichier de configuration d'agent :
com.instana.tracing:
http:
exit:
classify-all-4xx-as-errors: true
Considérer certaines réponses de l' 4xx e comme des erreurs
Pour ne considérer que certains codes d'état comme des erreurs, répertoriez-les sous classify-as-errors:
com.instana.tracing:
http:
exit:
classify-as-errors:
- 401
- 403
Informations de support
Le tableau suivant répertorie les traceurs prenant en charge le signalement des erreurs via le code d'état « HTTP » 4xx :
| Traceur | Pris en charge |
|---|---|
| Node.js | ✅ |
| Go | ❌ |
| Java | ❌ |
| Python | ❌ |
| Ruby | ❌ |
| PHP | ✅ |
| .NET | ❌ |
| NGINX | ❌ |