Todos los productos
Search
Centro de documentos

Application Real-Time Monitoring Service:ARMS convergence policies

Última actualización: Sep 09, 2026

El agente de Application Real-Time Monitoring Service (ARMS) recopila datos de métricas como el conteo de solicitudes, el conteo de errores y los tiempos de respuesta. Para mejorar la diversidad y la precisión de los datos, las métricas incluyen dimensiones como direcciones IP, instrucciones SQL y URL.

Algunas dimensiones generan una gran cantidad de valores únicos, lo que se conoce como alta cardinalidad. Por ejemplo, una API RESTful con la plantilla de URL /api/v1/users/{ID}/info genera una URL distinta para cada identificador de usuario. La alta cardinalidad satura el almacenamiento, provoca pérdida de escrituras y consultas lentas, además de incrementar los costos.

Para resolver esto, ARMS aplica políticas de convergencia que reemplazan los valores de dimensión de alta cardinalidad por marcadores de posición normalizados.

Nota

En el agente de ARMS V4.x y versiones posteriores, toda la convergencia se ejecuta en el agente, lo que garantiza un 100 % de precisión en los datos. Los valores originales y los convergidos se registran en los datos de trazas. Use

Trace Explorer

para consultar los valores originales antes de la convergencia.

Referencia rápida: formatos de convergencia

A continuación se presenta una tabla que resume los formatos de los marcadores de posición y cuándo aparece cada uno.

Formato

Escenario

{ARMS_IP}:port

El número de direcciones IP que acceden al mismo puerto supera el umbral (predeterminado: 50).

{ARMS_STATIC_REQ} o {ARMS_S_XXX}

La URL apunta a un recurso estático.

{ARMS_ATTACK_REQ}

La URL contiene cadenas que pueden aprovecharse para ciberataques.

{ARMS_PARAMED_REQ}

La URL contiene parámetros de consulta.

{ARMS_OTHERS}

El número de valores de dimensión registrados en un periodo de tiempo supera el umbral del espacio de cardinalidad. Consulte Cardinality space convergence para ver los umbrales predeterminados.

{ARMS_NUMBER}

Los segmentos de ruta de la URL (separados por /) son solo dígitos y resultan demasiado largos o muy variados.

{ARMS_WORD}

Los segmentos de ruta de la URL (separados por /) son solo palabras y resultan demasiado largos o muy variados.

{ARMS_ANY}

Los segmentos de ruta de la URL (separados por /) son cadenas mixtas de letras y dígitos, y resultan demasiado largos o muy variados.

{XXX}

La URL usa anotaciones de Spring Controller.

Cadena que contiene *

Convergencia basada en estadísticas de memoria (solo para agentes de ARMS anteriores a la V4.x).

Políticas de convergencia

Todas las políticas de convergencia están habilitadas de forma predeterminada. Se puede deshabilitar manualmente cualquier política, excepto la convergencia de espacio de cardinalidad.

Nota

Cada política admite tipos de datos específicos. El tipo de dato compatible se indica en la sección correspondiente de cada política.

Convergencia basada en anotaciones de Spring

En las API RESTful con variables de ruta, usar las URL de solicitud sin procesar como valores de dimensión provoca divergencia. ARMS lee la información de ruta desde las anotaciones de enrutamiento de Spring (como @RequestMapping) y utiliza la ruta definida en la anotación como valor de dimensión.

Propiedad

Detalles

Lógica

Lee la información de ruta de las anotaciones de enrutamiento de las URL de Spring.

Formato

El valor configurado en las anotaciones de enrutamiento.

Tipo de dato compatible

URL (solo URL de servicio entrantes; no se admiten URL salientes).

Ubicación

Agente de ARMS

Versiones de agente compatibles

2.9.1.2 y posteriores

Ejemplo

El siguiente APIController define un endpoint RESTful que recupera información de usuarios mediante una variable de ruta. La anotación @RequestMapping("/api/v1/user/{userId}/info") especifica el patrón de la URL.

@RestController
@RequestMapping("/api/v1")
public class APIController {

    @RequestMapping("/user/{userId}/info")
    public String getUserInfo(@PathVariable("userId") String userId) {
        return "hello " + userId;
    }
}

Resultado: /api/v1/user/1234/info converge a /api/v1/user/{userId}/info.

Convergencia basada en estadísticas de memoria

Cuando las aplicaciones no usan el framework Spring Web, o si la convergencia basada en anotaciones falla, ARMS recurre a la convergencia basada en estadísticas de memoria.

Nota

Esta política solo aplica a versiones del agente de ARMS anteriores a la V4.x.

Propiedad

Detalles

Lógica

1. Divide cada entrada mediante delimitadores predefinidos (como / o =) para identificar un conjunto de términos. 2. Cuenta el número de valores distintos en cada posición (cardinalidad). Si la cardinalidad supera un umbral predefinido, el término en esa posición se reemplaza por *.

Formato

Cadena que contiene *.

Tipos de datos compatibles

Todos

Ubicación

Agente de ARMS

Versiones de agente compatibles

2.x, y versiones posteriores a 2.x pero anteriores a 4.x

Ejemplo

Una aplicación proporciona la plantilla de URL /api/v1/user/${userId}/info. El módulo de estadísticas de memoria detecta divergencia en los identificadores de usuario y hace que la URL converja a /api/v1/user/*/info.

Convergencia personalizada

Defina reglas de convergencia personalizadas para comparar URL con expresiones regulares y reemplazarlas por un destino específico.

Propiedad

Detalles

Lógica

Evalúa las reglas de convergencia personalizadas de forma secuencial. Se aplica la primera regla que coincida.

Formato

Determinado por su configuración.

Tipo de dato compatible

URL

Ubicación

Agente de ARMS V4.x y posteriores: agente. Agente de ARMS anterior a V4.x: servidor.

Versiones de agente compatibles

Todas

Ejemplo

Regla personalizada: hacer que todas las URL que coincidan con /api/v1/user/[\d]+/info converjan a /api/v1/getUserInfo.

Resultado: todas las URL que coinciden con la expresión regular /api/v1/user/[\d]+/info convergen a /api/v1/getUserInfo.

Convergencia de recursos estáticos

Algunas versiones anteriores del agente de ARMS monitorean métricas de recursos estáticos. Dado que las URL de estos recursos cambian con frecuencia, la convergencia para dichas métricas está habilitada de forma predeterminada.

Propiedad

Detalles

Lógica

Comprueba si el sufijo de la URL coincide con la lista predeterminada de extensiones de recursos estáticos. De ser así, la URL converge.

Formato

Predeterminado: {ARMS_STATIC_REQ}. Si envía un ticket para habilitar la configuración avanzada, el formato incluye el sufijo del recurso (por ejemplo, {ARMS_S_JPG}).

Tipo de dato compatible

URL

Ubicación

Agente de ARMS V4.x y posteriores: agente. Agente de ARMS anterior a V4.x: servidor.

Versiones de agente compatibles

Todas

Extensiones de recursos estáticos predeterminadas:

.log .7z .tgz .jpg .jpeg .png .gif .css .js .ico .woff2 .xml .svg .pdf .txt .text .ppt .word .xlsx .tar.gz .tar.bz2 .sh .yml .yaml .zip .gz .ttf .woff .eot .rar .properties

Ejemplo

De forma predeterminada, /api/v1/hello.jpg converge a {ARMS_STATIC_REQ}. Con la configuración avanzada habilitada, converge a {ARMS_S_JPG}.

Convergencia de solicitudes de ciberataque

Los servicios pueden recibir solicitudes de ciberataque (como intentos de leer el archivo /etc/passwd). Estas solicitudes las elaboran los atacantes y cambian con frecuencia, por lo que registrarlas todas satura los recursos de almacenamiento.

Propiedad

Detalles

Lógica

Comprueba si una URL contiene caracteres que suelen aprovecharse para ciberataques. De ser así, la URL converge.

Formato

{ARMS_ATTACK_REQ}

Tipo de dato compatible

URL

Ubicación

Agente de ARMS V4.x y posteriores: agente. Agente de ARMS anterior a V4.x: servidor.

Versiones de agente compatibles

Todas

Caracteres predeterminados: ' $ \ ' !

Ejemplo

/app/v1/user/info?cmd='more /etc/passwd' converge a {ARMS_ATTACK_REQ}.

Convergencia de parámetros de consulta

De forma predeterminada, el agente de ARMS no captura los parámetros de consulta al recopilar URL. Sin embargo, algunas URL contienen parámetros de consulta que pueden provocar divergencia.

Propiedad

Detalles

Lógica

Comprueba si una URL contiene parámetros de consulta. De ser así, la URL converge.

Formato

Predeterminado: {ARMS_PARAMED_REQ}. Si envía un ticket para habilitar la configuración avanzada, el resultado de la convergencia conserva la ruta de la URL y reemplaza los parámetros por {ARMS_REQ_PARAMS}.

Tipo de dato compatible

URL

Ubicación

Agente de ARMS V4.x y posteriores: agente. Agente de ARMS anterior a V4.x: servidor.

Versiones de agente compatibles

Todas

Delimitadores de parámetros de consulta predeterminados: ; ? &

Ejemplo

De forma predeterminada, /api/v1/user/info?userId=12345 converge a {ARMS_PARAMED_REQ}. Con la configuración avanzada habilitada, converge a /api/v1/user/info?{ARMS_REQ_PARAMS}.

Convergencia de palabras sin significado

Las URL con palabras o cadenas de dígitos demasiado largas tienden a divergir. ARMS reemplaza los segmentos de ruta que superan los umbrales de longitud especificados.

Propiedad

Detalles

Lógica

Divide una URL en una matriz de términos mediante la barra diagonal (/) y compara cada término con los siguientes umbrales de longitud: longitud máxima de palabra (64 caracteres), longitud máxima de dígitos (10 caracteres) y longitud máxima de dígitos dentro de una palabra (10 caracteres).

Formato

Dígitos demasiado largos: {ARMS_NUMBER}. Palabras demasiado largas: {ARMS_WORD}. Cadenas alfanuméricas mixtas demasiado largas: {ARMS_ANY}.

Tipo de dato compatible

URL

Ubicación

Agente de ARMS V4.x y posteriores: agente. Agente de ARMS anterior a V4.x: servidor.

Versiones de agente compatibles

Todas

Ejemplo

/api/2024040710/hello2024040710 converge a /api/{ARMS_NUMBER}/{ARMS_ANY}.

Convergencia inteligente

Después de aplicar las políticas anteriores, es posible que queden algunas URL divergentes. ARMS genera periódicamente reglas de convergencia mediante algoritmos para gestionar estas URL.

Propiedad

Detalles

Lógica

1. Agrupa URL de muestra mediante algoritmos. 2. Identifica el patrón de URL de cada grupo y genera reglas de convergencia. 3. Combina las reglas de convergencia entre grupos.

Formato

Segmentos de dígitos divergentes: {ARMS_NUMBER}. Segmentos de letras divergentes: {ARMS_WORD}. Segmentos alfanuméricos mixtos divergentes: {ARMS_ANY}.

Tipo de dato compatible

URL

Ubicación

Agente de ARMS V4.x y posteriores: agente. Agente de ARMS anterior a V4.x: servidor.

Versiones de agente compatibles

Todas

Ejemplo

/api/product/1/info
/api/product/2/info
....
/api/product/N/info

El servidor compara estas URL mediante la expresión regular /api/product/[\d]+/info y las hace converger a /api/product/{ARMS_NUMBER}/info.

Normalización de SQL

El agente de ARMS puede recopilar una gran cantidad de instrucciones SQL debido a la fragmentación (sharding), las anotaciones o los literales en línea. ARMS normaliza cada instrucción SQL al reemplazar los valores divergentes.

Propiedad

Detalles

Lógica

1. Elimina las anotaciones. 2. Reemplaza el texto sin formato. 3. Reemplaza los nombres de bases de datos y tablas fragmentadas.

Formato

Se reemplazan los dígitos o letras divergentes.

Tipo de dato compatible

SQL

Ubicación

Agente de ARMS

Versiones de agente compatibles

4.x y posteriores

Ejemplo

select * from cache_0 where ckey='23'

Resultado:

select * from cache_{NUM} where ckey=?

Convergencia de direcciones IP

Si su aplicación depende de muchos servicios externos a los que se accede mediante direcciones IP, el agente de ARMS puede recopilar una gran cantidad de direcciones IP únicas, lo que provoca divergencia.

Propiedad

Detalles

Lógica

1. Agrupa las direcciones IP por puerto. 2. Aplica la convergencia si el número de direcciones IP en un grupo supera el umbral (predeterminado: 50).

Formato

{ARMS_IP}:port

Tipo de dato compatible

IP

Ubicación

Agente de ARMS V4.x y posteriores: agente. Agente de ARMS anterior a V4.x: servidor.

Versiones de agente compatibles

Todas

Ejemplo

1.1.1.1:8080
...
1.1.1.255:8080

Estas direcciones IP convergen a {ARMS_IP}:8080.

Convergencia de espacio de cardinalidad

Las políticas anteriores resuelven la mayoría de los problemas de alta cardinalidad en las URL. Sin embargo, en las instrucciones SQL y otros tipos de datos aún se puede registrar una gran cantidad de valores de dimensión. Para evitarlo, ARMS limita el número de valores de dimensión que se registran en cada periodo de tiempo.

Nota

Esta política no se puede deshabilitar manualmente.

Propiedad

Detalles

Lógica

1. Genera periódicamente un espacio de cardinalidad de tamaño fijo. 2. Para cada valor de dimensión, comprueba si existe en el espacio de cardinalidad. Si existe, devuelve el valor tal cual. Si no, lo agrega al espacio de cardinalidad. Si el espacio está lleno, devuelve {ARMS_OTHERS}.

Formato

{ARMS_OTHERS}

Tipos de datos compatibles

Todos

Ubicación

Agente de ARMS V4.x y posteriores: agente. Agente de ARMS anterior a V4.x: servidor.

Versiones de agente compatibles

Todas

Umbrales horarios predeterminados

Elemento

Umbral horario

Interfaz de URL

500

Tarea de programación

1,000

Interfaz RPC

1,000

Interfaz ascendente

200

Llamada SQL normal

100

Llamada SQL lenta

100

URL de solicitud externa

200

Dirección de solicitud externa

100

Ejemplo

Suponga que el tamaño del espacio de cardinalidad se establece en 100 registros por hora. Direcciones de servicios externos:

www.a1.com
www.a2.com
....
www.a1000.com

Solo se registran las primeras 100 direcciones por hora. Las direcciones posteriores convergen a {ARMS_OTHERS}.

Orden de ejecución

Las políticas de convergencia se ejecutan de forma secuencial en el orden que se muestra a continuación. Una vez que un valor de dimensión coincide con una política, se omiten las restantes.

Agente de ARMS anterior a V4.x

En el lado del agente:

  • URL: Convergencia basada en anotaciones de Spring > Convergencia basada en estadísticas de memoria

  • SQL: Convergencia basada en estadísticas de memoria

  • IP y otros: Convergencia basada en estadísticas de memoria

En el lado del servidor:

  • URL: Convergencia personalizada > Convergencia de solicitudes de ciberataque > Convergencia de parámetros de consulta > Convergencia de recursos estáticos > Convergencia de palabras sin significado > Convergencia inteligente > Convergencia de espacio de cardinalidad

  • SQL: Convergencia personalizada > Convergencia de espacio de cardinalidad

  • IP y otros: Convergencia personalizada > Convergencia de direcciones IP > Convergencia de espacio de cardinalidad

Agente de ARMS V4.x y posteriores

En el lado del agente:

  • URL: Convergencia basada en anotaciones de Spring > Convergencia personalizada > Convergencia de solicitudes de ciberataque > Convergencia de parámetros de consulta > Convergencia de recursos estáticos > Convergencia de palabras sin significado > Convergencia inteligente > Convergencia de espacio de cardinalidad

  • SQL: Convergencia personalizada > Normalización de SQL > Convergencia de espacio de cardinalidad

  • IP y otros: Convergencia personalizada > Convergencia de direcciones IP > Convergencia de espacio de cardinalidad

En el lado del servidor: No aplica (toda la convergencia se ejecuta en el agente).

Preguntas frecuentes

¿Cómo consulto los valores originales antes de la convergencia?

  • Agente de ARMS V4.x y posteriores: Tanto los valores originales como los convergidos se registran en los datos de trazas. Use Trace Explorer para consultar los valores originales.

  • Agente de ARMS anterior a V4.x: Los valores originales no están disponibles porque la convergencia ocurre en el servidor.

¿Cómo personalizo las reglas de convergencia?

Defina reglas de convergencia personalizadas en la consola de ARMS. En la página de detalles de la aplicación, elija Configuration > Convergence en la barra de navegación superior.

image

Por ejemplo, especifique la expresión regular /api/v1/user/\d+/info para que todas las URL coincidentes converjan a /api/v1/user/userId/info. Así, la URL /api/v1/user/124343543/info converge a /api/v1/user/userId/info.

¿Cómo excluyo URL específicas de la convergencia?

Especifique las URL que desea excluir de la convergencia en la consola de ARMS. Vaya a la misma página Configuration > Convergence descrita en la pregunta anterior.

Por ejemplo, si excluye /api/v1/user/9999/info de la convergencia, esta URL no convergerá a /api/v1/user/userId/info.

¿Cuál es la diferencia entre la convergencia en el agente y en el servidor?

La convergencia en el lado del agente procesa los datos en el agente de ARMS antes de enviarlos al servidor. Esto reduce la carga de procesamiento del servidor y garantiza un 100 % de precisión en los datos.

La convergencia en el lado del servidor se aplica cuando la versión del agente no es compatible con ciertas políticas. Sin la convergencia en el agente, este envía paquetes de datos sin converger al servidor. Los paquetes grandes generan dos riesgos:

  • Pérdida de datos: los paquetes demasiado grandes pueden rechazarse.

  • Menor precisión: las limitaciones de procesamiento del servidor pueden afectar la precisión de los datos convergidos.

Actualice a la versión más reciente del agente de ARMS para ejecutar todas las políticas de convergencia en el agente.