Hoje mostrar como criar um dashboard no Grafana, através de uma consulta SQL no banco de dados.

Antes de avançarmos é necessário configurar o DATASOURCE para a conexão com o banco.

Clique no ícone lateral e selecione a opção (Data Sources).

Clique no botão Add data source Informe um nome para o data source, selecione o tipo e os dados para a conexão.
É importante que defina um nome que identifique a base de dados, pois será utilizado posteriormente.

No exemplo, estou usando conexão com o Banco MySQL.

Ao salvar, observe que o Grafana fará um teste de conexão, e vai exibir uma mensagem indicando que foi conectado com sucesso. Se a mensagem for de erro revise os dados de conexão.

Será listado todos os data sources configurados.

Vamos ao Dashboard!

Escolha o tipo de dashboard que deseja incluir, estou usando (Table)

Agora clique na opção ao lado do título e em Edit.Informe o título do Dashboard e descrição

Agora clique na aba Metrics, selecione o Data Source e insira o comando SQL, observe que será exibido uma tabela de acordo o SQL criado.

Ainda não crie as condições do WHERE, criaremos logo em seguida na etapa das variáveis.

Obs.: Criei um SQL apenas para demonstrar o processo de criação.

SELECT
DATE_FORMAT(a.dt_entrada,’%m/%Y’) dt_mes
,CASE MONTHNAME(a.dt_entrada)
WHEN ‘January’ THEN DATE_FORMAT(a.dt_entrada, “%Y/Janeiro”)
WHEN ‘February’ THEN DATE_FORMAT(a.dt_entrada, “%Y/Fevereiro”)
WHEN ‘March’ THEN DATE_FORMAT(a.dt_entrada, “%Y/Março”)
WHEN ‘April’ THEN DATE_FORMAT(a.dt_entrada, “%Y/Abril”)
WHEN ‘May’ THEN DATE_FORMAT(a.dt_entrada, “%Y/Maio”)
WHEN ‘June’ THEN DATE_FORMAT(a.dt_entrada, “%Y/Junho”)
WHEN ‘July’ THEN DATE_FORMAT(a.dt_entrada, “%Y/Julho”)
WHEN ‘August’ THEN DATE_FORMAT(a.dt_entrada, “%Y/Agosto”)
WHEN ‘September’ THEN DATE_FORMAT(a.dt_entrada, “%Y/Setembro”)
WHEN ‘October’ THEN DATE_FORMAT(a.dt_entrada, “%Y/Outubro”)
WHEN ‘November’ THEN DATE_FORMAT(a.dt_entrada, “%Y/Novembro”)
WHEN ‘December’ THEN DATE_FORMAT(a.dt_entrada, “%Y/Dezembro”)
END AS dt_mes_extenso
,COUNT(*) qtde_atde
,COUNT(*) -1 qtde_alta
,( (COUNT(*) -1) / COUNT(*) * 100) pct_altas
, ‘300000,00’ vl_previsto
, ‘220000,00’ vl_faturado
,ROUND( ‘220000,00’ / ‘300000,00’ * 100 ,2) pct_faturado
FROM
beind_atendimento a
GROUP BY DATE_FORMAT(a.dt_entrada,’%m/%Y’)
ORDER BY DATE_FORMAT(a.dt_entrada,’%Y’) DESC , DATE_FORMAT(a.dt_entrada,’%m’) DESC

Na aba Options, podemos definir a quantidade de linhas por página e habilitar ou desabilitar o Scroll da página.

Na aba Column Styles, podemos personalizar os nomes das colunas, cor, tipo de valor, máscara entre outros. veja o exemplo abaixo.

Defina o nome para cada coluna.

Lembre de salvar o dashboard para evitar a perda.

A primeira parte está pronta. Agora vamos incluir a opção de filtro(variáveis).

Após abrir o Dashboard, clique sem settings:

Clique em Variables, e Add Variable

Agora defina um nome, label, tipo, data source, ordenação e clique em add.

Exemplo 1: (fixo)

Exemplo 2: (buscando dados do banco / datasource)

Crie quantas variáveis precisar.

Teremos o seguinte resultado:

Em seguida vamos editar o dashboard para incluir a passagem da(s) variáveis.

Vamos editar o SQL incluindo a passagem da variável.

WHERE DATE_FORMAT(a.dt_entrada,’%Y’) = $ano

 

Pronto seu dashboard será dinâmico de acordo a seleção da variável.

 

 

 

Se você acabou de instalar o Grafana leia o post: http://blog.fabianobento.com.br/2018/05/primeiros-passos-apos-instalacao-grafana/

Primeiros passos após Instalação do Grafana

11 Thoughts on “Grafana – Criando Dashboard no Grafana

  1. Ola, estou tentando configurar o datasourcer no grafana, como localhost:1434 (telnet passa) porém sempre dá o erro abaixo.

    Unable to open tcp connection with host ‘localhost:1434’: dial tcp 127.0.0.1:1434: connect: connection refused

    o fw e antivirus estão todos desativados. Pode me ajudar?

    • Olá Alexandre, o banco de dados está local na mesma máquina que o Grafana? Se estiver, tente usar o endereço IP do computador ou até mesmo o nome do computador.

  2. Claudio Ribeiro on 13 de abril de 2019 at 22:22 said:

    Gostei, muito das dicas.
    Fiz umas pesquisas encontrei vários Dashboard e até baixei alguns do Windows Server e Linux. Gostaria de saber, como posso criar Dashboard de Mikrotik, pois não encontrei nenhum com as informações de configuração do Mikrotik.
    Gostaria de saber se é possível disponibilizar um Dashboard para Mikrotik.

  3. Everaldo on 11 de julho de 2019 at 08:18 said:

    Muito obrigado por compartilhar seu conhecimento de maneira tão objetiva.
    Foi de grande valia pra mim.
    Parabéns!!!

  4. Boa noite estou com problema de integração do grafana com meu banco de dados com my sql teria como fazer isso passo a passo, obrigado.

  5. Boa tarde!

    Tenho alguns bancos SQL como datasources porem não consigo criar graficos (pizza, barra, temperatura…) com algumas queries , apenas consigo em forma de tabela

  6. Muito obrigado por compartilhar seu conhecimento, to querendo saber como fazer dashboards no grafana usando o sheets como fonte de dados?

  7. Mateus Silva on 28 de julho de 2021 at 11:13 said:

    Olá, bom dia!
    Galera estou com uma dúvida sobre a aplicação do Grafana de uma variável por select não estou conseguindo colocar ela para pegar múltiplos valores e deixar ela com o geral somente fica com um valor.

    ——– O Select que usei para retornar os setores
    Select CCT.NM_CCUSTO AS SETOR FROM HISTMANU Left Join veiculo vcl on histmanu.CD_VEICULO = vcl.CD_VEICULO Left Join TPEQUIP tpe on vcl.CD_TPEQUIP = tpe.CD_TPEQUIP Left Join Ccusto cct on vcl.CD_CCUSTO = cct.CD_CCUSTO
    —— O Select usado que queria verificar a variável realizando o filtro com múltiplos setores e o all(Todos os Setores) só que está gerando o problema quando coloco mais de um valor ou o all

    SELECT
    SYSDATETIME() as time,
    CCT.NM_CCUSTO as metric,
    count(DISTINCT NR_ORDSERV)
    FROM HISTMANU
    Left Join veiculo vcl on histmanu.CD_VEICULO = vcl.CD_VEICULO
    Left Join Ccusto cct on vcl.CD_CCUSTO = cct.CD_CCUSTO
    WHERE DH_SAIDA is null
    AND DH_ENTRADA IS NOT NULL
    AND CCT.NM_CCUSTO = ${Setor}
    GROUP BY CCT.NM_CCUSTO
    ORDER BY count(DISTINCT NR_ORDSERV) DESC

    Tenho as imagens, mas, não temo como anexar.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Post Navigation