basecamp / basecamp/easymon

Make health check autodetectable.

Open
#34 1 comment 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.