Available solutions
GCP Cloud Run Service by HTTP
Overview
This template is designed to monitor Google Cloud Platform Cloud Run services using Zabbix.
Requirements
Zabbix version: 8.0 and higher.
Tested versions
This template has been tested on:
- GCP Cloud Run
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
This template will be automatically connected to discovered entities with all their required parameters pre-defined.
Macros used
| Name | Description | Default |
|---|---|---|
| {$GCP.PROJECT.ID} | GCP project ID. |
|
| {$GCP.DATA.TIMEOUT} | Response timeout for API. |
15s |
| {$GCP.TIME.WINDOW} | Time interval for data requests. Supported usage types: - Default update interval for most items. - Minimal time window for data requested in Monitoring Query Language REST API request. |
5m |
| {$GCP.PROXY} | Sets HTTP proxy value. If this macro is empty, then no proxy is used. |
|
| {$GCP.CPU.UTIL.MAX} | GCP Cloud Run container instance CPU utilization threshold. |
90 |
| {$GCP.MEMORY.UTIL.CRIT} | GCP Cloud Run container instance memory utilization threshold. |
90 |
| {$GCP.CONCURRENT.REQUEST.MAX} | GCP Cloud Run max concurrent request threshold. |
80 |
| {$GCP.HTTP.FAIL.MAX.WARN} | The maximum number of HTTP request failures for trigger expression. |
5 |
| {$GCP.REQUEST.LATENCY.WARN} | Maximum of request latency in milliseconds for trigger expression. |
100 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get container utilization | Raw data of utilization container. |
HTTP agent | gcp.run.utilization.get Preprocessing
|
| Container CPU utilization | Container CPU utilization in percentage distribution across all container instances. |
Dependent item | gcp.run.cpu.utilization Preprocessing
|
| Container memory utilization | Container memory utilization distribution across all container instances. |
Dependent item | gcp.run.memory.utilization Preprocessing
|
| Max concurrent requests | Distribution of the maximum number of concurrent requests being served by each container instance over a minute. |
Dependent item | gcp.run.concurrent.request Preprocessing
|
| Get request | Number of requests reaching the service. |
HTTP agent | gcp.run.request.get Preprocessing
|
| Requests 2xx per second | Number of |
Dependent item | gcp.run.request.2xx.rate Preprocessing
|
| Requests 3xx per second | Number of |
Dependent item | gcp.run.request.3xx.rate Preprocessing
|
| Requests 4xx per second | Number of |
Dependent item | gcp.run.request.4xx.rate Preprocessing
|
| Requests 5xx per second | Number of |
Dependent item | gcp.run.request.5xx.rate Preprocessing
|
| Get HTTP response traffic | Raw data socket and HTTP response traffic. |
HTTP agent | gcp.run.http.traffic.get Preprocessing
|
| Internet sent bytes per second | Outgoing response traffic, in bytes. Traffic is sent over network type |
Dependent item | gcp.gce.internet.sent_bytes.rate Preprocessing
|
| Internet received bytes per second | Incoming request traffic, in bytes. Traffic is received over network type |
Dependent item | gcp.run.internet.received_bytes.rate Preprocessing
|
| Private sent bytes per second | Outgoing response traffic, in bytes. Traffic is sent over network type |
Dependent item | gcp.gce.private.sent_bytes.rate Preprocessing
|
| Private received bytes per second | Incoming request traffic, in bytes. Traffic is received over network type |
Dependent item | gcp.run.private.received_bytes.rate Preprocessing
|
| Google sent bytes per second | Outgoing response traffic, in bytes. For responses returned through Google Cloud load balancers, response traffic is classified as |
Dependent item | gcp.gce.google.sent_bytes.rate Preprocessing
|
| Google received bytes per second | Incoming request traffic, in bytes. Traffic is received over network type |
Dependent item | gcp.run.google.received_bytes.rate Preprocessing
|
| Get latency | Raw data of request latencies. |
HTTP agent | gcp.run.latency.get Preprocessing
|
| Request latencies | Distribution of request times in milliseconds reaching the service. |
Dependent item | gcp.run.request.latency Preprocessing
|
| End-to-end request latency | Distribution of request latencies in milliseconds measured from when the request enters Google Cloud's network to when Cloud Run sends the response. |
Dependent item | gcp.run.e2e.latency Preprocessing
|
| Ingress to region request latency | Distribution of request latencies in milliseconds measured from when the request enters Google Cloud's network to when the request reaches the cloud region. |
Dependent item | gcp.run.ingress.region.latency Preprocessing
|
| Routing request latency | Distribution of request latencies in milliseconds measured from when the request reaches the cloud region to when the request reaches Cloud Run. |
Dependent item | gcp.run.routing.request.latency Preprocessing
|
| Pending request latency | Distribution of request latencies in milliseconds measured from when the request reaches Cloud Run to when the request is sent to an instance. Includes time spent waiting for a slot on an existing instance, or for a new instance to start (startup latency). |
Dependent item | gcp.run.pending.request.latency Preprocessing
|
| User execution request latency | Distribution of request latencies in milliseconds measured from when the request reaches a running instance to when it exits. Only includes time spent in the user container. |
Dependent item | gcp.run.user_execution.request.latency Preprocessing
|
| Response egress request latency | Distribution of response latencies in milliseconds measured from when the container finished processing the request to when Cloud Run sends the response. |
Dependent item | gcp.run.response_egress.request.latency Preprocessing
|
| Get container instance count | Raw data of container instances that exist for the service. |
HTTP agent | gcp.run.container.count.get Preprocessing
|
| Active container instance count | Number of active container instances for the service. |
Dependent item | gcp.run.active.container.count Preprocessing
|
| Idle container instance count | Number of idle container instances for the service. |
Dependent item | gcp.run.idle.container.count Preprocessing
|
| Billable instance time | Total billable time (time multiplied by number of running containers). |
HTTP agent | gcp.run.billable.instance.time Preprocessing
|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| GCP Cloud Run Service: High CPU utilization | The CPU utilization is too high. The system might be slow to respond. |
min(/GCP Cloud Run Service by HTTP/gcp.run.cpu.utilization,15m) >= {$GCP.CPU.UTIL.MAX} |
Average | Manual close: Yes |
| GCP Cloud Run Service: High memory utilization | Container memory utilization is too high. The system might be slow to respond. |
min(/GCP Cloud Run Service by HTTP/gcp.run.memory.utilization,15m) >= {$GCP.MEMORY.UTIL.CRIT} |
Average | |
| GCP Cloud Run Service: Concurrent requests too high | Fires when concurrent requests exceed the threshold |
min(/GCP Cloud Run Service by HTTP/gcp.run.concurrent.request,15m) >= {$GCP.CONCURRENT.REQUEST.MAX} |
Warning | Manual close: Yes |
| GCP Cloud Run Service: Too many HTTP request failures | Too many requests failed on service with the |
min(/GCP Cloud Run Service by HTTP/gcp.run.request.5xx.rate,5m)>{$GCP.HTTP.FAIL.MAX.WARN} |
Warning | |
| GCP Cloud Run Service: Request latency is too high | Fires when latency exceeds the threshold |
min(/GCP Cloud Run Service by HTTP/gcp.run.request.latency,5m)>{$GCP.REQUEST.LATENCY.WARN} |
Warning | Manual close: Yes |
| GCP Cloud Run Service: No active container instances | There are no active container instances for the service. This may indicate that the service is not receiving traffic or there is an issue with scaling. |
max(/GCP Cloud Run Service by HTTP/gcp.run.active.container.count,15m)=0 |
Warning | Manual close: Yes |