{"id":26522451,"url":"https://github.com/nfaltir/go-uptime","last_synced_at":"2026-04-05T22:03:02.274Z","repository":{"id":283261935,"uuid":"951180947","full_name":"nfaltir/go-uptime","owner":"nfaltir","description":"⚡️ go api that checks web app uptime and latency. It saves data and visualize it. ","archived":false,"fork":false,"pushed_at":"2025-03-19T10:03:32.000Z","size":716,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-19T10:38:05.063Z","etag":null,"topics":["go","golang","grafana","python3","streamlit"],"latest_commit_sha":null,"homepage":"","language":"Go","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/nfaltir.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}},"created_at":"2025-03-19T09:33:34.000Z","updated_at":"2025-03-19T10:03:35.000Z","dependencies_parsed_at":"2025-03-19T10:48:47.578Z","dependency_job_id":null,"html_url":"https://github.com/nfaltir/go-uptime","commit_stats":null,"previous_names":["nfaltir/go-uptime"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfaltir%2Fgo-uptime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfaltir%2Fgo-uptime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfaltir%2Fgo-uptime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfaltir%2Fgo-uptime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nfaltir","download_url":"https://codeload.github.com/nfaltir/go-uptime/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244805176,"owners_count":20513231,"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":["go","golang","grafana","python3","streamlit"],"created_at":"2025-03-21T13:27:03.286Z","updated_at":"2025-12-30T23:58:56.787Z","avatar_url":"https://github.com/nfaltir.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Site Uptime Monitor\n\nA Go-based application to track website uptime and latency, with dashboards built using Streamlit and Grafana.\n\n\u003cbr\u003e\u003chr\u003e\n\n\n## Overview\nThis project monitors the uptime and latency of a web application, storing results in a SQLite database (`site_status.db`). It provides:\n- A Go backend with an API endpoint (`/data`) serving JSON data.\n- A Streamlit dashboard (Python) to visualize API data.\n- A Grafana dashboard to analyze SQLite data with advanced tools.\n\n\u003cbr\u003e\n\n## Project Setup\n\n- create  a `touch .env` file inside root folder\n- inside the file create an environment variable called `targetURL=\u003curl for your site\u003e`\n- run app `go run main.go`\n- to run the frontend end you might need to create a python environemnt first, then start frontend server. `streamlit run app.py`\n- to visuaize Grafana, you need to docker for installation.\n\n\u003cbr\u003e\n\n## Features\n\n\u003cbr\u003e\u003chr\u003e\n\n### Streamlit Dashboard\n- Built with the [Streamlit](https://streamlit.io/) Python framework.\n- Visualizes JSON data from `http://localhost:8080/data` in a simple, interactive UI.\n- Screenshot:  \n  ![Streamlit Dashboard](./assets/streamlit.png \"Streamlit dashboard showing latency and uptime\")\n\n\u003cbr\u003e\n\n\n### Grafana Dashboard\n- Uses [Grafana](https://grafana.com/), an open-source visualization platform.\n- Connects to `site_status.db` for detailed metrics (e.g., latency trends, uptime stats).\n- Requires Docker to run on port `3000`—see setup below.\n- Screenshot:  \n  ![Grafana Dashboard](./assets/grafana.png \"Grafana dashboard with latency and status visualizations\")\n\n\u003cbr\u003e\n\n## Golang API Endpoint \n\n- localhost:8080/data\n- Screenshot:\n      ![Api Endpoint](./assets/api.png \"Api endpoint serving at port 8080/data\")\n\n\n\u003cbr\u003e\n\n## Notes\n\nLatency is relatively high—this is due to:\n- The hosting server configuration.\n- Rate-limiting on the monitored site.\n- The app pings the server every 10 minutes to check if it's online.\n- Future enhancements will include push notifications via Grafana alerting tools.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnfaltir%2Fgo-uptime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnfaltir%2Fgo-uptime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnfaltir%2Fgo-uptime/lists"}