Skip to content

Backend Tools


🔁 High-Level Roles

  • Prometheus: A monitoring and alerting toolkit. It collects, stores, and queries metrics from your applications.
  • Grafana: A visualization and dashboard tool. It connects to Prometheus and displays the metrics.

So the order is:

Prometheus first, then Grafana.


What to Learn First

📌 1. Prometheus Basics

Learn this first, because Grafana depends on Prometheus as a data source.

Key Concepts
  • Metrics format (key-value pairs, usually pulled from /metrics)
  • How Prometheus scrapes targets (your FastAPI app)
  • PromQL: Prometheus Query Language
  • Configuration (prometheus.yml)
  • How to expose metrics from FastAPI (using prometheus_client)
Example metric from FastAPI
from prometheus_client import start_http_server, Counter

REQUEST_COUNT = Counter('http_requests_total', 'Total HTTP Requests')

@app.middleware("http")
async def count_requests(request: Request, call_next):
    REQUEST_COUNT.inc()
    return await call_next(request)

Then Prometheus scrapes http://<your-app>:8000/metrics.


📌 2. Grafana Basics

Once Prometheus is collecting metrics:

  • Add Prometheus as a data source in Grafana.
  • Create dashboards using:

  • Graphs (time series)

  • Gauges
  • Tables

You can use built-in dashboards or import community ones from Grafana Dashboards.


🔧 Local Testing

You can visit:

  • Prometheus UI: http://localhost:9090

Try simple PromQL queries like:

http_requests_total
rate(http_requests_total[1m])
  • Grafana UI: http://localhost:3000

Default login is admin / admin.


  1. Prometheus:

    • Learn about scraping targets
    • Learn PromQL basics
    • Understand how metrics are collected
  2. Grafana:

    • Learn dashboard creation
    • Set up alerts
    • Explore panel types

📚 Resources