GCP Cloud Run¶
Collect metrics for GCP Cloud Run service request traffic, latency breakdowns, container CPU and memory resources, instance scaling, and probe startup.
Configuration¶
Install Func¶
We recommend enabling TrueWatch Integration - Extensions - Hosted Func. All prerequisites will be installed automatically. Then proceed with the script installation.
If you deploy Func yourself, refer to Self-deploy Func.
Install the Script¶
-
Log in to the Func console, click [Script Market], enter the TrueWatch script market, and search for
integration_gcp_run. -
Click [Install], then enter the required parameters: account file name, Target Principal, and account name.
-
Click [Deploy Startup Script]. The system automatically creates a
Startupscript set and configures the corresponding startup script. -
Once enabled, the corresponding automatic trigger configuration appears under "Management / Automatic Trigger Configuration." Click [Execute] to run it immediately without waiting for the scheduled time. After a short wait, you can view the execution records and corresponding logs.
Verification¶
- Under "Management / Automatic Trigger Configuration," confirm that the automatic trigger configuration exists for the corresponding task. You can also review the task records and logs for exceptions.
- In TrueWatch, open "Metrics" and check whether the
gcp_runmeasurement and its monitoring data exist. - In TrueWatch, open "Metrics" and check whether the corresponding monitoring data exists.
Metrics¶
Cloud Run metrics are reported to the gcp_run measurement. Original Metric identifies the metric type under the Cloud Monitoring run.googleapis.com/ namespace. The collector splits distribution metrics into fields by statistic, including _avg, _p95, _p99, _samplecount, and _sumsqdev.
Common tags:
| Tag | Description |
|---|---|
| account_name | Integration account name used as a unique ID |
| cloud_provider | Cloud provider, fixed as gcp |
| project_id | GCP project ID |
| project_name | GCP project name |
| location | Region where the service is located |
| service_name | Cloud Run service name |
| revision_name | Revision name |
| configuration_name | Configuration name |
| container_name | Container name (container-level metrics) |
| monitor_resource_type | Monitored resource type |
Some metrics include specific tags: response_code and response_code_class (request metrics), state (container or instance state), readiness_status (readiness state), scaling_driver (scaling driver), probe_type, probe_action, is_healthy, and is_default (probe metrics), and kind (network traffic type).
gcp_run¶
| Metric | Original Metric | Description | Unit |
|---|---|---|---|
| container_billable_instance_time | container/billable_instance_time | Billable container instance runtime | Seconds |
| container_completed_probe_attempt_count | container/completed_probe_attempt_count | Number of completed probe attempts | Count |
| container_completed_probe_count | container/completed_probe_count | Number of completed probe checks | Count |
| container_containers | container/containers | Number of containers by state | Count |
| container_cpu_allocation_time | container/cpu/allocation_time | CPU time allocated to containers | Core-seconds |
| container_cpu_usage_avg | container/cpu/usage | Average container CPU usage | Seconds |
| container_cpu_usage_p95 | container/cpu/usage | 95th percentile of container CPU usage | Seconds |
| container_cpu_usage_p99 | container/cpu/usage | 99th percentile of container CPU usage | Seconds |
| container_cpu_usage_samplecount | container/cpu/usage | Container CPU usage sample count | Count |
| container_cpu_utilizations_avg | container/cpu/utilizations | Average container CPU utilization | Ratio (0-1) |
| container_cpu_utilizations_p95 | container/cpu/utilizations | 95th percentile of container CPU utilization | Ratio (0-1) |
| container_cpu_utilizations_p99 | container/cpu/utilizations | 99th percentile of container CPU utilization | Ratio (0-1) |
| container_cpu_utilizations_samplecount | container/cpu/utilizations | Container CPU utilization sample count | Count |
| container_instance_count | container/instance_count | Number of container instances by state (active, idle) | Count |
| container_instance_count_with_readiness | container/instance_count_with_readiness | Number of container instances by readiness state | Count |
| container_max_request_concurrencies_avg | container/max_request_concurrencies | Average maximum request concurrency per instance | Count |
| container_max_request_concurrencies_p95 | container/max_request_concurrencies | 95th percentile of maximum concurrency per instance | Count |
| container_max_request_concurrencies_p99 | container/max_request_concurrencies | 99th percentile of maximum concurrency per instance | Count |
| container_max_request_concurrencies_samplecount | container/max_request_concurrencies | Sample count for maximum concurrency per instance | Count |
| container_memory_allocation_time | container/memory/allocation_time | Memory time allocated to containers | Byte-seconds |
| container_memory_tmpfs_usage_samplecount | container/memory/tmpfs_usage | Container tmpfs memory usage sample count | Count |
| container_memory_usage_avg | container/memory/usage | Average container memory usage | Bytes |
| container_memory_usage_p95 | container/memory/usage | 95th percentile of container memory usage | Bytes |
| container_memory_usage_p99 | container/memory/usage | 99th percentile of container memory usage | Bytes |
| container_memory_usage_samplecount | container/memory/usage | Container memory usage sample count | Count |
| container_memory_utilizations_avg | container/memory/utilizations | Average container memory utilization | Ratio (0-1) |
| container_memory_utilizations_p95 | container/memory/utilizations | 95th percentile of container memory utilization | Ratio (0-1) |
| container_memory_utilizations_p99 | container/memory/utilizations | 99th percentile of container memory utilization | Ratio (0-1) |
| container_memory_utilizations_samplecount | container/memory/utilizations | Container memory utilization sample count | Count |
| container_network_received_bytes_count | container/network/received_bytes_count | Number of network bytes received by containers | Bytes |
| container_network_sent_bytes_count | container/network/sent_bytes_count | Number of network bytes sent by containers | Bytes |
| container_probe_attempt_latencies_avg | container/probe_attempt_latencies | Average latency of a single probe attempt | Milliseconds |
| container_probe_attempt_latencies_p95 | container/probe_attempt_latencies | 95th percentile of single probe attempt latency | Milliseconds |
| container_probe_attempt_latencies_p99 | container/probe_attempt_latencies | 99th percentile of single probe attempt latency | Milliseconds |
| container_probe_attempt_latencies_samplecount | container/probe_attempt_latencies | Sample count for single probe attempt latency | Count |
| container_probe_latencies_avg | container/probe_latencies | Average probe latency (including retries) | Milliseconds |
| container_probe_latencies_p95 | container/probe_latencies | 95th percentile of probe latency (including retries) | Milliseconds |
| container_probe_latencies_p99 | container/probe_latencies | 99th percentile of probe latency (including retries) | Milliseconds |
| container_probe_latencies_samplecount | container/probe_latencies | Probe latency sample count | Count |
| container_startup_latencies_avg | container/startup_latencies | Average container startup latency | Milliseconds |
| container_startup_latencies_p95 | container/startup_latencies | 95th percentile of container startup latency | Milliseconds |
| container_startup_latencies_p99 | container/startup_latencies | 99th percentile of container startup latency | Milliseconds |
| container_startup_latencies_samplecount | container/startup_latencies | Container startup latency sample count | Count |
| pending_queue_pending_requests | pending_queue/pending_requests | Length of the pending request queue | Count |
| request_count | request_count | Number of requests | Count |
| request_latencies_avg | request_latencies | Average request latency | Milliseconds |
| request_latencies_p95 | request_latencies | 95th percentile of request latency | Milliseconds |
| request_latencies_p99 | request_latencies | 99th percentile of request latency | Milliseconds |
| request_latencies_samplecount | request_latencies | Request latency sample count | Count |
| request_latencies_sumsqdev | request_latencies | Sum of squared deviations in request latency | Milliseconds² |
| request_latency_e_2_e_latencies_avg | request_latency/e2e_latencies | Average end-to-end request latency | Milliseconds |
| request_latency_e_2_e_latencies_p95 | request_latency/e2e_latencies | 95th percentile of end-to-end request latency | Milliseconds |
| request_latency_e_2_e_latencies_p99 | request_latency/e2e_latencies | 99th percentile of end-to-end request latency | Milliseconds |
| request_latency_e_2_e_latencies_samplecount | request_latency/e2e_latencies | End-to-end request latency sample count | Count |
| request_latency_e_2_e_latencies_sumsqdev | request_latency/e2e_latencies | Sum of squared deviations in end-to-end latency | Milliseconds² |
| request_latency_ingress_to_region_avg | request_latency/ingress_to_region | Average latency from ingress to the service region | Milliseconds |
| request_latency_ingress_to_region_samplecount | request_latency/ingress_to_region | Ingress-to-region latency sample count | Count |
| request_latency_ingress_to_region_sumsqdev | request_latency/ingress_to_region | Sum of squared deviations in ingress-to-region latency | Milliseconds² |
| request_latency_pending_samplecount | request_latency/pending | Request queue wait latency sample count | Count |
| request_latency_response_egress_avg | request_latency/response_egress | Average response egress latency | Milliseconds |
| request_latency_response_egress_samplecount | request_latency/response_egress | Response egress latency sample count | Count |
| request_latency_response_egress_sumsqdev | request_latency/response_egress | Sum of squared deviations in response egress latency | Milliseconds² |
| request_latency_routing_avg | request_latency/routing | Average request routing latency | Milliseconds |
| request_latency_routing_samplecount | request_latency/routing | Request routing latency sample count | Count |
| request_latency_routing_sumsqdev | request_latency/routing | Sum of squared deviations in request routing latency | Milliseconds² |
| request_latency_user_execution_avg | request_latency/user_execution | Average user code execution latency | Milliseconds |
| request_latency_user_execution_p95 | request_latency/user_execution | 95th percentile of user code execution latency | Milliseconds |
| request_latency_user_execution_p99 | request_latency/user_execution | 99th percentile of user code execution latency | Milliseconds |
| request_latency_user_execution_samplecount | request_latency/user_execution | User code execution latency sample count | Count |
| scaling_recommended_instances | scaling/recommended_instances | Recommended number of instances for automatic scaling | Count |