AWS RDS

Amazon Relational Database Service (RDS) is a managed SQL database service provided by Amazon Web Services (AWS). Amazon RDS supports an array of database engines to store and organize data. It also helps with relational database management tasks, such as data migration, backup, recovery and patching.

Available solutions




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

Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/cloud/AWS/aws_rds_http?at=release/7.0

AWS RDS instance by HTTP

Overview

The template to monitor AWS RDS instance by HTTP via Zabbix that works without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection. NOTE This template uses the GetMetricData CloudWatch API calls to list and retrieve metrics. For more information, please refer to the CloudWatch pricing page.

Additional information about metrics and used API methods:

Requirements

Zabbix version: 7.0 and higher.

Tested versions

This template has been tested on:

  • AWS RDS instance by HTTP

Configuration

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

Setup

The template get AWS RDS instance metrics and uses the script item to make HTTP requests to the CloudWatch API.

Before using the template, you need to create an IAM policy with the necessary permissions for the Zabbix role in your AWS account.

Add the following required permissions to your Zabbix IAM policy in order to collect Amazon RDS metrics.

{
    "Version":"2012-10-17",
    "Statement":[
        {
          "Action":[
                "cloudwatch:DescribeAlarms",
                "rds:DescribeEvents",
                "rds:DescribeDBInstances"
          ],
          "Effect":"Allow",
          "Resource":"*"
        }
    ]
  }

If you are using role-based authorization, set the appropriate permissions:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::<<--account-id-->>:role/<<--role_name-->>"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:DescribeAlarms",
                "rds:DescribeEvents",
                "rds:DescribeDBInstances",
                "ec2:AssociateIamInstanceProfile",
                "ec2:ReplaceIamInstanceProfileAssociation"
            ],
            "Resource": "*"
        }
    ]
}

Set macros "{$AWS.AUTH_TYPE}", "{$AWS.REGION}", "{$AWS.RDS.INSTANCE.ID}"

If you are using access key-based authorization, set the following macros "{$AWS.ACCESS.KEY.ID}", "{$AWS.SECRET.ACCESS.KEY}"

For more information about manage access keys, see official documentation

Also, see the Macros section for a list of macros used for LLD filters.

Additional information about metrics and used API methods:

Macros used

Name Description Default
{$AWS.PROXY}

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

{$AWS.ACCESS.KEY.ID}

Access key ID.

{$AWS.SECRET.ACCESS.KEY}

Secret access key.

{$AWS.REGION}

Amazon RDS Region code.

us-west-1
{$AWS.AUTH_TYPE}

Authorization method. Possible values: role_base, access_key.

access_key
{$AWS.RDS.INSTANCE.ID}

RDS DB Instance identifier.

{$AWS.RDS.LLD.FILTER.ALARM_SERVICE_NAMESPACE.MATCHES}

Filter of discoverable alarms by namespace.

.*
{$AWS.RDS.LLD.FILTER.ALARM_SERVICE_NAMESPACE.NOT_MATCHES}

Filter to exclude discovered alarms by namespace.

CHANGE_IF_NEEDED
{$AWS.RDS.LLD.FILTER.ALARM_NAME.MATCHES}

Filter of discoverable alarms by name.

.*
{$AWS.RDS.LLD.FILTER.ALARM_NAME.NOT_MATCHES}

Filter to exclude discovered alarms by name.

CHANGE_IF_NEEDED
{$AWS.RDS.LLD.FILTER.EVENT_CATEGORY.MATCHES}

Filter of discoverable events by category.

.*
{$AWS.RDS.LLD.FILTER.EVENT_CATEGORY.NOT_MATCHES}

Filter to exclude discovered events by category.

CHANGE_IF_NEEDED
{$AWS.RDS.LLD.FILTER.EVENT_SOURCE_TYPE.MATCHES}

Filter of discoverable events by source type.

.*
{$AWS.RDS.LLD.FILTER.EVENT_SOURCE_TYPE.NOT_MATCHES}

Filter to exclude discovered events by source type.

CHANGE_IF_NEEDED
{$AWS.RDS.CPU.UTIL.WARN.MAX}

The warning threshold of the CPU utilization expressed in %.

85
{$AWS.RDS.CPU.CREDIT.BALANCE.MIN.WARN}

Minimum number of free earned CPU credits for trigger expression.

50
{$AWS.EBS.IO.CREDIT.BALANCE.MIN.WARN}

Minimum percentage of I/O credits remaining for trigger expression.

20
{$AWS.EBS.BYTE.CREDIT.BALANCE.MIN.WARN}

Minimum percentage of Byte credits remaining for trigger expression.

20
{$AWS.RDS.BURST.CREDIT.BALANCE.MIN.WARN}

Minimum percentage of Byte credits remaining for trigger expression.

20

Items

Name Description Type Key and additional info
Get metrics data

Get instance metrics.

Full metrics list related to RDS: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-metrics.html

Full metrics list related to Amazon Aurora: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.Monitoring.Metrics.html#Aurora.AuroraMySQL.Monitoring.Metrics.instances

Script aws.rds.get_metrics

Preprocessing

  • Check for not supported value: any error

    ⛔️Custom on fail: Discard value

Get instance info

Get instance info.

DescribeDBInstances API method: https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html

Script aws.rds.get_instance_info

Preprocessing

  • Check for not supported value: any error

    ⛔️Custom on fail: Discard value

Get instance alarms data

DescribeAlarms API method: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html

Script aws.rds.get_alarms

Preprocessing

  • Check for not supported value: any error

    ⛔️Custom on fail: Discard value

Get instance events data

DescribeEvents API method: https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEvents.html

Script aws.rds.get_events

Preprocessing

  • Check for not supported value: any error

    ⛔️Custom on fail: Discard value

Get metrics check

Data collection check.

Dependent item aws.rds.metrics.check

Preprocessing

  • JSON Path: $.error

    ⛔️Custom on fail: Set value to

  • Discard unchanged with heartbeat: 3h

Get instance info check

Data collection check.

Dependent item aws.rds.instance_info.check

Preprocessing

  • JSON Path: $.error

    ⛔️Custom on fail: Set value to

  • Discard unchanged with heartbeat: 3h

Get alarms check

Data collection check.

Dependent item aws.rds.alarms.check

Preprocessing

  • JSON Path: $.error

    ⛔️Custom on fail: Set value to

  • Discard unchanged with heartbeat: 3h

Get events check

Data collection check.

Dependent item aws.rds.events.check

Preprocessing

  • JSON Path: $.error

    ⛔️Custom on fail: Set value to

  • Discard unchanged with heartbeat: 3h

Class

Contains the name of the compute and memory capacity class of the DB instance.

Dependent item aws.rds.class

Preprocessing

  • JSON Path: $[*].DBInstanceClass.first()

  • Discard unchanged with heartbeat: 3h

Engine

Database engine.

Dependent item aws.rds.engine

Preprocessing

  • JSON Path: $..Engine.first()

  • Discard unchanged with heartbeat: 3h

Engine version

Indicates the database engine version.

Dependent item aws.rds.engine.version

Preprocessing

  • JSON Path: $[*].EngineVersion.first()

  • Discard unchanged with heartbeat: 3h

Status

Specifies the current state of this database.

All possible status values and their description: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/accessing-monitoring.html#Overview.DBInstance.Status

Dependent item aws.rds.status

Preprocessing

  • JSON Path: $..DBInstanceStatus.first()

  • Discard unchanged with heartbeat: 3h

Storage type

Specifies the storage type associated with DB instance.

Dependent item aws.rds.storage_type

Preprocessing

  • JSON Path: $[*].StorageType.first()

  • Discard unchanged with heartbeat: 3h

Create time

Provides the date and time the DB instance was created.

Dependent item aws.rds.create_time

Preprocessing

  • JSON Path: $..InstanceCreateTime.first()

Storage: Allocated

Specifies the allocated storage size specified in gibibytes (GiB).

Dependent item aws.rds.storage.allocated

Preprocessing

  • JSON Path: $[*].AllocatedStorage.first()

  • Discard unchanged with heartbeat: 3h

Storage: Max allocated

The upper limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the DB instance.

If limit is not specified returns -1.

Dependent item aws.rds.storage.max_allocated

Preprocessing

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

  • Discard unchanged with heartbeat: 3h

Read replica: State

The status of a read replica. If the instance isn't a read replica, this is blank.

Boolean value that is true if the instance is operating normally, or false if the instance is in an error state.

Dependent item aws.rds.read_replica_state

Preprocessing

  • JSON Path: $..StatusInfos..Normal.first()

    ⛔️Custom on fail: Discard value

  • Boolean to decimal
  • Discard unchanged with heartbeat: 3h

Read replica: Status

The status of a read replica. If the instance isn't a read replica, this is blank.

Status of the DB instance. For a StatusType of read replica, the values can be replicating, replication stop point set, replication stop point reached, error, stopped, or terminated.

Dependent item aws.rds.read_replica_status

Preprocessing

  • JSON Path: $..StatusInfos..Status.first()

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Swap usage

The amount of swap space used.

This metric is available for the Aurora PostgreSQL DB instance classes db.t3.medium, db.t3.large, db.r4.large, db.r4.xlarge, db.r5.large, db.r5.xlarge, db.r6g.large, and db.r6g.xlarge.

For Aurora MySQL, this metric applies only to db.t* DB instance classes.

This metric is not available for SQL Server.

Dependent item aws.rds.swap_usage

Preprocessing

  • JSON Path: $.[?(@.Label == "SwapUsage")].Values.first().first()

    ⛔️Custom on fail: Discard value

Disk: Write IOPS

The number of write records generated per second. This is more or less the number of log records generated by the database. These do not correspond to 8K page writes, and do not correspond to network packets sent.

Dependent item aws.rds.write_iops.rate

Preprocessing

  • JSON Path: $.[?(@.Label == "WriteIOPS")].Values.first().first()

    ⛔️Custom on fail: Discard value

Disk: Write latency

The average amount of time taken per disk I/O operation.

Dependent item aws.rds.write_latency

Preprocessing

  • JSON Path: $.[?(@.Label == "WriteLatency")].Values.first().first()

    ⛔️Custom on fail: Discard value

Disk: Write throughput

The average number of bytes written to persistent storage every second.

Dependent item aws.rds.write_throughput.rate

Preprocessing

  • JSON Path: $.[?(@.Label == "WriteThroughput")].Values.first().first()

    ⛔️Custom on fail: Discard value

Network: Receive throughput

The incoming (Receive) network traffic on the DB instance, including both customer database traffic and Amazon RDS traffic used for monitoring and replication.

Dependent item aws.rds.network_receive_throughput.rate

Preprocessing

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

    ⛔️Custom on fail: Discard value

Burst balance

The percent of General Purpose SSD (gp2) burst-bucket I/O credits available.

Dependent item aws.rds.burst_balance

Preprocessing

  • JSON Path: $.[?(@.Label == "BurstBalance")].Values.first().first()

    ⛔️Custom on fail: Discard value

CPU: Utilization

The percentage of CPU utilization.

Dependent item aws.rds.cpu.utilization

Preprocessing

  • JSON Path: $.[?(@.Label == "CPUUtilization")].Values.first().first()

    ⛔️Custom on fail: Discard value

Credit CPU: Balance

The number of CPU credits that an instance has accumulated, reported at 5-minute intervals.

You can use this metric to determine how long a DB instance can burst beyond its baseline performance level at a given rate.

When an instance is running, credits in the CPUCreditBalance don't expire. When the instance stops, the CPUCreditBalance does not persist, and all accrued credits are lost.

This metric applies only to db.t2.small and db.t2.medium instances for Aurora MySQL, and to db.t3 instances for Aurora PostgreSQL.

Dependent item aws.rds.cpu.credit_balance

Preprocessing

  • JSON Path: $.[?(@.Label == "CPUCreditBalance")].Values.first().first()

    ⛔️Custom on fail: Discard value

Credit CPU: Usage

The number of CPU credits consumed during the specified period, reported at 5-minute intervals.

This metric measures the amount of time during which physical CPUs have been used for processing instructions by virtual CPUs allocated to the DB instance.

This metric applies only to db.t2.small and db.t2.medium instances for Aurora MySQL, and to db.t3 instances for Aurora PostgreSQL

Dependent item aws.rds.cpu.credit_usage

Preprocessing

  • JSON Path: $.[?(@.Label == "CPUCreditUsage")].Values.first().first()

    ⛔️Custom on fail: Discard value

Connections

The number of client network connections to the database instance.

The number of database sessions can be higher than the metric value because the metric value doesn't include the following:

- Sessions that no longer have a network connection but which the database hasn't cleaned up

- Sessions created by the database engine for its own purposes

- Sessions created by the database engine's parallel execution capabilities

- Sessions created by the database engine job scheduler

- Amazon Aurora/RDS connections

Dependent item aws.rds.database_connections

Preprocessing

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

    ⛔️Custom on fail: Discard value

Disk: Queue depth

The number of outstanding read/write requests waiting to access the disk.

Dependent item aws.rds.disk_queue_depth

Preprocessing

  • JSON Path: $.[?(@.Label == "DiskQueueDepth")].Values.first().first()

    ⛔️Custom on fail: Discard value

EBS: Byte balance

The percentage of throughput credits remaining in the burst bucket of your RDS database. This metric is available for basic monitoring only.

To find the instance sizes that support this metric, see the instance sizes with an asterisk (*) in the EBS optimized by default table (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html#current) in Amazon RDS User Guide for Linux Instances.

Dependent item aws.rds.ebs_byte_balance

Preprocessing

  • JSON Path: $.[?(@.Label == "EBSByteBalance%")].Values.first().first()

    ⛔️Custom on fail: Discard value

EBS: IO balance

The percentage of I/O credits remaining in the burst bucket of your RDS database. This metric is available for basic monitoring only.

To find the instance sizes that support this metric, see the instance sizes with an asterisk (*) in the EBS optimized by default table (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html#current) in Amazon RDS User Guide for Linux Instances.

Dependent item aws.rds.ebs_io_balance

Preprocessing

  • JSON Path: $.[?(@.Label == "EBSIOBalance%")].Values.first().first()

    ⛔️Custom on fail: Discard value

Memory, freeable

The amount of available random access memory.

For MariaDB, MySQL, Oracle, and PostgreSQL DB instances, this metric reports the value of the MemAvailable field of /proc/meminfo.

Dependent item aws.rds.freeable_memory

Preprocessing

  • JSON Path: $.[?(@.Label == "FreeableMemory")].Values.first().first()

    ⛔️Custom on fail: Discard value

Storage: Local free

The amount of local storage available, in bytes.

Unlike for other DB engines, for Aurora DB instances this metric reports the amount of storage available to each DB instance.

This value depends on the DB instance class. You can increase the amount of free storage space for an instance by choosing a larger DB instance class for your instance.

(This doesn't apply to Aurora Serverless v2.)

Dependent item aws.rds.free_local_storage

Preprocessing

  • JSON Path: $.[?(@.Label == "FreeLocalStorage")].Values.first().first()

    ⛔️Custom on fail: Discard value

Network: Receive throughput

The incoming (receive) network traffic on the DB instance, including both customer database traffic and Amazon RDS traffic used for monitoring and replication.

For Amazon Aurora: The amount of network throughput received from the Aurora storage subsystem by each instance in the DB cluster.

Dependent item aws.rds.storage_network_receive_throughput

Preprocessing

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

    ⛔️Custom on fail: Discard value

Network: Transmit throughput

The outgoing (transmit) network traffic on the DB instance, including both customer database traffic and Amazon RDS traffic used for monitoring and replication.

For Amazon Aurora: The amount of network throughput sent to the Aurora storage subsystem by each instance in the Aurora MySQL DB cluster.

Dependent item aws.rds.storage_network_transmit_throughput

Preprocessing

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

    ⛔️Custom on fail: Discard value

Disk: Read IOPS

The average number of disk I/O operations per second. Aurora PostgreSQL-Compatible Edition reports read and write IOPS separately, in 1-minute intervals.

Dependent item aws.rds.read_iops.rate

Preprocessing

  • JSON Path: $.[?(@.Label == "ReadIOPS")].Values.first().first()

    ⛔️Custom on fail: Discard value

Disk: Read latency

The average amount of time taken per disk I/O operation.

Dependent item aws.rds.read_latency

Preprocessing

  • JSON Path: $.[?(@.Label == "ReadLatency")].Values.first().first()

    ⛔️Custom on fail: Discard value

Disk: Read throughput

The average number of bytes read from disk per second.

Dependent item aws.rds.read_throughput.rate

Preprocessing

  • JSON Path: $.[?(@.Label == "ReadThroughput")].Values.first().first()

    ⛔️Custom on fail: Discard value

Network: Transmit throughput

The outgoing (Transmit) network traffic on the DB instance, including both customer database traffic and Amazon RDS traffic used for monitoring and replication.

Dependent item aws.rds.network_transmit_throughput.rate

Preprocessing

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

    ⛔️Custom on fail: Discard value

Network: Throughput

The amount of network throughput both received from and transmitted to clients by each instance in the Aurora MySQL DB cluster, in bytes per second. This throughput doesn't include network traffic between instances in the DB cluster and the cluster volume.

Dependent item aws.rds.network_throughput.rate

Preprocessing

  • JSON Path: $.[?(@.Label == "NetworkThroughput")].Values.first().first()

    ⛔️Custom on fail: Discard value

Storage: Space free

The amount of available storage space.

Dependent item aws.rds.free_storage_space

Preprocessing

  • JSON Path: $.[?(@.Label == "FreeStorageSpace")].Values.first().first()

    ⛔️Custom on fail: Discard value

Disk: Read IOPS, local storage

The average number of disk read I/O operations to local storage per second. Only applies to Multi-AZ DB clusters.

Dependent item aws.rds.read_iops_local_storage.rate

Preprocessing

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

    ⛔️Custom on fail: Discard value

Disk: Read latency, local storage

The average amount of time taken per disk I/O operation for local storage. Only applies to Multi-AZ DB clusters.

Dependent item aws.rds.read_latency_local_storage

Preprocessing

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

    ⛔️Custom on fail: Discard value

Disk: Read throughput, local storage

The average number of bytes read from disk per second for local storage. Only applies to Multi-AZ DB clusters.

Dependent item aws.rds.read_throughput_local_storage.rate

Preprocessing

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

    ⛔️Custom on fail: Discard value

Replication: Lag

The amount of time a read replica DB instance lags behind the source DB instance. Applies to MySQL, MariaDB, Oracle, PostgreSQL, and SQL Server read replicas.

Dependent item aws.rds.replica_lag

Preprocessing

  • JSON Path: $.[?(@.Label == "ReplicaLag")].Values.first().first()

    ⛔️Custom on fail: Discard value

Disk: Write IOPS, local storage

The average number of disk write I/O operations per second on local storage in a Multi-AZ DB cluster.

Dependent item aws.rds.write_iops_local_storage.rate

Preprocessing

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

    ⛔️Custom on fail: Discard value

Disk: Write latency, local storage

The average amount of time taken per disk I/O operation on local storage in a Multi-AZ DB cluster.

Dependent item aws.rds.write_latency_local_storage

Preprocessing

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

    ⛔️Custom on fail: Discard value

Disk: Write throughput, local storage

The average number of bytes written to disk per second for local storage.

Dependent item aws.rds.write_throughput_local_storage.rate

Preprocessing

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

    ⛔️Custom on fail: Discard value

SQLServer: Failed agent jobs

The number of failed Microsoft SQL Server Agent jobs during the last minute.

Dependent item aws.rds.failed_sql_server_agent_jobs_count

Preprocessing

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

    ⛔️Custom on fail: Discard value

Disk: Binlog Usage

The amount of disk space occupied by binary logs on the master. Applies to MySQL read replicas.

Dependent item aws.rds.bin_log_disk_usage

Preprocessing

  • JSON Path: $.[?(@.Label == "BinLogDiskUsage")].Values.first().first()

    ⛔️Custom on fail: Discard value

Triggers

Name Description Expression Severity Dependencies and additional info
Failed to get metrics data length(last(/AWS RDS instance by HTTP/aws.rds.metrics.check))>0 Warning
Failed to get instance data length(last(/AWS RDS instance by HTTP/aws.rds.instance_info.check))>0 Warning
Failed to get alarms data length(last(/AWS RDS instance by HTTP/aws.rds.alarms.check))>0 Warning
Failed to get events data length(last(/AWS RDS instance by HTTP/aws.rds.events.check))>0 Warning
Read replica in error state

The status of a read replica.
False if the instance is in an error state.

last(/AWS RDS instance by HTTP/aws.rds.read_replica_state)=0 Average
Burst balance is too low max(/AWS RDS instance by HTTP/aws.rds.burst_balance,5m)<{$AWS.RDS.BURST.CREDIT.BALANCE.MIN.WARN} Warning
High CPU utilization

The CPU utilization is too high. The system might be slow to respond.

min(/AWS RDS instance by HTTP/aws.rds.cpu.utilization,15m)>{$AWS.RDS.CPU.UTIL.WARN.MAX} Warning
Instance CPU Credit balance is too low

The number of earned CPU credits has been less than {$AWS.RDS.CPU.CREDIT.BALANCE.MIN.WARN} in the last 5 minutes.

max(/AWS RDS instance by HTTP/aws.rds.cpu.credit_balance,5m)<{$AWS.RDS.CPU.CREDIT.BALANCE.MIN.WARN} Warning
Byte Credit balance is too low max(/AWS RDS instance by HTTP/aws.rds.ebs_byte_balance,5m)<{$AWS.EBS.BYTE.CREDIT.BALANCE.MIN.WARN} Warning
I/O Credit balance is too low max(/AWS RDS instance by HTTP/aws.rds.ebs_io_balance,5m)<{$AWS.EBS.IO.CREDIT.BALANCE.MIN.WARN} Warning

LLD rule Instance Alarms discovery

Name Description Type Key and additional info
Instance Alarms discovery

Discovery instance alarms.

Dependent item aws.rds.alarms.discovery

Preprocessing

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

  • Discard unchanged with heartbeat: 3h

Item prototypes for Instance Alarms discovery

Name Description Type Key and additional info
[{#ALARM_NAME}]: State reason

An explanation for the alarm state, in text format.

Alarm description:

{#ALARM_DESCRIPTION}

Dependent item aws.rds.alarm.state_reason["{#ALARM_NAME}"]

Preprocessing

  • JSON Path: $.[?(@.AlarmName == "{#ALARM_NAME}")].StateReason.first()

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

[{#ALARM_NAME}]: State

The state value for the alarm. Possible values: 0 (OK), 1 (INSUFFICIENT_DATA), 2 (ALARM).

Alarm description:

{#ALARM_DESCRIPTION}

Dependent item aws.rds.alarm.state["{#ALARM_NAME}"]

Preprocessing

  • JSON Path: $.[?(@.AlarmName == "{#ALARM_NAME}")].StateValue.first()

    ⛔️Custom on fail: Set value to: 3

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

Trigger prototypes for Instance Alarms discovery

Name Description Expression Severity Dependencies and additional info
[{#ALARM_NAME}] has 'Alarm' state

Alarm "{#ALARM_NAME}" has 'Alarm' state.
Reason: {ITEM.LASTVALUE2}

last(/AWS RDS instance by HTTP/aws.rds.alarm.state["{#ALARM_NAME}"])=2 and length(last(/AWS RDS instance by HTTP/aws.rds.alarm.state_reason["{#ALARM_NAME}"]))>0 Average
[{#ALARM_NAME}] has 'Insufficient data' state last(/AWS RDS instance by HTTP/aws.rds.alarm.state["{#ALARM_NAME}"])=1 Info

LLD rule Aurora metrics discovery

Name Description Type Key and additional info
Aurora metrics discovery

Discovery Amazon Aurora metrics.

https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.Monitoring.Metrics.html#Aurora.AuroraMySQL.Monitoring.Metrics.instances

Dependent item aws.rds.aurora.discovery

Preprocessing

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

  • Discard unchanged with heartbeat: 6h

Item prototypes for Aurora metrics discovery

Name Description Type Key and additional info
Row lock time

The total time spent acquiring row locks for InnoDB tables.

Dependent item aws.rds.row_locktime[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "RowLockTime")].Values.first().first()

    ⛔️Custom on fail: Discard value

Operations: Select throughput

The average number of select queries per second.

Dependent item aws.rds.select_throughput.rate[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "SelectThroughput")].Values.first().first()

    ⛔️Custom on fail: Discard value

Operations: Select latency

The amount of latency for select queries.

Dependent item aws.rds.select_latency[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "SelectLatency")].Values.first().first()

    ⛔️Custom on fail: Discard value

Replication: Lag, max

The maximum amount of lag between the primary instance and each Aurora DB instance in the DB cluster.

Dependent item aws.rds.aurora_replica_lag.max[{#SINGLETON}]

Preprocessing

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

    ⛔️Custom on fail: Discard value

Replication: Lag, min

The minimum amount of lag between the primary instance and each Aurora DB instance in the DB cluster.

Dependent item aws.rds.aurora_replica_lag.min[{#SINGLETON}]

Preprocessing

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

    ⛔️Custom on fail: Discard value

Replication: Lag

For an Aurora replica, the amount of lag when replicating updates from the primary instance.

Dependent item aws.rds.aurora_replica_lag[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "AuroraReplicaLag")].Values.first().first()

    ⛔️Custom on fail: Discard value

Buffer Cache hit ratio

The percentage of requests that are served by the buffer cache.

Dependent item aws.rds.buffer_cache_hit_ratio[{#SINGLETON}]

Preprocessing

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

    ⛔️Custom on fail: Discard value

Operations: Commit latency

The amount of latency for commit operations.

Dependent item aws.rds.commit_latency[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "CommitLatency")].Values.first().first()

    ⛔️Custom on fail: Discard value

Operations: Commit throughput

The average number of commit operations per second.

Dependent item aws.rds.commit_throughput.rate[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "CommitThroughput")].Values.first().first()

    ⛔️Custom on fail: Discard value

Deadlocks, rate

The average number of deadlocks in the database per second.

Dependent item aws.rds.deadlocks.rate[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "Deadlocks")].Values.first().first()

    ⛔️Custom on fail: Discard value

Engine uptime

The amount of time that the instance has been running.

Dependent item aws.rds.engine_uptime[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "EngineUptime")].Values.first().first()

    ⛔️Custom on fail: Discard value

Rollback segment history list length

The undo logs that record committed transactions with delete-marked records. These records are scheduled to be processed by the InnoDB purge operation.

Dependent item aws.rds.rollback_segment_history_list_length[{#SINGLETON}]

Preprocessing

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

    ⛔️Custom on fail: Discard value

Network: Throughput

The amount of network throughput received from and sent to the Aurora storage subsystem by each instance in the Aurora MySQL DB cluster.

Dependent item aws.rds.storage_network_throughput[{#SINGLETON}]

Preprocessing

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

    ⛔️Custom on fail: Discard value

LLD rule Aurora MySQL metrics discovery

Name Description Type Key and additional info
Aurora MySQL metrics discovery

Discovery Aurora MySQL metrics.

Storage types:

aurora (for MySQL 5.6-compatible Aurora)

aurora-mysql (for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora)

Dependent item aws.rds.postgresql.discovery

Preprocessing

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

  • Discard unchanged with heartbeat: 6h

Item prototypes for Aurora MySQL metrics discovery

Name Description Type Key and additional info
Operations: Delete latency

The amount of latency for delete queries.

Dependent item aws.rds.delete_latency[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "DeleteLatency")].Values.first().first()

    ⛔️Custom on fail: Discard value

Operations: Delete throughput

The average number of delete queries per second.

Dependent item aws.rds.delete_throughput.rate[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "DeleteThroughput")].Values.first().first()

    ⛔️Custom on fail: Discard value

DML: Latency

The amount of latency for inserts, updates, and deletes.

Dependent item aws.rds.dml_latency[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "DMLLatency")].Values.first().first()

    ⛔️Custom on fail: Discard value

DML: Throughput

The average number of inserts, updates, and deletes per second.

Dependent item aws.rds.dml_throughput.rate[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "DMLThroughput")].Values.first().first()

    ⛔️Custom on fail: Discard value

DDL: Latency

The amount of latency for data definition language (DDL) requests - for example, create, alter, and drop requests.

Dependent item aws.rds.ddl_latency[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "DDLLatency")].Values.first().first()

    ⛔️Custom on fail: Discard value

DDL: Throughput

The average number of DDL requests per second.

Dependent item aws.rds.ddl_throughput.rate[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "DDLThroughput")].Values.first().first()

    ⛔️Custom on fail: Discard value

Backtrack: Window, actual

The difference between the target backtrack window and the actual backtrack window.

Dependent item aws.rds.backtrack_window_actual[{#SINGLETON}]

Preprocessing

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

    ⛔️Custom on fail: Discard value

Backtrack: Window, alert

The number of times that the actual backtrack window is smaller than the target backtrack window for a given period of time.

Dependent item aws.rds.backtrack_window_alert[{#SINGLETON}]

Preprocessing

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

    ⛔️Custom on fail: Discard value

Transactions: Blocked, rate

The average number of transactions in the database that are blocked per second.

Dependent item aws.rds.blocked_transactions.rate[{#SINGLETON}]

Preprocessing

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

    ⛔️Custom on fail: Discard value

Replication: Binlog lag

The amount of time that a binary log replica DB cluster running on Aurora MySQL-Compatible Edition lags behind the binary log replication source.

A lag means that the source is generating records faster than the replica can apply them.

The metric value indicates the following:

A high value: The replica is lagging the replication source.

0 or a value close to 0: The replica process is active and current.

-1: Aurora can't determine the lag, which can happen during replica setup or when the replica is in an error state

Dependent item aws.rds.aurora_replication_binlog_lag[{#SINGLETON}]

Preprocessing

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

    ⛔️Custom on fail: Discard value

Transactions: Active, rate

The average number of current transactions executing on an Aurora database instance per second.

By default, Aurora doesn't enable this metric. To begin measuring this value, set innodb_monitor_enable='all' in the DB parameter group for a specific DB instance.

Dependent item aws.rds.aurora_transactions_active.rate[{#SINGLETON}]

Preprocessing

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

    ⛔️Custom on fail: Discard value

Connections: Aborted

The number of client connections that have not been closed properly.

Dependent item aws.rds.aurora_clients_aborted[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "AbortedClients")].Values.first().first()

    ⛔️Custom on fail: Discard value

Operations: Insert latency

The amount of latency for insert queries, in milliseconds.

Dependent item aws.rds.insert_latency[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "InsertLatency")].Values.first().first()

    ⛔️Custom on fail: Discard value

Operations: Insert throughput

The average number of insert queries per second.

Dependent item aws.rds.insert_throughput.rate[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "InsertThroughput")].Values.first().first()

    ⛔️Custom on fail: Discard value

Login failures, rate

The average number of failed login attempts per second.

Dependent item aws.rds.login_failures.rate[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "LoginFailures")].Values.first().first()

    ⛔️Custom on fail: Discard value

Queries, rate

The average number of queries executed per second.

Dependent item aws.rds.queries.rate[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "Queries")].Values.first().first()

    ⛔️Custom on fail: Discard value

Resultset cache hit ratio

The percentage of requests that are served by the Resultset cache.

Dependent item aws.rds.result_set_cache_hit_ratio[{#SINGLETON}]

Preprocessing

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

    ⛔️Custom on fail: Discard value

Binary log files, number

The number of binlog files generated.

Dependent item aws.rds.num_binary_log_files[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "NumBinaryLogFiles")].Values.first().first()

    ⛔️Custom on fail: Discard value

Binary log files, size

The total size of the binlog files.

Dependent item aws.rds.sum_binary_log_files[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "SumBinaryLogSize")].Values.first().first()

    ⛔️Custom on fail: Discard value

Operations: Update latency

The amount of latency for update queries.

Dependent item aws.rds.update_latency[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "UpdateLatency")].Values.first().first()

    ⛔️Custom on fail: Discard value

Operations: Update throughput

The average number of update queries per second.

Dependent item aws.rds.update_throughput.rate[{#SINGLETON}]

Preprocessing

  • JSON Path: $.[?(@.Label == "UpdateThroughput")].Values.first().first()

    ⛔️Custom on fail: Discard value

LLD rule Instance Events discovery

Name Description Type Key and additional info
Instance Events discovery

Discovery instance events.

Dependent item aws.rds.events.discovery

Preprocessing

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

  • Discard unchanged with heartbeat: 3h

Item prototypes for Instance Events discovery

Name Description Type Key and additional info
[{#EVENT_CATEGORY}]: {#EVENT_SOURCE_TYPE}/{#EVENT_SOURCE_ID}: Message

Provides the text of this event.

Dependent item aws.rds.event_message["{#EVENT_CATEGORY}/{#EVENT_SOURCE_TYPE}/{#EVENT_SOURCE_ID}"]

Preprocessing

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

    ⛔️Custom on fail: Discard value

  • JSON Path: $[-1]

  • Discard unchanged with heartbeat: 3h

[{#EVENT_CATEGORY}]: {#EVENT_SOURCE_TYPE}/{#EVENT_SOURCE_ID} : Date

Provides the text of this event.

Dependent item aws.rds.event_date["{#EVENT_CATEGORY}/{#EVENT_SOURCE_TYPE}/{#EVENT_SOURCE_ID}"]

Preprocessing

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

    ⛔️Custom on fail: Discard value

  • JSON Path: $[-1]

  • Discard unchanged with heartbeat: 3h

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?