Docs / Observability (add-on)

Observability (add-on)

Per-minute metric charts, the processes using the most CPU and RAM, and slow or failing site endpoints. The data is recorded and stays on your own server.

An add-on, not part of the base plan

Observability is off by default on every account. Your server records nothing until the add-on is enabled. It is free while billing doesn't exist yet. To enable it, contact us through the Enterprise button and mention "Observability add-on"; a Saka admin turns it on per account.

What it is for

The Readiness card and threshold alerts tell you something is wrong. Observability answers why: which process pushed CPU up at 03:12, whether swap started filling before the server slowed down, which endpoint returns the most 5xx errors. It suits servers that host many sites or apps and need investigating, not just up/down monitoring.

What is recorded

DataContentsInterval
Host metricsCPU, I/O wait, 1/5/15 minute load average, RAM used, swap used, network in and out, disk read and write, established TCP connectionsEvery minute
Top processesThe 5 biggest processes by CPU and 5 by RAM, with the command line (truncated) and the Docker container name when the process runs in a containerEvery minute
Site endpointsFrom the access log of the web server for sites Saka manages: request count, 4xx and 5xx counts, average duration, p95, and slowest duration per endpointSummarized every 5 minutes

Endpoint paths are normalized so thousands of different addresses count as one: GET /orders/12345?ref=abc and GET /orders/67890 both become GET /orders/:id. Segments that are numbers or long codes are replaced with :id, and everything after a question mark is dropped so tokens or personal data in query strings are never recorded.

Where the data lives

On your server, in the agent's data folder, not at Saka. The panel only reads a summary when you open the card. Data is kept for 7 days; older data deletes itself. If the add-on is turned off, the agent stops recording at once and the remaining data deletes itself after 7 days. Removing the agent with Release a server removes it too.

How light it is

Using the Observability menu

Once the add-on is enabled for your account, an Observability menu appears in the top bar (it is hidden while the add-on is off). Pick a server at the top of the page. On a server page, the Observability card also has a button that opens this menu for that server.

  1. Pick a range from 1 hour to 7 days. Charts are condensed to at most about 240 points.
  2. Hover (or drag a finger) over any chart. A marker line appears on all charts and the Processes at ... table shows the biggest processes at that moment. It defaults to the moment of highest CPU, so the cause of a spike is visible right away.
  3. The Top CPU processes over the range table sums up who used CPU most often.
  4. The Site endpoints table can be sorted by slowest (p95), most 5xx errors, or most requested, and filtered by domain.

After the add-on is enabled, charts need a few minutes to fill in because the agent only starts recording then.

Errors, log search, and alerts

Three more tabs in the same menu:

PHP file monitoring

The PHP files tab records PHP files (plus .htaccess and .user.ini) that are new, changed, or deleted in web folders. Folders in the usual places are found automatically (Saka sites, /var/www, public_html, aaPanel), and you can add others, e.g. /opt/whmcs. Each event stores the time, size, modification time, and the SHA-256 hash of the content, so you can match it against the access log to see where the file came in from.

Limits

Changes are recognized from size and modification time. An attacker who forges the modification time and keeps the size the same is not detected. The first scan only builds a baseline, so files that existed before monitoring was turned on are treated as normal (an old shell is not found; use a separate malware scanner for that).

S3 archive and incident investigation

The S3 archive tab keeps Observability data longer than 7 days in an S3 bucket you own, the same destination as Backup to S3 (IDCloudHost Object Storage, Amazon S3, Cloudflare R2, and other compatible providers). Saka does not provide the storage; the bucket and its cost are on your S3 account. Contents are encrypted with a key that exists only on your server, so the S3 provider cannot read them, and objects end in .enc so they never mix with site backup archives.

Investigating an incident. For example a site was hacked and you need to know which IP the attacker came from and which addresses they opened. In the Search logs tab, tick S3 archive, pick the Web server source (for sites outside Saka, such as WHMCS on nginx or Apache), Web access (Saka sites), or SSH logins (or all sources), choose a range of up to 31 days ending on a given date, and search for an IP or an address (e.g. wp-login.php or /shell). For a complete web access trail, pick All logs before an incident happens: the archive only holds what was recorded since it was turned on, so it cannot look back before that. The Errors tab can also use 30 and 90 day ranges from the archive.

Slow queries and scripts

The Slow tab answers "why is my site slow" by reading logs that already exist on the server: the MySQL/MariaDB slow query log and the PHP-FPM slowlog. Queries are grouped after their values are replaced with question marks, so a thousand WHERE id = 42 with different numbers become one row with the count, total time, slowest run, and rows examined. PHP-FPM traces are grouped by script and the function where they stopped.

Saka does not change your database or PHP configuration. When a log is off, the tab shows how to turn it on (slow_query_log for MySQL, request_slowlog_timeout and slowlog for PHP-FPM). Log locations are found automatically in the usual places and from the PHP-FPM pool files.

Events on the charts

Coloured dashed lines on the Overview charts mark reboots, Saka agent updates, system package changes (apt, dnf, yum), PHP file changes, and alerts that fired. The list under the charts holds the same events; click one to jump to its time. The point is to answer "what changed right before this spike".

History beyond 7 days

When the S3 archive is on, the Overview range can be 14 and 31 days. Each finished day is summarised into 5-minute averages and uploaded (encrypted) to your bucket; the part of a chart older than 7 days is read from there. Process lists and the endpoint table stay limited to the last 7 days. Without the S3 archive the range is capped at 7 days. Days before the archive was turned on have no history.

Anomaly alerts

Besides fixed thresholds, alert rules can be habit-based: CPU, TCP connections, or network traffic compared with the average of the same hour on previous days. The threshold is a multiple (for example 3 times usual) plus a minimum value so small spikes trigger nothing. A server that is busy every morning does not alarm, but a spike in an hour that is normally quiet does. At least 3 days of data are needed before an anomaly rule can fire.

Saved searches and live follow

In the Search logs tab, Save this search stores the source, search text, level, and range under a name (up to 30 per server), for example "failed SSH logins" or "5xx on domain X", so the next investigation is a pick from the list. Follow live reloads the results every 10 seconds for the last hour and stops when you leave the tab.

Limits

Not a full application tracing tool

Observability does not follow a single request across several services (distributed tracing) and does not inject code into your app. It is the view from the server and web server side.

Related

CPU, RAM, and disk alerts with Telegram notifications are set on the thresholds card of the server page. Basic per-site traffic summaries are on the site page without the add-on. How Saka treats your data: Security & privacy.