{"id":15017938,"url":"https://github.com/elauso/spring-boot-otlp-example","last_synced_at":"2025-04-12T12:34:02.148Z","repository":{"id":189612038,"uuid":"680957066","full_name":"elauso/spring-boot-otlp-example","owner":"elauso","description":"Aplicação com spring-boot que provê métricas para observabilidade usando o open-telemetry.","archived":false,"fork":false,"pushed_at":"2023-09-13T05:58:14.000Z","size":15190,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-26T07:11:26.561Z","etag":null,"topics":["grafana","jaeger","open-telemetry","open-telemetry-java","prometheus","spring-boot","tracing"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elauso.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-08-21T00:06:46.000Z","updated_at":"2024-03-11T17:05:04.000Z","dependencies_parsed_at":"2023-08-21T02:19:28.403Z","dependency_job_id":null,"html_url":"https://github.com/elauso/spring-boot-otlp-example","commit_stats":{"total_commits":14,"total_committers":1,"mean_commits":14.0,"dds":0.0,"last_synced_commit":"65b10f7958c94ffdcf0d0b4c0394e391c53c5b9f"},"previous_names":["elauso/spring-boot-otlp-example"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elauso%2Fspring-boot-otlp-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elauso%2Fspring-boot-otlp-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elauso%2Fspring-boot-otlp-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elauso%2Fspring-boot-otlp-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elauso","download_url":"https://codeload.github.com/elauso/spring-boot-otlp-example/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248566752,"owners_count":21125714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["grafana","jaeger","open-telemetry","open-telemetry-java","prometheus","spring-boot","tracing"],"created_at":"2024-09-24T19:51:13.481Z","updated_at":"2025-04-12T12:34:02.127Z","avatar_url":"https://github.com/elauso.png","language":"Java","readme":"# Spring Boot Open-Telemetry Example\n\nAplicação que exporta métricas e traces para o Prometheus e Jaeger, usando o Open-Telemetry.\n\n## Sobre o Open-Telemetry\n\nO Open-Telemetry é um conjunto de ferramentas usados para provê observabilidade da sua aplicação.\n\nÉ uma solução open-source, que surgiu com a fusão dos projetos Open-Census e Open-Tracing.\n\nÉ 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.\n\n![Alt text](./open-telemetry-collector.png?raw=true \"Exemplo solução com open-telemetry\")\n\nImagem: https://www.giorgosdimtsas.net/blog/collecting-spring-boot-telemetry-data-with-opentelemetry/\n\nNesse 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.\n\n## Stack\n\nTecnologia                       |  Versão       |\n---------------------------------|---------------|\njdk                              | 17\nspring-boot                      | 3.1.2\nmap-struct                       | 1.5.5.Final\nlombok                           | 1.18.20\nlombok-mapstruct-binding         | 0.2.0\nmysql-connector-java             | 8.0.33\n\n## Dependências\n\n* jdk17\n* docker\n* docker-compose\n\n## Instalação\n\nExecute o script: ```./run.sh```\n\n## Execução\n\nExecute o comando para registar um novo produto:\n\n```curl -i -H \"Content-Type: application/json\" http://localhost:8080/products -d '{\"name\":\"test01\",\"type\":\"CONVENIENCE\"}'```\n\nPara consultar o produto registrado:\n\n```curl -i http://localhost:8080/products/1```\n\nPara consultar as métricas registradas:\n\nhttp://localhost:8889/metrics\n\nPara visualizar os traces das chamadas:\n\nhttp://localhost:16686/\n\nPara visualizar as métricas no dashboard do Grafana:\n\n1. Acesse a interface web pelo link: http://localhost:3000\n2. Faça o login usando as credenciais default (admin/admin)\n3. Importe o datasource do Prometheus: Menu \u003e Data sources \u003e Add data source \u003e Prometheus \u003e Preencha URL=http://prometheus:9090 \u003e Save \u0026 Test\n4. Importe o dashboard: Menu \u003e Dashboards \u003e New Import \u003e Upload dashboard JSON \u003e springboot_apm_dashboard_1693804356811.json \u003e Import","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felauso%2Fspring-boot-otlp-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felauso%2Fspring-boot-otlp-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felauso%2Fspring-boot-otlp-example/lists"}