YugabyteDB

YugabyteDB is a high-performance transactional distributed SQL database for cloud-native applications, developed by Yugabyte.

Available solutions




This template is for Zabbix version: 7.0
Also available for: 6.4 6.0

Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/yugabytedb_http?at=release/7.0

YugabyteDB by HTTP

Overview

This template is designed for the deployment of YugabyteDB monitoring by Zabbix via HTTP and doesn't require any external scripts.

Requirements

Zabbix version: 7.0 and higher.

Tested versions

This template has been tested on:

  • YugabyteDB, version 2.19.2.0

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

  1. Set your account ID as a value of the {$YUGABYTEDB.ACCOUNT.ID} macro. The account ID is the unique identifier for your customer account in YugabyteDB Managed. You can access the account ID from your profile in the YugabyteDB Managed user interface. To get your account ID, log in to YugabyteDB Managed and click the user profile icon. See YugabyteDB documentation for instructions.

  2. Set your project ID as a value of the {$YUGABYTEDB.PROJECT.ID} macro. The project ID is the unique identifier for a YugabyteDB Managed project. You can access the project ID from your profile in the YugabyteDB Managed user interface (along with the account ID). See YugabyteDB documentation for instructions.

  3. Generate the API access token and specify it as a value of the {$YUGABYTEDB.ACCESS.TOKEN} macro. See YugabyteDB documentation for instructions.

NOTE If needed, you can specify a HTTP proxy for the template to use by changing the value of the {$YUGABYTEDB.PROXY} user macro.

IMPORTANT

The value of the {$YUGABYTEDB.ACCESS.TOKEN} macro is stored as plain (not secret) text by default.

Macros used

Name Description Default
{$YUGABYTEDB.ACCOUNT.ID}

YugabyteDB account ID.

<Put your account ID here>
{$YUGABYTEDB.PROJECT.ID}

YugabyteDB project ID.

<Put your project ID here>
{$YUGABYTEDB.ACCESS.TOKEN}

Access token for the YugabyteDB API.

<Put your access token here>
{$YUGABYTEDB.PROXY}

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

Items

Name Description Type Key and additional info
Get cluster

Get raw data about clusters.

Script yugabytedb.clusters.get
Get clusters item error

Item for gathering all the cluster item errors.

Dependent item yugabytedb.clusters.get.errors

Preprocessing

  • JSON Path: $.error

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 12h

Triggers

Name Description Expression Severity Dependencies and additional info
YugabyteDB: Failed to fetch data

Failed to fetch data about cluster.

length(last(/YugabyteDB by HTTP/yugabytedb.clusters.get.errors)) > 0 Warning

LLD rule Cluster discovery

Name Description Type Key and additional info
Cluster discovery

Discovery of the available clusters.

Dependent item yugabytedb.cluster.discovery

Preprocessing

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

  • Discard unchanged with heartbeat: 1d

YugabyteDB Cluster by HTTP

Macros used

Name Description Default
{$YUGABYTEDB.CLUSTER.NAME}

Name of cluster.

<Put your cluster name here>
{$YUGABYTEDB.CLUSTER.ID}

ID of cluster.

<Put your cluster ID here>
{$YUGABYTEDB.MEMORY.CLUSTER.UTILIZATION.WARN}

The percentage of memory use on the cluster - for the Warning trigger expression.

70
{$YUGABYTEDB.MEMORY.CLUSTER.UTILIZATION.CRIT}

The percentage of memory use on the cluster - for the High trigger expression.

90
{$YUGABYTEDB.DISK.UTILIZATION.WARN}

The percentage of disk use in the cluster - for the Warning trigger expression.

75
{$YUGABYTEDB.DISK.UTILIZATION.CRIT}

The percentage of disk use in the cluster - for the High trigger expression.

90
{$YUGABYTEDB.CONNECTION.UTILIZATION.WARN}

The percentage of connections in the cluster - for the Warning trigger expression.

75
{$YUGABYTEDB.CONNECTION.UTILIZATION.CRIT}

The percentage of connections in the cluster - for the High trigger expression.

90
{$YUGABYTEDB.CPU.UTILIZATION.CRIT}

The threshold of CPU utilization for the High trigger expression, expressed in percent.

90
{$YUGABYTEDB.CPU.UTILIZATION.WARN}

The threshold of CPU utilization for the Warning trigger expression, expressed in percent.

75
{$YUGABYTEDB.IOPS.UTILIZATION.WARN}

The percentage of IOPS use on the node - for the Warning trigger expression.

75
{$YUGABYTEDB.IOPS.UTILIZATION.CRIT}

The percentage of IOPS use on the node - for the High trigger expression.

90
{$YUGABYTEDB.PROXY}

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

Items

Name Description Type Key and additional info
Get cluster

Get raw data about clusters.

Script yugabytedb.cluster.get
Get cluster item error

Item for gathering all the cluster item errors.

Dependent item yugabytedb.cluster.get.errors

Preprocessing

  • JSON Path: $.error

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 12h

Get keyspace

Get raw data about keyspaces.

Script yugabytedb.keyspace.get
Get keyspace item error

Item for gathering all the keyspace item errors.

Dependent item yugabytedb.keyspace.get.errors

Preprocessing

  • JSON Path: $.error

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 12h

Get node

Get raw data about nodes.

Script yugabytedb.node.get
Get node item error

Item for gathering all the node item errors.

Dependent item yugabytedb.node.get.errors

Preprocessing

  • JSON Path: $.error

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 12h

Get cluster metrics

Getting metrics for the cluster.

Script yugabytedb.cluster.metric.get
Get cluster metrics item error

Item for gathering all the cluster item errors.

Dependent item yugabytedb.cluster.metric.get.errors

Preprocessing

  • JSON Path: $.error

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 12h

Get cluster query statistic

Getting SQL statistics for the cluster.

Script yugabytedb.cluster.query.statistic.get
Get cluster query statistic item error

Item for gathering all the cluster query statistics item errors.

Dependent item yugabytedb.cluster.query.statistic.get.errors

Preprocessing

  • JSON Path: $.error

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 12h

State

The current state of the cluster. One of the following:

- INVALID

- QUEUED

- INIT

- BOOTSTRAPPING

- VPC_PEERING

- NETWORK_CREATING

- PROVISIONING

- CONFIGURING

- CREATING_LB

- UPDATING_LB

- ACTIVE

- PAUSING

- PAUSED

- RESUMING

- UPDATING

- MAINTENANCE

- RESTORE

- FAILED

- CREATE_FAILED

- DELETING

- STARTING_NODE

- STOPPING_NODE

- REBOOTING_NODE

- CREATE_READ_REPLICA_FAILED

- DELETE_READ_REPLICA_FAILED

- DELETE_CLUSTER_FAILED

- EDIT_CLUSTER_FAILED

- EDIT_READ_REPLICA_FAILED

- PAUSE_CLUSTER_FAILED

- RESUME_CLUSTER_FAILED

- RESTORE_BACKUP_FAILED

- CERTIFICATE_ROTATION_FAILED

- UPGRADE_CLUSTER_FAILED

- UPGRADE_CLUSTER_GFLAGS_FAILED

- UPGRADE_CLUSTER_OS_FAILED

- UPGRADE_CLUSTER_SOFTWARE_FAILED

- START_NODE_FAILED

- STOP_NODE_FAILED

- REBOOT_NODE_FAILED

- CONFIGURE_CMK

- ENABLING_CMK

- DISABLING_CMK

- UPDATING_CMK

- ROTATING_CMK

- STOPPING_METRICS_EXPORTER

- STARTING_METRICS_EXPORTER

- CONFIGURING_METRICS_EXPORTER

- STOP_METRICS_EXPORTER_FAILED

- START_METRICS_EXPORTER_FAILED

- CONFIGURE_METRICS_EXPORTER_FAILED

- REMOVING_METRICS_EXPORTER

- REMOVE_METRICS_EXPORTER_FAILED

Dependent item yugabytedb.cluster.state

Preprocessing

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

  • Discard unchanged with heartbeat: 12h

Type

The kind of cluster deployment: SYNCHRONOUS or GEO_PARTITIONED.

Dependent item yugabytedb.cluster.type

Preprocessing

  • JSON Path: $.data.spec.cluster_info.cluster_type

  • Replace: SYNCHRONOUS -> 0

  • Replace: GEO_PARTITIONED -> 1

  • Discard unchanged with heartbeat: 1d

Number of nodes

How many nodes are in the cluster.

Dependent item yugabytedb.cluster.node.number

Preprocessing

  • JSON Path: $.data.spec.cluster_info.num_nodes

  • Discard unchanged with heartbeat: 12h

Software version

The current version of YugabyteDB installed on the cluster.

Dependent item yugabytedb.cluster.software.version

Preprocessing

  • JSON Path: $.data.info.software_version

  • Discard unchanged with heartbeat: 12h

YB controller version

The current version of the YB controller installed on the cluster.

Dependent item yugabytedb.cluster.ybc.version

Preprocessing

  • JSON Path: $.data.info.ybc_version

  • Discard unchanged with heartbeat: 12h

Health state

Current state regarding the health of the cluster:

- HEALTHY

- NEEDS_ATTENTION

- UNHEALTHY

- UNKNOWN

Dependent item yugabytedb.cluster.health.state

Preprocessing

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

  • Discard unchanged with heartbeat: 12h

CPU utilization

The percentage of CPU use being consumed by the tablet or master server Yugabyte processes, as well as other processes, if any.

Dependent item yugabytedb.cluster.cpu.utilization

Preprocessing

  • JSON Path: $.metrics.CPU_USAGE

Disk space usage

Shows the amount of disk space used by the cluster.

Dependent item yugabytedb.cluster.disk.usage

Preprocessing

  • JSON Path: $.metrics.DISK_USAGE_GB

  • Custom multiplier: 1073741824

Disk space provisioned

Shows the amount of disk space provisioned for the cluster.

Dependent item yugabytedb.cluster.disk.provisioned

Preprocessing

  • JSON Path: $.metrics.PROVISIONED_DISK_SPACE_GB

  • Custom multiplier: 1073741824

  • Discard unchanged with heartbeat: 1h

Disk space utilization

Shows the percentage of disk space used by the cluster.

Calculated yugabytedb.cluster.disk.utilization
Disk read, Bps

The number of bytes being read from disk per second, averaged over each node.

Dependent item yugabytedb.cluster.disk.read.bps

Preprocessing

  • JSON Path: $.metrics.DISK_BYTES_READ_MB_PER_SEC

  • Custom multiplier: 1048576

Disk write, Bps

The number of bytes being written to disk per second, averaged over each node.

Dependent item yugabytedb.cluster.disk.write.bps

Preprocessing

  • JSON Path: $.metrics.DISK_BYTES_WRITTEN_MB_PER_SEC

  • Custom multiplier: 1048576

Disk read OPS

The number of read operations per second.

Dependent item yugabytedb.cluster.disk.read.ops

Preprocessing

  • JSON Path: $.metrics.READ_OPS_PER_SEC

Disk write OPS

The number of write operations per second.

Dependent item yugabytedb.cluster.disk.write.ops

Preprocessing

  • JSON Path: $.metrics.WRITE_OPS_PER_SEC

Average read latency

The average latency of read operations at the tablet level.

Dependent item yugabytedb.cluster.read.latency

Preprocessing

  • JSON Path: $.metrics.AVERAGE_READ_LATENCY_MS

  • Custom multiplier: 0.001

    ⛔️Custom on fail: Set value to: 0

Average write latency

The average latency of write operations at the tablet level.

Dependent item yugabytedb.cluster.write.latency

Preprocessing

  • JSON Path: $.metrics.AVERAGE_WRITE_LATENCY_MS

  • Custom multiplier: 0.001

    ⛔️Custom on fail: Set value to: 0

YSQL connections limit

The limit of the number of connections to the YSQL backend for all nodes.

Dependent item yugabytedb.cluster.connection.limit

Preprocessing

  • JSON Path: $.metrics.YSQL_CONNECTION_LIMIT

  • Discard unchanged with heartbeat: 12h

YSQL connections average used

Cumulative number of connections to the YSQL backend for all nodes.

Dependent item yugabytedb.cluster.connection.count

Preprocessing

  • JSON Path: $.metrics.AVERAGE_YSQL_CONNECTION_COUNT

YSQL connections utilization

Cumulative number of connections to the YSQL backend for all nodes, expressed in percent.

Calculated yugabytedb.cluster.connection.utilization
YSQL connections maximum used

Maximum of used connections to the YSQL backend for all nodes.

Dependent item yugabytedb.cluster.connection.max

Preprocessing

  • JSON Path: $.metrics.YSQL_MAX_CONNECTION_COUNT

Clock skew

The clock drift and skew across different nodes.

Dependent item yugabytedb.cluster.node.skew

Preprocessing

  • JSON Path: $.metrics.NODE_CLOCK_SKEW

  • Custom multiplier: 0.001

    ⛔️Custom on fail: Discard value

Memory total

Shows the amount of RAM provisioned to the cluster.

Dependent item yugabytedb.cluster.memory.total

Preprocessing

  • JSON Path: $.metrics.MEMORY_TOTAL_GB

  • Custom multiplier: 1073741824

  • Discard unchanged with heartbeat: 12h

Memory usage

Shows the amount of RAM used on the cluster.

Dependent item yugabytedb.cluster.memory.usage

Preprocessing

  • JSON Path: $.metrics.MEMORY_USAGE_GB

  • Custom multiplier: 1073741824

Memory utilization

Shows the amount of RAM used on the cluster, expressed in percent.

Calculated yugabytedb.cluster.memory.utilization
Network receive, Bps

The size of network packets received per second, averaged over nodes.

Dependent item yugabytedb.cluster.network.receive.bps

Preprocessing

  • JSON Path: $.metrics.NETWORK_RECEIVE_BYTES_MB_PER_SEC

  • Custom multiplier: 1048576

Network transmit, Bps

The size of network packets transmitted per second, averaged over nodes.

Dependent item yugabytedb.cluster.network.transmit.bps

Preprocessing

  • JSON Path: $.metrics.NETWORK_TRANSMIT_BYTES_MB_PER_SEC

  • Custom multiplier: 1048576

Network receive error, rate

The number of errors related to network packets received per second, averaged over nodes.

Dependent item yugabytedb.cluster.network.receive.error.rate

Preprocessing

  • JSON Path: $.metrics.NETWORK_RECEIVE_ERRORS_PER_SEC

Network transmit error, rate

The number of errors related to network packets transmitted per second, averaged over nodes.

Dependent item yugabytedb.cluster.network.transmit.error.rate

Preprocessing

  • JSON Path: $.metrics.NETWORK_TRANSMIT_ERRORS_PER_SEC

YSQL SELECT OPS

The count of SELECT statements executed through the YSQL API per second. This does not include index writes.

Dependent item yugabytedb.cluster.ysql.select.ops

Preprocessing

  • JSON Path: $.metrics.YSQL_SELECT_OPS_PER_SEC

YSQL DELETE OPS

The count of DELETE statements executed through the YSQL API per second. This does not include index writes.

Dependent item yugabytedb.cluster.ysql.delete.ops

Preprocessing

  • JSON Path: $.metrics.YSQL_DELETE_OPS_PER_SEC

YSQL UPDATE OPS

The count of UPDATE statements executed through the YSQL API per second. This does not include index writes.

Dependent item yugabytedb.cluster.ysql.update.ops

Preprocessing

  • JSON Path: $.metrics.YSQL_UPDATE_OPS_PER_SEC

YSQL INSERT OPS

The count of INSERT statements executed through the YSQL API per second. This does not include index writes.

Dependent item yugabytedb.cluster.ysql.insert.ops

Preprocessing

  • JSON Path: $.metrics.YSQL_INSERT_OPS_PER_SEC

YSQL OTHER OPS

The count of OTHER statements executed through the YSQL API per second.

Dependent item yugabytedb.cluster.ysql.other.ops

Preprocessing

  • JSON Path: $.metrics.YSQL_OTHER_OPS_PER_SEC

YSQL transaction OPS

The count of transactions executed through the YSQL API per second.

Dependent item yugabytedb.cluster.ysql.transaction.ops

Preprocessing

  • JSON Path: $.metrics.YSQL_TRANSACTION_OPS_PER_SEC

YSQL SELECT average latency

Average time of executing SELECT statements through the YSQL API.

Dependent item yugabytedb.cluster.ysql.select.latency

Preprocessing

  • JSON Path: $.metrics.YSQL_SELECT_LATENCY_MS

  • Custom multiplier: 0.001

    ⛔️Custom on fail: Set value to: 0

YSQL DELETE average latency

Average time of executing DELETE statements through the YSQL API.

Dependent item yugabytedb.cluster.ysql.delete.latency

Preprocessing

  • JSON Path: $.metrics.YSQL_DELETE_LATENCY_MS

  • Custom multiplier: 0.001

    ⛔️Custom on fail: Set value to: 0

YSQL UPDATE average latency

Average time of executing UPDATE statements through the YSQL API.

Dependent item yugabytedb.cluster.ysql.update.latency

Preprocessing

  • JSON Path: $.metrics.YSQL_UPDATE_LATENCY_MS

  • Custom multiplier: 0.001

    ⛔️Custom on fail: Set value to: 0

YSQL INSERT average latency

Average time of executing INSERT statements through the YSQL API.

Dependent item yugabytedb.cluster.ysql.insert.latency

Preprocessing

  • JSON Path: $.metrics.YSQL_INSERT_LATENCY_MS

  • Custom multiplier: 0.001

    ⛔️Custom on fail: Set value to: 0

YSQL OTHER average latency

Average time of executing OTHER statements through the YSQL API.

Dependent item yugabytedb.cluster.ysql.other.latency

Preprocessing

  • JSON Path: $.metrics.YSQL_OTHER_LATENCY_MS

  • Custom multiplier: 0.001

    ⛔️Custom on fail: Set value to: 0

YSQL transaction average latency

Average time of executing transactions through the YSQL API.

Dependent item yugabytedb.cluster.ysql.transaction.latency

Preprocessing

  • JSON Path: $.metrics.YSQL_TRANSACTION_LATENCY_MS

  • Custom multiplier: 0.001

    ⛔️Custom on fail: Set value to: 0

YCQL SELECT OPS

The count of SELECT statements executed through the YCQL API per second. This does not include index writes.

Dependent item yugabytedb.cluster.ycql.select.ops

Preprocessing

  • JSON Path: $.metrics.YCQL_SELECT_OPS_PER_SEC

YCQL DELETE OPS

The count of DELETE statements executed through the YCQL API per second. This does not include index writes.

Dependent item yugabytedb.cluster.ycql.delete.ops

Preprocessing

  • JSON Path: $.metrics.YCQL_DELETE_OPS_PER_SEC

YCQL INSERT OPS

The count of INSERT statements executed through the YCQL API per second. This does not include index writes.

Dependent item yugabytedb.cluster.ycql.insert.ops

Preprocessing

  • JSON Path: $.metrics.YCQL_INSERT_OPS_PER_SEC

YCQL OTHER OPS

The count of OTHER statements executed through the YCQL API per second.

Dependent item yugabytedb.cluster.ycql.other.ops

Preprocessing

  • JSON Path: $.metrics.YCQL_OTHER_OPS_PER_SEC

YCQL UPDATE OPS

The count of UPDATE statements executed through the YCQL API per second. This does not include index writes.

Dependent item yugabytedb.cluster.ycql.update.ops

Preprocessing

  • JSON Path: $.metrics.YCQL_UPDATE_OPS_PER_SEC

YCQL transaction OPS

The count of transactions executed through the YCQL API per second.

Dependent item yugabytedb.cluster.ycql.transaction.ops

Preprocessing

  • JSON Path: $.metrics.YCQL_TRANSACTION_OPS_PER_SEC

YCQL SELECT average latency

Average time of executing SELECT statements through the YCQL API.

Dependent item yugabytedb.cluster.ycql.select.latency

Preprocessing

  • JSON Path: $.metrics.YCQL_SELECT_LATENCY_MS

  • Custom multiplier: 0.001

    ⛔️Custom on fail: Set value to: 0

YCQL DELETE average latency

Average time of executing DELETE statements through the YCQL API.

Dependent item yugabytedb.cluster.ycql.delete.latency

Preprocessing

  • JSON Path: $.metrics.YCQL_DELETE_LATENCY_MS

  • Custom multiplier: 0.001

    ⛔️Custom on fail: Set value to: 0

YCQL INSERT average latency

Average time of executing INSERT statements through the YCQL API.

Dependent item yugabytedb.cluster.ycql.insert.latency

Preprocessing

  • JSON Path: $.metrics.YCQL_INSERT_LATENCY_MS

  • Custom multiplier: 0.001

    ⛔️Custom on fail: Set value to: 0

YCQL OTHER average latency

Average time of executing OTHER statements through the YCQL API.

Dependent item yugabytedb.cluster.ycql.other.latency

Preprocessing

  • JSON Path: $.metrics.YCQL_OTHER_LATENCY_MS

  • Custom multiplier: 0.001

    ⛔️Custom on fail: Set value to: 0

YCQL UPDATE average latency

Average time of executing UPDATE statements through the YCQL API.

Dependent item yugabytedb.cluster.ycql.update.latency

Preprocessing

  • JSON Path: $.metrics.YCQL_UPDATE_LATENCY_MS

  • Custom multiplier: 0.001

    ⛔️Custom on fail: Set value to: 0

YCQL transaction average latency

Average time of executing transactions through the YCQL API.

Dependent item yugabytedb.cluster.ycql.transaction.latency

Preprocessing

  • JSON Path: $.metrics.YCQL_TRANSACTION_LATENCY_MS

  • Custom multiplier: 0.001

    ⛔️Custom on fail: Set value to: 0

Triggers

Name Description Expression Severity Dependencies and additional info
YugabyteDB Cluster: Failed to fetch data

Failed to fetch data from the YugabyteDB API.

length(last(/YugabyteDB Cluster by HTTP/yugabytedb.node.get.errors)) > 0 or length(last(/YugabyteDB Cluster by HTTP/yugabytedb.keyspace.get.errors)) > 0 or length(last(/YugabyteDB Cluster by HTTP/yugabytedb.cluster.get.errors)) > 0 Warning
YugabyteDB Cluster: Failed to fetch metric data

Failed to fetch cluster metrics or cluster statistics.

length(last(/YugabyteDB Cluster by HTTP/yugabytedb.cluster.query.statistic.get.errors)) > 0 or length(last(/YugabyteDB Cluster by HTTP/yugabytedb.cluster.metric.get.errors)) > 0 Warning
YugabyteDB Cluster: Cluster software version has changed

YugabyteDB Cluster software version has changed. Acknowledge to close the problem manually.

last(/YugabyteDB Cluster by HTTP/yugabytedb.cluster.software.version,#1) <> last(/YugabyteDB Cluster by HTTP/yugabytedb.cluster.software.version,#2) and length(last(/YugabyteDB Cluster by HTTP/yugabytedb.cluster.software.version)) > 0 Info Manual close: Yes
YugabyteDB Cluster: YB controller version has changed

YugabyteDB Cluster YB controller version has changed. Acknowledge to close the problem manually.

last(/YugabyteDB Cluster by HTTP/yugabytedb.cluster.ybc.version,#1) <> last(/YugabyteDB Cluster by HTTP/yugabytedb.cluster.ybc.version,#2) and length(last(/YugabyteDB Cluster by HTTP/yugabytedb.cluster.ybc.version)) > 0 Info Manual close: Yes
YugabyteDB Cluster: Cluster is not healthy

YugabyteDB Cluster is not healthy.

last(/YugabyteDB Cluster by HTTP/yugabytedb.cluster.health.state,#1) <> 0 Average
YugabyteDB Cluster: CPU utilization is too high

YugabyteDB Cluster CPU utilization is more than {$YUGABYTEDB.CPU.UTILIZATION.CRIT}%. The system might be slow to respond.

min(/YugabyteDB Cluster by HTTP/yugabytedb.cluster.cpu.utilization,5m) > {$YUGABYTEDB.CPU.UTILIZATION.CRIT} High
YugabyteDB Cluster: CPU utilization is high

YugabyteDB Cluster CPU utilization is more than {$YUGABYTEDB.CPU.UTILIZATION.WARN}%. The system might be slow to respond.

min(/YugabyteDB Cluster by HTTP/yugabytedb.cluster.cpu.utilization,5m) > {$YUGABYTEDB.CPU.UTILIZATION.WARN} Warning Depends on:
  • YugabyteDB Cluster: CPU utilization is too high
YugabyteDB Cluster: Storage space is low

YugabyteDB Cluster uses more than {$YUGABYTEDB.DISK.UTILIZATION.WARN}% of disk space.

min(/YugabyteDB Cluster by HTTP/yugabytedb.cluster.disk.utilization,5m) > {$YUGABYTEDB.DISK.UTILIZATION.WARN} Warning Depends on:
  • YugabyteDB Cluster: Storage space is critically low
YugabyteDB Cluster: Storage space is critically low

YugabyteDB Cluster uses more than {$YUGABYTEDB.DISK.UTILIZATION.CRIT}% of disk space.

min(/YugabyteDB Cluster by HTTP/yugabytedb.cluster.disk.utilization,5m) > {$YUGABYTEDB.DISK.UTILIZATION.CRIT} High
YugabyteDB Cluster: Average utilization of connections is high

YugabyteDB Cluster uses more than {$YUGABYTEDB.CONNECTION.UTILIZATION.WARN}% of the connection limit.

min(/YugabyteDB Cluster by HTTP/yugabytedb.cluster.connection.utilization,5m) > {$YUGABYTEDB.CONNECTION.UTILIZATION.WARN} Warning Depends on:
  • YugabyteDB Cluster: Average utilization of connections is too high
YugabyteDB Cluster: Average utilization of connections is too high

YugabyteDB Cluster uses more than {$YUGABYTEDB.CONNECTION.UTILIZATION.CRIT}% of the connection limit.

min(/YugabyteDB Cluster by HTTP/yugabytedb.cluster.connection.utilization,5m) > {$YUGABYTEDB.CONNECTION.UTILIZATION.CRIT} High
YugabyteDB Cluster: Memory utilization is high

YugabyteDB Cluster uses more than {$YUGABYTEDB.MEMORY.CLUSTER.UTILIZATION.WARN}% of memory.

min(/YugabyteDB Cluster by HTTP/yugabytedb.cluster.memory.utilization,5m) > {$YUGABYTEDB.MEMORY.CLUSTER.UTILIZATION.WARN} Warning Depends on:
  • YugabyteDB Cluster: Memory utilization is too high
YugabyteDB Cluster: Memory utilization is too high

YugabyteDB Cluster uses more than {$YUGABYTEDB.MEMORY.CLUSTER.UTILIZATION.CRIT}% of memory.

min(/YugabyteDB Cluster by HTTP/yugabytedb.cluster.memory.utilization,5m) > {$YUGABYTEDB.MEMORY.CLUSTER.UTILIZATION.CRIT} High

LLD rule Keyspace discovery

Name Description Type Key and additional info
Keyspace discovery

Discovery of the available keyspaces.

Dependent item yugabytedb.keyspace.discovery

Preprocessing

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

  • Discard unchanged with heartbeat: 1d

Item prototypes for Keyspace discovery

Name Description Type Key and additional info
YugabyteDB Keyspace [{#KEYSPACE.NAME}]: Get keyspace info

Get raw data about the keyspace [{#KEYSPACE.NAME}].

Dependent item yugabytedb.keyspace.get[{#KEYSPACE.NAME}]

Preprocessing

  • JSON Path: $.keyspaces.[?(@.keyspace_name=='{#KEYSPACE.NAME}')].first()

    ⛔️Custom on fail: Discard value

YugabyteDB Keyspace [{#KEYSPACE.NAME}]: SST size

The size of the table's SST.

Dependent item yugabytedb.keyspace.sst.size[{#KEYSPACE.NAME}]

Preprocessing

  • JSON Path: $.size_bytes

YugabyteDB Keyspace [{#KEYSPACE.NAME}]: Wal size

The size of the table's WAL.

Dependent item yugabytedb.keyspace.wal.size[{#KEYSPACE.NAME}]

Preprocessing

  • JSON Path: $.wal_size_bytes

YugabyteDB Keyspace [{#KEYSPACE.NAME}]: Type

The type of keyspace: YSQL or YCQL.

Dependent item yugabytedb.keyspace.type[{#KEYSPACE.NAME}]

Preprocessing

  • JSON Path: $.type

  • Replace: YSQL -> 0

  • Replace: YCQL -> 1

  • Discard unchanged with heartbeat: 1d

LLD rule Node discovery

Name Description Type Key and additional info
Node discovery

Discovery of the nodes for all clusters.

Dependent item yugabytedb.node.discovery

Preprocessing

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

  • Discard unchanged with heartbeat: 1d

Item prototypes for Node discovery

Name Description Type Key and additional info
YugabyteDB Node [{#NODE.NAME}]: Get node info

Get raw data about the node [{#NODE.NAME}].

Dependent item yugabytedb.node.get[{#NODE.NAME}]

Preprocessing

  • JSON Path: $.nodes.[?(@.name=='{#NODE.NAME}')].first()

    ⛔️Custom on fail: Discard value

YugabyteDB Node [{#NODE.NAME}]: Disk IOPS limit

The IOPS to provision for the node [{#NODE.NAME}] for each disk.

Dependent item yugabytedb.node.iops.limit[{#NODE.NAME}]

Preprocessing

  • JSON Path: $.data.spec.cluster_info.node_info.disk_iops

  • Discard unchanged with heartbeat: 12h

YugabyteDB Node [{#NODE.NAME}]: Total disk size

The disk size (GB) for the node [{#NODE.NAME}].

Dependent item yugabytedb.node.disk.size.total[{#NODE.NAME}]

Preprocessing

  • JSON Path: $.data.spec.cluster_info.node_info.disk_size_gb

  • Discard unchanged with heartbeat: 12h

YugabyteDB Node [{#NODE.NAME}]: Total memory, bytes

The amount of RAM for the node [{#NODE.NAME}].

Dependent item yugabytedb.node.memory.total[{#NODE.NAME}]

Preprocessing

  • JSON Path: $.data.spec.cluster_info.node_info.memory_mb

  • Custom multiplier: 1048576

  • Discard unchanged with heartbeat: 12h

YugabyteDB Node [{#NODE.NAME}]: Total CPU cores

The number of cores for the node [{#NODE.NAME}].

Dependent item yugabytedb.node.cpu.num.cores[{#NODE.NAME}]

Preprocessing

  • JSON Path: $.data.spec.cluster_info.node_info.num_cores

  • Discard unchanged with heartbeat: 12h

YugabyteDB Node [{#NODE.NAME}]: Region

The cloud information for the node [{#NODE.NAME}] about the region.

Dependent item yugabytedb.node.region[{#NODE.NAME}]

Preprocessing

  • JSON Path: $.cloud_info.region

  • Discard unchanged with heartbeat: 1d

YugabyteDB Node [{#NODE.NAME}]: Zone

The cloud information for the node [{#NODE.NAME}] about the zone.

Dependent item yugabytedb.node.zone[{#NODE.NAME}]

Preprocessing

  • JSON Path: $.cloud_info.zone

  • Discard unchanged with heartbeat: 1d

YugabyteDB Node [{#NODE.NAME}]: Total SST file size

The size of all SST files.

Dependent item yugabytedb.node.sst.file.size.total[{#NODE.NAME}]

Preprocessing

  • JSON Path: $.metrics.total_sst_file_size_bytes

YugabyteDB Node [{#NODE.NAME}]: Uncompressed SST file size

The size of uncompressed SST files.

Dependent item yugabytedb.node.sst.file.size.uncompressed[{#NODE.NAME}]

Preprocessing

  • JSON Path: $.metrics.uncompressed_sst_file_size_bytes

YugabyteDB Node [{#NODE.NAME}]: Read OPS

The amount of read operations per second for the node [{#NODE.NAME}].

Dependent item yugabytedb.node.read.ops[{#NODE.NAME}]

Preprocessing

  • JSON Path: $.metrics.read_ops_per_sec

YugabyteDB Node [{#NODE.NAME}]: Write OPS

The amount of write operations per second for the node [{#NODE.NAME}].

Dependent item yugabytedb.node.write.ops[{#NODE.NAME}]

Preprocessing

  • JSON Path: $.metrics.write_ops_per_sec

YugabyteDB Node [{#NODE.NAME}]: Disk IOPS utilization

Shows the utilization of provisioned IOPS.

Calculated yugabytedb.node.iops.utilization[{#NODE.NAME}]
YugabyteDB Node [{#NODE.NAME}]: Node status

The current status of the node [{#NODE.NAME}]:

0 = Down

1 = Up

Dependent item yugabytedb.node.status[{#NODE.NAME}]

Preprocessing

  • JSON Path: $.is_node_up

  • Replace: true -> 1

  • Replace: false -> 0

  • Discard unchanged with heartbeat: 1h

YugabyteDB Node [{#NODE.NAME}]: Node is master

The current role of the node [{#NODE.NAME}]:

0 = False

1 = True

Dependent item yugabytedb.node.master[{#NODE.NAME}]

Preprocessing

  • JSON Path: $.is_master

  • Replace: true -> 1

  • Replace: false -> 0

  • Discard unchanged with heartbeat: 1h

YugabyteDB Node [{#NODE.NAME}]: Node is TServer

This item indicates if the node [{#NODE.NAME}] is a TServer node:

0 = False

1 = True

Dependent item yugabytedb.node.tserver[{#NODE.NAME}]

Preprocessing

  • JSON Path: $.is_tserver

  • Replace: true -> 1

  • Replace: false -> 0

  • Discard unchanged with heartbeat: 1h

YugabyteDB Node [{#NODE.NAME}]: Node is read replica

This item indicates if the node [{#NODE.NAME}] is a read replica:

0 = False

1 = True

Dependent item yugabytedb.node.read.replica[{#NODE.NAME}]

Preprocessing

  • JSON Path: $.is_read_replica

  • Replace: true -> 1

  • Replace: false -> 0

  • Discard unchanged with heartbeat: 1h

Trigger prototypes for Node discovery

Name Description Expression Severity Dependencies and additional info
YugabyteDB Cluster: YugabyteDB Node [{#NODE.NAME}]: Node disk IOPS utilization is high

IOPS utilization on the node [{#NODE.NAME}] is more than {$YUGABYTEDB.IOPS.UTILIZATION.WARN}% of the provisioned IOPS.

min(/YugabyteDB Cluster by HTTP/yugabytedb.node.iops.utilization[{#NODE.NAME}],5m) > {$YUGABYTEDB.IOPS.UTILIZATION.WARN} Warning Depends on:
  • YugabyteDB Cluster: YugabyteDB Node [{#NODE.NAME}]: Node disk IOPS utilization is too high
YugabyteDB Cluster: YugabyteDB Node [{#NODE.NAME}]: Node disk IOPS utilization is too high

IOPS utilization on the node [{#NODE.NAME}] is more than {$YUGABYTEDB.IOPS.UTILIZATION.CRIT}% of the provisioned IOPS.

min(/YugabyteDB Cluster by HTTP/yugabytedb.node.iops.utilization[{#NODE.NAME}],5m) > {$YUGABYTEDB.IOPS.UTILIZATION.CRIT} High
YugabyteDB Cluster: YugabyteDB Node [{#NODE.NAME}]: Node is down

The node [{#NODE.NAME}] is down.

max(/YugabyteDB Cluster by HTTP/yugabytedb.node.status[{#NODE.NAME}],3m) = 0 Average

Feedback

Please report any issues with the template at https://support.zabbix.com

You can also provide feedback, discuss the template, or ask for help at ZABBIX forums

Articles and documentation

+ Propose new article

Didn't find what you are looking for?