While I like the other great answers already here, I'd like to add:
use GET against a different port
You could have your app listen on a different port which isn't logged. haproxy
and such are happy to check for health on port A for a service that is live on port B.
don't log canary checks
You could designate certain data items for monitoring and other tests to retrieve and not log requests against those designated items.
set a lower TTL for canary entries
It is a bit scary to cut off logging, so maybe you could delete the entries related to logging more aggressively since it is going into a database? This avoids checking a code path that turns out to not fail when the user experience is failing.
end-to-end checks are pretty important
Having something that is able to
- see whether it can get to you
- and whether your thing is doing its thing
- and whether your thing can talk to everything it needs
often ends up being pretty vital to detect issues that you wouldn't catch by focusing on any one part of this. Paying the price for logging is usually negligible compared to the value and peace of mind you get from end-to-end checks.