- 重要な情報
- はじめに
- 用語集
- ガイド
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- Service Management
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
Supported OS
MySQL インテグレーションは、MySQL インスタンスのパフォーマンスを追跡します。スループット、接続、エラー、InnoDB に関するメトリクスを収集します。
データベースモニタリング (DBM) を有効にすると、クエリのパフォーマンスとデータベースの健全性について詳細なインサイトを取得できます。標準のインテグレーションに加え、Datadog DBM では、クエリレベルのメトリクス、リアルタイムおよび過去のクエリスナップショット、待機イベントの分析情報、データベースの負荷、クエリ実行計画が提供されます。
MySQL チェックは Datadog Agent パッケージに含まれています。MySQL サーバーに追加でインストールする必要はありません。
注: MySQL 用のデータベースモニタリングをインストールするには、データベースモニタリングドキュメント でご利用のホスティングソリューションを選択して、手順を確認してください。
標準のインテグレーションを単体でインストールする場合のみ、このガイドの下記の手順に進んでください。
各 MySQL サーバーで、Datadog Agent 用のデータベースユーザーを作成します。
次の手順では、datadog@'%'
を使用して任意のホストからログインするアクセス許可を Agent に付与します。datadog@'localhost'
を使用して、datadog
ユーザーが localhost からのみログインできるように制限できます。詳細については、MySQL アカウントの追加、特権の割り当て、アカウントの削除
を参照してください。
以下のコマンドで datadog
ユーザーを作成します。
mysql> CREATE USER 'datadog'@'%' IDENTIFIED BY '<UNIQUEPASSWORD>';
Query OK, 0 rows affected (0.00 sec)
次のコマンドを使用して、ユーザーが問題なく作成されたことを検証します。<一意のパスワード>
は上記で作成したパスワードに置き換えます。
mysql -u datadog --password=<UNIQUEPASSWORD> -e "show status" | \
grep Uptime && echo -e "\033[0;32mMySQL user - OK\033[0m" || \
echo -e "\033[0;31mCannot connect to MySQL\033[0m"
Agent がメトリクスを収集するには、いくつかの権限が必要です。次のように、限られた権限のみを datadog
ユーザーに付与してください。
MySQL バージョン 5.6 および 5.7 の場合は、 replication client
を付与し、次のコマンドで max_user_connections
を設定します。
mysql> GRANT REPLICATION CLIENT ON *.* TO 'datadog'@'%' WITH MAX_USER_CONNECTIONS 5;
Query OK, 0 rows affected, 1 warning (0.00 sec)
MySQL 8.0 以上の場合は、replication client
を付与し、次のコマンドで max_user_connections
を設定します。
mysql> GRANT REPLICATION CLIENT ON *.* TO 'datadog'@'%'
Query OK, 0 rows affected (0.00 sec)
mysql> ALTER USER 'datadog'@'%' WITH MAX_USER_CONNECTIONS 5;
Query OK, 0 rows affected (0.00 sec)
datadog
ユーザーに PROCESS 権限を付与します。
mysql> GRANT PROCESS ON *.* TO 'datadog'@'%';
Query OK, 0 rows affected (0.00 sec)
レプリケーションクライアントを検証します。<UNIQUEPASSWORD>
は上記で作成したパスワードに置き換えます。
mysql -u datadog --password=<一意のパスワード> -e "show slave status" && \
echo -e "\033[0;32mMySQL grant - OK\033[0m" || \
echo -e "\033[0;31mMissing REPLICATION CLIENT grant\033[0m"
有効になると、追加の権限を付与することで、performance_schema
データベースからメトリクスを収集できます。
mysql> show databases like 'performance_schema';
+-------------------------------+
| Database (performance_schema) |
+-------------------------------+
| performance_schema |
+-------------------------------+
1 row in set (0.00 sec)
mysql> GRANT SELECT ON performance_schema.* TO 'datadog'@'%';
Query OK, 0 rows affected (0.00 sec)
ホストで実行されている Agent 用にこのチェックを構成する場合は、以下の手順に従ってください。コンテナ環境の場合は、Docker 、Kubernetes 、または ECS セクションを参照してください。
ホストで実行中の Agent に対してこのチェックを構成するには:
MySQL のメトリクス
とログ
の収集を開始するには、Agent のコンフィギュレーションディレクトリ
のルートにある conf.d/
フォルダーの mysql.d/conf.yaml
ファイルを編集します。使用可能なすべてのコンフィギュレーションオプションについては、サンプル mysql.d/conf.yaml
を参照してください。
MySQL メトリクス
を収集するには、mysql.d/conf.yaml
に次の構成ブロックを追加します。
init_config:
instances:
- host: 127.0.0.1
username: datadog
password: "<YOUR_CHOSEN_PASSWORD>" # from the CREATE USER step earlier
port: "<YOUR_MYSQL_PORT>" # e.g. 3306
options:
replication: false
galera_cluster: true
extra_status_metrics: true
extra_innodb_metrics: true
extra_performance_metrics: true
schema_size_metrics: false
disable_innodb_metrics: false
注: パスワードに特殊文字が含まれる場合は、単一引用符で囲んでください。
extra_performance_metrics
を収集するには、MySQL サーバーで performance_schema
が有効になっている必要があります。それ以外の場合は、extra_performance_metrics
を false
に設定します。performance_schema
の詳細については、MySQL パフォーマンススキーマクイックスタート
を参照してください。
注: datadog
ユーザーは、localhost
ではなく host: 127.0.0.1
として MySQL インテグレーション構成内にセットアップされる必要があります。または、sock
を使用することもできます。
カスタムメトリクスのオプションなど、使用可能なすべてのコンフィギュレーションオプションについては、サンプル mysql.yaml を参照してください。
Agent を再起動 すると、Datadog への MySQL メトリクスの送信が開始されます。
Agent バージョン 6.0 以降で利用可能
MySQL は、デフォルトでは /var/log/syslog
内のすべてをログに記録しますが、これには、読み取りのルートアクセス許可が必要です。ログへのアクセス可能性を高めるには、以下の手順に従ってください。
/etc/mysql/conf.d/mysqld_safe_syslog.cnf
を編集して、行を削除またはコメントにします。
/etc/mysql/my.cnf
を編集し、次の行を追加して、一般ログ、エラーログ、および低速なクエリログを有効にします。
[mysqld_safe]
log_error = /var/log/mysql/mysql_error.log
[mysqld]
general_log = on
general_log_file = /var/log/mysql/mysql.log
log_error = /var/log/mysql/mysql_error.log
slow_query_log = on
slow_query_log_file = /var/log/mysql/mysql_slow.log
long_query_time = 2
ファイルを保存し、次のコマンドを使用して MySQL を再起動します。
service mysql restart
Agent が /var/log/mysql
ディレクトリとその中のすべてのファイルに対する読み取りアクセス許可を持つことを確認します。logrotate 構成もチェックして、これらのファイルが考慮され、アクセス許可が正しく設定されていることを確認します。
/etc/logrotate.d/mysql-server
の内容は次のようになります。
/var/log/mysql.log /var/log/mysql/mysql.log /var/log/mysql/mysql_slow.log {
daily
rotate 7
missingok
create 644 mysql adm
Compress
}
Datadog Agent で、ログの収集はデフォルトで無効になっています。以下のように、datadog.yaml
ファイルでこれを有効にします。
logs_enabled: true
MySQL のログの収集を開始するには、次の構成ブロックを mysql.d/conf.yaml
ファイルに追加します。
logs:
- type: file
path: "<ERROR_LOG_FILE_PATH>"
source: mysql
service: "<SERVICE_NAME>"
- type: file
path: "<SLOW_QUERY_LOG_FILE_PATH>"
source: mysql
service: "<SERVICE_NAME>"
log_processing_rules:
- type: multi_line
name: new_slow_query_log_entry
pattern: "# Time:"
# If mysqld was started with `--log-short-format`, use:
# pattern: "# Query_time:"
# If using mysql version <5.7, use the following rules instead:
# - type: multi_line
# name: new_slow_query_log_entry
# pattern: "# Time|# User@Host"
# - type: exclude_at_match
# name: exclude_timestamp_only_line
# pattern: "# Time:"
- type: file
path: "<GENERAL_LOG_FILE_PATH>"
source: mysql
service: "<SERVICE_NAME>"
# For multiline logs, if they start by the date with the format yyyy-mm-dd uncomment the following processing rule
# log_processing_rules:
# - type: multi_line
# name: new_log_start_with_date
# pattern: \d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])
# If the logs start with a date with the format yymmdd but include a timestamp with each new second, rather than with each log, uncomment the following processing rule
# log_processing_rules:
# - type: multi_line
# name: new_logs_do_not_always_start_with_timestamp
# pattern: \t\t\s*\d+\s+|\d{6}\s+\d{,2}:\d{2}:\d{2}\t\s*\d+\s+
カスタムメトリクスのオプションなど、使用可能なすべてのコンフィギュレーションオプションについては、サンプル mysql.yaml を参照してください。
コンテナで実行中の Agent に対してこのチェックを構成するには:
アプリケーションのコンテナで、オートディスカバリーのインテグレーションテンプレート を Docker ラベルとして設定します。
LABEL "com.datadoghq.ad.check_names"='["mysql"]'
LABEL "com.datadoghq.ad.init_configs"='[{}]'
LABEL "com.datadoghq.ad.instances"='[{"server": "%%host%%", "username": "datadog","password": "<UNIQUEPASSWORD>"}]'
<UNIQUEPASSWORD>
をラベルではなく環境変数として使う方法について、詳細はオートディスカバリーテンプレート変数
を参照してください。
Datadog Agent で、ログの収集はデフォルトで無効になっています。有効にする方法については、Docker ログ収集 を参照してください。
次に、ログインテグレーション を Docker ラベルとして設定します。
LABEL "com.datadoghq.ad.logs"='[{"source":"mysql","service":"mysql"}]'
このチェックを、Kubernetes で実行している Agent に構成します。
アプリケーションのコンテナで、オートディスカバリーのインテグレーションテンプレート をポッドアノテーションとして設定します。または、ファイル、コンフィギュレーションマップ、または Key-Value ストア を使用してテンプレートを構成することもできます。
Annotations v1 (Datadog Agent < v7.36 向け)
apiVersion: v1
kind: Pod
metadata:
name: mysql
annotations:
ad.datadoghq.com/mysql.check_names: '["mysql"]'
ad.datadoghq.com/mysql.init_configs: '[{}]'
ad.datadoghq.com/mysql.instances: |
[
{
"server": "%%host%%",
"username": "datadog",
"password": "<UNIQUEPASSWORD>"
}
]
labels:
name: mysql
spec:
containers:
- name: mysql
Annotations v2 (Datadog Agent v7.36+ 向け)
apiVersion: v1
kind: Pod
metadata:
name: mysql
annotations:
ad.datadoghq.com/mysql.checks: |
{
"mysql": {
"instances": [
{
"server": "%%host%%",
"username": "datadog",
"password": "<UNIQUEPASSWORD>"
}
]
}
}
labels:
name: mysql
spec:
containers:
- name: mysql
<UNIQUEPASSWORD>
をラベルではなく環境変数として使う方法について、詳細はオートディスカバリーテンプレート変数
を参照してください。
Datadog Agent で、ログの収集はデフォルトで無効になっています。有効にする方法については、Kubernetes ログ収集 を参照してください。
次に、ログインテグレーション をポッドアノテーションとして設定します。または、ファイル、コンフィギュレーションマップ、または Key-Value ストア を使用してこれを構成することもできます。
Annotations v1/v2
apiVersion: v1
kind: Pod
metadata:
name: mysql
annotations:
ad.datadoghq.com/mysql.logs: '[{"source": "mysql", "service": "mysql"}]'
labels:
name: mysql
このチェックを、ECS で実行している Agent に構成するには:
アプリケーションのコンテナで、オートディスカバリーのインテグレーションテンプレート を Docker ラベルとして設定します。
{
"containerDefinitions": [{
"name": "mysql",
"image": "mysql:latest",
"dockerLabels": {
"com.datadoghq.ad.check_names": "[\"mysql\"]",
"com.datadoghq.ad.init_configs": "[{}]",
"com.datadoghq.ad.instances": "[{\"server\": \"%%host%%\", \"username\": \"datadog\",\"password\": \"<UNIQUEPASSWORD>\"}]"
}
}]
}
<UNIQUEPASSWORD>
をラベルではなく環境変数として使う方法について、詳細はオートディスカバリーテンプレート変数
を参照してください。
Agent バージョン 6.0 以降で利用可能
Datadog Agent で、ログの収集はデフォルトで無効になっています。有効にする方法については、ECS ログ収集 を参照してください。
次に、ログインテグレーション を Docker ラベルとして設定します。
{
"containerDefinitions": [{
"name": "mysql",
"image": "mysql:latest",
"dockerLabels": {
"com.datadoghq.ad.logs": "[{\"source\":\"mysql\",\"service\":\"mysql\"}]"
}
}]
}
Agent の status サブコマンドを実行
し、Checks セクションで mysql
を探します。
mysql.info.schema.size (gauge) | Size of schemas in MiB Shown as mebibyte |
mysql.info.table.rows.read (count) | Total number of rows read per table (Percona userstat only) Shown as row |
mysql.info.table.rows.changed (count) | Total number of rows changed per table (Percona userstat only) Shown as row |
mysql.info.table.index_size (gauge) | Size of tables index in MiB Shown as mebibyte |
mysql.info.table.data_size (gauge) | Size of tables data in MiB Shown as mebibyte |
mysql.galera.wsrep_cluster_size (gauge) | The current number of nodes in the Galera cluster. Shown as node |
mysql.innodb.buffer_pool_free (gauge) | The number of free bytes in the InnoDB Buffer Pool. Shown as byte |
mysql.innodb.buffer_pool_total (gauge) | The total number of bytes in the InnoDB Buffer Pool. Shown as byte |
mysql.innodb.buffer_pool_used (gauge) | The number of used bytes in the InnoDB Buffer Pool. Shown as byte |
mysql.innodb.buffer_pool_utilization (gauge) | The utilization of the InnoDB Buffer Pool. Shown as fraction |
mysql.innodb.current_row_locks (gauge) | The number of current row locks. Shown as lock |
mysql.innodb.data_reads (gauge) | The rate of data reads. Shown as read |
mysql.innodb.data_writes (gauge) | The rate of data writes. Shown as write |
mysql.innodb.mutex_os_waits (gauge) | The rate of mutex OS waits. Shown as event |
mysql.innodb.mutex_spin_rounds (gauge) | The rate of mutex spin rounds. Shown as event |
mysql.innodb.mutex_spin_waits (gauge) | The rate of mutex spin waits. Shown as event |
mysql.innodb.os_log_fsyncs (gauge) | The rate of fsync writes to the log file. Shown as write |
mysql.innodb.row_lock_time (gauge) | Fraction of time spent (ms/s) acquiring row locks. Shown as fraction |
mysql.innodb.row_lock_waits (gauge) | The number of times per second a row lock had to be waited for. Shown as event |
mysql.net.connections (gauge) | The rate of connections to the server. Shown as connection |
mysql.net.max_connections (gauge) | The maximum number of connections that have been in use simultaneously since the server started. Shown as connection |
mysql.net.max_connections_available (gauge) | The maximum permitted number of simultaneous client connections. Shown as connection |
mysql.performance.user_connections (gauge) | The number of user connections. Tags: processlistdb, processlisthost, processliststate, processlistuser Shown as connection |
mysql.performance.com_delete (gauge) | The rate of delete statements. Shown as query |
mysql.performance.com_delete_multi (gauge) | The rate of delete-multi statements. Shown as query |
mysql.performance.com_insert (gauge) | The rate of insert statements. Shown as query |
mysql.performance.com_insert_select (gauge) | The rate of insert-select statements. Shown as query |
mysql.performance.com_replace_select (gauge) | The rate of replace-select statements. Shown as query |
mysql.performance.com_select (gauge) | The rate of select statements. Shown as query |
mysql.performance.com_update (gauge) | The rate of update statements. Shown as query |
mysql.performance.com_update_multi (gauge) | The rate of update-multi. Shown as query |
mysql.performance.created_tmp_disk_tables (gauge) | The rate of internal on-disk temporary tables created by second by the server while executing statements. Shown as table |
mysql.performance.created_tmp_files (gauge) | The rate of temporary files created by second. Shown as file |
mysql.performance.created_tmp_tables (gauge) | The rate of internal temporary tables created by second by the server while executing statements. Shown as table |
mysql.performance.kernel_time (gauge) | Percentage of CPU time spent in kernel space by MySQL. Shown as percent |
mysql.performance.key_cache_utilization (gauge) | The key cache utilization ratio. Shown as fraction |
mysql.performance.open_files (gauge) | The number of open files. Shown as file |
mysql.performance.open_tables (gauge) | The number of of tables that are open. Shown as table |
mysql.performance.qcache_hits (gauge) | The rate of query cache hits. Shown as hit |
mysql.performance.questions (gauge) | The rate of statements executed by the server. Shown as query |
mysql.performance.prepared_stmt_count (gauge) | The current number of prepared statements. Shown as query |
mysql.performance.slow_queries (gauge) | The rate of slow queries. Shown as query |
mysql.performance.table_locks_waited (gauge) | The total number of times that a request for a table lock could not be granted immediately and a wait was needed. |
mysql.performance.table_locks_waited.rate (gauge) | The rate of times that a request for a table lock could not be granted immediately and a wait was needed. |
mysql.performance.threads_connected (gauge) | The number of currently open connections. Shown as connection |
mysql.performance.threads_running (gauge) | The number of threads that are not sleeping. Shown as thread |
mysql.performance.cpu_time (gauge) | Percentage of CPU time spent by MySQL. Shown as percent |
mysql.performance.user_time (gauge) | Percentage of CPU time spent in user space by MySQL. Shown as percent |
mysql.replication.seconds_behind_master (gauge) | The lag in seconds between the master and the slave. Shown as second |
mysql.replication.seconds_behind_source (gauge) | The lag in seconds between the source and the replica. Shown as second |
mysql.replication.slave_running (gauge) | Deprecated. Use service check mysql.replication.replica_running instead. A boolean showing if this server is a replication slave / master that is running. |
mysql.replication.slaves_connected (gauge) | Deprecated. Use mysql.replication.replicas_connected instead. Number of slaves connected to a replication master. |
mysql.replication.replicas_connected (gauge) | Number of replicas connected to a replication source. |
mysql.performance.queries (gauge) | The rate of queries. Shown as query |
mysql.performance.com_replace (gauge) | The rate of replace statements. Shown as query |
mysql.performance.com_load (gauge) | The rate of load statements. Shown as query |
mysql.net.aborted_clients (gauge) | The number of connections that were aborted because the client died without closing the connection properly. Shown as connection |
mysql.net.aborted_connects (gauge) | The number of failed attempts to connect to the MySQL server. Shown as connection |
mysql.performance.bytes_sent (gauge) | The number of bytes sent to all clients. Shown as byte |
mysql.performance.bytes_received (gauge) | The number of bytes received from all clients. Shown as byte |
mysql.performance.qcache_inserts (gauge) | The number of queries added to the query cache. Shown as query |
mysql.performance.qcache_lowmem_prunes (gauge) | The number of queries that were deleted from the query cache because of low memory. Shown as query |
mysql.myisam.key_read_requests (gauge) | The number of requests to read a key block from the MyISAM key cache. Shown as read |
mysql.myisam.key_reads (gauge) | The number of physical reads of a key block from disk into the MyISAM key cache. If Keyreads is large, then your keybuffersize value is probably too small. The cache miss rate can be calculated as Keyreads/Keyreadrequests. Shown as read |
mysql.myisam.key_write_requests (gauge) | The number of requests to write a key block to the MyISAM key cache. Shown as write |
mysql.myisam.key_writes (gauge) | The number of physical writes of a key block from the MyISAM key cache to disk. Shown as write |
mysql.myisam.key_buffer_size (gauge) | Size of the buffer used for index blocks. Shown as byte |
mysql.performance.max_prepared_stmt_count (gauge) | The maximum allowed prepared statements on the server. |
mysql.performance.qcache_size (gauge) | The amount of memory allocated for caching query results. Shown as byte |
mysql.performance.table_open_cache (gauge) | The number of open tables for all threads. Increasing this value increases the number of file descriptors that mysqld requires. |
mysql.performance.thread_cache_size (gauge) | How many threads the server should cache for reuse. When a client disconnects, the client's threads are put in the cache if there are fewer than threadcachesize threads there. Shown as byte |
mysql.innodb.active_transactions (gauge) | The number of active transactions on InnoDB tables. Shown as operation |
mysql.innodb.buffer_pool_dirty (gauge) | The total current number of bytes held in dirty pages in the InnoDB buffer pool. Shown as byte |
mysql.innodb.buffer_pool_read_requests (gauge) | The number of logical read requests. Shown as read |
mysql.innodb.buffer_pool_reads (gauge) | The number of logical reads that InnoDB could not satisfy from the buffer pool, and had to read directly from disk. Shown as read |
mysql.innodb.ibuf_merged_delete_marks (gauge) | Insert buffer and adaptative hash index merged delete marks Shown as operation |
mysql.innodb.ibuf_merged_deletes (gauge) | Insert buffer and adaptative hash index merged delete Shown as operation |
mysql.innodb.ibuf_merged_inserts (gauge) | Insert buffer and adaptative hash index merged inserts Shown as operation |
mysql.innodb.ibuf_merged (gauge) | Insert buffer and adaptative hash index merged Shown as operation |
mysql.innodb.ibuf_merges (gauge) | Insert buffer and adaptative hash index merges Shown as operation |
mysql.innodb.lock_structs (gauge) | Lock structs Shown as operation |
mysql.innodb.locked_tables (gauge) | Locked tables Shown as operation |
mysql.innodb.tables_in_use (gauge) | Tables in use Shown as operation |
mysql.innodb.os_file_fsyncs (gauge) | (Delta) The total number of fsync() operations performed by InnoDB. Shown as operation |
mysql.innodb.os_file_reads (gauge) | (Delta) The total number of files reads performed by read threads within InnoDB. Shown as operation |
mysql.innodb.os_file_writes (gauge) | (Delta) The total number of file writes performed by write threads within InnoDB. Shown as operation |
mysql.innodb.row_lock_current_waits (gauge) | The number of row locks currently being waited for by operations on InnoDB tables. |
mysql.innodb.semaphore_waits (gauge) | The number semaphore currently being waited for by operations on InnoDB tables. |
mysql.innodb.semaphore_wait_time (gauge) | Semaphore wait time |
mysql.binlog.cache_disk_use (gauge) | The number of transactions that used the temporary binary log cache but that exceeded the value of binlogcachesize and used a temporary file to store statements from the transaction. Shown as transaction |
mysql.binlog.cache_use (gauge) | The number of transactions that used the binary log cache. Shown as transaction |
mysql.replication.group.member_status (gauge) | Information about the node status in a group replication environment, always equal to 1. |
mysql.replication.group.conflicts_detected (gauge) | The number of transactions that have not passed the conflict detection check. Shown as transaction |
mysql.replication.group.transactions (gauge) | The number of transactions in the queue pending conflict detection checks. Shown as transaction |
mysql.replication.group.transactions_applied (gauge) | Number of transactions this member has received from the group and applied. Shown as transaction |
mysql.replication.group.transactions_in_applier_queue (gauge) | The number of transactions that this member has received from the replication group which are waiting to be applied. Shown as transaction |
mysql.replication.group.transactions_check (gauge) | The number of transactions that have been checked for conflicts. Shown as transaction |
mysql.replication.group.transactions_proposed (gauge) | The number of transactions which originated on this member and were sent to the group. Shown as transaction |
mysql.replication.group.transactions_rollback (gauge) | The number of transactions which originated on this member and were rolled back by the group. Shown as transaction |
mysql.replication.group.transactions_validating (gauge) | The number of transaction rows which can be used for certification, but have not been garbage collected. Shown as transaction |
mysql.performance.handler_commit (gauge) | The number of internal COMMIT statements. Shown as operation |
mysql.performance.handler_delete (gauge) | The number of internal DELETE statements. Shown as operation |
mysql.performance.handler_prepare (gauge) | The number of internal PREPARE statements. Shown as operation |
mysql.performance.handler_read_first (gauge) | The number of internal READ_FIRST statements. Shown as operation |
mysql.performance.handler_read_key (gauge) | The number of internal READ_KEY statements. Shown as operation |
mysql.performance.handler_read_next (gauge) | The number of internal READ_NEXT statements. Shown as operation |
mysql.performance.handler_read_prev (gauge) | The number of internal READ_PREV statements. Shown as operation |
mysql.performance.handler_read_rnd (gauge) | The number of internal READ_RND statements. Shown as operation |
mysql.performance.handler_read_rnd_next (gauge) | The number of internal READRNDNEXT statements. Shown as operation |
mysql.performance.handler_rollback (gauge) | The number of internal ROLLBACK statements. Shown as operation |
mysql.performance.handler_update (gauge) | The number of internal UPDATE statements. Shown as operation |
mysql.performance.handler_write (gauge) | The number of internal WRITE statements. Shown as operation |
mysql.performance.opened_tables (gauge) | The number of tables that have been opened. If Openedtables is big, your tableopen_cache value is probably too small. Shown as table |
mysql.performance.qcache_total_blocks (gauge) | The total number of blocks in the query cache. Shown as block |
mysql.performance.qcache_free_blocks (gauge) | The number of free memory blocks in the query cache. Shown as block |
mysql.performance.qcache_free_memory (gauge) | The amount of free memory for the query cache. Shown as byte |
mysql.performance.qcache_not_cached (gauge) | The number of noncached queries (not cacheable, or not cached due to the querycachetype setting). Shown as query |
mysql.performance.qcache_queries_in_cache (gauge) | The number of queries registered in the query cache. Shown as query |
mysql.performance.select_full_join (gauge) | The number of joins that perform table scans because they do not use indexes. If this value is not 0, you should carefully check the indexes of your tables. Shown as operation |
mysql.performance.select_full_range_join (gauge) | The number of joins that used a range search on a reference table. Shown as operation |
mysql.performance.select_range (gauge) | The number of joins that used ranges on the first table. This is normally not a critical issue even if the value is quite large. Shown as operation |
mysql.performance.select_range_check (gauge) | The number of joins without keys that check for key usage after each row. If this is not 0, you should carefully check the indexes of your tables. Shown as operation |
mysql.performance.select_scan (gauge) | The number of joins that did a full scan of the first table. Shown as operation |
mysql.performance.sort_merge_passes (gauge) | The number of merge passes that the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sortbuffersize system variable. Shown as operation |
mysql.performance.sort_range (gauge) | The number of sorts that were done using ranges. Shown as operation |
mysql.performance.sort_rows (gauge) | The number of sorted rows. Shown as operation |
mysql.performance.sort_scan (gauge) | The number of sorts that were done by scanning the table. Shown as operation |
mysql.performance.table_locks_immediate (gauge) | The number of times that a request for a table lock could be granted immediately. |
mysql.performance.table_locks_immediate.rate (gauge) | The rate of times that a request for a table lock could be granted immediately. |
mysql.performance.threads_cached (gauge) | The number of threads in the thread cache. Shown as thread |
mysql.performance.threads_created (count) | The number of threads created to handle connections. If Threadscreated is big, you may want to increase the threadcache_size value. Shown as thread |
mysql.performance.table_cache_hits (gauge) | The number of hits for open tables cache lookups. Shown as hit |
mysql.performance.table_cache_misses (gauge) | The number of misses for open tables cache lookups. Shown as miss |
mysql.innodb.buffer_pool_data (gauge) | The total number of bytes in the InnoDB buffer pool containing data. The number includes both dirty and clean pages. Shown as byte |
mysql.innodb.buffer_pool_pages_data (gauge) | The number of pages in the InnoDB buffer pool containing data. The number includes both dirty and clean pages. Shown as page |
mysql.innodb.buffer_pool_pages_dirty (gauge) | The current number of dirty pages in the InnoDB buffer pool. Shown as page |
mysql.innodb.buffer_pool_pages_flushed (gauge) | The number of requests to flush pages from the InnoDB buffer pool. Shown as page |
mysql.innodb.buffer_pool_pages_free (gauge) | The number of free pages in the InnoDB buffer pool. Shown as page |
mysql.innodb.buffer_pool_pages_total (gauge) | The total size of the InnoDB buffer pool, in pages. Shown as page |
mysql.innodb.buffer_pool_read_ahead (gauge) | The number of pages read into the InnoDB buffer pool by the read-ahead background thread. Shown as page |
mysql.innodb.buffer_pool_read_ahead_evicted (gauge) | The number of pages read into the InnoDB buffer pool by the read-ahead background thread that were subsequently evicted without having been accessed by queries. Shown as page |
mysql.innodb.buffer_pool_read_ahead_rnd (gauge) | The number of random read-aheads initiated by InnoDB. This happens when a query scans a large portion of a table but in random order. Shown as operation |
mysql.innodb.buffer_pool_wait_free (count) | When InnoDB needs to read or create a page and no clean pages are available, InnoDB flushes some dirty pages first and waits for that operation to finish. This counter counts instances of these waits. Shown as wait |
mysql.innodb.buffer_pool_write_requests (gauge) | The number of writes done to the InnoDB buffer pool. Shown as write |
mysql.innodb.current_transactions (gauge) | Current InnoDB transactions Shown as transaction |
mysql.innodb.data_fsyncs (gauge) | The number of fsync() operations per second. Shown as operation |
mysql.innodb.data_pending_fsyncs (gauge) | The current number of pending fsync() operations. Shown as operation |
mysql.innodb.data_pending_reads (gauge) | The current number of pending reads. Shown as read |
mysql.innodb.data_pending_writes (gauge) | The current number of pending writes. Shown as write |
mysql.innodb.data_read (gauge) | The amount of data read per second. Shown as byte |
mysql.innodb.data_written (gauge) | The amount of data written per second. Shown as byte |
mysql.innodb.dblwr_pages_written (gauge) | The number of pages written per second to the doublewrite buffer. Shown as page |
mysql.innodb.dblwr_writes (gauge) | The number of doublewrite operations performed per second. Shown as byte |
mysql.innodb.history_list_length (gauge) | History list length as shown in the TRANSACTIONS section of the SHOW ENGINE INNODB STATUS output. |
mysql.innodb.log_waits (gauge) | The number of times that the log buffer was too small and a wait was required for it to be flushed before continuing. Shown as wait |
mysql.innodb.log_write_requests (gauge) | The number of write requests for the InnoDB redo log. Shown as write |
mysql.innodb.log_writes (gauge) | The number of physical writes to the InnoDB redo log file. Shown as write |
mysql.innodb.hash_index_cells_total (gauge) | Total number of cells of the adaptive hash index |
mysql.innodb.hash_index_cells_used (gauge) | Number of used cells of the adaptive hash index |
mysql.innodb.ibuf_free_list (gauge) | Insert buffer free list, as shown in the INSERT BUFFER AND ADAPTIVE HASH INDEX section of the SHOW ENGINE INNODB STATUS output. |
mysql.innodb.ibuf_segment_size (gauge) | Insert buffer segment size, as shown in the INSERT BUFFER AND ADAPTIVE HASH INDEX section of the SHOW ENGINE INNODB STATUS output. |
mysql.innodb.ibuf_size (gauge) | Insert buffer size, as shown in the INSERT BUFFER AND ADAPTIVE HASH INDEX section of the SHOW ENGINE INNODB STATUS output. |
mysql.innodb.pending_aio_log_ios (gauge) | As shown in the FILE I/O section of the SHOW ENGINE INNODB STATUS output. |
mysql.innodb.pending_aio_sync_ios (gauge) | As shown in the FILE I/O section of the SHOW ENGINE INNODB STATUS output. |
mysql.innodb.pending_ibuf_aio_reads (gauge) | As shown in the FILE I/O section of the SHOW ENGINE INNODB STATUS output. |
mysql.innodb.pending_normal_aio_reads (gauge) | As shown in the FILE I/O section of the SHOW ENGINE INNODB STATUS output. Shown as read |
mysql.innodb.pending_normal_aio_writes (gauge) | As shown in the FILE I/O section of the SHOW ENGINE INNODB STATUS output. Shown as write |
mysql.innodb.pending_buffer_pool_flushes (gauge) | As shown in the FILE I/O section of the SHOW ENGINE INNODB STATUS output. Shown as flush |
mysql.innodb.pending_log_flushes (gauge) | As shown in the FILE I/O section of the SHOW ENGINE INNODB STATUS output. Shown as flush |
mysql.innodb.pending_log_writes (gauge) | As shown in the FILE I/O section of the SHOW ENGINE INNODB STATUS output. Shown as write |
mysql.innodb.checkpoint_age (gauge) | Checkpoint age as shown in the LOG section of the SHOW ENGINE INNODB STATUS output. |
mysql.innodb.lsn_current (gauge) | Log sequence number as shown in the LOG section of the SHOW ENGINE INNODB STATUS output. |
mysql.innodb.lsn_flushed (gauge) | Flushed up to log sequence number as shown in the LOG section of the SHOW ENGINE INNODB STATUS output. |
mysql.innodb.lsn_last_checkpoint (gauge) | Log sequence number last checkpoint as shown in the LOG section of the SHOW ENGINE INNODB STATUS output. |
mysql.innodb.pending_checkpoint_writes (gauge) | As shown in the FILE I/O section of the SHOW ENGINE INNODB STATUS output. |
mysql.innodb.queries_inside (gauge) | As shown in the FILE I/O section of the SHOW ENGINE INNODB STATUS output. Shown as query |
mysql.innodb.queries_queued (gauge) | As shown in the FILE I/O section of the SHOW ENGINE INNODB STATUS output. Shown as query |
mysql.innodb.read_views (gauge) | As shown in the FILE I/O section of the SHOW ENGINE INNODB STATUS output. |
mysql.myisam.key_buffer_bytes_unflushed (gauge) | MyISAM key buffer bytes unflushed. Shown as byte |
mysql.myisam.key_buffer_bytes_used (gauge) | MyISAM key buffer bytes used. Shown as byte |
mysql.innodb.mem_adaptive_hash (gauge) | As shown in the BUFFER POOL AND MEMORY section of the SHOW ENGINE INNODB STATUS output. Shown as byte |
mysql.innodb.mem_dictionary (gauge) | As shown in the BUFFER POOL AND MEMORY section of the SHOW ENGINE INNODB STATUS output. Shown as byte |
mysql.innodb.mem_total (gauge) | As shown in the BUFFER POOL AND MEMORY section of the SHOW ENGINE INNODB STATUS output. Shown as byte |
mysql.innodb.mem_additional_pool (gauge) | As shown in the BUFFER POOL AND MEMORY section of the SHOW ENGINE INNODB STATUS output. Shown as byte |
mysql.innodb.mem_file_system (gauge) | As shown in the BUFFER POOL AND MEMORY section of the SHOW ENGINE INNODB STATUS output. |
mysql.innodb.mem_lock_system (gauge) | As shown in the BUFFER POOL AND MEMORY section of the SHOW ENGINE INNODB STATUS output. |
mysql.innodb.mem_page_hash (gauge) | As shown in the BUFFER POOL AND MEMORY section of the SHOW ENGINE INNODB STATUS output. |
mysql.innodb.mem_recovery_system (gauge) | As shown in the BUFFER POOL AND MEMORY section of the SHOW ENGINE INNODB STATUS output. |
mysql.innodb.os_log_pending_fsyncs (gauge) | Number of pending InnoDB log fsync (sync-to-disk) requests. Shown as operation |
mysql.innodb.os_log_pending_writes (gauge) | Number of pending InnoDB log writes. Shown as write |
mysql.innodb.os_log_written (gauge) | Number of bytes written to the InnoDB log. Shown as byte |
mysql.innodb.pages_created (gauge) | Number of InnoDB pages created. Shown as page |
mysql.innodb.pages_read (gauge) | Number of InnoDB pages read. Shown as page |
mysql.innodb.pages_written (gauge) | Number of InnoDB pages written. Shown as page |
mysql.innodb.rows_deleted (gauge) | Number of rows deleted from InnoDB tables. Shown as row |
mysql.innodb.rows_inserted (gauge) | Number of rows inserted into InnoDB tables. Shown as row |
mysql.innodb.rows_read (gauge) | Number of rows read from InnoDB tables. Shown as row |
mysql.innodb.rows_updated (gauge) | Number of rows updated in InnoDB tables. Shown as row |
mysql.innodb.s_lock_os_waits (gauge) | As shown in the SEMAPHORES section of the SHOW ENGINE INNODB STATUS output |
mysql.innodb.s_lock_spin_rounds (gauge) | As shown in the SEMAPHORES section of the SHOW ENGINE INNODB STATUS output. |
mysql.innodb.s_lock_spin_waits (gauge) | As shown in the SEMAPHORES section of the SHOW ENGINE INNODB STATUS output. Shown as wait |
mysql.innodb.x_lock_os_waits (gauge) | As shown in the SEMAPHORES section of the SHOW ENGINE INNODB STATUS output. Shown as wait |
mysql.innodb.x_lock_spin_rounds (gauge) | As shown in the SEMAPHORES section of the SHOW ENGINE INNODB STATUS output. |
mysql.innodb.x_lock_spin_waits (gauge) | As shown in the SEMAPHORES section of the SHOW ENGINE INNODB STATUS output. Shown as wait |
mysql.galera.wsrep_local_recv_queue_avg (gauge) | Shows the average size of the local received queue since the last FLUSH STATUS query. |
mysql.galera.wsrep_local_recv_queue (gauge) | Shows the current (instantaneous) size of the local received queue. |
mysql.galera.wsrep_flow_control_paused (gauge) | Shows the fraction of the time, since FLUSH STATUS was last called, that the node paused due to Flow Control. Shown as fraction |
mysql.galera.wsrep_flow_control_paused_ns (count) | Shows the pause time due to Flow Control, in nanoseconds. Shown as nanosecond |
mysql.galera.wsrep_flow_control_recv (count) | Shows the number of times the galera node has received a pausing Flow Control message from others |
mysql.galera.wsrep_flow_control_sent (count) | Shows the number of times the galera node has sent a pausing Flow Control message to others |
mysql.galera.wsrep_cert_deps_distance (gauge) | Shows the average distance between the lowest and highest sequence number, or seqno, values that the node can possibly apply in parallel. |
mysql.galera.wsrep_local_send_queue_avg (gauge) | Show an average for the send queue length since the last FLUSH STATUS query. |
mysql.galera.wsrep_local_send_queue (gauge) | Show the current (instantaneous) size of the send queue length since the last FLUSH STATUS query. |
mysql.galera.wsrep_replicated_bytes (gauge) | Total size (in bytes) of writesets sent to other nodes. |
mysql.galera.wsrep_received_bytes (gauge) | Total size (in bytes) of writesets received from other nodes. |
mysql.galera.wsrep_received (gauge) | Total number of write-sets received from other nodes. |
mysql.galera.wsrep_local_state (gauge) | Internal Galera cluster state number |
mysql.galera.wsrep_local_cert_failures (count) | Total number of local transactions that failed certification test. |
mysql.performance.qcache.utilization (gauge) | Fraction of the query cache memory currently being used. Shown as fraction |
mysql.performance.digest_95th_percentile.avg_us (gauge) | Query response time 95th percentile per schema. Shown as microsecond |
mysql.performance.query_run_time.avg (gauge) | Avg query response time per schema. Shown as microsecond |
mysql.binlog.disk_use (gauge) | Total binary log file size. Shown as byte |
mysql.queries.count (count) | The total count of executed queries per normalized query and schema. (DBM only) Shown as query |
mysql.queries.errors (count) | The total count of queries run with an error per normalized query and schema. (DBM only) Shown as error |
mysql.queries.time (count) | The total query execution time per normalized query and schema. (DBM only) Shown as nanosecond |
mysql.queries.select_scan (count) | The total count of full table scans on the first table per normalized query and schema. (DBM only) |
mysql.queries.select_full_join (count) | The total count of full table scans on a joined table per normalized query and schema. (DBM only) |
mysql.queries.no_index_used (count) | The total count of queries which do not use an index per normalized query and schema. (DBM only) Shown as query |
mysql.queries.no_good_index_used (count) | The total count of queries which used a sub-optimal index per normalized query and schema. (DBM only) Shown as query |
mysql.queries.lock_time (count) | The total time spent waiting on locks per normalized query and schema. (DBM only) Shown as nanosecond |
mysql.queries.rows_affected (count) | The number of rows mutated per normalized query and schema. (DBM only) Shown as row |
mysql.queries.rows_sent (count) | The number of rows sent per normalized query and schema. (DBM only) Shown as row |
mysql.queries.rows_examined (count) | The number of rows examined per normalized query and schema. (DBM only) Shown as row |
このチェックは、デフォルトではすべてのメトリクスを収集しません。以下のブール値構成オプションを true
に設定することで、対応するメトリクスが有効になります。
extra_status_metrics
は、次のメトリクスを追加します。
メトリクス名 | メトリクスタイプ |
---|---|
mysql.binlog.cache_disk_use | GAUGE |
mysql.binlog.cache_use | GAUGE |
mysql.performance.handler_commit | RATE |
mysql.performance.handler_delete | RATE |
mysql.performance.handler_prepare | RATE |
mysql.performance.handler_read_first | RATE |
mysql.performance.handler_read_key | RATE |
mysql.performance.handler_read_next | RATE |
mysql.performance.handler_read_prev | RATE |
mysql.performance.handler_read_rnd | RATE |
mysql.performance.handler_read_rnd_next | RATE |
mysql.performance.handler_rollback | RATE |
mysql.performance.handler_update | RATE |
mysql.performance.handler_write | RATE |
mysql.performance.opened_tables | RATE |
mysql.performance.qcache_total_blocks | GAUGE |
mysql.performance.qcache_free_blocks | GAUGE |
mysql.performance.qcache_free_memory | GAUGE |
mysql.performance.qcache_not_cached | RATE |
mysql.performance.qcache_queries_in_cache | GAUGE |
mysql.performance.select_full_join | RATE |
mysql.performance.select_full_range_join | RATE |
mysql.performance.select_range | RATE |
mysql.performance.select_range_check | RATE |
mysql.performance.select_scan | RATE |
mysql.performance.sort_merge_passes | RATE |
mysql.performance.sort_range | RATE |
mysql.performance.sort_rows | RATE |
mysql.performance.sort_scan | RATE |
mysql.performance.table_locks_immediate | GAUGE |
mysql.performance.table_locks_immediate.rate | RATE |
mysql.performance.threads_cached | GAUGE |
mysql.performance.threads_created | 単調増加 (MONOTONIC) |
extra_innodb_metrics
は、次のメトリクスを追加します。
メトリクス名 | メトリクスタイプ |
---|---|
mysql.innodb.active_transactions | GAUGE |
mysql.innodb.buffer_pool_data | GAUGE |
mysql.innodb.buffer_pool_pages_data | GAUGE |
mysql.innodb.buffer_pool_pages_dirty | GAUGE |
mysql.innodb.buffer_pool_pages_flushed | RATE |
mysql.innodb.buffer_pool_pages_free | GAUGE |
mysql.innodb.buffer_pool_pages_total | GAUGE |
mysql.innodb.buffer_pool_read_ahead | RATE |
mysql.innodb.buffer_pool_read_ahead_evicted | RATE |
mysql.innodb.buffer_pool_read_ahead_rnd | GAUGE |
mysql.innodb.buffer_pool_wait_free | 単調増加 (MONOTONIC) |
mysql.innodb.buffer_pool_write_requests | RATE |
mysql.innodb.checkpoint_age | GAUGE |
mysql.innodb.current_transactions | GAUGE |
mysql.innodb.data_fsyncs | RATE |
mysql.innodb.data_pending_fsyncs | GAUGE |
mysql.innodb.data_pending_reads | GAUGE |
mysql.innodb.data_pending_writes | GAUGE |
mysql.innodb.data_read | RATE |
mysql.innodb.data_written | RATE |
mysql.innodb.dblwr_pages_written | RATE |
mysql.innodb.dblwr_writes | RATE |
mysql.innodb.hash_index_cells_total | GAUGE |
mysql.innodb.hash_index_cells_used | GAUGE |
mysql.innodb.history_list_length | GAUGE |
mysql.innodb.ibuf_free_list | GAUGE |
mysql.innodb.ibuf_merged | RATE |
mysql.innodb.ibuf_merged_delete_marks | RATE |
mysql.innodb.ibuf_merged_deletes | RATE |
mysql.innodb.ibuf_merged_inserts | RATE |
mysql.innodb.ibuf_merges | RATE |
mysql.innodb.ibuf_segment_size | GAUGE |
mysql.innodb.ibuf_size | GAUGE |
mysql.innodb.lock_structs | RATE |
mysql.innodb.locked_tables | GAUGE |
mysql.innodb.locked_transactions | GAUGE |
mysql.innodb.log_waits | RATE |
mysql.innodb.log_write_requests | RATE |
mysql.innodb.log_writes | RATE |
mysql.innodb.lsn_current | RATE |
mysql.innodb.lsn_flushed | RATE |
mysql.innodb.lsn_last_checkpoint | RATE |
mysql.innodb.mem_adaptive_hash | GAUGE |
mysql.innodb.mem_additional_pool | GAUGE |
mysql.innodb.mem_dictionary | GAUGE |
mysql.innodb.mem_file_system | GAUGE |
mysql.innodb.mem_lock_system | GAUGE |
mysql.innodb.mem_page_hash | GAUGE |
mysql.innodb.mem_recovery_system | GAUGE |
mysql.innodb.mem_thread_hash | GAUGE |
mysql.innodb.mem_total | GAUGE |
mysql.innodb.os_file_fsyncs | RATE |
mysql.innodb.os_file_reads | RATE |
mysql.innodb.os_file_writes | RATE |
mysql.innodb.os_log_pending_fsyncs | GAUGE |
mysql.innodb.os_log_pending_writes | GAUGE |
mysql.innodb.os_log_written | RATE |
mysql.innodb.pages_created | RATE |
mysql.innodb.pages_read | RATE |
mysql.innodb.pages_written | RATE |
mysql.innodb.pending_aio_log_ios | GAUGE |
mysql.innodb.pending_aio_sync_ios | GAUGE |
mysql.innodb.pending_buffer_pool_flushes | GAUGE |
mysql.innodb.pending_checkpoint_writes | GAUGE |
mysql.innodb.pending_ibuf_aio_reads | GAUGE |
mysql.innodb.pending_log_flushes | GAUGE |
mysql.innodb.pending_log_writes | GAUGE |
mysql.innodb.pending_normal_aio_reads | GAUGE |
mysql.innodb.pending_normal_aio_writes | GAUGE |
mysql.innodb.queries_inside | GAUGE |
mysql.innodb.queries_queued | GAUGE |
mysql.innodb.read_views | GAUGE |
mysql.innodb.rows_deleted | RATE |
mysql.innodb.rows_inserted | RATE |
mysql.innodb.rows_read | RATE |
mysql.innodb.rows_updated | RATE |
mysql.innodb.s_lock_os_waits | RATE |
mysql.innodb.s_lock_spin_rounds | RATE |
mysql.innodb.s_lock_spin_waits | RATE |
mysql.innodb.semaphore_wait_time | GAUGE |
mysql.innodb.semaphore_waits | GAUGE |
mysql.innodb.tables_in_use | GAUGE |
mysql.innodb.x_lock_os_waits | RATE |
mysql.innodb.x_lock_spin_rounds | RATE |
mysql.innodb.x_lock_spin_waits | RATE |
extra_performance_metrics
は、次のメトリクスを追加します。
メトリクス名 | メトリクスタイプ |
---|---|
mysql.performance.query_run_time.avg | GAUGE |
mysql.performance.digest_95th_percentile.avg_us | GAUGE |
schema_size_metrics
は、次のメトリクスを追加します。
メトリクス名 | メトリクスタイプ |
---|---|
mysql.info.schema.size | GAUGE |
MySQL チェックには、イベントは含まれません。
mysql.can_connect
Agent が監視対象の MySQL インスタンスに接続できない場合は、CRITICAL
を返します。それ以外の場合は、OK
を返します。
Statuses: ok, クリティカル
お役に立つドキュメント、リンクや記事: