|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
Monitores de limite dinâmico
Visão Geral
Para métricas que variam significativamente ao longo do tempo e diferem de serviço para serviço, um monitor de limite dinâmico fornece detecção de anomalias simples e eficiente. Ele usa dados de 1, 2 ou 3 semanas atrás, além do passado recente, como contexto para comparar os dados atuais.
Os dados da "janela de verificação" são comparados com os fornecidos pelo contexto histórico usando o teste de Anderson-Darling. Isso impõe muito poucas suposições sobre a distribuição dos dados. O teste é particularmente sensível a outliers nas extremidades superior e inferior da distribuição. A métrica pode ser suave, espinhosa ou ter alguns "níveis" - como os valores dos dados são comparados diretamente, sem ajuste de modelo, o monitor de limite dinâmico é muito robusto.
Para métricas que variam suavemente ao longo do tempo (por exemplo, em uma escala de cinco minutos), o número efetivo de pontos de dados é menor do que o número bruto. O monitor de limite dinâmico compensa isso, de modo que o mesmo monitor possa ser usado para uma ampla gama de métricas sem a necessidade de ajustar seus parâmetros.
Existem alguns parâmetros que podem ser definidos para a função do monitor:
-
falsePositiveRate: diga!!float 1e-8- a sensibilidade do monitor ao comportamento desviado. Um valor mais baixo suprime mais (falsos) positivos, mas também pode levar a falsos negativos (anomalias não percebidas). -
checkWindowMinutes: diga10minutos - a janela de verificação precisa ser equilibrada entre alertas rápidos (valores pequenos) e anomalias corretamente identificadas (valores altos). Um punhado de pontos de dados funciona bem na prática. -
historicWindowMinutes: por exemplo,120(2 horas) - delimitado em torno do tempo atual, mas também uma ou mais semanas atrás - ou seja, de uma hora antes do tempo atual até uma hora depois. Além disso, as duas horas antes da janela de verificação são utilizadas. O monitor de limite dinâmico compara a distribuição desses dados históricos com os pontos de dados na janela de verificação. -
historySizeWeeks: diga2- o número de semanas que os dados são retirados para contexto histórico. Pode ser1,2ou3. -
removeTrend: para métricas que apresentam comportamento de tendência (por exemplo, número de solicitações), de modo que o valor absoluto difira de semana para semana, essa tendência (o valor médio) pode ser considerada. -
includePreviousDay: tipicamentefalse- para métricas que não têm um padrão semanal, mas apenas um diário, isso permite o uso de dados mais recentes.
Exemplo de monitor de limite dinâmico
Um monitor implementado usando a função de limite dinâmico se parece com:
- _type: "Monitor"
name: "<name of the monitor>"
identifier: "urn:stackpack:<stackpack-name>:monitor:<identifier for the monitor>"
status: "DISABLED"
description: "<description>"
function: {{ get "urn:stackpack:aad-v2:shared:monitor-function:dt" }}
arguments:
telemetryQuery:
query: "<metric to bind to component>"
unit: s
aliasTemplate: "<name for the metric>"
topologyQuery: <topology query for the components to bind to>
falsePositiveRate: <floating point number, e.g. !!float 1e-8>
checkWindowMinutes: <integer, e.g. 10>
historicWindowMinutes: <integer, e.g. 120>
historySizeWeeks: <integer: 1, 2 or 3>
includePreviousDay: <boolean>
removeTrend: <boolean>
intervalSeconds: 60
remediationHint: "<how to remediate deviating states>"
O monitor pode ser implementado usando o guia em Adicionar um monitor de limite aos componentes usando a CLI