| 1 | # Grafana Dashboards for vLLM Monitoring |
| 2 | |
| 3 | This directory contains Grafana dashboard configurations (as JSON) designed to monitor |
| 4 | vLLM performance and metrics. |
| 5 | |
| 6 | ## Requirements |
| 7 | |
| 8 | - Grafana 8.0+ |
| 9 | - Prometheus data source configured in Grafana |
| 10 | - vLLM deployment with Prometheus metrics enabled |
| 11 | |
| 12 | ## Dashboard Descriptions |
| 13 | |
| 14 | - **performance_statistics.json**: Tracks performance metrics including latency and |
| 15 | throughput for your vLLM service. |
| 16 | - **query_statistics.json**: Tracks query performance, request volume, and key |
| 17 | performance indicators for your vLLM service. |
| 18 | |
| 19 | ## Deployment Options |
| 20 | |
| 21 | ### Manual Import (Recommended) |
| 22 | |
| 23 | The easiest way to use these dashboards is to manually import the JSON configurations |
| 24 | directly into your Grafana instance: |
| 25 | |
| 26 | 1. Navigate to your Grafana instance |
| 27 | 2. Click the '+' icon in the sidebar |
| 28 | 3. Select 'Import' |
| 29 | 4. Copy and paste the JSON content from the dashboard files, or upload the JSON files |
| 30 | directly |
| 31 | |
| 32 | ### Grafana Operator |
| 33 | |
| 34 | If you're using the [Grafana Operator](https://github.com/grafana-operator/grafana-operator) |
| 35 | in Kubernetes, you can wrap these JSON configurations in a `GrafanaDashboard` custom |
| 36 | resource: |
| 37 | |
| 38 | ```yaml |
| 39 | # Note: Adjust the instanceSelector to match your Grafana instance's labels |
| 40 | # You can check with: kubectl get grafana -o yaml |
| 41 | apiVersion: grafana.integreatly.org/v1beta1 |
| 42 | kind: GrafanaDashboard |
| 43 | metadata: |
| 44 | name: vllm-performance-dashboard |
| 45 | spec: |
| 46 | instanceSelector: |
| 47 | matchLabels: |
| 48 | dashboards: grafana # Adjust to match your Grafana instance labels |
| 49 | folder: "vLLM Monitoring" |
| 50 | json: | |
| 51 | # Replace this comment with the complete JSON content from |
| 52 | # performance_statistics.json - The JSON should start with { and end with } |
| 53 | ``` |
| 54 | |
| 55 | Then apply to your cluster: |
| 56 | |
| 57 | ```bash |
| 58 | kubectl apply -f your-dashboard.yaml -n <namespace> |
| 59 | ``` |