# Monitoring
URL: https://synquic.tech/docs/dashboard/monitoring.md

The Monitoring page puts server health dials, live traffic numbers, charts, a per-app table, status and country breakdowns and every open issue on one screen, with a time range and server picker.

The **Monitoring** page answers, top to bottom: is anything on fire, what is the traffic doing, is the hardware
coping, which app is responsible, and who is asking for what from where. Below the dashboard sits the full
list of issues across your projects, servers and domains.

<Callout title="Where this lives">
Open **Monitoring** in the **Main** section of the sidebar, or go to **`/monitoring`** (the old `/issues` link
shows the issues list only). The dashboard part appears once at least one server is connected.
</Callout>

## Controls

The bar at the top of the dashboard:

| Control | What it does |
| --- | --- |
| **Time range** | **Live**, **1h**, **24h** (default), **7d** or **30d**. Live polls the edge every 5 seconds and draws a rolling window since the page opened. |
| **Server** | **All servers** or one server. With several servers, "All servers" adds them up; the charts cover the first 8 servers and say so ("Charts cover the first 8 of N servers. Pick a server to see any of the others."). |
| **Auto-refresh** | Keeps the numbers updating while the tab is visible. Off, the page only changes when you refresh. |
| **Refresh now** | Reloads everything immediately. "Updated 12s ago" shows the age of the data. |

Your choice of range, server and auto-refresh is remembered in this browser. If a server's edge doesn't answer,
a notice says so ("The edge isn't answering on N of these servers. Live numbers resume when it does.").

How often each part refreshes on its own: live numbers every 5 seconds; traffic history every minute
(Live, 1h), 2 minutes (24h) or 5 minutes (7d, 30d); server metrics every minute (5 minutes for 7d and 30d);
the apps table every 2 minutes (5 for 7d and 30d); issues every 2 minutes.

## Server health dials

**Server health** shows three dials for the selected server, or **Across N servers**:

| Dial | Value | Caption |
| --- | --- | --- |
| **CPU** | Average CPU use | **Load** (1-minute load average) |
| **Memory** | Memory in use | "X of Y" |
| **Disk** | Root disk in use | "X of Y" |

Each dial reads **Normal**, **High** or **Critical** (or **No data**) and marks **Alert at** the server's alert
threshold. It turns red at the threshold and amber from 20 points below it, or from half the threshold when
that is higher (amber from 70% for a 90% threshold). For all servers, the strictest threshold among them is used. The values are sampled every 5
minutes ("Sampled every 5 minutes"), and with several servers the busiest one is named ("Busiest: web-1").
Change the thresholds per server; see [Server monitoring and alerts](/docs/guides/server-monitoring#alert-thresholds).

## Headline numbers

Six tiles, each with a small sparkline and the change against the previous period of the same length
("vs previous 24h"; in Live, "vs last hour"):

| Tile | What it measures |
| --- | --- |
| **Requests/s** | Requests per second handled by the edge, with the average over the range. |
| **Active requests** | Requests in flight right now ("vs 1 min ago"). |
| **Bandwidth in** / **Bandwidth out** | Data received from and sent to visitors, with the total over the range. |
| **Error rate** | The share of `5xx` responses. Amber from 1%, red from 5%. |
| **p95 latency** | 95% of requests finished faster than this; p50 is shown underneath. |

All traffic numbers come from the edge, so they count requests to every domain the selected servers route.

## Incidents

The **Incidents** strip shows open issues by severity, a timeline of incidents inside the selected window, and
the most urgent open items. "All clear. Nothing open on these servers." means there is nothing to do. **View all
issues** jumps to the list below.

## Charts

**Traffic**:

- **Requests per second by status**: stacked `2xx`, `3xx`, `4xx` and `5xx` (in Live, `2xx/3xx`, `4xx`, `5xx`),
  with the peak rate.
- **Bandwidth**: in and out.
- **Response time percentiles**: p50, p95 and p99. If the edge hasn't recorded response-time buckets yet, the
  chart says "Percentiles appear once the edge records response-time buckets."

**Resources** (from the 5-minute server samples):

- **CPU**, **Memory** and **Disk**, each with a dashed line at its alert threshold.
- **Load average (1m)**.
- **Network**: received and sent.

Hover a chart to read exact values. An empty chart says "No traffic recorded in this window yet." or "No samples
yet. Server metrics are recorded every 5 minutes."

## Apps table

**Apps** lists every project over the selected window ("Every project, over the selected window"):

| Column | Meaning |
| --- | --- |
| **App** | Name, status (**Live**, **Deploying**, **Failed**, **Stopped** or **Not deployed**) and, with several servers, the server it runs on. |
| **Req/s** | Requests per second, with a sparkline. |
| **5xx** | Share of server errors. |
| **p95** | 95th-percentile response time. |
| **CPU** / **Memory** | Recent resource use of the app's containers. |
| **Data out** | Bandwidth sent. |

Click a column header to sort (by **Req/s**, highest first, by default). Click a row to open that app's
**Monitoring** tab. Long lists show **Show all N** / **Show fewer**; metrics load for the first 40 apps
("Metrics load for the first 40 apps").

## Breakdown

At the bottom:

- **Top paths**: the most requested paths. Only apps that have **Top Paths** turned on in their Monitoring tab
  are counted (see [App monitoring](/docs/guides/app-monitoring#top-paths)).
- **Responses**: a donut of responses by status class over the range.
- **Busiest domains**: the eight domains with the most requests, each with its `5xx` share.
- **World map**: requests by visitor country. Countries are counted per day, so the map covers whole days.

## The issues list

Below the dashboard is everything that needs attention, from checks Synq runs in the background. Three tabs:

- **Overview**: open issues, with a summary **By severity** and **By area**, and a fleet card for self-hosted
  servers. Filter by **Outage**, **Action needed** or **Advisory**, search with **Search monitoring**, and
  press **Re-scan** to run every check now.
- **Health**: the live state of every deployed container (**Check now**, and the switch between automatic and
  on-demand checking).
- **History**: resolved container and server incidents, kept for 30 days.

Issues are grouped by area: **Synq** (this installation itself), **Servers**, **Projects** and **Domains**.
Examples of what shows up: **Deploy blocked**, **Routing not synced**, **Domain not verified**, **Certificate
problem**, **Container down**, **Crash looping**, **Failing health checks**, **Server unreachable**, **Server
disk almost full**, **Server memory high**, **Server CPU high**, **Edge down** and **Update available**. Many
come with a **Fix** or **View** button. "Nothing needs attention" means every check passed.

The same events can reach you by email, chat or push; see [Notifications](/docs/guides/notifications).

## Related

<Cards>
  <Card title="Server monitoring and alerts" href="/docs/guides/server-monitoring" description="Per-server history, alert thresholds and traffic." />
  <Card title="App monitoring" href="/docs/guides/app-monitoring" description="A project's Monitoring tab and traffic panel." />
  <Card title="Notifications" href="/docs/guides/notifications" description="Get told about outages, failed deploys and certificates." />
  <Card title="Logs & monitoring" href="/docs/guides/logs-monitoring" description="Runtime and request logs for one app." />
</Cards>
