Todos os produtos
Search
Central de documentação

Application Real-Time Monitoring Service:ARMS convergence policies

Última atualização: Oct 20, 2026

O agente do Application Real-Time Monitoring Service (ARMS) coleta dados de métricas como contagem de requisições, contagem de erros e tempos de resposta. Para melhorar a diversidade e a precisão dos dados, as métricas incluem dimensões como endereços IP, instruções SQL e URLs.

Algumas dimensões podem gerar um grande número de valores únicos, caracterizando alta cardinalidade. Por exemplo, uma API RESTful com o modelo de URL /api/v1/users/{ID}/info gera uma URL distinta para cada ID de usuário. A alta cardinalidade sobrecarrega o armazenamento, causa perda de gravação e consultas lentas, além de aumentar os custos.

Para resolver isso, o ARMS aplica políticas de convergência que substituem valores de dimensão de alta cardinalidade por placeholders normalizados.

Nota

No agente ARMS V4.x e versões posteriores, toda a convergência ocorre no agente, garantindo 100% de precisão dos dados. Tanto os valores originais quanto os convergidos são registrados nos dados de rastreamento. Use o

Trace Explorer

para visualizar os valores originais antes da convergência.

Referência rápida: formatos de convergência

A tabela a seguir resume os formatos de placeholder e quando cada um aparece.

Formato

Cenário

{ARMS_IP}:port

O número de endereços IP acessando a mesma porta excede o limiar (padrão: 50).

{ARMS_STATIC_REQ} ou {ARMS_S_XXX}

A URL aponta para um recurso estático.

{ARMS_ATTACK_REQ}

A URL contém strings exploráveis em ciberataques.

{ARMS_PARAMED_REQ}

A URL contém parâmetros de consulta.

{ARMS_OTHERS}

O número de valores de dimensão registrados em um período excede o limiar do espaço de cardinalidade. Para os limiares padrão, consulte Convergência de espaço de cardinalidade.

{ARMS_NUMBER}

Os segmentos de caminho da URL (separados por /) contêm apenas dígitos e são excessivamente longos ou muito variados.

{ARMS_WORD}

Os segmentos de caminho da URL (separados por /) contêm apenas palavras e são excessivamente longos ou muito variados.

{ARMS_ANY}

Os segmentos de caminho da URL (separados por /) são strings mistas de letras e dígitos, excessivamente longas ou muito variadas.

{XXX}

A URL utiliza anotações do Spring Controller.

String contendo *

Convergência baseada em estatísticas de memória (apenas para agente ARMS anterior à V4.x).

Políticas de convergência

Todas as políticas de convergência estão ativadas por padrão. Exceto pela convergência de espaço de cardinalidade, você pode desativar todas manualmente.

Nota

Cada política suporta tipos de dados específicos. A seção de cada política abaixo especifica o tipo de dado suportado.

Convergência baseada em anotações do Spring

Em APIs RESTful com variáveis de caminho, usar URLs de requisição brutas como valores de dimensão leva à divergência. O ARMS lê as informações de caminho das anotações de roteamento do Spring (como @RequestMapping) e usa o caminho definido pela anotação como valor da dimensão.

Propriedade

Detalhes

Lógica

Lê as informações de caminho das anotações de roteamento das URLs do Spring.

Formato

O valor configurado nas anotações de roteamento.

Tipo de dado suportado

URL (apenas URLs de service de entrada; URLs de saída não são suportadas).

Localização

Agente ARMS

Versões do agente suportadas

2.9.1.2 e posteriores

Exemplo

O seguinte APIController define um endpoint RESTful que recupera informações do usuário usando uma variável de caminho. A anotação @RequestMapping("/api/v1/user/{userId}/info") especifica o padrão da 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 para /api/v1/user/{userId}/info.

Convergência baseada em estatísticas de memória

Para aplicações que não usam o framework Spring Web, ou quando a convergência baseada em anotações falha, o ARMS recorre à convergência baseada em estatísticas de memória.

Nota

Esta política se aplica apenas a versões do agente ARMS anteriores à V4.x.

Propriedade

Detalhes

Lógica

1. Divide cada entrada por delimitadores predefinidos (como / ou =) para identificar um conjunto de termos. 2. Conta o número de valores distintos em cada posição (cardinalidade). Se a cardinalidade exceder um limiar predefinido, substitui o termo nessa posição por *.

Formato

String contendo *.

Tipos de dados suportados

Todos

Localização

Agente ARMS

Versões do agente suportadas

2.x e versões posteriores a 2.x, mas anteriores a 4.x

Exemplo

Uma aplicação fornece o modelo de URL /api/v1/user/${userId}/info. O módulo de estatísticas de memória detecta divergência nos IDs de usuário e converge a URL para /api/v1/user/*/info.

Convergência personalizada

Defina regras de convergência personalizadas para corresponder URLs a expressões regulares e substituí-las por um alvo especificado.

Propriedade

Detalhes

Lógica

Corresponde às regras de convergência personalizadas sequencialmente. Aplica a primeira regra correspondente.

Formato

Determinado pela sua configuração.

Tipo de dado suportado

URL

Localização

Agente ARMS V4.x e posteriores: agente. Agente ARMS anterior à V4.x: servidor.

Versões do agente suportadas

Todas

Exemplo

Regra personalizada: convergir todas as URLs que correspondem a /api/v1/user/[\d]+/info para /api/v1/getUserInfo.

Resultado: todas as URLs que correspondem à expressão regular /api/v1/user/[\d]+/info convergem para /api/v1/getUserInfo.

Convergência de recursos estáticos

Algumas versões mais antigas do agente ARMS monitoram métricas de recursos estáticos. Como as URLs de recursos estáticos mudam frequentemente, a convergência para essas métricas é ativada por padrão.

Propriedade

Detalhes

Lógica

Verifica se o sufixo da URL corresponde à lista padrão de extensões de recursos estáticos. Em caso afirmativo, converge a URL.

Formato

Padrão: {ARMS_STATIC_REQ}. Se você enviar um ticket para ativar a configuração avançada, o formato incluirá o sufixo do recurso (por exemplo, {ARMS_S_JPG}).

Tipo de dado suportado

URL

Localização

Agente ARMS V4.x e posteriores: agente. Agente ARMS anterior à V4.x: servidor.

Versões do agente suportadas

Todas

Extensões padrão de recursos estáticos:

.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

Exemplo

Por padrão, /api/v1/hello.jpg converge para {ARMS_STATIC_REQ}. Com a configuração avançada ativada, converge para {ARMS_S_JPG}.

Convergência de requisições de ciberataque

Os services podem receber requisições de ciberataque (como tentativas de ler o arquivo /etc/passwd). Essas requisições são criadas por invasores e mudam frequentemente. Registrar todas elas sobrecarrega os recursos de armazenamento.

Propriedade

Detalhes

Lógica

Verifica se uma URL contém caracteres comumente explorados em ciberataques. Em caso afirmativo, converge a URL.

Formato

{ARMS_ATTACK_REQ}

Tipo de dado suportado

URL

Localização

Agente ARMS V4.x e posteriores: agente. Agente ARMS anterior à V4.x: servidor.

Versões do agente suportadas

Todas

Caracteres padrão: ' $ \ ' !

Exemplo

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

Convergência de parâmetros de consulta

Por padrão, o agente ARMS não captura parâmetros de consulta ao coletar URLs. No entanto, algumas URLs contêm parâmetros de consulta que podem levar à divergência.

Propriedade

Detalhes

Lógica

Verifica se uma URL contém parâmetros de consulta. Em caso afirmativo, converge a URL.

Formato

Padrão: {ARMS_PARAMED_REQ}. Se você enviar um ticket para ativar a configuração avançada, o resultado da convergência mantém o caminho da URL e substitui os parâmetros por {ARMS_REQ_PARAMS}.

Tipo de dado suportado

URL

Localização

Agente ARMS V4.x e posteriores: agente. Agente ARMS anterior à V4.x: servidor.

Versões do agente suportadas

Todas

Delimitadores padrão de parâmetros de consulta: ; ? &

Exemplo

Por padrão, /api/v1/user/info?userId=12345 converge para {ARMS_PARAMED_REQ}. Com a configuração avançada ativada, converge para /api/v1/user/info?{ARMS_REQ_PARAMS}.

Convergência de palavras sem significado

URLs com palavras excessivamente longas ou strings de dígitos tendem a divergir. O ARMS substitui segmentos de caminho que excedem os limiares de comprimento especificados.

Propriedade

Detalhes

Lógica

Divide uma URL em um array de termos por barra (/) e verifica cada termo conforme os seguintes limiares de comprimento: comprimento máximo de palavra (64 caracteres), comprimento máximo de dígito (10 caracteres) e comprimento máximo de dígito dentro de uma palavra (10 caracteres).

Formato

Dígitos excessivamente longos: {ARMS_NUMBER}. Palavras excessivamente longas: {ARMS_WORD}. Strings alfanuméricas mistas excessivamente longas: {ARMS_ANY}.

Tipo de dado suportado

URL

Localização

Agente ARMS V4.x e posteriores: agente. Agente ARMS anterior à V4.x: servidor.

Versões do agente suportadas

Todas

Exemplo

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

Convergência inteligente

Após a aplicação das políticas anteriores, algumas URLs divergentes podem permanecer. O ARMS gera periodicamente regras de convergência usando algoritmos para lidar com essas URLs.

Propriedade

Detalhes

Lógica

1. Agrupa URLs de amostra usando algoritmos. 2. Identifica o padrão de URL de cada grupo e gera regras de convergência. 3. Mescla regras de convergência entre os grupos.

Formato

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

Tipo de dado suportado

URL

Localização

Agente ARMS V4.x e posteriores: agente. Agente ARMS anterior à V4.x: servidor.

Versões do agente suportadas

Todas

Exemplo

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

O servidor corresponde a essas URLs usando a expressão regular /api/product/[\d]+/info e as converge para /api/product/{ARMS_NUMBER}/info.

Normalização de SQL

O agente ARMS pode coletar um grande número de instruções SQL devido a sharding, anotações ou literais inline. O ARMS normaliza cada instrução SQL substituindo valores divergentes.

Propriedade

Detalhes

Lógica

1. Remove anotações. 2. Substitui texto simples. 3. Substitui nomes de bancos de dados e tabelas com sharding.

Formato

Substitui dígitos ou letras divergentes.

Tipo de dado suportado

SQL

Localização

Agente ARMS

Versões do agente suportadas

4.x e posteriores

Exemplo

select * from cache_0 where ckey='23'

Resultado:

select * from cache_{NUM} where ckey=?

Convergência de endereços ip

Se sua aplicação depender de muitos services externos acessados por endereços ip, o agente ARMS poderá coletar um grande número de endereços ip únicos, levando à divergência.

Propriedade

Detalhes

Lógica

1. Agrupa endereços ip por porta. 2. Aplica convergência se o número de endereços ip em um grupo exceder o limiar (padrão: 50).

Formato

{ARMS_IP}:port

Tipo de dado suportado

ip

Localização

Agente ARMS V4.x e posteriores: agente. Agente ARMS anterior à V4.x: servidor.

Versões do agente suportadas

Todas

Exemplo

1.1.1.1:8080
...
1.1.1.255:8080

Esses endereços ip convergem para {ARMS_IP}:8080.

Convergência de espaço de cardinalidade

As políticas anteriores resolvem a maioria dos problemas de alta cardinalidade em URLs. No entanto, para instruções SQL e outros tipos de dados, um grande número de valores de dimensão ainda pode ser registrado. Para evitar isso, o ARMS limita o número de valores de dimensão registrados em cada período.

Nota

Não é possível desativar esta política manualmente.

Propriedade

Detalhes

Lógica

1. Gera periodicamente um espaço de cardinalidade de tamanho fixo. 2. Para cada valor de dimensão, verifica se ele existe no espaço de cardinalidade. Se sim, retorna o valor como está. Se não, adiciona o valor ao espaço de cardinalidade. Se o espaço estiver cheio, retorna {ARMS_OTHERS}.

Formato

{ARMS_OTHERS}

Tipos de dados suportados

Todos

Localização

Agente ARMS V4.x e posteriores: agente. Agente ARMS anterior à V4.x: servidor.

Versões do agente suportadas

Todas

Limiares horários padrão

Item

Limiar horário

Interface de URL

500

Tarefa de agendamento

1.000

Interface RPC

1.000

Interface upstream

200

Chamada SQL normal

100

Chamada SQL lenta

100

URL de requisição externa

200

Endereço de requisição externa

100

Exemplo

Suponha que o tamanho do espaço de cardinalidade esteja definido como 100 registros por hora. Endereços de service externo:

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

Apenas os primeiros 100 endereços são registrados por hora. Os endereços subsequentes convergem para {ARMS_OTHERS}.

Ordem de execução

As políticas de convergência são executadas sequencialmente na ordem listada abaixo. Assim que um valor de dimensão corresponde a uma política, as políticas restantes são ignoradas.

Agente ARMS anterior à V4.x

Lado do agente:

  • URL: Convergência baseada em anotações do Spring > Convergência baseada em estatísticas de memória

  • SQL: Convergência baseada em estatísticas de memória

  • ip e outros: Convergência baseada em estatísticas de memória

Lado do servidor:

  • URL: Convergência personalizada > Convergência de requisições de ciberataque > Convergência de parâmetros de consulta > Convergência de recursos estáticos > Convergência de palavras sem significado > Convergência inteligente > Convergência de espaço de cardinalidade

  • SQL: Convergência personalizada > Convergência de espaço de cardinalidade

  • ip e outros: Convergência personalizada > Convergência de endereços ip > Convergência de espaço de cardinalidade

Agente ARMS V4.x e posteriores

Lado do agente:

  • URL: Convergência baseada em anotações do Spring > Convergência personalizada > Convergência de requisições de ciberataque > Convergência de parâmetros de consulta > Convergência de recursos estáticos > Convergência de palavras sem significado > Convergência inteligente > Convergência de espaço de cardinalidade

  • SQL: Convergência personalizada > Normalização de SQL > Convergência de espaço de cardinalidade

  • ip e outros: Convergência personalizada > Convergência de endereços ip > Convergência de espaço de cardinalidade

Lado do servidor: N/D (toda a convergência ocorre no agente).

Perguntas frequentes

Como visualize os valores originais antes da convergência?

  • Agente ARMS V4.x e posteriores: Tanto os valores originais quanto os convergidos são registrados nos dados de rastreamento. Use Trace Explorer para visualizar os valores originais.

  • Agente ARMS anterior à V4.x: Os valores originais não estão disponíveis porque a convergência ocorre no servidor.

Como personalizo as regras de convergência?

Defina regras de convergência personalizadas no console do ARMS. Na página de detalhes da aplicação, escolha Configuration > Convergence na barra de navegação superior.

image

Por exemplo, especifique a expressão regular /api/v1/user/\d+/info para convergir todas as URLs correspondentes para /api/v1/user/userId/info. A URL /api/v1/user/124343543/info então converge para /api/v1/user/userId/info.

Como excluo URLs específicas da convergência?

Especifique as URLs a serem excluídas da convergência no console do ARMS. Acesse a mesma página Configuration > Convergence descrita na pergunta anterior.

Por exemplo, se você excluir /api/v1/user/9999/info da convergência, esta URL não será convergida para /api/v1/user/userId/info.

Qual é a diferença entre convergência no lado do agente e no lado do servidor?

A convergência no lado do agente processa dados no agente ARMS antes de relatá-los ao servidor. Isso reduz a pressão de processamento no servidor e garante 100% de precisão dos dados.

A convergência no lado do servidor se aplica quando a versão do agente não suporta certas políticas. Sem a convergência no lado do agente, o agente envie pacotes de dados não convergidos para o servidor. Pacotes grandes geram dois riscos:

  • Perda de dados: Pacotes excessivamente grandes podem ser rejeitados.

  • Precisão reduzida: As limitações de processamento do servidor podem afetar a precisão dos dados convergidos.

Atualize para a versão mais recente do agente ARMS para execute todas as políticas de convergência no agente.