Padrão de Limite

Uma regra de limite é definida pelo padrão de limite. Ela coleta um grupo de eventos selecionados em um intervalo de tempo e determina, após a recepção de cada evento, se uma condição de limite foi atendida. É uma regra com preservação de estado.

Visão Geral

O padrão de limite coleta eventos em um período de tempo até que um valor de limite seja atendido. O período de tempo é indicado por um espaço de tempo obrigatório, conforme definido pelo elemento <timeWindow> na linguagem da regra.

O padrão de limite fornece as três opções a seguir para um tipo de limite:
limite de contagem de eventos
Esse tipo de limite permite definir o número de eventos que devem atender aos critérios de seleção de eventos em um determinado período de tempo. O valor do limite definido é comparado ao número de eventos aceitos. Quando a contagem de eventos equivaler ao limite definido no espaço de tempo, o limite foi atendido.

Esse tipo de limite pode ser útil para uma verificação de contagem de eventos muito simples. Por exemplo, ele pode responder à pergunta: "Ocorreram 5 eventos de falha de login em 1 minuto?"

Esse limite é definido pelo elemento <eventCountThreshold>. O elemento <eventCountThreshold> também especifica um dos dois possíveis modos de intervalo de tempo a seguir para o espaço de tempo:
intervalo fixo
Esse intervalo começa quando o primeiro evento que atende aos critérios de seleção de eventos é recebido e termina quando ocorre uma das seguintes situações:
  • A regra atende a seu limite na duração de tempo especificada.
  • A duração de tempo especificada passou.
intervalo móvel
Esse intervalo começa quando o primeiro evento que atende aos critérios de seleção de eventos é recebido. No entanto, quando a regra não atende a seu limite e a duração de tempo especificada passa, o espaço de tempo ajusta (move) a hora de início para a hora de recepção do evento de um novo "primeiro" evento, que normalmente é o próximo evento que for aceito. O intervalo móvel continua a ser ajustado assim até que ocorra uma das seguintes situações:
  • A regra atende a seu limite na duração de tempo especificada.
  • Após a recepção do evento que começa o espaço de tempo, nenhum evento subseqüente é recebido durante o tempo especificado.
O evento que começa o espaço de tempo (torna-se o novo "primeiro" evento) é aquele com uma hora de recepção que atende a estes critérios: a hora da recepção, somada à duração do intervalo de tempo da regra, é maior que a hora atual. A seguir, os critérios na forma de uma equação:
hora de recepção do evento + duração do intervalo de tempo da regra > hora atual
Quando esse evento não existir, o intervalo móvel não poderá mais ajustar a hora e o intervalo será encerrado.
limite de computação
Esse tipo de limite permite gravar código (ou utilizar código gravado por outra pessoa) que executa um cálculo em cada evento aceito e retorna um valor de limite calculado contido em uma variável definida anteriormente. Esse valor de limite calculado é então comparado a um valor de limite definido para determinar se o limite foi atendido.

Portanto, é possível aplicar um cálculo complexo para criar (ou atualizar) um valor de limite calculado, possivelmente utilizando dados salvos de eventos anteriores, e o autor de regras pode configurar o valor de limite definido independentemente da lógica que calcula o valor de limite calculado.

Esse tipo de limite pode ser útil para a agregação e comparação de um valor com um valor de limite definido. Por exemplo, ele pode ser utilizado para calcular a soma do valor de vendas em dólar para um determinado cliente em um determinado período de tempo e para comparar essa soma com um valor de limite definido.

Esse limite é definido pelo elemento <computedThreshold>.

limite booleano
Esse tipo de limite permite gravar código (ou utilizar código gravado por outra pessoa) que retorna um valor de true ou false para cada evento aceito. Se o valor for true, o limite foi atendido. Se o valor for false, a regra de limite continuará a ser processada até que o período de tempo termine ou até que ele aceite outro evento.

Esse tipo de limite pode ser útil para verificação de um intervalo de valores. Por exemplo, se a utilização da CPU tiver que ficar sempre entre 30% e 80%, esse limite poderá verificar constantemente se a utilização permanece dentro desse intervalo.

Esse limite é definido pelo elemento <booleanThreshold>.

Condições sob as quais a Resposta da Regra é Executada

Com o padrão de limite, a resposta da regra é executada nas seguintes ocasiões:
  • Quando o limite é atendido, conforme definido pelo elemento <onDetection>.
  • Quando um ou mais eventos são aceitos, mas o limite não é atendido dentro do espaço de tempo, conforme definido pelo elemento <onTimeOut>.

Exemplo de Uso desse Padrão de Regra

Um exemplo de uso do padrão de limite com o limite de contagem de eventos é uma regra que faz o seguinte:
Se mais de 4 eventos Servidor inatingível forem originados da mesma sub-rede em um intervalo de tempo móvel de 30 segundos, a regra executará uma ação para verificar o status de um roteador.
Referências relacionadas
Resumo da Regra de Limite