Exemples de processeurs de télémétrie - Azure Monitor Application Insights pour Java
Article
Cet article fournit des exemples de processeurs de télémétrie dans Application Insights pour Java, notamment des exemples pour les configurations d’inclusion et d’exclusion. Cela inclut également des exemples pour les processeurs d’attributs et les processeurs d’étendue.
Exemples d’inclusion et d’exclusion d’étendues
Dans cette section, découvrez comment inclure et exclure des étendues. Vous verrez également comment exclure plusieurs étendues et appliquer un traitement sélectif.
Inclure des étendues
Cette section montre comment inclure des étendues pour un processeur d’attributs. Le processeur ne traite pas les étendues qui ne correspondent pas aux propriétés.
Une correspondance exige que le nom de l’étendue soit égal à spanA ou spanB.
Ces étendues correspondent aux propriétés include et les actions de processeur sont appliquées :
Cette section montre comment exclure des étendues pour un processeur d’attributs. Ce processeur ne traite pas les étendues qui correspondent aux propriétés.
Une correspondance exige que le nom de l’étendue soit égal à spanA ou spanB.
Les étendues suivantes correspondent aux propriétés exclude et les actions du processeur ne sont pas appliquées :
Exclure des étendues à l’aide de plusieurs critères
Cette section montre comment exclure des étendues pour un processeur d’attributs. Ce processeur ne traite pas les étendues qui correspondent aux propriétés.
Une correspondance requiert que les conditions suivantes soient remplies :
Il faut qu’un attribut (par exemple env avec la valeur dev) existe dans l’étendue.
L’étendue doit avoir un attribut qui a la clé test_request.
Les étendues suivantes correspondent aux propriétés exclude et les actions du processeur ne sont pas appliquées.
Cette section montre comment spécifier le jeu de propriétés d’étendue qui indiquent les étendues auxquelles ce processeur doit être appliqué. Les propriétés include indiquent les étendues à traiter. Les propriétés exclude filtrent les étendues qui ne doivent pas être traitées.
Dans la configuration suivante, les étendues correspondent aux propriétés et les actions du processeur sont appliquées :
L’exemple suivant utilise la valeur de l’attribut anotherkey pour insérer le nouvel attribut {"newKey": "<value from attribute anotherkey>"} dans des étendues et des journaux où la clé newKey n’existe pas. Si l’attribut anotherkey n’existe pas, aucun nouvel attribut n’est inséré dans les étendues et journaux.
L’exemple suivant met à jour l’attribut avec la valeur {"db.secret": "redacted"}. Il met à jour l’attribut boo en utilisant la valeur de l’attribut foo. Les étendues et journaux qui ne possèdent pas l’attribut boo ne changent pas.
L’exemple suivant montre comment utiliser une expression régulière (regex) pour créer de nouveaux attributs basés sur la valeur d’un autre attribut.
Par exemple, avec url.path = /path?queryParam1=value1,queryParam2=value2, les attributs suivants sont insérés :
Par exemple, étant donné que url.path = https://example.com/user/12345622 est mis à jour pour url.path = https://example.com/user/**** à l’aide de l’une des configurations ci-dessous.
À partir de la version 3.4.19 GA, les processeurs de télémétrie prennent en charge les attributs typés sans chaîne : boolean, double, long, boolean-array, double-array, long-arrayet string-array.
Lorsque attributes.type n’est pas fourni dans le json, il prend par défaut la valeur string.
L’exemple suivant insère le nouvel attribut {"newAttributeKeyStrict": "newAttributeValueStrict"} dans des étendues et des journaux où les attributs correspondent aux exemples suivants : {"longAttributeKey": 1234}{"booleanAttributeKey": true}{"doubleArrayAttributeKey": [1.0, 2.0, 3.0, 4.0]}
De plus, les attributs typés sans chaîne prennent en charge regexp.
L’exemple suivant insère le nouvel attribut {"newAttributeKeyRegexp": "newAttributeValueRegexp"} dans des étendues et des journaux où l’attribut longRegexpAttributeKey correspond à la valeur de 400 à 499.
L’exemple suivant spécifie les valeurs des attributs db.svc, operation et id. Il forme le nouveau nom de l’étendue en utilisant ces attributs, dans cet ordre, séparés par la valeur ::.
Supposons que le nom d’étendue en entrée est /api/v1/document/12345678/update. L’exemple suivant donne le nom d’étendue en sortie /api/v1/document/{documentId}/update. Il ajoute le nouvel attribut documentId=12345678 à l’étendue.
Extraire des attributs d’un nom d’étendue avec les opérations d’inclusion (include) et d’exclusion (exclude)
L’exemple suivant montre comment modifier le nom d’étendue en {operation_website}. Il ajoute un attribut avec la clé operation_website et la valeur {oldSpanName} lorsque l’étendue a les propriétés suivantes :
Extraction des attributs du corps d’un message de journal
Supposons que le corps du message de journal d’entrée soit Starting PetClinicApplication on WorkLaptop with PID 27984 (C:\randompath\target\classes started by userx in C:\randompath). L’exemple suivant donne en sortie le corps du message Starting PetClinicApplication on WorkLaptop with PID {PIDVALUE} (C:\randompath\target\classes started by userx in C:\randompath). Il ajoute le nouvel attribut PIDVALUE=27984 au journal.
Masquage de données sensibles dans un message de journal
L’exemple suivant montre comment masquer les données sensibles dans le corps d’un message de journal à l’aide du processeur de journaux et du processeur d’attributs.
Supposons que le corps du message de journal d’entrée soit User account with userId 123456xx failed to login. Le processeur de journaux remplace le corps du message de sortie par User account with userId {redactedUserId} failed to login. Le processeur d’attributs, lui, supprime le nouvel attribut redactedUserId, qui a été ajouté à l’étape précédente.
Pourquoi le processeur de journaux ne traite-t-il pas les fichiers journaux en utilisant TelemetryClient.trackTrace() ?
TelemetryClient.trackTrace() fait partie du pont du SDK classique Application Insights, et les processeurs de journaux fonctionnent uniquement avec la nouvelle instrumentation basée sur OpenTelemetry.
Dans ce module, vous allez découvrir comment utiliser la télémétrie pour enregistrer le comportement d’une application native Cloud, et comment la pile .NET Aspire facilite le stockage des données et son affichage ultérieur.