Les règles d’obfuscation vous permettent de masquer les données sensibles avant que l’agent ne les transmette à New Relic. Chaque règle est un motif regex associé à une chaîne de remplacement. L’agent applique les règles dans l’ordre à chaque valeur d’attribut de chaîne dans chaque événement sortant — y compris QoE events et les événements récupérés après un plantage.
Comment ça marche
- Vous définissez une liste d’objets
ObfuscationRule, chacun avec un modèle d’expression régulière et une chaîne de remplacement. - Passez la liste à
.withObfuscationRules()dans le générateur de configuration. - Juste avant chaque transmission HTTP,
ObfuscationEngineitère chaque attribut de chaîne de chaque événement du lot et applique les règles dans l’ordre. - Seules les valeurs de chaîne sont traitées — les entiers, les longs, les booléens et les valeurs nulles sont transmis sans modification.
- Les objets d’événement d’origine ne sont jamais mutés, de sorte que les lots ayant échoué peuvent être réessayés proprement sans double obfuscation.
Configuration
import com.newrelic.videoagent.core.ObfuscationRule;import java.util.Arrays;import java.util.List;
// Define rules — each rule is a regex pattern and a replacement string.// Rules are applied in order on every string attribute of every outgoing event.List<ObfuscationRule> obfuscationRules = Arrays.asList( // Mask account IDs: "account-83729" → "ACCOUNT_ID" new ObfuscationRule("account-\\d+", "ACCOUNT_ID"),
// Mask auth tokens: "token=abc123xyz" → "token=REDACTED" new ObfuscationRule("token=[^&\"]+", "token=REDACTED"),
// Mask user path segments: "/users/john_doe" → "/users/USER_ID" new ObfuscationRule("/users/[^\"/]+", "/users/USER_ID"));
NRVideoConfiguration config = new NRVideoConfiguration.Builder("application-token") .autoDetectPlatform(getApplicationContext()) .withHarvestCycle(5 * 60) .withObfuscationRules(obfuscationRules) .build();
NRVideo.newBuilder(getApplicationContext()).withConfiguration(config).build();ObfuscationRule
new ObfuscationRule(String pattern, String replacement)paramètres | Type | Description |
|---|---|---|
|
| Une chaîne de motif regex Java. Compilé de manière anticipée — un motif non valide lève |
|
| La chaîne à substituer pour chaque correspondance. Utilisez |
obfuscationRules
Une liste d’objets ObfuscationRule appliquée à chaque attribut de chaîne de chaque événement sortant immédiatement avant la transmission HTTP. Les règles s’exécutent dans l’ordre dans lequel elles sont déclarées — la sortie d’une règle alimente la suivante. Par défaut : liste vide (aucune obfuscation).
Modèles courants
Ce qu’il faut masquer | Modèle | Remplacement |
|---|---|---|
ID de compte numériques |
|
|
Jetons d’authentification/au porteur |
|
|
Segments de chemin utilisateur |
|
|
Adresses e-mail |
|
|
UUID |
|
|
Ordre des règles
Les règles sont appliquées de gauche à droite. La sortie de la règle N devient l’entrée de la règle N + 1. L’ordre est important lorsque le remplacement d’une règle peut correspondre au modèle d’une règle ultérieure.
// Rule 1 turns "/john" into "/USER", then Rule 2 sees "/USER_profile" and masks it.new ObfuscationRule("john", "USER"),new ObfuscationRule("USER_profile", "PROFILE")// Result: "/john_profile" → "/USER_profile" → "/PROFILE"Cas limites
Situation | Comportement |
|---|---|
Aucune règle configurée | No-op — aucune surcharge, la liste d’origine est renvoyée telle quelle. |
Le motif ne correspond à rien | La valeur est transmise sans modification. |
Remplacement vide | Le contenu correspondant est supprimé. |
| Traités comme des caractères simples (et non comme des références arrière d’expression régulière). |
Valeur de type entier/long/booléen | Ignoré — seules les valeurs |
| Ignoré — pas de NullPointerException. |
Motif regex invalide |
|
|
|
Échec de l’envoi HTTP → nouvelle tentative de lettre morte | Les événements originaux (non obfusqués) sont réessayés ; l’obfuscation est réappliquée correctement lors de la passe de réessai. |