{"id":22610359,"url":"https://github.com/klaxxon/goverseer","last_synced_at":"2025-10-14T16:05:57.106Z","repository":{"id":144307033,"uuid":"194355084","full_name":"klaxxon/goverseer","owner":"klaxxon","description":"Go Overseer - A simple, flexible go based https server for providing a simple metric monitoring server.","archived":false,"fork":false,"pushed_at":"2020-01-23T10:51:18.000Z","size":183,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-02-03T09:44:25.021Z","etag":null,"topics":["chart","gauge","go","golang","metrics","monitoring","web"],"latest_commit_sha":null,"homepage":null,"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/klaxxon.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":"2019-06-29T02:21:04.000Z","updated_at":"2020-01-23T10:51:20.000Z","dependencies_parsed_at":"2024-06-19T15:07:55.372Z","dependency_job_id":null,"html_url":"https://github.com/klaxxon/goverseer","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/klaxxon%2Fgoverseer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klaxxon%2Fgoverseer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klaxxon%2Fgoverseer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klaxxon%2Fgoverseer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/klaxxon","download_url":"https://codeload.github.com/klaxxon/goverseer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246112667,"owners_count":20725301,"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":["chart","gauge","go","golang","metrics","monitoring","web"],"created_at":"2024-12-08T16:06:43.776Z","updated_at":"2025-10-14T16:05:52.071Z","avatar_url":"https://github.com/klaxxon.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GOverseer - Go Overseer ![alt text](https://github.com/klaxxon/goverseer/raw/master/www/img/gopher.png \"Logo Title Text 1\")\n\nThis is a simple HTTPS web server that provides a dynamic webpage that can be used to display any metrics, in a variety of ways.  The objective was to be able to throw simple JSON objects containing metrics like load, disk space, bandwidth, process running, etc. to a lightweight server, and be able to display the results in a flexible format.\n\n\n\n## Functional:\nThe server listens for webserver requests to provide the base web page, websocket connections from the javascript routine on the webpage, to provide real-time updates, and http metric pushes from clients.\n\n## Sending Data\nJust send json to /metric URL of the server.\n```\n{\n      \"apikey\":\"\",\n      \"metrics\":[\n            {\"host\":\"DevMonitor\",\n             \"metric\":\"cpu_user\",\n             \"value\":\"9\",\n             \"interval\":15},\n            {\"host\":\"DevMonitor\",\n             \"metric\":\"cpu_sys\",\n             \"value\":\"3\",\n             \"interval\":15\n            }\n      ]\n}\n```\nThe apikey is just an optional string to prevent others from posting to your server, if configured.\u003cbr/\u003e\nThe metrics is an array of one or more metric objects.\u003cbr/\u003e\nAt a minimum, the metric object must have a host, metric and value.\u003cbr/\u003e\nThe optional interval is used by the server to timeout the values, if desired.\u003cbr/\u003e\n\n## Monitor page:\nTags within the monitor page can be host/metric specific or metric generic.  A generic metric works only with appending text areas, otherwise, a gauge or single text field will overwrite as each host reports it's metric.  These are handled below with templates.\n\n### Very specific\nTo show the cpu_idle metric from the \"Development\" host as a text field, gauge and chart:\n```\n\u003cdiv class=\"container\"\u003e\n      Specific host/metric as text\u003cbr/\u003e\n      \u003cdiv class=\"metric\" metric=\"Development.cpu_idle\"\u003e\n        \u003cdiv widget=\"text\" show=\"hm\"\u003e\u003c/div\u003e\n        \u003cdiv widget=\"gauge\"\u003e\u003c/div\u003e\n        \u003cdiv widget=\"chart\"\u003e\u003c/div\u003e\n        \u003cdiv class=\"name\"\u003e\u003c/div\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n```\n\n\n### Templating\nTemplating allows you to define a look for dynamic entries, for example, as new hosts report in, the template is cloned for the specific metric for the new host.  Put an ID onto the template so the app can track instantiations.\n\nIn this case, a new instance of \"varietyTest\" will be created for each host responding with a cpu_user metric.  This will consist of text, gauge and chart.\n```\n\u003cdiv class=\"template metric\" metric=\"cpu_user\" id=\"varietyTest\"\u003e\n  \u003cdiv widget=\"text\"\u003e\u003c/div\u003e\n  \u003cdiv widget=\"gauge\"\u003e\u003c/div\u003e\n  \u003cdiv widget=\"chart\"\u003e\u003c/div\u003e\n  \u003cdiv class=\"name\"\u003e\u003c/div\u003e\n\u003c/div\u003e\n```\n\n## Setup:\nClone project into your go/src folder.\nWithin the project folder, generate your self signed server keys:\n\n\n### Private key\n```\nopenssl genrsa -out server.key 2048\nopenssl ecparam -genkey -name secp384r1 -out server.key\n```\n\n### Certificate\n```\nopenssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650\n```\n\n```\n$\u003e go run goverseer.go\n```\n\nAccess the page at:\n```\nhttps://localhost:44444\n```\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklaxxon%2Fgoverseer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fklaxxon%2Fgoverseer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklaxxon%2Fgoverseer/lists"}