Skip to main content

Cloud Run

SmartSRE provides auto-scaling optimization and performance tuning for Google Cloud Run.

What SmartSRE Scans

CategoryChecks
PerformanceCPU/memory utilization, request latency, error rates
ScalingMin/max instances, cold start frequency
CostOver-provisioning, idle resources
SecurityIAM bindings, invoker permissions

Findings

High-Priority

Issue TypeSeverityDescription
high_memory_usageHighMemory > 90% for extended period
high_cpu_usageHighCPU > 85% for extended period
high_error_rateHighError rate > 5%
oom_crashesCriticalOut-of-memory terminations detected

Medium-Priority

Issue TypeSeverityDescription
low_memory_usageMediumMemory < 20% utilization
cold_start_riskMediumMin instances = 0 with high traffic
high_request_latencyMediumP95 latency > 2 seconds

Available Fixes

Memory & CPU Scaling

OperationDescriptionImpact
scale_memoryAdjust memory allocationLow
scale_cpuAdjust CPU allocationLow

Instance Management

OperationDescriptionImpact
set_min_instancesConfigure minimum warm instancesLow
set_max_instancesSet maximum scaling limitLow

IAM & Security

OperationDescriptionImpact
grant_invokerAdd service account as invokerMedium
revoke_public_accessRemove allUsers invoker bindingHigh

Required Permissions

For Scanning

roles/run.viewer
roles/monitoring.viewer

For Remediation

roles/run.admin
roles/iam.serviceAccountUser

Example ChangeSet

{
"service": "cloudrun",
"intent": "Right-size memory allocation based on actual usage",
"steps": [
{
"op": "scale_memory",
"resource_ref": {
"project_id": "my-project",
"region": "us-central1",
"service_name": "api-service"
},
"params": {
"current_memory": "2Gi",
"target_memory": "512Mi"
},
"estimated_cost_usd": -35.00,
"impact_score": 15
},
{
"op": "set_min_instances",
"resource_ref": {
"project_id": "my-project",
"region": "us-central1",
"service_name": "api-service"
},
"params": {
"min_instances": 1
},
"estimated_cost_usd": 8.00,
"impact_score": 10
}
]
}

Configuration Options

Configure Cloud Run thresholds in Settings → Risk Policy:

SettingDefaultDescription
max_memory_gi8Maximum memory allocation (GiB)
max_cpu_m4000Maximum CPU (millicores)
cpu_high_threshold85CPU % to trigger high_cpu finding
memory_high_threshold90Memory % to trigger high_memory finding
memory_low_threshold20Memory % to trigger over-provisioning finding

Rollback Capability

All Cloud Run operations support full rollback:

OperationRollback Method
scale_memoryRestore previous memory allocation
scale_cpuRestore previous CPU allocation
set_min_instancesRestore previous min instances
set_max_instancesRestore previous max instances

Best Practices

  1. Start with monitoring — Run scans before applying fixes to understand baseline
  2. Right-size memory first — Memory affects billing and CPU allocation
  3. Use min instances for latency-sensitive services — Prevents cold starts
  4. Set max instances for cost control — Prevents runaway scaling