{"id":19702171,"url":"https://github.com/dipsas/healthchecknormalizer","last_synced_at":"2026-05-14T15:36:10.640Z","repository":{"id":90879860,"uuid":"557249726","full_name":"DIPSAS/HealthCheckNormalizer","owner":"DIPSAS","description":"Service for probing endpoints and generating a normalized health check","archived":false,"fork":false,"pushed_at":"2022-10-28T11:52:29.000Z","size":15,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-02-27T16:18:44.443Z","etag":null,"topics":["endpoints","healthcheck"],"latest_commit_sha":null,"homepage":"","language":"Python","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/DIPSAS.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":"2022-10-25T10:52:48.000Z","updated_at":"2022-10-31T12:54:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"5ed4bce4-d42b-4601-ae7d-0cf644d0932a","html_url":"https://github.com/DIPSAS/HealthCheckNormalizer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DIPSAS/HealthCheckNormalizer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DIPSAS%2FHealthCheckNormalizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DIPSAS%2FHealthCheckNormalizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DIPSAS%2FHealthCheckNormalizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DIPSAS%2FHealthCheckNormalizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DIPSAS","download_url":"https://codeload.github.com/DIPSAS/HealthCheckNormalizer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DIPSAS%2FHealthCheckNormalizer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33031295,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["endpoints","healthcheck"],"created_at":"2024-11-11T21:13:43.604Z","updated_at":"2026-05-14T15:36:10.635Z","avatar_url":"https://github.com/DIPSAS.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Health Check Normalizer\nThis code fetches health checks for each endpoint related to the Testlab Environments and returns a normalized data set for each endpoint for use in e.g. dashboards.\n\nThis service runs within a Docker container, and needs to be built by exeucting the following:\n```Bash\n$ docker-compose build\n```\n\nWhen the image are built, start the container:\n```Bash\n$ docker-compose up -d\n```\n\n\n## Prerequisits\nDocker and docker-compose must be working on the host.\n\n\n## Configuration\nThe [configuration file](config.yaml) contains a section for _default values_ and specific configurations for each endpoint.\n\nThe syntax to use for a endpoint node which have only default values, looks like this:\n\n```yaml\nendpoints:\n  hostname.domain.no:\n```\n\nIf a specific configuration for the endpoints instead is preferred, the following could be applied instead:\n\n```yaml\nendpoints:\n  hostname.domain.no:\n    port: 1234\n    request_uri: /api/endpointToGet\n    proto: https\n    method: get\n```\n\nThe `method` parameter are at the moment only limited to `GET` requests, but will if needed be extended to support other methods such as `POST` requests.\n\n\n## How does this work?\nThe Docker container runs the [start.sh](start.sh) script with the given [configuration file](config/config.yaml).\n\nThe given environments are defined within the configuration file.\n\nThe [start.sh](start.sh) script iterates through each environment and initiates the [main.py](main.py) against a given environment.\n\nThe [main.py](main.py) script iterates through each node host and retrieves all endpoints for a given environment.\n\nThen each endpoint are probed against the given rules and a normalized JSON health format are outputted.\n\nThe JSON output standard are based on the [json_exporter standard](https://github.com/prometheus-community/json_exporter/blob/master/examples/data.json), which means the generated normalized health checks can be implemented in [Grafana](https://github.com/grafana/grafana) by using [Prometheus](https://github.com/prometheus/prometheus) and [json_exporter](https://github.com/prometheus-community/json_exporter).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdipsas%2Fhealthchecknormalizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdipsas%2Fhealthchecknormalizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdipsas%2Fhealthchecknormalizer/lists"}