# Client Uptime Check

Sometimes, simply monitoring on-chain performance of your validators may not be sufficient.&#x20;

However, this method no longer works well for solo stakers running DVTs because your nodes could be offline without causing missed attestations - Recall that a cluster of X nodes is responsible for hosting Y validator keys.

This means that we either need to manually check on our nodes periodically (tedious) or act when the cluster fails to achieve consensus, leading to missed attestations, which can lead to free-rider problems.

## Custom Checker Chatbot (Free)

{% embed url="<https://github.com/samuelclk/ETH-node-alerts-TG-bot>" %}

This is a simple and lightweight uptime checker chatbot for Solo DVT operators to monitor as many nodes as you want (Like Google Uptime Check but free).

## Google Uptime Check (Not Free)

### Pre-requisites

You must configure port forwarding to ports 30303 and 9000 of your validator node in order for Google Uptime Check to work.

Refer to the [Preparing your virtual machine](/linux-os-networking-and-security/install-and-prepare-the-os.md) sub-section of this guide to understand how to.

### Setup

Log in to your google cloud console and type ***"monitoring"*** into the search bar. Then select the ***"Monitoring - Infrastructure and application quality checks"*** result.&#x20;

<figure><img src="/files/kG8v3GhhTisEOAw0aIuX" alt=""><figcaption></figcaption></figure>

Select ***"Uptime checks"*** on the left hand panel.

<figure><img src="/files/7iTDoTik5fKVbS8LPpxr" alt=""><figcaption></figcaption></figure>

Click on +CREATE UPTIME CHECK located at the top panel.

<figure><img src="/files/TCEZctixFDKTa71FEOJl" alt=""><figcaption></figcaption></figure>

You will be prompted to enter the following:

1. Protocol: `TCP`
2. Resource type: `URL`
3. Hostname: `<the external IP address of your beacon node>`
4. Port: `30303`&#x20;

***\*Port 30303 checks for the uptime of the execution layer client. Repeat this step for Port 9000 as well to check for the uptime of the consensus layer client.***

<figure><img src="/files/7NLIQug2kDlJWGRGeOQz" alt=""><figcaption></figcaption></figure>

Click through the default settings until ***Step 3 - Alert & Notification***. Then click on the ***"Notification channels"*** drop down and then ***"MANAGE NOTIFICATION CHANNELS"***

<figure><img src="/files/EBSEHu1IcGiAmJH8iPNY" alt=""><figcaption></figcaption></figure>

Set up your favourite notification channels. I like to keep it simple by using email as my alerts channel.&#x20;

<figure><img src="/files/iscWniN8kDqNBZw8woJH" alt=""><figcaption></figcaption></figure>

Next, key in the name of the alert you created and test the service. If the connection is successful, you will see a "success" message.

<figure><img src="/files/41u9NnZZ7eGBRfEJSE5B" alt=""><figcaption></figcaption></figure>

Go ahead and click ***"CREATE"***  to complete the setup.

*\*Repeat the same steps for ports 9000 and 3000.*

***Congrats! You have set up an alerts tool to check if each of your clients are running. This is useful to identify out-of-memory, database corruption, power/internet, or hardware issues.***

{% hint style="info" %}
This is not a free tool so monitor your usage after a month and adjust your uptime check duration accordingly.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dvt-homestaker.stakesaurus.com/monitoring-maintenance-and-updates/set-up-monitoring-suite/client-uptime-check.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
