DEV Community

David García
David García

Posted on

Build a Telegram Bot to Monitor Your Website Uptime (Free)

```html

TL;DR: You can quickly and easily monitor your website's uptime by building a simple Telegram bot using Python, receiving instant alerts when things go wrong.

Build a Telegram Bot to Monitor Your Website Uptime (Free)

Let’s be honest, uptime is critical. A downtime notification is far more annoying than a bug fix. You want to know immediately if your website is down, and a traditional email might get lost in the noise. This tutorial shows you how to build a Telegram bot that does exactly that, completely free, using Python. It’s a quick and effective way to get notified, and it’s a great little automation project to add to your skillset.

The Core Insight: Simple HTTP Checks

The fundamental principle is simple: we’ll periodically check if your website is reachable. If it’s not, we’ll send a message to your Telegram channel. The beauty of this is that it doesn't require complex infrastructure or expensive monitoring services. We’re leveraging HTTP requests – a standard way for web browsers to communicate with servers – to do the heavy lifting.

Here's a basic example of how a check would look (using `requests`):

import requests

def check_website(url):

try:

response = requests.get(url, timeout=5) Timeout after 5 seconds

response.raise_for_status() Raise HTTPError for bad responses (4xx or 5xx)

return True

except requests.exceptions.RequestException as e:

print(f"Error checking {url}: {e}")

return False

Example usage:

website_url = "https://www.example.com"

if check_website(website_url):

print(f"{website_url} is up!")

else:

print(f"{website_url} is down!")

This code attempts to get the content of the URL. If the request is successful (status code 200), it returns `True`. If there’s an error (timeout, connection refused, etc.), it returns `False`. The `timeout=5` parameter ensures the script doesn't hang indefinitely if the website is unresponsive.

Practical Tip: Using `schedule` for Periodic Checks

Running this check manually isn’t sustainable. We need a way to repeat it automatically. The `schedule` library is perfect for this. It allows you to schedule tasks to run at specific intervals. Here's a basic example of how to use it:

import requests

import schedule

import time

def check_website(url):

(Same code as before)

pass Replace with the check_website function from above

schedule.every(10).seconds.do(check_website, url="https://www.example.com")

while True:

schedule.run_pending()

time.sleep(1)

This code schedules the `check_website` function to run every 10 seconds. The `while True` loop ensures the scheduler keeps running.

Connecting to Telegram

To send the messages, you’ll need to use a Telegram Bot API library like `python-telegram-bot`. This tutorial focuses on the core uptime monitoring, but integrating with Telegram is a relatively straightforward process. Plenty of tutorials cover this specifically.

Conclusion

Building this Telegram bot is a fantastic way to gain peace of mind knowing your website is up and running. It’s a low-effort, high-reward project that can save you time and potential lost revenue. It’s a great demonstration of how automation can improve your workflow.

For more advanced automation solutions and consulting services tailored to your specific needs, visit https://itelnetconsulting.com/.

```


Itelnet Consulting

Top comments (0)