HeatWave on AWS  /  ...  /  CloudWatch Monitoring Metrics

17.1.1 CloudWatch Monitoring Metrics

CloudWatch metrics can be used to monitor resources, diagnose issues, and troubleshoot your DB systems and their MySQL HeatWave Clusters. After enabling CloudWatch monitoring on a DB System, you can select the set of metrics that will be emitted to CloudWatch for the DB System and its MySQL HeatWave Cluster.

The metrics are emitted using the CloudWatch embedded metric format (EMF) logs. The EMF logs are JSON objects that embed metric data along with metadata and contextual information. You can find more information about the EMF format in EMF specification by AWS. Here is a sample EMF log snippet:

{
    "_aws": {
        "CloudWatchMetrics": [
            {
                "Namespace": "OracleHeatWave",
                "Dimensions": [
                    [
                        "dbSystemId"
                    ]
                ],
                "Metrics": [
                    {
                        "Name": "mysql.stats.threads_connected",
                        "Unit": "Count",
                        "StorageResolution": 60
                    }
                ]
            }
        ],
        "Timestamp": 1750074660311
    },
    "dbSystemId": "example-dbsystem-id",
    "mysql.stats.threads_connected": 1
}

Here are explanations for some of the objects in an EMF log:

  • Namespace: Metrics are emitted to the OracleHeatWave namespace in CloudWatch. The EMF logs are streamed to the /OracleHeatWave/metrics log group.
  • Dimensions:
    • dbSystemId: Specifies the unique ID of the DB System.
    • resourceType: Specifies the resource type the metric originated from. It can be one of:
      • mysql: DB System
      • heatWave: MySQL HeatWave Cluster
    • heatWaveNode: Specifies the MySQL HeatWave nodeindex the metric originated from.
  • Metrics: Table 17-1 list the metrics for monitoring your DB Systems and MySQL HeatWave Clusters.

    Table 17-1 CloudWatch Metrics for MySQL HeatWave on AWS

    Metric Unit Description Dimensions Monitoring Configuration Templates the Metric Is In
    heatwave.auto_ml_operation_count Count The number of AutoML operations that have been executed. This number resets on MySQL HeatWave restart.
    • dbSystemId
    • Detailed
    heatwave.change_propagation_lag Count The number of transactions that are not propagated to MySQL HeatWave yet.
    • dbSystemId
    • Detailed
    heatwave.dataset_bytes Bytes The amount of data loaded in the MySQL HeatWave cluster.
    • dbSystemId
    • Detailed
    heatwave.heap_usage Bytes The size of the MySQL HeatWave data dictionary, which consumes heap space on the DB system nodes.
    • dbSystemId
    • Detailed
    heatwave.lakehouse_total_loaded_bytes Bytes The total size of all Lakehouse tables loaded into MySQL HeatWave.
    • dbSystemId
    • Detailed
    heatwave.loaded_tables_available Count The total size of all Lakehouse tables loaded into MySQL HeatWave.
    • dbSystemId
    • Detailed
    heatwave.loaded_tables_unusable Count The number of tables loaded into MySQL HeatWave that are currently not available for use.
    • dbSystemId
    • Detailed
    heatwave.health Count MySQL HeatWave Cluster health status.
    • dbSystemId
    • Basic
    • Detailed
    heatwave.load_progress Percent Progress of data load intoMySQL HeatWave Cluster memory.
    • dbSystemId
    • Basic
    • Detailed
    heatwave.query_offload_count Count The number of statements executed against the DB System and were executed on MySQL HeatWave Cluster.
    • dbSystemId
    • Basic
    • Detailed
    mysql.inno.buffer_pool.pages_dirty Count Buffer pages currently dirty.
    • dbSystemId
    • Detailed
    mysql.inno.buffer_pool.pages_free Count Buffer pages currently free.
    • dbSystemId
    • Detailed
    mysql.inno.buffer_pool.pages_total Count Total buffer pool size in pages.
    • dbSystemId
    • Detailed
    mysql.stats.aborted_clients Count The number of connections that were aborted because the client died without closing the connection properly.
    • dbSystemId
    • Detailed
    mysql.stats.aborted_connects Count The number of failed attempts to connect to the MySQL server.
    • dbSystemId
    • Detailed
    mysql.stats.connection.total Count Cumulative count of total connections created.
    • dbSystemId
    • Detailed
    mysql.stats.created.tmp_disk_tables Count The number of internal on-disk temporary tables created by the server while executing statements.
    • dbSystemId
    • Detailed
    mysql.stats.created.tmp_tables Count The number of internal temporary tables created by the server while executing statements.
    • dbSystemId
    • Detailed
    mysql.stats.handler.delete Count The number of times that rows have been deleted from tables.
    • dbSystemId
    • Detailed
    mysql.stats.handler.read_first Count The number of times the first entry in an index was read.
    • dbSystemId
    • Detailed
    mysql.stats.handler.read_key Count The number of requests to read a row based on a key.
    • dbSystemId
    • Detailed
    mysql.stats.handler.read_last Count The number of requests to read the last key in an index.
    • dbSystemId
    • Detailed
    mysql.stats.handler.read_next Count The number of requests to read the next row in key order.
    • dbSystemId
    • Detailed
    mysql.stats.handler.read_prev Count The number of requests to read the previous row in key order.
    • dbSystemId
    • Detailed
    mysql.stats.handler.read_rnd Count The number of requests to read a row based on a fixed position.
    • dbSystemId
    • Detailed
    mysql.stats.handler.read_rnd_next Count The number of requests to read the next row in the data file.
    • dbSystemId
    • Detailed
    mysql.stats.handler.update Count The number of requests to update a row in a table.
    • dbSystemId
    • Detailed
    mysql.stats.handler.write Count The number of requests to insert a row in a table.
    • dbSystemId
    • Detailed
    mysql.stats.select_full_join Count The number of joins that perform table scans because they do not use indexes.
    • dbSystemId
    • Detailed
    mysql.stats.select_full_range_join Count The number of joins that used a range search on a reference table.
    • dbSystemId
    • Detailed
    mysql.stats.select_range Count The number of joins that used ranges on the first table.
    • dbSystemId
    • Detailed
    mysql.stats.select_range_check Count The number of joins without keys that check for key usage after each row.
    • dbSystemId
    • Detailed
    mysql.stats.select_scan Count The number of joins that did a full scan of the first table.
    • dbSystemId
    • Detailed
    mysql.stats.sort_merge_passes Count The number of merge passes that the sort algorithm has had to do.
    • dbSystemId
    • Detailed
    mysql.stats.sort_range Count The number of sorts that were done using ranges.
    • dbSystemId
    • Detailed
    mysql.stats.sort_rows Count The number of sorted rows.
    • dbSystemId
    • Detailed
    mysql.stats.sort_scan Count The number of sorts that were done by scanning the table.
    • dbSystemId
    • Detailed
    mysql.stats.threads_connected Count The number of current connections to the DB system.
    • dbSystemId
    • Basic
    • Detailed
    mysql.stats.threads_running Count The number of connections actively executing statements against the DB system.
    • dbSystemId
    • Basic
    • Detailed
    system.cpu.utilization Percent The CPU utilization for the DB system host.
    • dbSystemId
    • resourceType
    • Basic
    • Detailed
    system.dbvolume.bytes_read Bytes The number of bytes read from the DB System volume during the period.
    • dbSystemId
    • resourceType
    system.dbvolume.bytes_write Bytes The number of bytes written to the DB System volume during the period.
    • dbSystemId
    • resourceType
    system.dbvolume.read_operations Count The number of read operations for the DB volume during the period.
    • dbSystemId
    • resourceType
    system.dbvolume.size Bytes The maximum amount of space allocated to the DB System during the interval.
    • dbSystemId
    • resourceType
    • Basic
    • Detailed
    system.dbvolume.usage Bytes The maximum amount of space used during the interval.
    • dbSystemId
    • resourceType
    • Basic
    • Detailed
    system.dbvolume.utilization Percent The total space utilization of the DB System volume.
    • dbSystemId
    • resourceType
    • Basic
    • Detailed
    system.dbvolume.write_operations Count The number of write operations for the DB volume during the period.
    • dbSystemId
    • resourceType
    system.memory.utilization Percent Memory utilization for the DB System host.
    • dbSystemId
    • resourceType
    • heatWaveNode
    • Basic
    • Detailed
    system.memory.size Bytes The total amount of memory allocated during the selected interval.
    • dbSystemId
    • resourceType
    • heatWaveNode
    • Basic
    • Detailed
    system.memory.usage Bytes The maximum amount of memory used during the selected interval.
    • dbSystemId
    • resourceType
    • heatWaveNode
    • Basic
    • Detailed
    system.network.bytes_received Bytes The number of bytes received by the DB system through the network during the period.
    • dbSystemId
    • resourceType
    system.network.bytes_sent Bytes The number of bytes transmitted for the DB system through the network during the period.
    • dbSystemId
    • resourceType

How metrics are sent:

  • Metrics are emitted every 60 seconds.
  • During maintenance or actions against the DB System (for example, restart, update), metric emissions might be interrupted.
  • Metrics for highly available DB Systems are only emitted for the primary instance; secondary instances do not emit metrics. In case of a loss of quorum when both secondaries are unreachable (for example, due to network partitioning), no metrics will be sent until majority is restored for the DB System.