[GH-ISSUE #1130] Filter URL pings by keywords #782

Closed
opened 2026-02-25 23:43:34 +03:00 by kerem · 4 comments
Owner

Originally created by @lcswillems on GitHub (Mar 4, 2025).
Original GitHub issue: https://github.com/healthchecks/healthchecks/issues/1130

Hello!

There is a way to filter emails by keywords (for success / failure).

Image

Would it be possible to propose the same filtering but for URL pings?

For example, if the body of the request sent to the URL contains X then it is a success and if it contains Y then it is a failure.

Originally created by @lcswillems on GitHub (Mar 4, 2025). Original GitHub issue: https://github.com/healthchecks/healthchecks/issues/1130 Hello! There is a way to filter emails by keywords (for success / failure). ![Image](https://github.com/user-attachments/assets/cd58bc86-309e-41f1-8e18-e5769e4d986f) Would it be possible to propose the same filtering but for URL pings? For example, if the body of the request sent to the URL contains X then it is a success and if it contains Y then it is a failure.
kerem closed this issue 2026-02-25 23:43:34 +03:00
Author
Owner

@jwyse commented on GitHub (Aug 2, 2025):

+1 This would be very useful.

I'm currently trying to monitor a process that sends HTTP pings with text payloads: It always sends a "started" message, conditionally sends a "successfully completed" message, and sends a tail of the log file (which will contain "ERROR") if it fails. Monitoring with Healthchecks if barely useful here, because the process rarely fails to start at all, so Healthchecks reports UP even if it gets a ping payload containing "ERROR".

I have no control over the process to customize the notification payloads or endpoints. The return code of the calling script is always 0, so that's not useful. Filtering rules would be extremely helpful here, but since Healthchecks is getting the pings via HTTPS instead of email, it does not seem to be applying any filtering rules.

Thanks!

<!-- gh-comment-id:3146727662 --> @jwyse commented on GitHub (Aug 2, 2025): +1 This would be very useful. I'm currently trying to monitor a process that sends HTTP pings with text payloads: It always sends a "started" message, conditionally sends a "successfully completed" message, and sends a tail of the log file (which will contain "ERROR") if it fails. Monitoring with Healthchecks if barely useful here, because the process rarely fails to start at all, so Healthchecks reports UP even if it gets a ping payload containing "ERROR". I have no control over the process to customize the notification payloads or endpoints. The return code of the calling script is always 0, so that's not useful. **Filtering rules** would be extremely helpful here, but since Healthchecks is getting the pings via HTTPS instead of email, it does not seem to be applying any filtering rules. Thanks!
Author
Owner

@cuu508 commented on GitHub (Nov 21, 2025):

Looking into this and experimenting with the UI in the "Filtering Rules" dialog. Here's the mockup I have currently:

Image

As a quick usability test, here are a few questions for anybody willing to give it a go:

  • Looking at the screenshot, is it easy to understand what each control is intended to be used for?
  • If a check was configured exactly like shown in the form, what would you assume would happen when a check receives a HTTP GET ping (so no request body)?
  • What values would you set to get the following behaviour: consider all incoming pings failure signals unless the string "Backup successful" is present somewhere in the request body
<!-- gh-comment-id:3563555056 --> @cuu508 commented on GitHub (Nov 21, 2025): Looking into this and experimenting with the UI in the "Filtering Rules" dialog. Here's the mockup I have currently: <img width="1125" height="1432" alt="Image" src="https://github.com/user-attachments/assets/40c7db22-9ff0-478f-a801-2d07e1119d9f" /> As a quick usability test, here are a few questions for anybody willing to give it a go: * Looking at the screenshot, is it easy to understand what each control is intended to be used for? * If a check was configured exactly like shown in the form, what would you assume would happen when a check receives a HTTP GET ping (so no request body)? * What values would you set to get the following behaviour: consider all incoming pings failure signals unless the string "Backup successful" is present somewhere in the request body
Author
Owner

@cuu508 commented on GitHub (Nov 27, 2025):

Now implemented and deployed: https://healthchecks.io/docs/configuring_checks/#filtering-rules

<!-- gh-comment-id:3584807947 --> @cuu508 commented on GitHub (Nov 27, 2025): Now implemented and deployed: https://healthchecks.io/docs/configuring_checks/#filtering-rules
Author
Owner

@lcswillems commented on GitHub (Nov 27, 2025):

Awesome! Thank you very much!

<!-- gh-comment-id:3585179614 --> @lcswillems commented on GitHub (Nov 27, 2025): Awesome! Thank you very much!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/healthchecks#782
No description provided.