Template de implementação do Grafana para o OpenRedu

Tínhamos o objetivo de contribuir com o OpenRedu através de um dashboard do Grafana no qual seria possível acompanhar o funcionamento de endpoints(taxa de erros, números de requests, etc.). Contudo , no momento da criação deste post, o OpenRedu conta com dependências deprecadas ou inexistentes, logo, não conseguimos rodar o projeto e, consequentemente, não conseguimos implementá-lo.

Portanto, decidimos criar um projeto genérico que serve como prova de conceito. Este projeto faz uso do Prometheus para registrar as métricas que são depois enviadas ao Grafana para criar os dashboards.
No projeto usamos Docker para subir instâncias dos 3 projetos(OpenRedu, Prometheus e Grafana) de uma vez só.

Passa a passo para rodar o projeto localmente:

Para rodar o projeto localmente, assumimos que você tem docker e o docker compose instalados. Para rodar apenas o projeto template, siga o passo a passo abaixo:
1- garanta que o docker está iniciado com systemctl start docker
2- entre no diretório redu-mock
2- construa o projeto com docker build. Isso vai instalar todas as dependências necessárias e criar uma imagem do projeto.
3- rode o projeto com docker run.

Se você quiser rodar já com acesso ao prometheus e grafana, no diretório raiz, rode docker-compose up. Isso vai realizar o passo a passo do Dockerfile do projeto template, além de criar uma instância do prometheus e do grafana. O projeto template pode ser acessado no localhost:8080 e as métricas do projeto sendo capturadas pelo prometheus pode ser acessadas em localhost:8080/metrics. O grafana pode ser acessado em localhost:3000 e o login e senha padrão são admin/admin.

Próximos Passos:

  1. Fazer a implementação deste template no OpenRedu
  2. Incluir mais painéis no dashboard com informações como por exemplo métricas de usuários(número de usuários online, número de acessos diário) e informações da máquina(Uso de CPU, memória, etc.)
  3. Implementar alertas no Grafana(Ex: uso excessivo de memória)
  4. Usar a API do Grafana para criar esses dashboards automaticamente sempre que um projeto for iniciado

Repositório do template