Skip to main content

Grafana & Prometheus

The Spice runtime has a Prometheus endpoint configured by default on port 9000. There's also prebuilt Grafana dashboards for out of the box monitoring of all your Spice instances.

Import Grafana Dashboard

Navigate to the Dashboards section in Grafana and click "New" > "Import".

Copy the dashboard JSON from monitoring/grafana-dashboard.json into the Grafana import box.

Click "Load".

Kubernetes

View the Kubernetes deployment guide for configuring the Prometheus Operator to scrape metrics from the Spice instances in Kubernetes.

Prometheus

Configure a Prometheus instance to scrape metrics from the Spice runtimes.

global:
scrape_interval: 1s
scrape_configs:
- job_name: spiceai
static_configs:
- targets: ['127.0.0.1:9000'] # Change to your Spice runtime endpoint + port

Local Quickstart

This tutorial creates and configures Grafana and Prometheus locally to scrape and display metrics from several Spice instances. It assumes:

  • Two Spice runtimes, spiced-main and spiced-edge, are running on 127.0.0.1:9091 and 127.0.0.1:9092 respectively.
  1. Create a compose.yaml:

    version: "3"
    services:
    prometheus:
    image: prom/prometheus:latest
    volumes:
    - ./prometheus.yaml:/etc/prometheus/prometheus.yml
    ports:
    - 9090:9090
    network_mode: "host"
    grafana:
    image: grafana/grafana:latest
    volumes:
    - ./.grafana/provisioning:/etc/grafana/provisioning
    ports:
    - 3000:3000
    network_mode: "host"
  2. Create a prometheus.yaml to

    global:
    scrape_interval: 1s
    scrape_configs:
    - job_name: spiced-main
    static_configs:
    - targets: ['127.0.0.1:9091']
    - job_name: spiced-edge
    static_configs:
    - targets: ['127.0.0.1:9092']
  3. Add a prometheus as a source to grafana. Create a .grafana/provisioning/datasources/prometheus.yml

    apiVersion: 1

    datasources:
    - name: Prometheus
    type: prometheus
    access: proxy
    url: http://localhost:9090
    isDefault: true
  4. Run the Docker Compose

    docker-compose up
  5. Go to http://localhost:3000/dashboard/import and add the JSON from monitoring/grafana-dashboard.json.

  6. The dashboard will have data from the Spice runtimes.