Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/elauso/spring-boot-otlp-example
Aplicação com spring-boot que provê métricas para observabilidade usando o open-telemetry.
https://github.com/elauso/spring-boot-otlp-example
grafana jaeger open-telemetry open-telemetry-java prometheus spring-boot tracing
Last synced: 4 months ago
JSON representation
Aplicação com spring-boot que provê métricas para observabilidade usando o open-telemetry.
- Host: GitHub
- URL: https://github.com/elauso/spring-boot-otlp-example
- Owner: elauso
- Created: 2023-08-21T00:06:46.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-09-13T05:58:14.000Z (over 1 year ago)
- Last Synced: 2024-09-30T10:20:52.206Z (4 months ago)
- Topics: grafana, jaeger, open-telemetry, open-telemetry-java, prometheus, spring-boot, tracing
- Language: Java
- Homepage:
- Size: 14.5 MB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Spring Boot Open-Telemetry Example
Aplicação que exporta métricas e traces para o Prometheus e Jaeger, usando o Open-Telemetry.
## Sobre 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.
![Alt text](./open-telemetry-collector.png?raw=true "Exemplo solução com open-telemetry")
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.
## Stack
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## Dependências
* jdk17
* docker
* docker-compose## Instalação
Execute o script: ```./run.sh```
## Execução
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:
http://localhost:8889/metrics
Para visualizar os traces das chamadas:
http://localhost:16686/
Para visualizar as métricas no dashboard do Grafana:
1. Acesse a interface web pelo link: http://localhost:3000
2. Faça o login usando as credenciais default (admin/admin)
3. Importe o datasource do Prometheus: Menu > Data sources > Add data source > Prometheus > Preencha URL=http://prometheus:9090 > Save & Test
4. Importe o dashboard: Menu > Dashboards > New Import > Upload dashboard JSON > springboot_apm_dashboard_1693804356811.json > Import