Skip to content

Repository files navigation

StatLite

GitHub release Go powered Frameworks: Spring Boot · Quarkus CI License

StatLite provides lightweight, self-hosted application monitoring for apps running on VPSs and small servers. One Go binary polls multiple applications, stores metrics locally in SQLite, and provides built-in historical charts, without requiring Prometheus or Grafana.

🌐 Website · 👀 Interactive demo · 简体中文

StatLite dashboard monitoring a Spring Boot payments API
Main application dashboard for the Spring target.

StatLite supports Spring Boot and Quarkus integrations, and other applications through a small, fixed JSON metrics endpoint. It collects traffic, latency, CPU, memory, optional application health, and optional host metrics. Metrics and history stay on your server, without continuously sending application metrics to a third-party monitoring SaaS.

StatLite is built for resource-constrained servers. Low memory, CPU, disk, and operational overhead are treated as product constraints.

StatLite host memory, CPU, and disk charts
Host resources from the StatLite self-monitoring target.

Learn how to set up lightweight Spring Boot monitoring without Prometheus and Grafana.

Try it

docker run --rm \
  -p 127.0.0.1:9090:9090 \
  ghcr.io/pvrlabs/statlite:latest

Open http://127.0.0.1:9090. StatLite monitors itself by default, so the dashboard starts with live data.

See the Docker guide for persistent storage, container networking, local builds, and access guidance.

StatLite provides predefined application and host metrics with built-in charts. It does not provide PromQL, unrestricted custom metrics, custom dashboard building, distributed tracing, centralized logs, or built-in alert delivery. See monitoring options for small applications and VPS deployments for the practical tradeoffs.

Install

Install the latest release on macOS or Linux:

curl -fsSL https://raw.githubusercontent.com/PVRLabs/statlite/main/install.sh | sh

Or install with Homebrew:

brew install pvrlabs/tap/statlite

See Installation for supported platforms, custom install locations, source builds, and server-wide Linux setup.

Configure an application

To monitor a Spring Boot application, create a minimal statlite.yaml:

server:
  listen: "127.0.0.1:9090"

storage:
  sqlite_path: "./statlite.sqlite"

polling:
  interval: "30s"

targets:
  - name: "app"
    type: "spring"
    url: "http://localhost:8080/actuator"

For a new setup, save the configuration as statlite.yaml. If you already have a configuration, copy only the target entry into its targets list. Then run:

statlite

Alternatively, inspect a running application's base URL to generate the configuration:

statlite inspect 'http://localhost:8080'

For other supported frameworks, select the type explicitly when needed:

statlite inspect --type quarkus 'http://localhost:9000'

Inspection checks conventional supported endpoints and is bounded and read-only. For untyped discovery, start with a base HTTP or HTTPS URL without a query string or fragment.

See Configuration for exact endpoint forms, discovery limits, authentication limitations, all settings, and manual target configuration. See the StatLite Metrics integration guides when the application needs to add the /statlite/metrics endpoint. See examples/ for complete configurations.

Important

StatLite has no built-in dashboard or API authentication. Review the server and access guidance before exposing it remotely.

Supported metric sources

When a target has no health signal, the dashboard reports whether StatLite is successfully receiving its metrics without treating reachability as application health.

  • Spring Boot: Collects authoritative health when Actuator health is available and automatically selects a compatible Micrometer Prometheus endpoint or Actuator JSON for request, JVM, process, and optional host metrics. Independently usable metrics remain reportable if health retrieval fails.
  • Quarkus Micrometer: Collects bounded request, latency, CPU, heap, process, and restart concepts from an exact Prometheus/OpenMetrics endpoint. SmallRye Health is an optional capability when the application publishes it.
  • StatLite Metrics v1: A small, fixed JSON endpoint that applications in any language or framework can implement. See the direct integration guides for FastAPI, Express, Django, Go net/http, and Gin. Those guides provide complete, copyable application-owned helpers with no StatLite SDK/package or additional third-party monitoring runtime dependency. Your own StatLite instance polls the endpoint; the supplied helpers make no outbound requests and send no telemetry to PVR Labs. They expose aggregate operational metrics, so restrict endpoint access as described in each guide.
  • StatLite self-monitoring: StatLite can report its own health, traffic, process, and host metrics.

Use a statlite-self target for host metrics where StatLite runs. Spring targets can optionally collect host CPU and disk metrics for a remote application's environment.

Documentation

License

MIT

About

Lightweight self-hosted application monitoring for small servers. Spring Boot, Quarkus, SQLite history, simple charts. No Prometheus/Grafana stack required.

Topics

Resources

Stars

154 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages