Grafana: Solicitação de recurso: Aceitar variáveis ​​nos níveis de limites da grade

Criado em 10 out. 2014  ·  66Comentários  ·  Fonte: grafana/grafana

Olá @torkelo , estou faltando níveis variáveis ​​de limite por modelo de painel

Suponha que eu esteja projetando um modelo de painel de produto (servidor da web apache, por exemplo) e preciso observar quando o tempo de resposta é maior que um limite.

Embora o painel seja o mesmo, podemos alternar para outras instâncias com variáveis, mas o tempo de resposta (se é bom ou não) depende do back-end que processo real o (pode ser um servidor de aplicativos, pode ser html estático ou talvez um Servidor LAMP), em cada caso os limites serão muito diferentes.

Também seria uma boa ideia mapear esses limites (2 dígitos) com uma das variáveis ​​no modelo (nome da instância) por exemplo.

aredashboartemplating arepanegraph typfeature-request

Comentários muito úteis

@kmoczydlowski @bogatuadrian @sofixa @golddiga @ cattt84
Por favor, pare de bater com +1, você está causando a cada assinante uma notificação (e possivelmente um e-mail)

Use as reações à direita de cada comentário para expressar seu voto.
Obrigado 😄

Todos 66 comentários

: +1:

Adoraria ver isto também: +1:

não tenho certeza se isso funciona, mas talvez se pudéssemos criar uma variável $ threshold vinculada que atualiza o limite com base na configuração da variável, e então o limite usa apenas $ threshold

+1 que abrirá muitas novas possibilidades em termos de painéis dinâmicos

Eu adoraria ter a capacidade de mapear uma métrica até um limite. Eu uso o Grafana para desenhar gráficos de uso de link para hardware de rede e é bom ter um limite mapeado para o tipo de interface. No momento, eu uso a fonte SNMP IfSpeed ​​para obter a velocidade da interface ativa e desenhá-la como uma métrica não preenchida, mas dessa forma quebra o recurso dinâmico máximo / mínimo do Grafana.

+1, seria muito legal ter esse recurso. Eu preciso definir o limite por tags influxdb.

Existe alguma notícia sobre este assunto?

Eu também preciso muito disso. Idealmente, o valor da variável do modelo poderia ser o resultado de uma consulta (não o nome do caminho, mas o valor retornado por esta consulta)

+1

Procurando definir o valor limite dinamicamente com base na consulta elasticsearch.

Para usar o Grafana como substituto do PNP4Nagios, seria muito útil ter a possibilidade de definir limites de advertência / crítica e valores mín. / Máx. Do eixo y com base nos valores de campo!

Precisa disso também.
Por exemplo, eu tenho um gráfico de memória e não é possível swtich $ variável de servidor. Os servidores têm diferentes quantidades de memória e eu quero saber quanto em GiB (não%) é usado, mas não me lembro da quantidade total de memória neles. Portanto, preciso de um limite (ou, talvez, Y-Max) com a variável $ total_mem.

+1 aqui precisa aceitar $ variável

+1

Também estou ansioso por esse recurso, para poder usar um único modelo de gráfico para vários dispositivos com limites diferentes.

Eu gostaria de ter esse recurso também. Qual é o status atual disso?

+1

+1

+1

+1

@kmoczydlowski @bogatuadrian @sofixa @golddiga @ cattt84
Por favor, pare de bater com +1, você está causando a cada assinante uma notificação (e possivelmente um e-mail)

Use as reações à direita de cada comentário para expressar seu voto.
Obrigado 😄

por que não posso usar modelos?

O limite dinâmico pode ser implementado na fonte de dados simpleJson.

+1

+1

+1

Portanto, agora temos 2018. E quanto a esse recurso?

+1

+1 sobre isso.

Como está aberto há 4 anos? Um dos nossos casos de uso é no monitoramento de cotas de armazenamento de arquivos. O limite é definido como um limite flexível e um limite rígido, ambos definidos por compartilhamento de arquivo, portanto, definir isso manualmente é impossível, pois os gráficos são criados dinamicamente. Parece trivial permitir-nos escolher um valor de métrica para passar como o valor para o limite. Esses limites também devem ser usados ​​para alertar.

Eu também estava atrás disso (para o painel singlestat) e implementei uma versão que, com sorte, será incorporada ao plug-in singlestat-math de terceiros (primeira tentativa de fazer um plug-in - então pode ter arestas).
O PR está aqui: https://github.com/black-mirror-1/singlestat-math/pull/14
Você pode puxar do meu galho se quiser usá-lo agora.
Tudo o que você precisa fazer é adicionar uma fonte de dados extra, dar um nome a ela e usar esse nome nos limites. Este plugin também suporta limites de n , que podem ser úteis para alguns.

Preciso disso para verificar se algum trabalho está atrasado. Como uma solução alternativa por agora eu uso uma consulta de variável de modelo max(my_prometheus_metric) e a defini como uma variável oculta, e então eu tenho uma consulta extra para minha visão de tabela que faz abs(my_prometheus_metric - $variable) , e adiciono três retenções a isso coluna. Não é possível ocultar uma coluna que é usada para definir a cor da linha, então eu também ficaria feliz com esse recurso.

Alguma atualização sobre este recurso?

@ debmalyapan53 Desculpe, deixei cair a bola sobre isso - mas acabei de colocar em outro PR contra o lançamento mais recente. Esperançosamente, será fundido em não muito tempo. O PR atual está em: https://github.com/black-mirror-1/singlestat-math/pull/30
Saúde.

Na verdade eu quero implementar uma caixa de texto onde o usuário possa definir o valor limite, de forma que o mesmo possa ser refletido no gráfico.

+1

usando o modelo, podemos contornar isso, esta é minha configuração:

image

image

Observe que eu desativei um servidor nos últimos minutos e o limite mudou

Infelizmente isso não resolve tudo, não podemos "preencher acima" e não podemos ter alertas baseados nisso. Portanto, embora a solução alternativa funcione em muitos casos, ela não resolve todos os problemas, a grafana ainda precisava ser capaz de usar variáveis ​​/ consultas para configurar os limites / alertas

5 anos e nenhuma notícia sobre essa façanha. solicitar?

Gostaria de alertar sobre os resultados do Elastic ML com Grafana. Painel de exemplo sobre o qual gostaria de alertar. Eu tenho o limite inferior / superior no gráfico que é o gráfico do modelo.

image

+1
este é um recurso muito importante. Curios por que está atrasado.

Este é realmente um dos principais recursos necessários. Podemos ter uma atualização sobre isso, por favor?

Este é realmente um dos principais recursos necessários. Podemos ter uma atualização sobre isso, por favor?

Eu apoio isso. Por favor por favor por favor....

Então, basicamente, isso nunca vai acontecer, apesar do fato de que muitas pessoas estão pedindo por isso aqui, e em uma infinidade de outras solicitações, relatórios de bug e em toda a web em geral ao longo de 5 anos. Maneira de receber a opinião de seus usuários e melhorar seu aplicativo.

Eu também preciso disso.

Verifique https://github.com/grafana/grafana/pull/19102 - Se você pode usar sua variável para gerar um valor a partir de uma consulta, isso pode funcionar. "SELECIONE $ {var} DE xyz"

Como solução alternativa, faço o seguinte. Ele assume que o segundo eixo Y não é usado (ou tem um valor mínimo e máximo fixo).

Exemplo:
image

Veja como criá-lo:

  • Adicione uma métrica chamada "down" (ou qualquer outra)

    • Use uma consulta Prometheus como esta (várias linhas!). veja as notas abaixo.

      1 - (day_of_week(vector(time())) > bool 0)
      * (day_of_week(vector(time())) < bool 6)
      * (((hour(vector(time()))  >= bool 7 - 2)))
      * (hour(vector(time())) < bool 19 - 2)
  • Adicione uma modificação de visualização para esta métrica chamada "down":

    • Preenchimento de linha: 1

    • Largura da linha: 0

    • Linha da escada: verdadeiro

    • Cor: _um cinza claro, like_ "rgb (167, 167, 167)"

    • Eixo Y: 2

    • Índice Z: 1 _ (na frente de outras métricas) _

    • Legenda: falsa

    • Ocultar na dica de ferramenta: falso

  • Configure a visualização do 2º eixo Y:

    • min: 0

    • máx: 1 (ou o que você quiser ... multiplique a métrica acima de acordo)

Nota sobre a consulta:

  • Na consulta de exemplo acima, "7-2" é 7h00 da manhã, o "-2" é meu fuso horário e horário de verão!
  • A consulta de exemplo também lida com fins de semana
  • Você é bem-vindo para responder a este comentário se adaptar a consulta para outras fontes de dados

Ugh ... realmente preciso disso e é 2019 ... este é um tópico antigo

mesmo aqui ... provavelmente nunca vai acontecer?

É difícil de implementar ou ninguém quer fazer? Se sim eu gostaria de tentar

@EggTronic Eu
https://github.com/grafana/grafana/blob/4a25ec0d36edcb551e6efd60e665df0fa93cb954/packages/grafana-data/src/types/threshold.ts#L1 -L4

Eu estava pensando em implementar isso especificamente para o bar-gage. O (s) limite (s) são usados ​​aqui:
https://github.com/grafana/grafana/blob/4a25ec0d36edcb551e6efd60e665df0fa93cb954/public/app/plugins/panel/bargauge/BarGaugePanel.tsx#L37

E mais abaixo no mesmo arquivo, há uma função replaceVariables sendo usada, eu acho que é usada para avaliar variáveis ​​grafana:
https://github.com/grafana/grafana/blob/4a25ec0d36edcb551e6efd60e665df0fa93cb954/public/app/plugins/panel/bargauge/BarGaugePanel.tsx#L53 -L61

A maneira como eu posso ver isso sendo feito é

  1. Modifique o tipo Threshold para que value possa ser um nome de variável (string).
  2. Adicione lógica a cada tipo de painel para chamar replaceVariables em qualquer Threshold.value que sejam strings.
  3. Faça com que a caixa de configuração de limite aceite strings (nomes de variáveis).

Não tenho certeza se o design é apropriado para a base de código, é um pouco hack.

+1 para a solicitação de recurso

+1

Eu realmente poderia usar isso para o painel Gauge. Quero mostrar um medidor para cada taglogger gravando em meu banco de dados. Cada registrador relata sua taxa de ingestão e a taxa de ingestão ideal teórica. Mas cada logger precisa de limites diferentes para suas respectivas taxas de ingestão.

+1

Existe uma solução alternativa para esse tipo de funcionalidade (para o painel SingleStat)? Ou os limites podem ser atualizados com uma consulta MySQL?

Qual é a situação desse problema? Isso vai ser implementado? Ou é muito difícil de implementar?

Já perguntei, mas sem resposta: # 25313

+1

Não tenho certeza se o design é apropriado para a base de código, é um pouco hack.

@liamdiprose IMHO é apropriado, você se importou em propor uma solicitação de pull?
Uma razão teórica para evitar legendas dinâmicas é que um modelo de painel deve ser referido a um conjunto de dados uniforme. Ter uma legenda dinâmica aberta para ter um modelo genérico que pode gerenciar diferentes fluxos de dados e isso pode não estar correto. IMHO Estou enfrentando um caso de uso em que vários índices compartilham um layout de painel semelhante com diferentes escalas e mapeamento de cores.
Ter limites dinâmicos me permite gerenciar um único painel em vez de replicá-lo para índices diferentes.

Algum feedback do @torkelo ou qualquer outro no grafana lab ou contribuidores principais? alguns dos recursos são gerenciados em https://github.com/grafana/grafana/pull/24763 ?

@luipir Ainda não, precisamos muito desse recurso funcionando, mas ainda está na minha lista de pendências. :chorar:

Grafana 7 parece estar se movendo na direção baseada em dados, então eu acredito que esse recurso será adicionado eventualmente. @ryantxu, da GrafanaLabs, mencionou que o uso de variáveis ​​dessa forma seria um tópico de discussão semelhante: https://github.com/grafana/grafana/issues/4929#issuecomment -601958742

Eu adoraria ver cada caixa de configuração aceitar variáveis. Talvez todos os valores fornecidos pelo usuário devam ser "avaliados": os nomes das variáveis ​​são avaliados de acordo com seu valor, os valores são avaliados por si próprios. A avaliação da variável precisará da função replaceVariables correta (fornecida ao painel como um suporte) para funcionar.

Seria bom se replaceVariables fosse substituído por eval(varname) -> value , e então replaceVariables pudesse se tornar uma função de utilidade que tivesse eval como parâmetro.

+1

+1

+1

+1

Este seria um recurso extremamente útil ao mapear os estoques. Por exemplo, posso ter limites com base no preço de abertura de um símbolo de ação sem representá-lo como uma métrica. O problema que eu encontrei para fazer um gráfico como uma métrica é que ele vai nivelar / normalizar o gráfico.

Sem traçar o preço de abertura:
image

Após traçar o preço de abertura:
image

Definindo o preço de abertura como um limite (linha azul):
image

+1

+1, este tem sido um recurso solicitado há muito tempo e parece bastante 'padrão'. Ansioso por uma futura atualização com esta funcionalidade!

+1

Em vez do chato +1, estou colocando um (gigante) 🍺 como recompensa por aquele que traz esse recurso para a realidade.

Exemplo de caso de uso: Tentando construir um painel SLO genérico para todos os endpoints de uma API, gostaria que o painel recebesse as condições SLO por meio do URL do painel.

Eu tive um problema semelhante, eu tenho uma consulta mysql e um painel com variáveis ​​para min e max. Não ser capaz de usar as variáveis ​​mín. / Máx. Nos limites foi decepcionante. Mas consegui traçar algo semelhante, o que pelo menos me permitiu visualizar os outliers.

  1. Na consulta, referencie suas variáveis ​​como colunas adicionais.
    select time, data, ${minimum} as data_min, ${maximum} as data_max from table
  2. Adicione uma substituição de série, com correspondência de regex no mínimo e no máximo (por exemplo, /data_(min|max)/ )
  3. Defina a substituição para:

    1. Ative as linhas (presumindo que o gráfico seja de outra forma pontos)

    2. Desabilitar pontos

    3. Use uma cor diferente (ou use substituições individuais para mín. / Máx.)

    4. Desativar legenda

    5. Desativar dicas de ferramentas

Se você tiver uma coluna de métrica, provavelmente desejará nomear o valor dos dados como '' ( data as '' ), o que deixa a legenda / dica de ferramenta sem adornos.

É claro que esta é apenas uma solução alternativa visual, você não obtém os outros benefícios dos limites, então essa solicitação de recurso ainda é muito necessária.

Esta página foi útil?
0 / 5 - 0 avaliações