NRQL predictions O New Relic usa os padrões de dados históricos de suas séries temporais para prever ou antever tendências futuras, fornecendo insights sobre como a métrica pode se comportar no futuro. Essa abordagem proativa ajuda você a visualizar tendências e antecipar possíveis problemas, permitindo intervenções oportunas para manter o desempenho ideal do sistema. As previsões para seu sinal são geradas ajustando um modelo de aprendizado de máquina aos seus dados históricos e usando esse modelo para prever o futuro. Atualmente, esse recurso oferece suporte a previsões para séries temporais sazonais (dados que têm um padrão recorrente e repetível em uma cadência definida) e não sazonais. métricas que exibem uma forte tendência ou padrão sazonal definido são mais adequadas para previsões. Essas previsões são melhor utilizadas quando adicionadas ao painel existente para fornecer um indicador visual rápido sobre para onde suas métricas estão indo.
Importante
NRQL predictions são compatíveis apenas com consultas de séries temporais. Para obter mais detalhes sobre como escrever consultas de séries temporais, consulte a documentação da sintaxeNRQL na cláusula TIMESERIES.
Previsões feitas usando NRQL predictions (cláusula PREDICT ) para uma série temporal. Neste exemplo, as previsões são geradas para um dia no futuro, com base na palavra-chave BY . O modelo que produz essas previsões é treinado em um total de 17 dias de dados: 3 dias da janela de consulta mais 2 semanas (14 dias) da palavra-chave USING . Observe que o gráfico não exibe todos os dados de treinamento.
Exemplos de situações em que você pode querer adicionar previsões ao seu gráfico ou dashboard:
Seu aplicativo está produzindo mais logs nas últimas horas e o espaço em disco está acabando.
Seu aplicativo está constantemente ficando sem memória, ameaçando travar todo o contêiner.
Você precisa projetar a receita futura com base em padrões sazonais e de tendências observados.
Embora NRQL predictions por si só não identifiquem problemas potenciais, eles fornecem as informações necessárias para avaliar tendências e planejar desafios futuros. Para gerar alertas quando os valores previstos indicarem um problema iminente, você pode usar o recurso Predictive Alerts . Predictive Alerts trabalhe junto com NRQL predictions para gerar previsões para sua métrica e alerta quando esses valores previstos ultrapassarem um limite estático.
Preços
O NRQL predictions é um recurso de produto de computação avançada oferecido como um complemento ou como parte do modelo de preços de computação. CCUs avançados são consumidos quando a consulta NRQL é executada para este recurso.
Uso
NRQL predictions pode ser gerado de duas maneiras: diretamente em gráficos já criados ou escrevendo uma consulta NRQL usando a cláusula PREDICT .
Você pode adicionar NRQL predictions somente a gráficos que representam dados de séries temporais, como gráficos de linhas ou de áreas. Para adicionar um NRQL prediction a um gráfico existente, execute as etapas a seguir:
Para adicionar previsões a um gráfico de linhas ou de áreas, selecione-o em Dashboards ou abra-o em Metrics and events.
Adicionar previsões
Para adicionar uma previsão aos gráficos no painel, em menu, selecione Predict trend. A opção Predict trend não está disponível para gráficos no painel selecionado, que são painéis gerados pelo sistema e não editáveis, projetados para serviços específicos. Então, a partir do menu, selecione View Query e adicione a cláusula PREDICT à consulta.
No Data Explorer, a previsão aparece no gráfico destacada em uma área cinza com uma linha tracejada conectando os valores previstos, representando o comportamento padrãoNRQL predictions. Você pode refinar a consulta ajustando-a de acordo com suas necessidades e executá-la novamente para obter as previsões atualizadas.
Dica
Quando você adiciona previsões a um gráfico de área, ele muda para um gráfico de linhas contendo as previsões.
Adicionar ao dashboard
Para adicionar um gráfico contendo previsões a um dashboard:
Clique em Add to dashboard.
Insira um nome para o widget.
Selecione um dashboard existente ou crie um novo.
A sintaxe NRQL inclui a cláusula PREDICT para simplificar o uso de NRQL predictions. Para obter detalhes e exemplos de uso, consulte a seção de comportamento padrão .
O uso da cláusula padrão PREDICT fornece os melhores resultados de previsão.
A cláusula PREDICT em uma consulta vem com os seguintes comportamentos padrões que dependem da duração da janela de consulta (especificada usando as cláusulas SINCE e UNTIL ):
Default behavior
Sazonalidade
Detecta automaticamente se há sazonalidade presente nos dados históricos. Se a sazonalidade for detectada, a duração da estação identificada será usada para gerar um modelo sazonal; caso contrário, um modelo não sazonal será usado. Atualmente, oferecemos suporte a durações sazonais de hora em hora, diária e semanal. Para mais detalhes sobre sazonalidade, consulte a seção de algoritmo .
Hiperparâmetros de algoritmo
Os hiperparâmetros são otimizados e selecionados automaticamente com base nos dados históricos.
Quantidade de dados históricos para treinamento
Usa dados históricos das últimas três janelas de consulta (a atual e as duas anteriores). Por exemplo, se a janela de consulta tiver uma hora de duração, um total de três horas será usado para treinamento. O gráfico exibe apenas os dados da janela de consulta atual, não todos os dados de treinamento.
Se você quiser exibir apenas um determinado período de tempo na janela de consulta, mas usar mais dados para treinamento, poderá usar a cláusulaUSING.
Se uma sazonalidade diferente do padrão for especificada, a quantidade de dados de treinamento usada será diferente. Para mais detalhes, consulte a seção sazonal .
Janela de previsão
Prevê um intervalo igual a 20% do período de tempo total especificado na janela de consulta. Por exemplo, se a janela de consulta for de uma hora, as previsões serão para os próximos 12 minutos. Você pode substituir esse padrão com a cláusulaBY.
Exemplo de consulta e qual é a saída esperada quando PREDICT é usado:
Retorna um gráfico de série temporal com uma janela de consulta padrão de uma hora e previsões para os próximos 12 minutos. Um total de três horas de dados históricos são usadas para treinamento (1 hora da janela de consulta e 2 horas das 2 janelas de consulta anteriores).
Exemplo 1
Example 2:
FROMTransactionSELECTsum(currentWorkerCount) TIMESERIES SINCE 3 hours ago UNTIL 1hour ago PREDICT
Retorna um gráfico de série temporal com uma janela de consulta de duas horas (com base nas cláusulas SINCE e UNTIL ) e previsões para os próximos 24 minutos. Um total de seis horas de dados históricos são usadas para treinamento (duas horas da janela de consulta e quatro horas das duas janelas de consulta anteriores).
Exemplo 2
Personalizando as previsões com BY, USING e SLIDE BY
Você pode personalizar as previsões definindo manualmente a sazonalidade do modelo e adicionando as palavras-chave BY, USING e SLIDE BY .
Use a palavra-chave BY para definir com que antecedência no tempo você deseja que o modelo preveja. Por exemplo, PREDICT BY 3 hours gera previsões de até três horas no futuro a partir do último ponto na série temporal. Certifique-se de que o intervalo de tempo seja de integer unit tempo. O valor máximo que você pode prever são 360 janelas de tempo (ou seja, o tamanho da janela da sua série temporal vezes 360).
Exemplo de consulta com a palavra-chave BY que gerará previsões para os próximos 30 minutos:
<>Exemplo de previsões feitas com a palavra-chave <InlineCode>BY</InlineCode>. A área dentro da caixa indica qual seção do gráfico é afetada pela palavra-chave <InlineCode>BY</InlineCode>.</>
Use a palavra-chave USING para especificar a quantidade de dados históricos que você deseja usar para treinar o modelo. A quantidade total de dados usados é a soma da duração da janela de consulta (especificada com as cláusulas SINCE e UNTIL ) e do valor especificado com a cláusula USING . Por exemplo, PREDICT USING 1 day usa a janela de consulta mais os dados do dia anterior para treinar o modelo. Certifique-se de que o intervalo de tempo seja de integer unit tempo.
Você pode usar até 3.660 pontos de dados para treinar um modelo. Se você exceder esse limite, receberá uma mensagem de erro. Você pode determinar quanto tempo isso representa usando a janela de séries temporais. Por exemplo, com uma janela de tempo de 1 minuto, você pode usar até 3.660 minutos de dados de treinamento, o que equivale a 61 horas ou cerca de 2,5 dias.
Exemplo de consulta com a palavra-chave USING com SINCE:
FROMTransactionSELECTsum(currentWorkerCount) SINCE 1 week ago TIMESERIES MAX PREDICT USING2 weeks
<>Exemplo de previsões feitas com a palavra-chave <InlineCode>USING</InlineCode>. A palavra-chave <InlineCode>USING</InlineCode> afeta a quantidade de dados usados para treinamento que não são visualizados no gráfico.</>
Use a palavra-chave SLIDE BY para reduzir o ruído em seus dados quando sua previsão mostrar muita variação em períodos curtos. Esta cláusula agrega os dados em janelas de tempo sobrepostas com um intervalo de deslizamento especificado, suavizando picos no gráfico e facilitando a identificação de tendências.
Exemplo de consulta com a palavra-chave SLIDE BY :
Atualmente, NRQL predictions suporta o algoritmo Holt-Winters , também conhecido como suavização exponencial, para séries temporais sazonais e não sazonais. Este é um algoritmo comumente usado e padrão para previsões e séries temporais.
Não sazonal
Para séries temporais não sazonais, apenas o nível (valor médio) e a tendência (aumento ou diminuição média) são modelados. As previsões não sazonais são lineares, portanto, espera-se uma linha plana com ou sem tendência.
Previsões geradas usando NRQL predictions para uma série temporal não sazonal.
Sazonal
Para séries temporais sazonais, o padrão sazonal é incluído, além do nível e da tendência. Sazonalidade representa um padrão repetível que ocorre periodicamente. Oferecemos suporte à detecção automática de estações com durações sazonais horárias, diárias e semanais por padrão para o modelo Holt-Winters. Para detectar cada duração sazonal, você deve garantir que está fornecendo dados suficientes por meio de uma combinação da duração da janela de consulta (especificada usando as cláusulas SINCE e UNTIL ) e a cláusula USING . A quantidade mínima de dados necessária para cada duração sazonal é especificada abaixo. Por padrão, quando nenhuma cláusula USING é usada, NRQL predictions usará três vezes a janela de consulta para gerar previsões.
Detectable seasonalities
Description
Minimum amount of required data
De hora em hora
Cada timestamp dentro de uma hora se comporta da mesma forma que nas horas anteriores. Por exemplo, 15h20 se comportará como 14h20, 13h20, etc.
2 horas
Diário
Cada hora se comporta da mesma forma que as horas do dia anterior. Por exemplo, 15h de hoje se comportará da mesma forma que 15h de ontem.
2 dias
Semanalmente
Cada dia da semana se comportará da mesma forma que nas semanas anteriores. Por exemplo, a segunda-feira desta semana se comportará da mesma forma que a segunda-feira das semanas anteriores.
2 semanas
Você pode especificar durações sazonais personalizadas usando o parâmetro seasonality .
Previsões geradas usando NRQL predictions para uma série temporal com sazonalidade semanal.
Atualmente, oferecemos suporte a previsões usando versões sazonais e não sazonais de Holt-Winters. Para definir uma sazonalidade personalizada, use o parâmetro holtwinters(seasonality: <value>) na cláusula PREDICT .
Option
Description
<season length>
Especifica que um modelo sazonal com a duração da estação fornecida será usado para previsões. A duração da temporada deve ser um integer unit de tempo (ou seja, 1 day ou 3 hours) que representa a duração de um único período sazonal. Por exemplo, um valor de 1 hour é equivalente à sazonalidade horária, 1 day à diária e 1 week à semanal.
AUTO
Utiliza detecção automática de estação. Ele analisa dados históricos na janela de treinamento para ajustar modelos sazonais e não sazonais. A duração da temporada para o modelo sazonal é escolhida com base na sazonalidade mais forte detectada na janela de treinamento. Depois que ambos os modelos são treinados, o mais adequado é selecionado e usado para fazer previsões.
NONE
Especifica que um modelo não sazonal será usado.
Importante
Se a duração de uma temporada for especificada e a cláusula USING for usada, a quantidade de dados usada para treinamento será igual à janela de consulta mais a quantidade USING . Se nenhum USING for especificado, será usado o máximo da duração sazonal e três vezes a janela de consulta.
Exemplo de consulta com sazonalidade especificada pelo usuário:
Exemplo de consulta especificando uma detecção automática de temporada (este é o mesmo comportamento do padrão de não usar o parâmetro holtwinters(...) ):
O ajuste do parâmetro do modelo é destinado a usuários avançados que desejam controle preciso sobre o modelo e para recriar previsões geradas com alertas preditivos.
Atualmente, Holt-Winters é o único algoritmo de previsão suportado e há vários hiperparâmetros que podem ser ajustados para refinar suas previsões. Os hiperparâmetros podem ser modificados adicionando holtwinters(<hyperparameter>: <value>) após a cláusula PREDICT na sua consulta. Qualquer combinação dos seguintes parâmetros pode ser adicionada para modificar como o modelo se ajusta aos dados históricos:
Hyperparameter
Description
Allowed values
alpha
O fator de suavização de nível em que um valor maior dá mais peso aos valores recentes.
[0, 1.0]
beta
O fator de suavização de tendência em que um valor maior dá mais peso aos valores recentes.
[0, 1.0]
gamma
O fator de suavização sazonal, em que um valor maior dá mais peso aos valores recentes. Este parâmetro não é compatível com modelos não sazonais e a consulta retornará um erro se você tentar especificar holtwinters(seasonality: NONE, gamma: <value>).
[0, 1.0]
phi
O parâmetro de amortecimento de tendência, em que um valor menor indica maior amortecimento da tendência e uma previsão de que ela se estabilizará.
[0, 1.0]
É recomendado usar apenas valores no intervalo de ([0.98, 1.0])
Exemplo de consulta com modificações de hiperparâmetros:
Esta consulta define a sazonalidade para detecção automática e enfatiza dados históricos ajustando o fator de suavização de nível. Ele prevê uma hora no futuro e treina o modelo usando o comprimento da janela de consulta junto com as duas horas anteriores de dados históricos. O gráfico exibe as previsões personalizadas da seguinte maneira: