Tuesday 22 August 2017

Rrdtool Moving Average


Rrdgraphexamples Deslocar os dados para a frente por uma semana (604800 segundos) Se a função especializada RRAs existem para detecção de comportamento aberrante, eles podem ser usados ​​para gerar o gráfico de uma série temporal com bandas de confiança e falhas. Este exemplo gera um gráfico da série de dados em azul (LINE2 com a fonte de dados virtual scaledobs), limites de confiança em vermelho (fontes de dados virtuais escalonadas e escalonadas) e falhas potenciais (isto é, comportamento aberrante aberrante potencial) marcadas por linhas amarelas verticais A fonte de dados de falha). Os dados brutos vem de um RRA MÉDIO. A melhor resolução das séries temporais observadas (um ponto de dados consolidado por ponto de dados primário). Os valores previstos (ou suavizados) são armazenados no RPR HWPREDICT. Os valores dos desvios previstos (pense o desvio padrão) são armazenados no DEVPREDICT RRA. Finalmente, o RAS de FALHAS contém indicadores, com 1 denotando uma falha potencial. Todos os dados são redimensionados em bits (em vez de Octetos), multiplicando por 8. Os limites de confiança são calculados por um desvio de 2 desvios tanto acima como abaixo dos valores previstos (os CDEFs superior e inferior). As linhas verticais indicadas falhas potenciais são graficadas através do elemento de gráfico TICK, que converte valores não nulos em um RRA em marcas de escala. Aqui, um argumento de fração de eixo de 1,0 significa que as marcas de carrapato abrangem todo o eixo y e, portanto, tornam-se linhas verticais no gráfico. A escolha de 2 desvios (um fator de escala) corresponde ao padrão usado internamente pelo FAILURES RRA. Se o valor interno for alterado (ver rrdtune), este comando gráfico deve ser alterado para ser consistente. O comando rrdtool graph é projetado para plotar dados em uma resolução temporal especificada, independentemente da resolução real dos dados no arquivo RRD. Isto pode apresentar um problema para as funções de consolidação especializadas que mantêm um mapeamento um-para-um entre pontos de dados primários e pontos de dados consolidados. Se um gráfico insiste em ver o conteúdo destes RRAs em uma escala temporal mais grosseira, o comando gráfico tenta fazer algo inteligente, mas as bandas de confiança e falhas já não têm o mesmo significado e podem ser enganosas. Rrdgraph dá uma visão geral de como funciona rrdtool gráfico. Rrdgraphdata descreve DEF, CDEF e VDEF em detalhe. Rrdgraphrpn descreve o idioma RPN usado nas instruções xDEF. A página rrdgraphgraph descreve todas as funções gráficas e de impressão. Programa por Tobias Oetiker 60tobioetiker. ch62 Esta página de manual por Alex van den Bogaerdt 60alexvandenbogaerdt. nl62 com correções e / ou adições por várias pessoasRRDtool criar tutorial e exemplos quotrrdtool createquot constrói um banco de dados. Não lê sua mente. Antes que você possa dizer RRDtool o que criar, você deve primeiro determinar o que você precisa e quando você precisar dele. Este exemplo não é tanto sobre cortar e colar, é para ensiná-lo como você poderia traduzir sua idéia em uma configuração de trabalho. Tenha um olhar mais atento sobre os números que você vai dar ao RRDtool mais tarde. O que esses números representam Como eles mudam Um exemplo comum é um contador que é mantido por um dispositivo de rede, mostrando o número de octetos (bytes) dentro ou fora do dispositivo. Este contador é iniciado em algum ponto, e continua a aumentar. Neste caso, você está interessado na diferença, o delta, entre dois momentos no tempo. A diferença é a quantidade de octetos transportados nesse intervalo de tempo. Um exemplo semelhante, mas menos freqüentemente visto seria o contador em um contador de eletricidade. Este também é um contador cada vez maior. Isso resulta na quantidade de kWh usada em um intervalo de tempo. No entanto, neste caso, você deve reconhecer que kWh é apenas uma outra maneira de contar Joules, algo que você realmente quer saber mais tarde no processo. Um tipo completamente diferente de entrada seria um velocímetro, o dispositivo em um carro que mostra o quão rápido você está se movendo. O número que você recebe já é uma taxa. Mesmo se você obtê-lo em mph ou em km / h, é apenas um número de metros por segundo, embora dadas em uma unidade diferente, semelhante ao kWh vs Joules. Eventualmente, RRDtool irá transformar a entrada obtém em uma taxa e irá normalizar essas taxas para que eles se encaixam em intervalos de tempo bem definidos. Não há nada que você possa fazer sobre isso, é como ele funciona. Ver Taxas, normalizando e consolidando para uma explanação mais elaborada desta. Theres nenhum problema se você quotabusequot RRDtool para trabalhar com dados que não é uma taxa, como a temperatura. Basta lembrar que RRDtool vai pensar que é uma taxa, e dar a RRDtool como se já é uma taxa. Isso significa que o tipo de contador GAUGE. Há muitos exemplos diferentes a se pensar. Se você tiver um exemplo que será de interesse geral, ou se você está disposto a pagar pelo meu tempo, envie-o para mim e eu vou trabalhar aqui. A entrada é uma taxa, p. M / s, ou deve ser tratada como uma taxa, p. Temperatura A entrada é um número cada vez maior, e. Um contador de octetos em um roteador. RRDtool deve calcular a diferença entre a última atualização e atual, e dividi-lo pela quantidade de tempo caducado. Isso é semelhante a COUNTER, exceto que a entrada pode diminuir. Isto é útil por exemplo em um medidor de kWh quando você produz mais energia solar do que você usa. Nesse caso, você realmente obter uma taxa negativa. Isso é para ser usado quando o contador é redefinido toda vez que é lido, quando as pessoas começam a contar a partir de zero, e assim por diante. A principal diferença entre ABSOLUTE e GAUGE é que a entrada ainda não é uma taxa, ele deve primeiro ser dividido pelo tempo para obter uma taxa. A principal diferença entre ABSOLUTE e COUNTER é que RRDtool não deve usar o valor de entrada anterior para calcular seu delta. Uma vez que você descobriu como processar a entrada, você precisa descobrir como você deseja armazenar as taxas calculadas. Há várias coisas para olhar. Primeiro de tudo você precisa saber quanto tempo você quer ser capaz de olhar. Também muito importante é como você quer ser capaz de olhar para isso. Dizer que você quer ser capaz de olhar para trás um ano, você ainda precisa saber se você quer ser capaz de quotzoom inquot ou se você só quer olhar para a imagem grande. Em outras palavras: se agora é 01 de março de 2009, você quer olhar para 2007-03-01 até 2009-03-01 ou você quer ser capaz de olhar para 2007-03-01 meia-noite à meia-noite seguinte. O que você precisa entender aqui é a consolidação. Digamos que você estará olhando para dois anos de informação, e que os dados disponíveis estão em uma resolução de 300 segundos por balde. Isso significa que você tem mais de 200.000 baldes. Se você estiver indo para exibir isso em uma imagem de 400 pixels de largura, 500 desses baldes precisam se encaixar na coluna de pixels. Manter esses 200.000 baldes não é apenas um desperdício de espaço. Se RRDtool precisa fazer todos esses baldes se encaixam no gráfico, ele precisa fazer o trabalho. Dependendo das capacidades de processamento do seu servidor http, isso pode significar um atraso na visualização dos seus gráficos. Você pode instruir RRDtool para manter dados históricos de forma consolidada, adequados para exibição sem o atraso mencionado. Isso requer algum planejamento, vou elaborar mais adiante. Mas e se você quiser ser capaz de ampliar Não há problema, você pode dizer RRDtool para também manter os dados em seu tamanho de balde original (por exemplo, os 300 segundos). Ou, se você escolher assim, você pode dizer RRDtool para manter os dados somente naquele tamanho original da cubeta. Você decide. Basta saber que é difícil mudar de idéia uma vez que você criou seu banco de dados. Em muitos casos você terá que começar tudo de novo se você fizer. RRDtool usa RRAs (RRDtool Arquivos) para armazenar dados. Cada um desses RRAs é independente dos outros, você pode ter um que armazena dados em uma resolução de 300 segundos e outro que armazena dados em uma resolução de 86400 segundos. Se você quiser, você pode cada um desses exemplos conter a mesma quantidade de tempo, não há problema. É apenas uma questão de quantas linhas você gera em cada RRA. Digamos que você estará gerando imagens onde a área do gráfico interno é de 360 ​​pixels de largura. Geralmente, é melhor se você configurar seu RRD para que um de seus RRAs corresponda à resolução na tela. Você pode fazer isso (na fase de projeto), ajustando o tamanho de cada balde, ou você pode planejar com cuidado as horas de início e de término. Se você tiver um RRA que armazena dados em uma resolução de 86400 segundos, e você exibir 360 dias de informações, este é um ajuste agradável. Display 180 dias e cada dia será de 2 colunas de largura, não muito de um problema. Exibir 720 dias e RRDtool ainda precisa fazer 2 baldes caber em um pixel. Considere analisar estatísticas de rede, para que você possa saber quanto de dados é transportado, o que ajuda a determinar se é hora de expandir a capacidade da rede. Contadores de rede provavelmente vão ser números cada vez maiores (até que ocorra um contador wrap) de modo que parte é fácil: use COUNTER. Além disso, muitas vezes eles vêm em pares: inbound e outbound (como visto a partir do dispositivo). Você vai consultar o dispositivo aproximadamente a cada 5 minutos, mas você dá a si mesmo (e seu agendamento) alguma folga. No entanto, há um limite para quanta folga você está preparado para dar. Se as atualizações estão mais distantes do que 10 minutos, algo deu errado e você não pode confiar na precisão dos contadores de rede. Uma interrupção pode ter ocorrido, resultando em uma reinicialização do dispositivo. Você sabe que o dispositivo nunca vai transportar mais de 100Mbps, então qualquer taxa maior do que isso é o resultado de alguma falha desconhecida em algum lugar desconhecido. Você não sabe por que isso iria acontecer (se em tudo), você só nunca quero que ele apareça. É apenas como uma rede de segurança. Um dos contadores O outro contador é o mesmo, com exceção de seu nome. Dê o seguinte para rrdtool criar: Digamos que você queira ser capaz de exibir os últimos 2 anos, os últimos 2 meses, as últimas 2 semanas e os últimos 2 dias. O banco de dados usa o tamanho de etapa padrão de 300 segundos por intervalo. Primeira coisa que eu aviso: cada vez quotlastquot é mencionado. Isso significa que nenhuma linha extra precisa estar presente para permitir o zoom no passado. Por exemplo, não há necessidade de manter os dados em uma resolução de 300 segundos durante os dois anos. Eu também imediatamente aviso o uso de ano, mês, semana e dia. Estes não são intervalos de tempo fixos. Um ano pode ser 365 ou 366 dias. Um mês pode ser 28 dias, 29 dias, 30 dias, 31 dias, pode mesmo ser uma hora menos ou uma hora mais, ou 30 minutos menos / mais, dependendo de como a economia de hora trabalha para fora para você. Da mesma forma uma semana não é sempre 7 dias e um dia não é sempre 24 horas. Isso é inviável, e para o propósito deste exemplo também é desnecessário. Isso significa que eu posso, deve e irá modificar o pedido para mostrar os últimos 720 dias, os últimos 60 dias, os últimos 14 dias e os últimos 2 dias todos baseados na hora UTC (sem a hora de Verão a considerar). Agora é hora de determinar a largura de cada gráfico. A primeira coisa a fazer é olhar para a quantidade de tempo. Com um tamanho de passo de 300 segundos, um dia é igual a 288 passos. 720288 207360 etapas Não sempre revelar-se um ajuste tão agradável. Decida por si mesmo o que você mais gosta: veja mais (ou menos) tempo do que inicialmente planejado, ou tenha diferentes larguras de imagem. Faça o que fizer, certifique-se de que os números são números inteiros. Não porque RRDtool precisa dele (não é), mas porque torna a vida mais fácil. Os números 360, 30, 7 e 1 são a quantidade de etapas a serem preenchidas ao criar cada RRA. O número 576 é a quantidade de linhas a preencher. Isso deixa dois outros parâmetros: CF e xff, que eu explico brevemente. Dê isto a RRDtool: RRA: MIN: 0: 360: 576 RRA: MIN: 0: 30: 576 RRA: MIN: 0: 7: 576 RRA: MÉDIA: 0: 360: 576 RRA: MÉDIA: 0: 30: 576 RRA: MÉDIO: 0: 7: 576 RRA: MÉDIO: 0: 7: 576 RRA: MÁXIMO: MÉDIO E MÁXIMO Determinar como RRDtool deve consolidar múltiplas taxas em um. Mais sobre isso em Taxas, normalizar e consolidar se você está interessado. Você percebe que tenho 3 MIN e MAX RRAs e 4 AVERAGE Isto é porque o mínimo, média e máxima de apenas uma taxa será sempre o mesmo. Eu só preciso de um deles, não todos os três. XFF, o X-Files Factor, tem o seu nome, porque é anticientífico se você tê-lo definido para qualquer outro número do que zero. Tem a ver com dados desconhecidos e como isso é processado. Qual é a média de A única resposta verdadeira é: quotunknownquot. Ainda assim, muitas pessoas querem responder quot1quot. XFF determina quanto dos dados originais podem ser desconhecidos e ainda produzir 1 (ou qualquer outra taxa). Um valor comum é 0,5, o que significa que resulta em 1, mas não. Para este exemplo, 0,5 seria adequado, mas se você estiver usando os dados para fins de faturamento não seria. Considere a média. Com XFF definido como 0,5, este seria 100 em média. As chances são as incógnitas são o resultado de um problema de conexão, caso em que seria injusto para faturar o seu cliente para uma taxa de 100 durante esses intervalos desconhecidos. Para planejamento de capacidade, por outro lado, você provavelmente teria visto uma taxa de 100 quando nenhuma interrupção teria ocorrido. Então outra vez, você pode querer saber que havia uma interrupção, mesmo ao olhar o gráfico que mostra 2 anos. Quotrrdtool createquot também aceitará uma hora de início. Isso só é importante se você tiver dados históricos que você vai importar. Se você não fizer isso, basta ignorar o parâmetro e RRDtool fará a coisa certa. Se você estiver indo para importar dados históricos, defina isso ligeiramente antes dos dados mais antigos que você vai importar. Outros parâmetros são step size (300 segundos por padrão) eo nome do arquivo a ser criado. O exemplo inteiro está agora concluído. Este é o comando para dar a RRDtool, para este caso de exemplo específico: rrdtool create database. rrd DS: ds0: Contador: 600: 0: 12500000 DS: ds1 Contador: 600: 0 12500000 RRA: MIN: 0: 360: RRA: MÍNIMO: 0: 30: 576 RRA: MÍNIMO: 0: 7: 576 RRA: MÉDIO: 0: 7: 576 RRA: MÉDIO: 0: RRA: MAX: 0: 576 RRA: MAX: 0: 7: 576 Eu gosto de escrever meus scripts ligeiramente diferentes. Eu uso um shell unix e escrevo meu script assim: Isso não faz diferença, quando o shell dispara rrdtool, ele consegue ver o mesmo comando (talvez com mais espaço em branco, eu nem sei). Esta página foi criada por Alex van den Bogaerdt, um consultor de TI independente. Se você quiser fornecer feedback ou se você quiser me contratar, por favor veja. Notas sobre a implementação RRDTOOL de detecção de comportamento aberrante oetiker / webtools / rrdtool) é o acrônimo de Round Robin Database. RRD é um sistema para armazenar e exibir dados de séries temporais. Armazena os dados de uma forma muito compacta que não se expande ao longo do tempo, e apresenta gráficos úteis processando os dados em diferentes resoluções temporais. O software RRDtool está disponível como um aplicativo autônomo ou como uma biblioteca PERL. RRDtool é um programa ágil que minimiza as operações de E / s exigidas por atualizações em tempo real para séries de tempo. Apesar de não ser tão poderoso quanto o software de banco de dados full-blown, ele fornece a funcionalidade requerida por um ambiente em tempo real: conversão de atualizações em intervalos irregulares em intervalos regulares através de conversão de interpolação linear de dados de contador para agregação de taxas em intervalos de tempo definidos pelo usuário via Funções de agregação múltiplas Este documento descreve a implementação da detecção de comportamento aberrante para RRDTOOL. Alguma familiaridade com os internos da versão atual (1.0.25) de RRDtool é assumida, como este documento faz referência à arquitetura pré-existente. Existem várias razões pelas quais o suporte para detecção de comportamento aberrante foi integrado no RRDtool, ao contrário de implementado como um programa separado. Estes incluem: (1) Facilita a aplicação eficiente em tempo real de detecção de comportamento aberrante. A integração oferece maior eficiência em relação a um programa externo com relação ao acesso de E / S. Um programa externo teria buscar dados de RRD na mesma freqüência de atualização, enquanto código dentro RRD opera sobre esses dados já na memória. A eficiência torna-se uma prioridade para a rede de serviços no nível IAP / ISP, onde o RRDtool pode ser parte essencial do sistema de monitoramento de centenas de interfaces de rede e serviços de aplicativos. (2) Aumenta a capacidade do RRDtool para executar a interpolação temporal (atualizações de dados em intervalos irregulares) e conversão de contadores em taxas. (3) Aproveita as capacidades gráficas do RRDtool. Gráficos podem ser gerados para exibir os resultados de detecção de comportamento aberrante usando os recursos existentes de RRDtool. (4) Aproveita o software cliente projetado para executar com RRDtool (ou seja, Cricket). Detecção de comportamento aberrante é decomposto em três partes, cada edifício em seu antecessor: (1) Um algoritmo para prever os valores de uma série de tempo um passo de tempo para o futuro. (2) Uma medida de desvio entre os valores previstos e os valores observados. (3) Um mecanismo para decidir se e quando um valor observado ou seqüência de valores observados é muito desviante do (s) valor (is) predito (s). O algoritmo de previsão de séries temporais Holt-Winters é um algoritmo on-line ou incremental que prevê adaptativamente futuras observações em uma série de tempo. Sua previsão é a soma de três componentes: uma linha de base (ou interceptação), uma tendência linear ao longo do tempo (ou inclinação) e um coeficiente sazonal (um efeito periódico, como um ciclo diário). Há um coeficiente sazonal para cada ponto de tempo no período (ciclo). Depois de um valor ser observado, cada um desses componentes é atualizado via suavização exponencial. O algoritmo aprende de valores passados ​​e os usa para prever o futuro. A taxa de adaptação é governada por 3 parâmetros: alfa (interceptação), beta (inclinação) e gama (sazonal). A previsão também pode ser vista como um valor suavizado para a série de tempo. A medida do desvio é um desvio absoluto ponderado sazonal. O termo desvio sazonal dos meios é medido separadamente para cada ponto temporal no ciclo sazonal. Como com Holt-Winters Forecasting, o desvio é previsto usando a medida calculada a partir de valores passados ​​(mas somente nesse ponto no ciclo sazonal). Após o valor ser observado, o algoritmo aprende a partir do valor observado via suavização exponencial. Escalar a seqüência de valores de desvio preditos para a série de tempo observada gera faixas de confiança (geralmente pensamos nas seqüências como linhas contínuas e não como um conjunto de pontos discretos). Um comportamento aberrante (uma falha potencial) é relatado sempre que o número de vezes que o valor observado viola as bandas de confiança atende ou excede um limite especificado dentro de uma janela temporal especificada (ou seja, 5 violações nos últimos 45 minutos com um valor observado a cada 5 mintues). Esta seção descreve a arquitetura da implementação da detecção de comportamento aberrante no RRDtool. No disco, o banco de dados round robin (RRD) é organizado em seções seqüenciais, arquivos round robin (RRA). Dentro de cada RRA está uma seção para cada uma das fontes de dados (entrada) armazenadas neste RRD. Cada RRA é definido por uma função de consolidação que mapeia pontos de dados primários (PDP) para pontos de dados consolidados (CDP). Em outro nível, um RRA é apenas uma matriz de valores de dados que é atualizada em seqüência de acordo com alguma função em algum intervalo de tempo fixo. Em sua face, o algoritmo de comportamento aberrante precisa de pelo menos dois arrays, um para armazenar os valores de previsão correspondentes a cada ponto de dados primário e um segundo para armazenar o desvio predito correspondente a cada ponto de dados primário. Conforme implementado, os coeficientes sazonais e desvios que são usados ​​para calcular os desvios previstos e previstos são armazenados em um segundo par de RRAs. Esses arrays têm comprimento igual ao período sazonal e são atualizados uma vez para cada ponto de dados primário. Falhas são controladas por um quinto RRA, que determina violações e falhas em cada chamada para RRD atualização. Os coeficientes de interceptação e de declive necessários para a previsão são atualizados para cada ponto de dados primário e são exclusivos para cada fonte de dados (DS). Eles poderiam ser armazenados em um segundo par de RRAs. No entanto, apenas o valor mais recente de cada um é necessário para uma determinada previsão. Conforme implementado, esses parâmetros são armazenados em um buffer temporário no cabeçalho alocado para cada combinação de fonte de dados RRA na RRD (a área de preparação do CDP). Este buffer é liberado de volta ao disco em cada chamada para atualização RRD. Os parâmetros de adaptação são fixos para a vida do RRA e são os mesmos para todas as fontes de dados dentro desse RRA. Eles são armazenados no buffer de parâmetro RRA (em RRA def), que é lido somente durante a atualização do RRD. Portanto, a implementação do algoritmo de comportamento aberrante adiciona cinco novas funções de consolidação ao RRDtool: (1) HWPREDICT: uma matriz de previsões calculadas pelo algoritmo Holt-Winters, uma para cada ponto de dados primário. A matriz HWPREDICT depende de uma matriz do tipo SAISONAL para pesquisa de coeficientes sazonais. O índice desta matriz SEASONAL é armazenado como um parâmetro do RW HWPREDICT. (2) SAZONAL: uma matriz de coeficientes sazonais com comprimento igual ao período sazonal. Para cada ponto de dados primário, há um coeficiente sazonal que corresponde ao índice no ciclo sazonal. A fim de atualizar os coeficientes sazonais através de suavização exponencial, o RAS SEASONAL depende do RRE HWPREDICT. O índice da correspondência HWPREDICT RRA é armazenado como um parâmetro. (3) DEVPREDICT: uma matriz de previsões de desvio. Essencialmente, DEVPREDICT copia valores da matriz DEVSEASONAL ele não processa seus próprios. O índice da matriz DEVSEASONAL é armazenado como um parâmetro. (4) DEVSEASONAL: uma série de desvios sazonais. Para cada ponto de dados primário, há um desvio sazonal que corresponde ao índice do ponto de dados primário no ciclo sazonal. Para calcular desvios, DEVSEASONAL RRA deve ser capaz de calcular o valor previsto, e assim depende do HWPREDICT RRA. O índice da correspondência HWPREDICT RRA é armazenado como um parâmetro. (5) FAILURES: uma matriz de indicadores booleanos, um 1 indicando uma falha. O buffer RRA-DS armazena cada valor dentro da janela. Cada atualização remove o valor mais antigo desse buffer e insere a nova observação. Em cada atualização, o número de violações é recalculado. O comprimento máximo da janela imposto por este buffer é 9 pontos de tempo. Para comparação com desvios, o FAILURES RRA depende do DEVSEASONAL RRA. O índice do DEVSEASONAL RRA correspondente é armazenado como um parâmetro. Esta seção ilustra como usar o algoritmo de detecção de comportamento aberrante em RRDtool através de um exemplo. Nosso alvo de monitoramento será uma interface de roteador em um link entre dois data centers na rede de serviços de produção da WebTV. A variável será a taxa de largura de banda de saída (em Mbps). O uso da largura de banda segue um ciclo diário eo SNMP é pesquisado em intervalos de cinco minutos. O primeiro passo é criar um RRD para este alvo com detecção de comportamento aberrante habilitado. Para simplificar a criação para o usuário iniciante, além de suportar a criação explícita dos RRAs HWPREDICT, SEASONAL, DEVPREDICT, DEVSEASONAL e FAILURES, o comando RRDtool criado aumenta a criação implícita dos outros quatro quando HWPREDICT é especificado sozinho. Para tirar proveito disso, use a seguinte sintaxe: ltarray lengthgt é o número de previsões a serem armazenadas antes do wrap-around este número deve ser maior do que o período sazonal. Este valor também será a contagem de linhas RRA para DEVPREDICT RRA. Ltalphagt é o parâmetro de adaptação de interceptação, que deve estar entre 0 e 1. Um valor maior significa que a interceptação se adapta mais rapidamente. O mesmo valor será também usado para gamma. Ltbetagt é o parâmetro de adaptação da inclinação, novamente entre 0 e 1. ltperiodgt é o número de pontos de dados primários no período sazonal. Este valor será a contagem da linha RRA para os RAS SEASONAL e DEVSEASONAL. Usando esta opção cria o RAS FAILURES com o comprimento da janela padrão de 9 e um valor limite padrão de 7. O comprimento padrão do RAS FAILURES é um período. Para o exemplo, o comando create é: rrdtool create monitor. rrd s 300 Ao criar explicitamente os RRAs adicionais é um meio de controle mais fino, alguns parâmetros podem ser alterados usando o comando tune. Enhanced RRDtool suporta vários sinalizadores de sintonia novos: --window-length --failure-threshold --alpha --beta gama deltapos --deltaneg Cada um desses sinalizadores leva um único argumento. O objetivo do argumento é auto-evidente. O sinalizador - gamma redefinirá o parâmetro de adaptação para os RAS SAASONAL e DEVSEASONAL (ajustando ambos para o mesmo valor). --deltapos e deltaneg definem o parâmetro de escala para a banda de confiança superior e inferior respectivamente, o valor padrão para ambos é 2 (uma faixa de confiança simétrica). Por exemplo, suponha que não estamos satisfeitos com o comprimento e o limite de janela padrão para o RAS de falhas implicitamente criado pelo comando anterior. Emita o comando: rrdtool tune monitor. rrd --window-length 5 O restante do exemplo usa o comprimento da janela padrão de 9 eo limite padrão de 7. Em alguns casos, a criação explícita dos RRAs é necessária. Suponha que o técnico de rede esteja interessado apenas em suavizar as séries temporais observadas, não bandas de confiança ou detecção de comportamento aberrante. O algoritmo Holt-Winters Forecasting pode ser visto com um algoritmo de suavização. Neste caso, ele pode criar explicitamente os RRA HWPREDICT e SEASONAL sem os outros. Use esta sintaxe: RRA: HWPREDICT: ltlengthgt: ltalgagt: ltbetagt: ltperiodgt: ltindex de SEASONALgt RRA: SEASONAL: ltperiodgt: ltgammagt: ltindex de HWPREDICTgt Os argumentos de HWPREDICT são os mesmos de antes, com a adição de: ltindex de SEASONALgt 1- Baseado na matriz SEASONAL na ordem RRAs são especificados no comando create. Os argumentos do RAS ESTACIONAL são: ltperiodgt é o número de pontos de dados primários no período sazonal. Ele deve corresponder ao valor especificado pelo argumento ltperiodgt de HWPREDICT. Ele deve ser um inteiro maior que 2. ltgammagt é o parâmetro de adaptação para os coeficientes sazonais, que deve valorar entre 0 e 1. ltindex do índice HWPREDICTgt 1-based da matriz HWPREDICT na ordem RRAs são especificados no comando create As bandas de confiança podem Ser criado independentemente da detecção de comportamento aberrante. Neste caso, crie os quatro RRA HWPREDICT, SAZONAL, DEVSEASONAL e DEVPREDICT, mas omitir o RRA FAILURES. Use esta sintaxe: RRA: HWPREDICT: ltlengthgt: ltalgagt: ltbetagt: ltperiodgt: ltindex de SEASONALgt RRA: SAISONAL: ltperiodgt: ltgammagt: ltindex de HWPREDICTgt RRA: DEVSEASONAL: ltpariodgt: ltgammagt: ltindex de HWPREDICTgt RRA: DEVPREDICT: ltarray lengthgt: ltindex of DEVSEASONALgt Os argumentos de HWPREDICT e SEASONAL são os mesmos de antes. Os argumentos de DEVSEASONAL e DEVPREDICT são: ltperiodgt é o número de pontos de dados primários no período sazonal. Ele deve corresponder ao valor especificado pelo argumento ltperiodgt dos arrays HWPREDICT e SEASONAL (essa restrição pode ser levantada em uma implementação futura). Deve ser um inteiro maior que 2. ltarray lengthgt é o número de desvios a armazenar antes do wrap-around este número deve ser maior que o período sazonal. Ltgammagt é o parâmetro de adaptação para desvios sazonais, que deve valor entre 0 e 1. Não é necessário que corresponda ao parâmetro de adaptação para a matriz SEASONAL. Ltindex de HWPREDICTgt 1-based index da matriz HWPREDICT na ordem RRAs são especificados no comando create ltindex de DEVSEASONALgt 1-based index da matriz DEVSEASONAL na ordem RRAs são especificados no comando create Finalmente, o FAILURES RRA pode ser criado Explicitamente com a sintaxe, mas no mínimo as matrizes HWPREDICT, SEASONAL e DEVSEASONAL também devem ser criadas. Se as bandas de confiança também são desejadas, crie DEVPREDICT. Use esta sintaxe: RRA: FAILURES: ltlengthgt: ltthresholdgt: ltwindow lengthgt: ltindex de DEVSEASONALgt ltlengthgt é o número de indicadores (0,1 valores) a serem armazenados antes do wrap-around. A 1 indica uma falha: ou seja, o número de violações na última janela de observações atende ou excede o limite. Ltthresholdgt é o número mínimo de violações dentro de uma janela (valores observados fora dos limites de confiança) que constitui uma falha. Ltwindow lengthgt é o número de pontos de tempo na janela. Especifique um número inteiro maior ou igual ao limiar e menor ou igual a 28 (o valor máximo). Ltindex de DEVSEASONALgt 1-based index da matriz DEVSEASONAL na ordem RRAs são especificados no comando create. O algoritmo de detecção de comportamento aberrante não requer nada incomum para o comando de atualização RRDtool para que o mecanismo de coleta (ou seja, Cricket invocando SNMP) seja executado normalmente. Suponha agora que algum tempo passou eo técnico de rede está monitorando a largura de banda de saída na interface do roteador. Ele pode visualizar um gráfico da atividade diária, incluindo bandas de confiança e quaisquer falhas, com o seguinte comando: rrdtool graph example. gif TICK: failffffa0: 1.0: Falhas Bits médios fora LINE2: scaledobs0000ff: Bits médio LINE1: scaledupperff0000: Upper Bound Average Bits out LINE1: scaledlowerff0000: Lower Bound Média bits out TICK é uma nova opção de gráficos na ferramenta RRD. Para cada valor diferente de zero no argumento DEF ou CDEF, ele traça uma marca de verificação. O comprimento da marca (linha) é especificado pelo terceiro argumento (após o código de cor) como uma porcentagem decimal do eixo y. 1.0 é 100 do comprimento do eixo y, assim que a marca do tiqueta transforma-se uma linha vertical no gráfico. As linhas vermelhas finas são as bandas de confiança e as barras amarelas representam falhas (na verdade, várias falhas na seqüência, uma vez que o valor observado perde a confiança Bandas permanece fora das faixas durante um período de aproximadamente duas horas em ambos os casos). A opção de gráfico TICK gerou as barras amarelas do RAS de FALHAS. O gráfico sugere que a largura de banda neste link de saída está aumentando mais rápido do que o esperado pelo modelo (histórico passado). Cabe ao técnico de rede decidir se isso representa comportamento aberrante de interesse. Uma abordagem que o técnico pode tomar é visualizar a série de tempo para esta interface de roteador durante um período de tempo mais longo. Com retrospectiva, é fácil demonstrar que algo incomum está acontecendo eo modelo de detecção de comportamento aberrante está captando em tempo real. Aqui está a série de tempo para a semana e meio período de 24 de maio de 2000 a 2 de junho de 2000: É claro que Wed, 31 de maio, é incomum. Largura de banda aumenta em duas etapas: uma vez no início da manhã e novamente no início da tarde. Neste caso, o mergulho para 0 na madrugada e o salto subseqüente podem ser atribuídos a um tempo de inatividade programado para a rede de serviço. Talvez o restante da atividade de banda em Wed tenha a mesma causa, caso em que o comportamento aberrante detectado é um falso positivo nos olhos do técnico de rede. Dado o exemplo, é claro que existem muitos benefícios da detecção de comportamento aberrante, mas isso complica a implementação de software e o desempenho do tempo de execução do impacto. Esses detalhes são discutidos nesta seção. Para os cinco RRA de detecção aberrante, cada vez que um ponto de dados primário (PDP) é calculado por rrdupdate, cada um dos RRAs é atualizado. This translates into five additional disk seek/write operations. Furthermore, the SEASONAL and DEVSEASONAL RRAs each require a seek/read operation. While the number of additional disk operations is independent of the number of data sources and these operations are performed sequentially whenever possible (i. e. seek avoids moving backwards within the file), these operations do add significant I/O cost relative to a RRD without the aberrant detection RRAs. In a conventional RRD file, there is usually only one RRA that is updated for every PDP, requiring only a single seek/write operation. After the update, the cdpprep areas of the HWPREDICT and SEASONAL RRAs contain sufficient information to make a forecast of future values. The next predicted value can be computed using the following formula: Prediction intercept slope (sequence length of unknown values 1) The intercept is stored in the CDPhwintercept member of the cdpprep area of the HWPREDICT RRA and the data source of interest. The slope is stored in the CDPhwslope member of the cdpprep area of the HWPREDICT RRA. The expression, (sequence length of unknown values 1), is stored as the CDPnullcount member of the cdpprep area of the HWPREDICT RRA. Finally, the seasonal coefficient is stored in the CDPhwseasonal member of the cdpprep area of the SEASONAL RRA and the data source of interest. Aberrant behavior detection does not need to compute the prediction until the value to be predicted is already observed, but it is conceivable that another application may want the prediction before the value is observed. This could be facilitated in the future by adding a new call, rrdpredict, to read the appropriate buffers of HWPREDICT and SEASONAL RRAs and compute the prediction. Isolated or sequences of unknown (U) values are generally not a problem for the Holt-Winters algorithm, either in making forecasts or in updating values (basically, for a unknown value, no update occurs). The algorithm can actually forecast multiple steps into the future, provided the initialization phase is complete. A bulk update can occur when a time interval between observed values exceeds the step size. In this case, the observed value generates more than one primary data point. If the interval exceeds the heartbeat of a data source, all the intervening primary data points will be set to unknown (U), otherwise they will be set to the same (equal) value. Bulk updates create a complication for the aberrant detection RRAs, which are updated for every primary data point. The primary issue is the cost of computing the prediction and predicted deviation. Unlike the case of the conventional consolidation function (i. e. average or maximum), the interim consolidated data points (CDPs) for the aberrant detection RRAs are not identical and must be computed separately. This computation cost aside, there are implementation issues related to the interdependencies between the aberrant detection RRAs. Essentially, to compute the predictions and predicted deviations in sequence, each RRA requires its dependent RRAs to be synchronized (at the same time point). However, the architecture of the rrdupdate function is to process each RRA independently of the others. This architecture is imposed by the optimization that writes to each RRA occur in sequence. Given in these issues, updates in excess of 2 CDPs per observed value (that is, an observed value which translates into more than 2 PDPs) are not currently supported by the aberrant detection implementation. The intermediary CDPs are set to U. In the future, the implementation may support bulk updates, especially as algorithm can handle sequences of U values as input. The implementation is designed to use bootstrap initialization. The intercept coefficient is initialized to the first known value. The slope is initialized to 0 this initialized is predicated on the assumption the linear trend over time is close to 0. If this is not the case, the time required for the Holt-Winters algorithm to gravitate away from 0 will depend on the seasonal adaptation parameter, gamma. During the first seasonal cycle of known values, seasonal coefficients are initialized. During the second seasonal cycle of known values, seasonal deviations are initialized. The sensitivity of the algorithm to the initial values (the first two cycles), declines over time as determined by the adaptation parameters. The weight of the initial value persists longer than subsequent values. For example, given a daily cycle, no periodic smoothing, and gamma 0.1, the weight of the initial value in the tenth iteration (day) seasonal component is 0.4. In contrast, the weight of the second day observation at the same point in the cycle is only 0.04. Unknown values during the first two seasonal cycles can complicate the cold-start. The implementation initializes any coefficients it can during the first two cycles. If some coefficients remain unknown due to unknown values, they are initialized during the first subsequent cycle with known value at that time point in the cycle. As the first value of a COUNTER data source is always unknown, the minimum cold-start period for COUNTER data sources is three seasonal cycles. Reflecting the belief that seasonal coefficients and deviations are smooth periodic functions of time, the implementation periodically runs a moving-average smoother with a window of 5 of the period on the DEVSEASONAL and SEASONAL RRAs. This operation requires reading all DEVSEASONAL and SEASONAL RRA values from disk, updating them, and flushing them back to disk. The smoother is run once per period, at an offset determined by a FNV hashing algorithm on the file name of the RRD file. The intent of the hashing algorithm is to prevent temporal clumping of smoothing operations for multiple RRD files (as RRDTOOL usually runs in a environment with multiple RRD files). The rradef parameters and cdpprep areas provided by the RRD structure definition are sufficient to store all necessary parameters on disk in and in memory for the aberrant behavior detection algorithm, previously the dump and restore (to/from XML) functions did not fully support the import/export of these data structures. The implementation now flushes all RRA parameters to XML using the ltparamgt tag on dump and the restore function reads the new tags. The contents of the cdpprep areas are written as before, marked by the ltdsgt tag. To identify the new XML format, the implementation uses a version tag of 0002. The following list describes files modified from the current release (1.0.25) of RRDtool to implement aberrant behavior detection: rrdcreate. c. support for creation of HWPREDICT, SEASONAL, DEVSEASONAL, and DEVPREDICT RRAs. rrddump. c. support for exporting rradef par and cdpprep scratch variables. rrdrestore. c. support for importing rradef par and cdpprep scratch variables. rrdhw. c. main routines for updating Holt-Winters RRAs smoothing routines FIFO queue implemetation. rrdupdate. c. call routines in rrdhw. c as appropriate rewrite for efficient bulk updates rrdgraph. c. add data reduction support for HWPREDICT, SEASONAL, DEVSEASONAL, and DEVPREDICT RRAs adding the TICK graph element. rrdformat. h. add enumeration values for reference in RRA and CDP scratch arrays. rrdtool. h. function prototypes, FIFO queue method prototypes. hash32.c. implementation of FNV hash. fnv32.h. header file for FNV routines.

No comments:

Post a Comment