Skip to content

Ship a pre-built Grafana dashboard for Prometheus metrics #5

@atkaridarshan04

Description

@atkaridarshan04

What problem does this solve?

deploy/grafana/provisioning/dashboards/ exists but is empty. The Prometheus datasource is already provisioned and all metrics are already being emitted by the app (app/core/metrics.py), but when a user starts the observability stack they get a blank Grafana instance with no dashboards. They have to build every panel by hand.

The docs show a screenshot of a working dashboard and say it ships pre-provisioned — adding that part.

Proposed solution

Add two files:

deploy/grafana/provisioning/dashboards/dashboards.yml — the Grafana dashboard provider config that tells Grafana to load JSON files from the provisioning directory. Without this file Grafana ignores any JSON placed there.

deploy/grafana/provisioning/dashboards/inference-engine.json — a Grafana dashboard JSON covering all metrics already defined in app/core/metrics.py:

Panel Metric Type
Request rate inference_requests_total Time series, by model/tenant
Error rate inference_errors_total Time series, by error_type
p50 / p95 / p99 latency inference_latency_seconds Time series (histogram_quantile)
Executor in-flight executor_inflight Gauge, by device
Executor timeouts executor_timeouts_total Time series, by device
Job queue depth job_queue_depth Time series, by model/version
Error % stat errors / requests ratio Stat panel

No changes to docker-compose.yml are needed — the Grafana service already mounts ./deploy/grafana/provisioning:/etc/grafana/provisioning:ro.

Expected result: docker compose --profile observability up -d → Grafana at localhost:3000 shows the "Inference Engine" dashboard with all panels populated after the first scrape (15s). No manual import step.

Alternatives considered

No response

Area

Observability (metrics / logs / tracing)

Metadata

Metadata

Labels

enhancementNew feature or request

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions