GCP Application Load Balancer

This template is designed to monitor GCP Application Load Balancing using Zabbix.

Available solutions

Zabbix version 8.0
Download

GCP Application Load Balancer by HTTP

Overview

This template is designed to monitor GCP Application Load Balancing using Zabbix.

Requirements

Zabbix version: 8.0 and higher.

Tested versions

This template has been tested on:

  • GCP Application Load Balancing

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.

1h
{$GCP.PROXY}

HTTP proxy. If this macro is empty, then no proxy is used.

{$GCP.APP.LB.TYPE.PREFIX}

Metric prefix for load balancer type.

Possible values:

- https for global external load balancers

- https/external/regional for regional external load balancers

- https/internal for internal load balancers

{$GCP.APP.LB.P95.LATENCY.MAX}

Sets the maximum latency threshold for alerts.

1000
{$GCP.APP.LB.NODATA.TIME}

Time threshold for no data trigger.

30m
{$GCP.APP.LB.SUCCESS.RATE.WARN}

Warning severity threshold for request success rate (%).

95
{$GCP.APP.LB.SUCCESS.RATE.AVERAGE}

Average severity threshold for request success rate (%).

90
{$GCP.APP.LB.SUCCESS.RATE.HIGH}

High severity threshold for request success rate (%).

75
{$GCP.APP.LB.RESPONSE.CODE.MATCHES}

Filter to include HTTP response codes for discovery.

.*
{$GCP.APP.LB.RESPONSE.CODE.NOT_MATCHES}

Filter to exclude HTTP response codes for discovery.

CHANGE_IF_NEEDED

Items

Name Description Type Key and additional info
Request bytes count

Request bytes count for the application load balancer.

HTTP agent gcp.app.lb.request.bytes

Preprocessing

  • Check for not supported value: The text is too long. Please see the template.

    ⛔️Custom on fail: Set error to: There was an authentication error while requesting data from GCP API.

  • Check for not supported value: any error

    ⛔️Custom on fail: Discard value

  • JSON Path: $.data.result[0].value[1]

    ⛔️Custom on fail: Set value to: 0

  • Discard unchanged with heartbeat: 30m

Response bytes count

Response bytes count for the application load balancer.

HTTP agent gcp.app.lb.response.bytes

Preprocessing

  • Check for not supported value: The text is too long. Please see the template.

    ⛔️Custom on fail: Set error to: There was an authentication error while requesting data from GCP API.

  • Check for not supported value: any error

    ⛔️Custom on fail: Discard value

  • JSON Path: $.data.result[0].value[1]

    ⛔️Custom on fail: Set value to: 0

  • Discard unchanged with heartbeat: 30m

Average latency

Average latencies for the application load balancer.

HTTP agent gcp.app.lb.average.latency

Preprocessing

  • Check for not supported value: The text is too long. Please see the template.

    ⛔️Custom on fail: Set error to: There was an authentication error while requesting data from GCP API.

  • Check for not supported value: any error

    ⛔️Custom on fail: Discard value

  • JSON Path: $.data.result[0].value[1]

    ⛔️Custom on fail: Set value to: 0

  • Discard unchanged with heartbeat: 30m

P95 latency

P95 latencies for the application load balancer.

HTTP agent gcp.app.lb.p95.latency

Preprocessing

  • Check for not supported value: The text is too long. Please see the template.

    ⛔️Custom on fail: Set error to: There was an authentication error while requesting data from GCP API.

  • Check for not supported value: any error

    ⛔️Custom on fail: Discard value

  • JSON Path: $.data.result[0].value[1]

    ⛔️Custom on fail: Set value to: 0

  • Discard unchanged with heartbeat: 30m

Request success rate

Request success rate calculated based on the ratio of successful requests (HTTP response codes 2xx and 3xx) to total requests.

HTTP agent gcp.app.lb.success.rate

Preprocessing

  • Check for not supported value: The text is too long. Please see the template.

    ⛔️Custom on fail: Set error to: There was an authentication error while requesting data from GCP API.

  • JSON Path: $.data.result[0].value[1]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 30m

Total average request rate

Total average request rate for the application load balancer.

HTTP agent gcp.app.lb.request.rate

Preprocessing

  • Check for not supported value: The text is too long. Please see the template.

    ⛔️Custom on fail: Set error to: There was an authentication error while requesting data from GCP API.

  • Check for not supported value: any error

    ⛔️Custom on fail: Discard value

  • JSON Path: $.data.result[0].value[1]

    ⛔️Custom on fail: Set value to: 0

  • Discard unchanged with heartbeat: 30m

Request rates by response code

Request rates by response code for the application load balancer.

HTTP agent gcp.app.lb.requests.count

Preprocessing

  • Discard unchanged with heartbeat: 1h

Triggers

Name Description Expression Severity Dependencies and additional info
GCP Application Load Balancer: High P95 latency

The 95th percentile latency is above {$GCP.APP.LB.P95.LATENCY.MAX}ms (avg over 5 minutes).

avg(/GCP Application Load Balancer by HTTP/gcp.app.lb.p95.latency,5m) > {$GCP.APP.LB.P95.LATENCY.MAX} Average Manual close: Yes
GCP Application Load Balancer: Request success rate is below warning threshold

Request success rate has dropped below {$GCP.APP.LB.SUCCESS.RATE.WARN}%.

This may indicate elevated client or backend errors.

avg(/GCP Application Load Balancer by HTTP/gcp.app.lb.success.rate,5m)<{$GCP.APP.LB.SUCCESS.RATE.WARN} and avg(/GCP Application Load Balancer by HTTP/gcp.app.lb.request.rate,5m)>0 Warning Manual close: Yes
GCP Application Load Balancer: Request success rate is critically low

Request success rate has dropped below {$GCP.APP.LB.SUCCESS.RATE.AVERAGE}%.

Users are likely experiencing failed requests.

avg(/GCP Application Load Balancer by HTTP/gcp.app.lb.success.rate,5m)<{$GCP.APP.LB.SUCCESS.RATE.AVERAGE} and avg(/GCP Application Load Balancer by HTTP/gcp.app.lb.request.rate,5m)>1 Average Manual close: Yes
GCP Application Load Balancer: Request success rate indicates major outage

Request success rate has dropped below {$GCP.APP.LB.SUCCESS.RATE.HIGH}%.

Severe service degradation or outage is likely occurring.

avg(/GCP Application Load Balancer by HTTP/gcp.app.lb.success.rate,5m)<{$GCP.APP.LB.SUCCESS.RATE.HIGH} and avg(/GCP Application Load Balancer by HTTP/gcp.app.lb.request.rate,5m)>5 High Manual close: Yes
GCP Application Load Balancer: No request rate data

No request rate data received for {$GCP.APP.LB.NODATA.TIME}. The load balancer may not be receiving traffic or there may be an issue with data collection.

nodata(/GCP Application Load Balancer by HTTP/gcp.app.lb.requests.count,{$GCP.APP.LB.NODATA.TIME})=1 Warning Manual close: Yes

LLD rule Response code discovery

Name Description Type Key and additional info
Response code discovery

Discovery of HTTP response codes for the application load balancer.

Dependent item gcp.app.lb.request.count.discovery

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 2h

Item prototypes for Response code discovery

Name Description Type Key and additional info
Requests rate: HTTP {#RESPONSE_CODE}

Request rate for HTTP {#RESPONSE_CODE} responses.

Dependent item gcp.app.lb.request.count[{#RESPONSE_CODE}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 2h

Articles and documentation

+ Propose new article

Não encontrou a integração que vocá precisa?