Las reglas de ofuscación le permiten enmascarar datos confidenciales antes de que el agente los transmita a New Relic. Cada regla es un patrón regex emparejado con una cadena de reemplazo. El agente aplica las reglas en orden a cada valor de atributo de cadena en cada evento saliente — incluyendo QoE events y eventos recuperados de fallas.
Cómo funciona
- Define una lista de objetos
ObfuscationRule, cada uno con un patrón de expresión regular y una cadena de reemplazo. - Pase la lista a
.withObfuscationRules()en el generador de configuración. - Justo antes de cada transmisión HTTP,
ObfuscationEngineitera cada atributo de cadena de cada evento en el lote y aplica las reglas en orden. - Solo se procesan los valores de cadena — los enteros, largos, booleanos y nulos se pasan sin cambios.
- Los objetos de evento originales nunca se mutan, por lo que los lotes fallidos se pueden reintentar limpiamente sin doble ofuscación.
Configuración
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)Parámetro | Tipo | Descripción |
|---|---|---|
|
| Una cadena de patrón regex de Java. Compilado de forma anticipada — un patrón inválido arroja |
|
| La cadena a sustituir para cada coincidencia. Usa |
obfuscationRules
Una lista de objetos ObfuscationRule aplicados a cada atributo de cadena de cada evento saliente inmediatamente antes de la transmisión HTTP. Las reglas se ejecutan en el orden en que se declaran — la salida de una regla alimenta a la siguiente. Predeterminado: lista vacía (sin ofuscación).
Patrones comunes
Qué enmascarar | Patrón | Reemplazo |
|---|---|---|
ID de cuenta numéricos |
|
|
Tokens de autenticación/portador |
|
|
Segmentos de ruta de usuario |
|
|
Correos electrónicos |
|
|
UUID |
|
|
Ordenamiento de reglas
Las reglas se aplican de izquierda a derecha. La salida de la regla N se convierte en la entrada de la regla N + 1. El orden importa cuando el reemplazo de una regla podría coincidir con el patrón de una regla posterior.
// 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"Casos extremos
Situación | Comportamiento |
|---|---|
Sin reglas configuradas | No-op — cero sobrecarga, la lista original se devuelve tal cual. |
El patrón no coincide con nada | El valor se transmite sin cambios. |
Reemplazo vacío | El contenido coincidente se elimina. |
| Tratados como caracteres simples (no como referencias inversas de expresiones regulares). |
Valor Integer / Long / Boolean | Omitido — solo se procesan los valores |
| Omitido — sin NullPointerException. |
Patrón regex inválido |
|
|
|
Falla el envío HTTP → reintento de dead-letter | Los eventos originales (sin ofuscar) se reintentan; la ofuscación se vuelve a aplicar correctamente en la pasada de reintento. |