{"id":13451712,"url":"https://github.com/ByteArena/docker-healthcheck-watcher","last_synced_at":"2025-03-23T19:32:26.185Z","repository":{"id":57539688,"uuid":"95227524","full_name":"ByteArena/docker-healthcheck-watcher","owner":"ByteArena","description":"Monitor container healthchecks :robot:","archived":false,"fork":false,"pushed_at":"2019-11-19T12:09:15.000Z","size":40,"stargazers_count":16,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-07-02T14:46:41.114Z","etag":null,"topics":["docker","healthcheck"],"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/ByteArena.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}},"created_at":"2017-06-23T14:25:38.000Z","updated_at":"2022-06-11T08:31:04.000Z","dependencies_parsed_at":"2022-09-26T18:31:48.276Z","dependency_job_id":null,"html_url":"https://github.com/ByteArena/docker-healthcheck-watcher","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ByteArena%2Fdocker-healthcheck-watcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ByteArena%2Fdocker-healthcheck-watcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ByteArena%2Fdocker-healthcheck-watcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ByteArena%2Fdocker-healthcheck-watcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ByteArena","download_url":"https://codeload.github.com/ByteArena/docker-healthcheck-watcher/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":213325073,"owners_count":15570230,"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":["docker","healthcheck"],"created_at":"2024-07-31T07:01:00.075Z","updated_at":"2024-07-31T07:04:00.538Z","avatar_url":"https://github.com/ByteArena.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# docker-healthcheck-watcher\n\n\u003cimg src=\"./.github/demo.png\" /\u003e\n\n\u003e Monitor container healthchecks\n\n### The issue\n\nIf you are using a micro-service oriented architecture and you want to make sure all your services are up and running, you need some sort of application healthchecks.\n\nUsually each service must expose an HTTP interface (something like `/health`). In a web application it's easy, you can just create a new route responding to the healthcheck but how would you do for system binaries for example?\n\n### The solution\n\nYou can specify a `HEALTHCHECK` instruction in your Dockerfile. Docker will be executing the command at a regular time (interval and timeout are configurable).\nAlmost no monitoring/alerting tool uses that Docker feature, so we decided to build our own.\n\nThe healthcheck doesn't pass the boundaries of the container, there is no security or disclosure issue. Even for non HTTP service likes batches you can provide a custom command (bash script) to check the health of your program.\n\nIf Docker detects an unhealthy service, it will send a message to our tool and we can decide what to do (see integrations).\n\n### Integrations\n\nAt the moment only Slack is supported for alerting. The configuration (environment variables) is the following:\n\n```yml\n# Slack endpoint with the authentication token\nSLACK_URL: \"https://hooks.slack.com/services/[...]\"\n\n# Channel, private group, or IM channel to send message to.\nSLACK_CHANNEL: \"#ops\"\n\n# Set your bot's user name.\nSLACK_USERNAME: \"dockerwatcher\"\n\n# Emoji to use as the icon for this message\nSLACK_ICONEMOJI: \":robot_face:\"\n```\n\n### Build and run\n\nThe binary is in the `cmd/daemon` folder.\n\nBuild:\n```sh\ngo build\n```\n\nAnd run the daemon:\n```sh\n./daemon\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FByteArena%2Fdocker-healthcheck-watcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FByteArena%2Fdocker-healthcheck-watcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FByteArena%2Fdocker-healthcheck-watcher/lists"}