> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zentien.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Infrastructure Monitoring

> Monitor your external APIs, databases, and services with HTTP, TCP, and heartbeat checks.

## Overview

Infrastructure monitoring lets you track the health of any external service your Salesforce org depends on — REST APIs, databases, payment gateways, internal services, or anything else reachable over the network.

When a service goes down, Zentien records the outage and surfaces it on the **Correlation** page alongside any Salesforce error spikes that occurred at the same time.

## Check types

### HTTP

Makes an HTTP GET request to a URL and expects a `2xx` response. Any non-`2xx` response or a timeout counts as a failure.

Use for: REST APIs, health endpoints, web services.

### TCP

Opens a TCP connection to a host and port. If the connection is refused or times out, the check fails.

Use for: databases (PostgreSQL, MySQL, Redis, MSSQL), SFTP servers, custom TCP services.

### Heartbeat

A passive check — your system pings Zentien instead of Zentien polling yours. If no heartbeat arrives within the configured interval, the check is marked DOWN.

Use for: scheduled jobs, nightly batch processes, cron tasks. Add a `POST` to the heartbeat URL at the end of your job.

## Creating a check

1. Go to **Infrastructure** → **New Check**
2. Select the check type
3. Enter a name and target (URL or host:port)
4. Set the polling interval (how often to check)
5. Set the timeout (how long to wait before marking it DOWN)
6. Optionally select a **Notification Channel** to be alerted when the check goes DOWN or recovers
7. Save

The check starts polling immediately.

## Heartbeat URL

When you create a heartbeat check, you receive a unique URL:

```
POST https://api.zentien.io/api/infrastructure/{checkId}/heartbeat
```

Call this URL at the end of your scheduled job or batch process. No authentication required — the `checkId` is the secret.

**Example (cURL):**

```bash theme={null}
curl -X POST https://api.zentien.io/api/infrastructure/{checkId}/heartbeat
```

**Example (Apex):**

```apex theme={null}
HttpRequest req = new HttpRequest();
req.setEndpoint('https://api.zentien.io/api/infrastructure/{checkId}/heartbeat');
req.setMethod('POST');
new Http().send(req);
```

If the heartbeat URL is not called within the configured interval, the check flips to DOWN.

## Reading the dashboard

The Infrastructure page shows all your checks with:

* **Status badge** — UP (green), DOWN (red), or UNKNOWN (grey, before first result)
* **Uptime bar** — last 60 check results as coloured segments, oldest to newest left to right
* **Response time** — last recorded response time in milliseconds (HTTP and TCP)
* **Last checked** — time of the most recent check

Click any check to open the detail panel showing the full result history and response time trend.

## Alerts

Select a **Notification Channel** on a check to receive a notification when it goes DOWN and when it recovers. The same Slack, email, and webhook destinations used for error alerts are supported.

## Next step

<Card title="Correlation" icon="link" href="/using/correlation">
  See how infrastructure outages relate to Salesforce error spikes.
</Card>
