r/UptimeKuma: Need help understanding HTTP options

r/UptimeKuma: Need help understanding HTTP options
💡
This article archives a conversation, which took place in a subreddit post (original source linked below) and to which I contributed a solution or answer (with the u/MasterofSynapse handle), in a Q&A format.

Original Reddit post: https://www.reddit.com/r/UptimeKuma/comments/yrepfw/need_help_understanding_http_options/

Question

Hey guys,

So I've been using uptime kuma for a while now and I love the project. I use it to monitor almost everything on my network! But I am getting kinda confused on the HTTP options and more specifically how to properly use them.

What I would like to do is set up HTTP options to know if one of my self hosted services isn't fully up. Recently I've had issues with my reverse proxy not fully serving the service and I have to restart the reverse proxy for the service to come back. For example when I go to a the url of my service it serves a blank page with a small icon.

I am trying to use the HTTP GET option to find a certain part in the webpage and if it doesn't find it then I know the service is down or the reverse proxy needs to be restarted. Can someone help me with the syntax? I've looked around on Google but I couldn't find any good documentation on how the syntax for these requests are supposed to be.

I apologize if this a noob question but I can't seem to figure this out and it's driving me crazy. Thank you

Answer

The presence of the "body" field within the HTTP Options may suggest that Uptime Kuma can check the body contained in the answer triggered by the GET, but after doing my research, it doesn't seem to work that way.

HTTP and RFC specs don't talk about GETs utilizing the body options, that is something for POSTs to use.

So it would be better for you to research and troubleshoot, why your reverse proxy sometimes doesn't deliver the app correctly.

Nevertheless, I found the "HTTP(s) - Keyword" monitor type, with that, you get a Keyword value which could help you achieve your goal since this value will be searched for in the resulting plain text HTML coming from the GET request.

Comment 1 on Answer

Thank you for your reply. I couldn't agree with you more, restarting it constantly is definitely not the fix. Doing some research it looks like it's the backup of my database VM that is causing it to go unresponsive. I changed the monitor to http keyword and that is exactly what I was looking for. Thanks again