Skip to content

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 A small task that takes a day or two at the most. 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
unflxw added 2 commits August 7, 2024 14:13
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
@tombruijn tombruijn deleted the rename-heartbeats-to-cron-checkins branch May 15, 2025 12:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore A small task that takes a day or two at the most.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants