{"id":16875013,"url":"https://github.com/dlsniper/go-hermes","last_synced_at":"2026-05-13T07:39:22.902Z","repository":{"id":141531968,"uuid":"72929904","full_name":"dlsniper/go-hermes","owner":"dlsniper","description":"Go-hermes receives requests with software metrics from servers, mobile apps, IoT devices, and saves them to back end data storage.","archived":false,"fork":false,"pushed_at":"2016-11-05T15:57:44.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-25T00:58:41.007Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dlsniper.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2016-11-05T14:06:07.000Z","updated_at":"2020-08-01T18:27:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"0943926b-bca8-4523-ade0-f50b2b1f6d3e","html_url":"https://github.com/dlsniper/go-hermes","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/dlsniper%2Fgo-hermes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlsniper%2Fgo-hermes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlsniper%2Fgo-hermes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlsniper%2Fgo-hermes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dlsniper","download_url":"https://codeload.github.com/dlsniper/go-hermes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244326216,"owners_count":20435122,"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":[],"created_at":"2024-10-13T15:34:51.910Z","updated_at":"2026-05-13T07:39:17.862Z","avatar_url":"https://github.com/dlsniper.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# go-hermes\nGo-hermes is a Golang app that exposes an HTTP API that receives requests with software metrics.\n\n# About\nThis repository is under heavy development. Doesn't work yet. I appreciate you're taking a look, please read my thoughts below.\n\n# Main components\n1. HTTPS endpoint where all requests will go to (we need to spread the servers across the globe to achieve low latency). There are going to be different endpoints for each type of request. For example for mobile app metrics, `mobile.\u003chost\u003e.com`, server metrics: `server.\u003chost\u003e.com` etc.\n2. Analyze data from requests. This depends on the type of data we received and each one will require different analysis. For example, if it's an app error analysis would be to extract stack trace.\n3. Present data on a UI dashboard. This will allow users to get a visual understanding on what's under-performing and what's performing well.\n4. Agents that push data to endpoint. These are going to be executable files installed on remote host (client installs on their machines), and will collect metrics and push them to our endpoint.\n5. API Clients in different programming languages. This will allow users to create custom metrics that matters to them, and push them programmatically to our endpoint (for example profiling for a function in their app).                        \n\nThere are many interesting issues to tackle on a project like this:\n- coming up with a distributed system architecture\n- scalability and fault tolerance\n\nThe kind of payload we will work with, is going to be JSON as its more lightweight than XML, and all the incoming requests will be compressed, meaning less bandwidth usage (for customers and for us) and faster communication.\n\nKind of metrics that we can collect (below list is not exhaustive):\n- app data (database, external requests, errors/exceptions)\n- server monitoring (disks, memory, cpu)\n- mobile data (usage data, errors, device information)                        \n\nWe also need to think about app events such as: deployments, or software updates and allow customer to compare how that change impacted the servers/application performance. That will allow them to easily decide if a rollback is needed.                   \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdlsniper%2Fgo-hermes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdlsniper%2Fgo-hermes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdlsniper%2Fgo-hermes/lists"}