[Infrastructure · Server Diagnostics · Monitoring]

Astra Server Monitor

Diagnostics and observability tools for Linux servers: a clearer view of system state, services and disk usage, with safe, read-only access to diagnostic functions.

Belongs to
Operational tooling built alongside the Astra Raven infrastructure
Technical focus
LinuxDiagnosticsObservabilityRead-only AccessVisualisation
Demonstrates
Linux · Infrastructure automation · Observability · Operational tooling · Safe diagnostics · Backend integration

01Project overview

Running production services on a VPS means regularly answering the same questions: is everything running, what is using resources, where did the disk space go. Server Monitor turns those questions into a readable interface.

Access is deliberately limited. Diagnostic features are read-only and controlled, so the tool helps investigate problems without becoming a new risk.

02Engineering challenge

Terminal output is precise but slow to interpret under pressure. At the same time, any tool with server access must be designed so it cannot accidentally change the system it observes.

  • A

    Collect diagnostic information without elevated, write-capable operations.

  • B

    Present services, processes and resources in a form that is quick to scan.

  • C

    Explore disk usage interactively while keeping the file system read-only.

  • D

    Verify the actual state of services after each deployment.

03Solution architecture

Hover or tap each stage.

01

Linux Host

System metrics, services and file system on the VPS.

04Main components

  • 01

    System overview

    Key resource metrics and host information at a glance.

  • 02

    Service status

    State of the services that run the platform.

  • 03

    Process view

    Observation of running processes and their resource usage.

  • 04

    Disk Explorer

    Interactive, read-only breakdown of disk usage by directory.

  • 05

    Access control

    A controlled set of diagnostic functions instead of open shell access.

  • 06

    Deployment checks

    Used to confirm real behaviour after changes go live.

05Technology stack

Platform

  • Linux VPS
  • SSH
  • Process lifecycle

Backend

  • Python
  • Diagnostics collectors

Interface

  • Web UI
  • SVG visualisation

06Interactive demonstration

Server dashboard

IllustrativeIllustrative Demo — generated sample data, not a real server.

server-monitor · vps-01 (sample)Illustrative Demo

CPU

—

Memory

—

Load avg

—

1m · 5m · 15m

Disk /

—

Services

systemd

    Disk Explorer · read-only

    Click a block to drill down · nothing can be modified from here

    07Engineering decisions

    1. 01

      Read-only by default

      Investigating a problem should never be able to create a new one.

    2. 02

      Structured, not scraped on the client

      Command output is parsed on the server into typed data the UI can trust.

    3. 03

      Visual where it helps

      Disk usage is a hierarchy — so it is shown as one, instead of a long list.

    08Reliability & testing

    • Restricted set of diagnostic operations.
    • Timeouts on collectors so one slow command does not freeze the dashboard.
    • Used as part of post-deployment verification.

    09Code example

    disk_usage.py python
    import os
    from pathlib import Path
    
    def directory_sizes(root: Path, max_entries: int = 50) -> list[tuple[str, int]]:
        """Read-only scan: never follows symlinks, never writes."""
        sizes: list[tuple[str, int]] = []
        for entry in os.scandir(root):
            if entry.is_symlink():
                continue
            total = 0
            if entry.is_dir(follow_symlinks=False):
                for dirpath, _, files in os.walk(entry.path, followlinks=False):
                    for name in files:
                        try:
                            total += os.lstat(os.path.join(dirpath, name)).st_size
                        except OSError:
                            pass  # file vanished or no permission — skip
            else:
                total = entry.stat(follow_symlinks=False).st_size
            sizes.append((entry.name, total))
        return sorted(sizes, key=lambda x: x[1], reverse=True)[:max_entries]

    Illustrative Illustrative Engineering Example — read-only directory size scan.

    Production source is private. Examples here show the engineering approach, not proprietary logic. More in the Engineering Lab.

    10Possible extensions

    • Historical metrics with simple trend charts.
    • Threshold alerts delivered to Telegram.
    • Multi-server view for several hosts.
    Next case · 07 TrackLink — Tracking & Marketing Analytics Business Automation · Analytics · Backend Product