Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename heartbeats to cron check-ins #219

Merged
merged 3 commits into from
Aug 14, 2024
Merged

Conversation

unflxw
Copy link
Contributor

@unflxw unflxw commented Jul 12, 2024

See also appsignal/appsignal-nodejs#1079.

In Ruby and Node.js, we use const_missing and Proxy
respectively to make Heartbeat pretend to be Cron, allowing
the result of instantiating one to pass an instance class check for
the other and vice-versa, while also emitting a deprecation warning
in the process.

Since the above is not possible in Python, we instead make a
Heartbeat class that emits the deprecation warning, returns
instances of Cron when initialised, and also pretends to be Cron
when instance-checked against. It's not perfect (neither is Proxy)
but it does the trick.

@unflxw unflxw added the chore label Jul 12, 2024
@unflxw unflxw self-assigned this Jul 12, 2024
@unflxw unflxw force-pushed the rename-heartbeats-to-cron-checkins branch 5 times, most recently from 4c65f81 to a69773b Compare July 15, 2024 06:31
@backlog-helper

This comment has been minimized.

@unflxw unflxw marked this pull request as ready for review August 5, 2024 15:38
See also appsignal/appsignal-nodejs#1079.

In Ruby and Node.js, we use `const_missing` and `Proxy`
respectively to make `Heartbeat` pretend to be `Cron`, allowing
the result of instantiating one to pass an instance class check for
the other and vice-versa, while also emitting a deprecation warning
in the process.

Since the above is not possible in Python, we instead make a
`Heartbeat` class that emits the deprecation warning, returns
instances of `Cron` when initialised, and also pretends to be `Cron`
when instance-checked against. It's not perfect (neither is `Proxy`)
but it does the trick.
Change the endpoint to `/check_ins/json` and amend the event format
to use `identifier` instead of `name`, `digest` instead of `id`, and
a new `check_in_type` field.
@unflxw unflxw force-pushed the rename-heartbeats-to-cron-checkins branch from cae1e91 to e491ff7 Compare August 7, 2024 12:13
@backlog-helper

This comment has been minimized.

2 similar comments
@backlog-helper

This comment has been minimized.

@backlog-helper

This comment has been minimized.

Use `identifier` and `digest` instead of `name` and `id` respectively.
@backlog-helper

This comment has been minimized.

1 similar comment
@backlog-helper
Copy link


This is a message from the daily scheduled checks.

New issue guide | Backlog management | Rules | Feedback

@unflxw unflxw merged commit eed57f5 into main Aug 14, 2024
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants