Getting Started
MiniAPM is the smallest useful APM—a self-hosted solution for monitoring application performance and tracking errors. Built in Rust with SQLite storage, it requires zero external dependencies.
Architecture
Section titled “Architecture”MiniAPM consists of two services:
| Service | Port | Description |
|---|---|---|
miniapm | 3000 | Collector — Ingestion API for traces, errors, deploys |
miniapm-admin | 3001 | Dashboard — Web UI for viewing and managing data |
Both share the same SQLite database.
Quick Start
Section titled “Quick Start”1. Run MiniAPM
Section titled “1. Run MiniAPM”services: miniapm: image: ghcr.io/miniapm/miniapm command: miniapm ports: - "3000:3000" volumes: - miniapm_data:/data environment: - SQLITE_PATH=/data/miniapm.db - RUST_LOG=mini_apm=info
miniapm-admin: image: ghcr.io/miniapm/miniapm command: miniapm-admin ports: - "3001:3001" volumes: - miniapm_data:/data environment: - SQLITE_PATH=/data/miniapm.db - RUST_LOG=mini_apm_admin=info - ENABLE_USER_ACCOUNTS=true - SESSION_SECRET=change-me-to-random-string depends_on: - miniapm
volumes: miniapm_data:docker compose up -dOn first run, check collector logs for your API key:
docker compose logs miniapmINFO mini_apm::server: Single-project mode - API key: proj_abc123...2. Configure Your Application
Section titled “2. Configure Your Application”Point your OpenTelemetry SDK at the collector:
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:3000/ingestOTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer proj_abc123...3. Open the Dashboard
Section titled “3. Open the Dashboard”Navigate to http://localhost:3001 to see your traces and errors.
Core Concepts
Section titled “Core Concepts”Traces & Spans
Section titled “Traces & Spans”MiniAPM ingests traces via the OpenTelemetry Protocol (OTLP/HTTP JSON). Each request to your application creates a trace, which contains multiple spans representing individual operations (HTTP requests, database queries, external calls).
Error Tracking
Section titled “Error Tracking”Errors are automatically captured with full stack traces and grouped by fingerprint to prevent duplicate noise. You can mark errors as resolved or ignored.
Route Performance
Section titled “Route Performance”Every HTTP endpoint in your application gets performance metrics: P50, P95, P99 latencies, request counts, error rates, and database time breakdown.
What’s Next?
Section titled “What’s Next?”- Installation - Docker, binary, or build from source
- Configuration - Environment variables and options
- Ruby Gem - Zero-config instrumentation for Rails
- API Reference - HTTP API documentation