Make health check autodetectable.
- Dominant language
- Ruby
- Stars
- 219
- Forks
- 19
- PR merge metrics
- No merged PRs in 30d
Description
Background: Rails 7.1 will be adding health checks. I work for Fly.io as a Rails Speciality and would like to make Fly.io automatically detect the presence of health checks and pre-configure applications to enable these health checks if I can detect them. The problem is that health checks can vary on paths and implementation. I have a pull request that has been merged into Rails 7.1, and a pull request open for the rails_healthcheck gem that enable me to discover the healthcheck endoint using the following code:
```
bin/rails runner "p Rails.application.routes.url_helpers.rails_health_check_path"
```
Easymon poses unique challenges. For starters, there can be multiple endpoints, and it would be desirable to provide a way to indicate which one is the default one. Easymon is also implemented as an engine, so the url helper is scoped to the engine.
Rather than making assumptions, I'm opening up an issue so we can discuss how to approach this problem. If there is code I can contribute, I'm willing to do the work. If there is a recommendation on how I can adjust my check, let me know.
See also:
* https://github.com/superfly/flyctl/pull/1678
* https://github.com/rails/rails/pull/47217
* https://github.com/rails/rails/pull/46936
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the Rails route helper command shown in the issue and review the linked Rails and flyctl pull requests. Examine how Easymon’s engine-scoped URL helpers and multiple endpoints affect autodetection; done requires an agreed approach for identifying and selecting a default health-check endpoint.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rails, ruby
- Domain
- backend, observability-sre
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100