# Grafana: IDP Services → CPU Throttling panel# Look for cpu_throttled_seconds_total metric# A short spike is usually a traffic burst; sustained > 5min is a capacity problem
kubectlgethpa-nservices
kubectldescribehpa<service-name>-nservices
# If HPA exists but isn't scaling: check minReplicas, maxReplicas, and metrics server
kubectltopnodes
# Look at request rate in Grafana (hello-service dashboard → HTTP RPS panel)# If yes: scale out and monitor# If no unexpected traffic: look for a hot loop in application code
Common causes:
- Legitimate traffic growth (healthy — tune HPA or increase limits)
- CPU-intensive operation introduced in a recent deploy (check helm history)
- Infinite loop or hot loop in application code
- Background job / cron running expensive computation
- Excessive logging or serialisation
1234567
# Check if a recent deploy correlated with the CPU spike
helmhistory<service-name>-nservices
# Get a CPU profile if the service exposes pprof (Go services)
kubectlport-forwarddeployment/<service-name>6060:6060-nservices&
curlhttp://localhost:6060/debug/pprof/profile?seconds=30>cpu.prof
gotoolpprofcpu.prof