Skip to main content

Overview

This is the second step in the Deploy vLLM inference tutorial series. Before starting, complete step 1: set up infrastructure dependencies. Monitoring and observability are important for production inference workloads. This step sets up Prometheus for metrics collection and Grafana for visualization, giving you insights into your vLLM deployment’s performance. You also prepare the storage and authentication resources that the vLLM deployment in the next step depends on. The monitoring stack provides metrics for the following areas:
  • Request throughput and latency
  • GPU utilization and memory usage
  • KV cache performance
  • Queue depth and autoscaling metrics
Resource allocationThe monitoring stack requires additional cluster resources. Ensure your CKS cluster has at least one CPU Node for Prometheus and Grafana to deploy to.

Step 1: Install Prometheus and Grafana

Clone the reference architecture repository:
Navigate to the hack folder:
Get your cluster org and cluster name by going to the Cloud Console. Update the values.yaml file by replacing the orgID, clusterName, and hosts sections with your information. Add your information to the following sections:
For example, if your orgID is cw99 and your cluster name is my-inference-cluster, the values.yaml would look like the following:
Depending on when you created your cluster, you might need to comment out the rest of the file.
Because the example cluster was created after 2025-07-04, the values.yaml looks like the following:
Add the Prometheus and Grafana Helm repositories and update the local cache:
You should see output similar to the following:
Navigate to the observability/basic directory and deploy the monitoring stack from the observability/basic directory:
You should see something similar to the following:
Install the observability chart into the monitoring namespace:
You should see output similar to the following:

Step 2: Verify monitoring deployment

List the Pods in the monitoring namespace:
You should see output similar to the following:

Step 3: Get Grafana credentials

Retrieve the auto-generated Grafana admin password:
Save this password for accessing the Grafana dashboard.

Step 4: Create model cache storage

In this step, you create a namespace for the inference workload and a persistent volume claim that caches downloaded model weights so later Pod restarts don’t re-download large model files. Navigate to the inference/basic directory:
Create the inference namespace:
Create the model cache PVC:

Step 5: Optional: Set up Hugging Face authentication

For models that require authentication, like the Llama 3.1 8B Instruct, create a secret with your Hugging Face token. Replace [HUGGINGFACE-TOKEN] with your actual Hugging Face access token.
You should see output similar to the following:

Step 6: Create Grafana dashboard for vLLM

Add the vLLM monitoring dashboard to Grafana:
You should see output similar to the following:
This creates a ConfigMap that Grafana automatically detects and loads as a dashboard.

Step 7: Optional: Install autoscaling support

For production workloads, install KEDA to enable automatic scaling based on demand:
Verify KEDA is running:
You should see output similar to the following:

What’s next

Your monitoring and observability stack is now configured, and the namespace, model cache, Hugging Face secret, and Grafana dashboard required by the inference workload are in place. In the next step, you deploy the vLLM inference service.
Last modified on June 10, 2026