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 · 简体中文
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.
Host resources from the StatLite self-monitoring target.
Learn how to set up lightweight Spring Boot monitoring without Prometheus and Grafana.
docker run --rm \
-p 127.0.0.1:9090:9090 \
ghcr.io/pvrlabs/statlite:latestOpen 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 the latest release on macOS or Linux:
curl -fsSL https://raw.githubusercontent.com/PVRLabs/statlite/main/install.sh | shOr install with Homebrew:
brew install pvrlabs/tap/statliteSee Installation for supported platforms, custom install locations, source builds, and server-wide Linux setup.
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:
statliteAlternatively, 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.
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.
- Installation
- Docker
- Configuration
- External API v1
- Deprecations and compatibility
- Supported integrations
- Public integration testing
- StatLite Metrics integration guides
- Monitoring on resource-constrained servers
- StatLite Metrics v1
- systemd deployment
- Product and architecture
- Storage and schema direction
- Spring Boot guide
- Examples
MIT