{"id":18494928,"url":"https://github.com/qaware/cloud-computing-th-rosenheim-observability","last_synced_at":"2025-05-14T02:33:07.571Z","repository":{"id":77409283,"uuid":"564263861","full_name":"qaware/cloud-computing-th-rosenheim-observability","owner":"qaware","description":"Observability Stack with Loki, Grafana, Mimir and Tempo","archived":false,"fork":false,"pushed_at":"2023-11-29T20:55:53.000Z","size":786,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-12-25T16:42:19.679Z","etag":null,"topics":["grafana","loki","mimir","observability","tempo"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qaware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2022-11-10T10:48:21.000Z","updated_at":"2023-12-13T15:35:36.000Z","dependencies_parsed_at":"2023-11-29T21:48:20.170Z","dependency_job_id":null,"html_url":"https://github.com/qaware/cloud-computing-th-rosenheim-observability","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qaware%2Fcloud-computing-th-rosenheim-observability","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qaware%2Fcloud-computing-th-rosenheim-observability/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qaware%2Fcloud-computing-th-rosenheim-observability/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qaware%2Fcloud-computing-th-rosenheim-observability/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qaware","download_url":"https://codeload.github.com/qaware/cloud-computing-th-rosenheim-observability/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239210499,"owners_count":19600547,"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","loki","mimir","observability","tempo"],"created_at":"2024-11-06T13:22:44.582Z","updated_at":"2025-02-16T23:26:52.244Z","avatar_url":"https://github.com/qaware.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Observability (Cloud Computing @ TH Rosenheim)\n\nThis project is a showcase of the LGTM stack to demonstrate the topic Observability.\n\nThe tle-fetcher retrieves TLE (two-line element set) data for calculating satellites trajectories from a NASA related API.\nYou can learn more information on the TLE format [here](https://en.wikipedia.org/wiki/Two-line_element_set), on orbital\nmechanics [here](https://en.wikipedia.org/wiki/Orbital_mechanics) and while playing some rounds of Kerbal Space Program.\n\nThe sky-map service retrieves the data from tle-fetcher and outputs it as JSON.\n\nThis project uses Quarkus. If you want to learn more about Quarkus, please visit its website: https://quarkus.io/ .\n\n## Prerequisites\n\nTo build and run this application, you will need the following dependencies on your system:\n\n| Name           | Version |\n|----------------|---------|\n| Docker         | *       |\n| Docker-Compose | 1.13.0+ |\n| Java           | 17      |\n\n\n## Java services\n\n### Building the application\n\nYou can build the application using Gradle:\n\n```shell\n$ ./gradlew build\n```\n\nThis will build the Java applications and two docker images. The docker image will be registered as `qaware/tle-fetcher:1.0.0` and `qaware/sky-map:1.0.0` within your Docker daemon:\n\n```shell\n$ docker images\n\nREPOSITORY           TAG     IMAGE ID       CREATED         SIZE\nqaware/sky-map       1.0.0   5f4a5695cc8f   7 seconds ago   438MB\nqaware/tle-fetcher   1.0.0   55bd6d637c77   7 seconds ago   438MB\n```\n\n### Configuration\n\nAll relevant configuration can be found in each service `src/main/resources/application.properties`.\n\n## The Grafana stack\n\nThe Grafana stack is configured in the directories `grafana`, `loki`, `promtail`, `mimir`,`grafana-agent` and `tempo`.\n\n**NOTE**: It is important to change the permissions on the configuration files for the Grafana stack. Run the following command:\n\n```shell\n$ chmod -R o+rX grafana loki mimir grafana-agent promtail tempo\n```\n\n### Grafana\n\nGrafana is the visualization engine of the Grafana stack.\n\nThe main configuration is done in `grafana.ini`.\n\nYou can provision several other things automatically, like dashboards and datasources. All of this is stored in `grafana/provisioning` and deployed automatically on startup.\n\n### Loki\n\nLoki is the log storage engine of the Grafana stack. In this repository, there is only the `loki/loki.yaml` with basic storage configuration.\n\n### Promtail\n\nPromtail is the logshipper of the Grafana stack. It periodically scrapes logfiles and sends them to Loki.\n\nThe configuration `promtail/promtail.yaml` scrapes the application logs from the services and pre-parses their JSON.\n\n### Mimir\n\nMimir is a time series storage that can be connected to Grafana.\n\n### Grafana Agent\n\nGrafana Agent periodically scrapes metrics from known endpoints and sends it to Grafana Mimir.\n\n### Tempo\n\nTempo stores APM and tracing data from services. It can also be connected to Grafana.\n\n## Running the services\n\nRun the applications with `docker compose`:\n\n```shell\n$ docker compose up\n```\n\n## Related Guides\n\n- SmallRye OpenTracing ([guide](https://quarkus.io/guides/opentracing)): Trace your services with SmallRye OpenTracing\n- Micrometer Registry Prometheus ([guide](https://quarkus.io/guides/micrometer)): Enable Prometheus support for Micrometer\n- REST Client Classic ([guide](https://quarkus.io/guides/rest-client)): Call REST services\n- RESTEasy Classic JSON-B ([guide](https://quarkus.io/guides/rest-json)): JSON-B serialization support for RESTEasy Classic\n- RESTEasy Classic ([guide](https://quarkus.io/guides/resteasy)): REST endpoint framework implementing JAX-RS and more\n- Logging JSON ([guide](https://quarkus.io/guides/logging#json-logging)): Add JSON formatter for console logging\n- SmallRye Health ([guide](https://quarkus.io/guides/microprofile-health)): Monitor service health\n- Micrometer metrics ([guide](https://quarkus.io/guides/micrometer)): Instrument the runtime and your application with dimensional metrics using Micrometer.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqaware%2Fcloud-computing-th-rosenheim-observability","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqaware%2Fcloud-computing-th-rosenheim-observability","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqaware%2Fcloud-computing-th-rosenheim-observability/lists"}