Every workload pushed to the platform is wired into our LGTM stack:Documentation Index
Fetch the complete documentation index at: https://docs.grounds.gg/llms.txt
Use this file to discover all available pages before exploring further.
- Loki — logs from build steps and running pods.
- Mimir — Prometheus metrics from base images and platform components.
- Tempo — distributed traces (where instrumentation exists).
- Grafana — the dashboarding + exploration front-end.
Logs
There are two distinct streams.Build logs
The build pipeline (Kaniko + push to in-cluster registry). Useful for diagnosingbuild_failed.
{namespace="grounds-forge", app="kaniko"} |= "<pushId>".
Deployment logs
The actual stdout/stderr of your running pod. Useful for everything else.preview-<id>.
Metrics
Standard JVM + base-image metrics are exposed automatically:- JVM heap / GC / thread pool (via
-javaagentin the base image). - HTTP request rates and latencies for
service-type workloads with our standard middleware. - Paper-specific tick rates for
plugin-paper.
Custom metrics
If your plugin or service exposes a/metrics endpoint (Prometheus format), add a ServiceMonitor to scrape it. We don’t auto-discover arbitrary endpoints — explicit ServiceMonitors keep the cardinality budget under control.
Examples and the gnds_* metric naming convention live in tools/observability (coming soon).
Traces
If your code emits OTLP traces, they’re forwarded to Tempo via an Alloy collector that runs as a sidecar inservice-type pods. Traces are tied back to logs via the standard trace_id field — Grafana auto-links between them.
Tracing for plugin-paper / gamemode workloads is opt-in (we don’t auto-instrument the Bukkit / Minestom event bus by default). Reach out in #grounds-platform if you want this for your plugin.
Alerts
Alert routing is platform-managed:- Platform-level alerts (cluster, ingress, base-image health) page the platform team.
- Project-level alerts can be defined per-project in Grafana. The default is none — you opt in by writing rules.
Common queries
| What | Where |
|---|---|
| ”Why did my push fail?” | grounds logs <pushId> |
| ”Why is my pod crashlooping?” | grounds logs deployment <name> |
| ”Is the platform itself broken?“ | status.grounds.gg |
| ”What’s the platform-level latency right now?” | Grafana → Platform → Latency dashboard |
| ”Did anyone push to this project today?” | Portal → project → Pushes |
Dashboards as code
Project-specific Grafana dashboards can be checked in alongside your code:my-app-dashboard.yaml
