Aplicação que exporta métricas e traces para o Prometheus e Jaeger, usando o Open-Telemetry.
O Open-Telemetry é um conjunto de ferramentas usados para provê observabilidade da sua aplicação.
É uma solução open-source, que surgiu com a fusão dos projetos Open-Census e Open-Tracing.
É vendor-neutral, pois permite habilitar a observabilidade, usando coletores que exportam as métricas para diversas soluções como Prometheus, Jaeger (etc), sem ficar preso a uma solução específica.
Imagem: https://www.giorgosdimtsas.net/blog/collecting-spring-boot-telemetry-data-with-opentelemetry/
Nesse projeto é usado o Open-Telemetry para coletar as métricas da aplicação, e exporta-las para os backends Prometheus e Jaeger. Ao final será exibida as métricas em um gráfico gerado no Grafana.
Tecnologia | Versão |
---|---|
jdk | 17 |
spring-boot | 3.1.2 |
map-struct | 1.5.5.Final |
lombok | 1.18.20 |
lombok-mapstruct-binding | 0.2.0 |
mysql-connector-java | 8.0.33 |
- jdk17
- docker
- docker-compose
Execute o script: ./run.sh
Execute o comando para registar um novo produto:
curl -i -H "Content-Type: application/json" http://localhost:8080/products -d '{"name":"test01","type":"CONVENIENCE"}'
Para consultar o produto registrado:
curl -i http://localhost:8080/products/1
Para consultar as métricas registradas:
Para visualizar os traces das chamadas:
Para visualizar as métricas no dashboard do Grafana:
- Acesse a interface web pelo link: http://localhost:3000
- Faça o login usando as credenciais default (admin/admin)
- Importe o datasource do Prometheus: Menu > Data sources > Add data source > Prometheus > Preencha URL=http://prometheus:9090 > Save & Test
- Importe o dashboard: Menu > Dashboards > New Import > Upload dashboard JSON > springboot_apm_dashboard_1693804356811.json > Import