OperateQuality of Service

Quality of Service Monitoring

QoS is the observability layer for running Blueprints. As an operator, you decide how metrics, logs, and dashboards are exposed to your team or customers. This page outlines what QoS exports and how to configure access safely.

What Gets Exported

QoS uses Prometheus-compatible metrics by default, with optional Grafana and Loki.

ComponentDefault EndpointNotes
Prometheus metricshttp://<host>:9090/metricsIncludes /health plus Prometheus v1 API routes like /api/v1/query.
Grafana UIhttp://<host>:3000Only when configured or managed by QoS.
Loki push APIhttp://<host>:3100/loki/api/v1/pushOnly when configured or managed by QoS.

Notes:

  • If QoS metrics are enabled, it will bind a metrics listener. If you do not want a metrics endpoint, disable metrics in your QoS config.
  • The query routes on the metrics endpoint are intended for convenience and debugging, not as a replacement for a full Prometheus deployment.

Managed Stack vs External Stack

Managed Stack (Docker)

If the Blueprint enables manage_servers, QoS can launch Grafana and Loki containers (and Prometheus if configured). You should:

  • Ensure Docker is available on the host.
  • Mount persistent volumes for Grafana and Loki (data_dir).
  • Override default Grafana credentials (defaults are admin/admin and anonymous access is on).
  • Open ports only on trusted networks or front them with a proxy.

Run your own observability stack and point QoS to it:

  • Configure Prometheus to scrape http://<host>:9090/metrics.
  • Set GrafanaConfig.prometheus_datasource_url to your Prometheus URL.
  • If you use Loki, set LokiConfig.url to your Loki push endpoint.

This approach keeps credentials and retention policies under your control.

Quick Verification

curl -s http://localhost:9090/health
curl -s http://localhost:9090/metrics | head -n 20

Security Notes

  • Do not expose Grafana with default credentials.
  • Prefer a reverse proxy with auth and TLS.
  • If you allow public dashboards, isolate them from write endpoints.