Five questions cover most of what a small team needs from monitoring. The first is answered from Lumin's servers before you install anything. Three are answered by one agent on your host, with no SDK in your services. The question about users needs one small package in your web or mobile app.

docker run, Swarm, and Coolify work the same.Then run docker compose up -d
An HTTP check from Lumin's servers, every 30 seconds to 15 minutes, against any URL you give it. Nothing to install for this one. The dashboard opens on uptime, average response, and incidents per check, and a slow answer past your threshold shows as degraded, not just down.
Request rate, error rate, and latency per route, next to CPU and memory for every container and disk for every host.
Tailed straight from container stdout and stderr, with the service and level already parsed. Filter on either, search the message text, and follow it live. Unhandled browser and mobile errors are captured with no code of yours, and land in the session that hit them.
Sessions, page and screen views, and custom events from @lumin-monitor/browser or @lumin-monitor/react-native. Each is under 6 kB gzipped, and both write into the same project.
A rule watches one metric, or counts how often a log pattern matches inside a window. Cross the threshold and Lumin posts to the Slack channel you connected, with the condition and the value that tripped it. It posts again when the value recovers.
Label the services you care about. The agent scrapes their /metrics endpoints, tails their stdout, and snapshots the host every 15 seconds.
A label, not a compose file. Compose is the short path, and docker run, Swarm, and Coolify label a container just as well.
It reads the Docker API through lumin-docker-proxy, which forwards only the five read requests that the agent makes. The agent never touches the socket.
Uptime checks are the one thing on the dashboard the agent does not produce: Lumin probes your URLs from its own servers, agent or no agent.
Lumin picks up anything that serves a Prometheus /metrics endpoint or writes logs to stdout. The five named below have an adapter that maps their metric names onto the three RED charts: request rate, errors, and duration.
| Stack | Setup | What you get |
|---|---|---|
| Spring Boot | 2 deps + 3 settings | RED, plus JVM and pool series |
| Gin | client_golang + a middleware | RED |
| Express | prom-client + a middleware | RED |
| FastAPI | 1 pip install + 5 lines | RED |
| Axum | axum-prometheus layer | RED |
| Anything else | expose /metrics | Your metric names, charted as they are |
| Off-the-shelf (Caddy, Postgres) | just the lumin.logs=true label | Logs tailed |
Other tools want their SDK inside every service image and their collector next to it. Lumin wants two labels and two small containers, both shown above.
Lumin runs a read-only MCP server. Point Claude Code, Cursor, or VS Code at it with one command, then ask about production in the editor you already have open. Ten tools cover logs, metrics, uptime checks, alerts, infrastructure, and browser errors.
Pick a tier by the number of services you run. That is a number you can count today, so the bill never moves on you. Logs, metrics, sessions from web and mobile, uptime checks, and the MCP server come with every tier.
Prices are in euro and exclude VAT. Every account starts on the free Hobby tier, and you can upgrade from the billing screen when you need more. Signing up needs no card. The Terms of Service and the Privacy Policy apply to every account.