{"id":29041965,"url":"https://github.com/ilyass-bougati/spring-grafana","last_synced_at":"2026-05-07T01:36:12.930Z","repository":{"id":300297392,"uuid":"1001591125","full_name":"Ilyass-Bougati/spring-grafana","owner":"Ilyass-Bougati","description":"🛠️ Full observability pipeline for a Spring Boot microservices app using the LGTM stack (Loki, Grafana, Tempo, Prometheus). Features centralized logging, metrics, distributed tracing, and trace-to-metrics — all containerized with Docker Compose.","archived":false,"fork":false,"pushed_at":"2025-06-20T22:06:44.000Z","size":2193,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-20T23:21:53.561Z","etag":null,"topics":["distributed-tracing","grafana","lgtm-stack","loki","monitoring","prometheus","spring-boot","tempo","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/Ilyass-Bougati.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-13T16:39:54.000Z","updated_at":"2025-06-20T22:06:47.000Z","dependencies_parsed_at":"2025-06-20T23:22:01.082Z","dependency_job_id":"41dd2a36-cf3e-45eb-b289-b3ab7df95b8b","html_url":"https://github.com/Ilyass-Bougati/spring-grafana","commit_stats":null,"previous_names":["ilyass-bougati/spring-grafana"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ilyass-Bougati/spring-grafana","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ilyass-Bougati%2Fspring-grafana","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ilyass-Bougati%2Fspring-grafana/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ilyass-Bougati%2Fspring-grafana/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ilyass-Bougati%2Fspring-grafana/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ilyass-Bougati","download_url":"https://codeload.github.com/Ilyass-Bougati/spring-grafana/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ilyass-Bougati%2Fspring-grafana/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262090282,"owners_count":23257126,"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":["distributed-tracing","grafana","lgtm-stack","loki","monitoring","prometheus","spring-boot","tempo","tracing"],"created_at":"2025-06-26T15:06:33.013Z","updated_at":"2026-05-07T01:36:07.884Z","avatar_url":"https://github.com/Ilyass-Bougati.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Distributed Observability\nObservability is the ability to measure the internal state of a system only by its external outputs.\nFor a distributed system like microservices, these external outputs are basically known as telemetry data. It includes information like the resource consumption of a machine, the logs generated by the applications running on a machine, and several others.\nIn this project I'm using [Grafana](https://grafana.com/), [Loki](https://grafana.com/oss/loki/), [Prometheus](https://prometheus.io/), [Zipkin](https://zipkin.io/) and [Spring boot](https://spring.io/projects/spring-boot)\n\n![img](img/architecture.png)\n\nThe whole Collection and visualization layer is put together through [Docker compose](https://docs.docker.com/compose/), and can be ran with a simple command\n```bash\ndocker compose up\n```\nThen the Grafana interface will be accessible from `http://localhost:3000/`. For the services, each one should be run individually, by first entering the `services` directory and running the PostgreSQL docker container using the `docker compose up` command. Then, for each of the two services, we just enter the directory of the service and run the command\n```bash\n./mvnw spring-boot:run\n```\n\n# The project so far\nNote that I still can't access the Zipkin data from Grafana. And that I only have one service so far in the project\n\n## The metrics\nThe metrics data is collected into a Prometheus database, then read by Grafana, where we can create dashboards from it\n\n![img](img/metrics.png)\n\n## The logs\nFor the logs we're using Grafana Loki, we collect them in a Loki instance, then visualize them using Grafana\n\n![img](img/loki.png)\n\n## The traces\nWe're using Tempo as a traces collector\n\n![img](img/traces.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filyass-bougati%2Fspring-grafana","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Filyass-bougati%2Fspring-grafana","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filyass-bougati%2Fspring-grafana/lists"}