[emt] r233 committed - Adding new fields for MySQL and MariaDB global status values....

20 views
Skip to first unread message

e...@googlecode.com

unread,
Mar 15, 2012, 11:25:37 PM3/15/12
to emt...@googlegroups.com
Revision: 233
Author: kwayman
Date: Thu Mar 15 20:21:56 2012
Log: Adding new fields for MySQL and MariaDB global status values.
Also added code in emt_mysql to ignore missing status values.

http://code.google.com/p/emt/source/detail?r=233

Modified:
/trunk/plugins/bin/emt_mysql
/trunk/plugins/fields/innodb.php
/trunk/plugins/fields/mysql.php

=======================================
--- /trunk/plugins/bin/emt_mysql Sun Jun 13 17:29:04 2010
+++ /trunk/plugins/bin/emt_mysql Thu Mar 15 20:21:56 2012
@@ -95,20 +95,43 @@


$stats_incr = array(
- 'Com_rollback',
- 'Opened_tables',
+ 'Aria_pagecache_read_requests',
+ 'Aria_pagecache_reads',
+ 'Aria_pagecache_write_requests',
+ 'Aria_pagecache_writes',
+ 'Aria_transaction_log_syncs',
'Bytes_received',
'Bytes_sent',
+ 'Com_rollback',
+ 'Connections',
'Created_tmp_disk_tables',
'Created_tmp_files',
'Created_tmp_tables',
- 'Slow_queries',
+ 'Handler_commit',
+ 'Handler_delete',
+ 'Handler_discover',
+ 'Handler_prepare',
+ 'Handler_read_first',
+ 'Handler_read_key',
+ 'Handler_read_next',
+ 'Handler_read_prev',
+ 'Handler_read_rnd',
+ 'Handler_read_rnd_next',
+ 'Handler_rollback',
+ 'Handler_savepoint',
+ 'Handler_savepoint_rollback',
+ 'Handler_tmp_write',
+ 'Handler_update',
+ 'Handler_write',
+ 'Innodb_buffer_pool_read_ahead',
+ 'Innodb_buffer_pool_read_ahead_evicted',
'Innodb_buffer_pool_read_ahead_rnd',
'Innodb_buffer_pool_read_ahead_seq',
'Innodb_buffer_pool_read_requests',
'Innodb_buffer_pool_reads',
'Innodb_buffer_pool_wait_free',
'Innodb_buffer_pool_write_requests',
+ 'Innodb_buffer_pool_pages_flushed',
'Innodb_data_fsyncs',
'Innodb_data_read',
'Innodb_data_reads',
@@ -116,6 +139,8 @@
'Innodb_data_written',
'Innodb_dblwr_pages_written',
'Innodb_dblwr_writes',
+ 'Innodb_deadlocks',
+ 'Innodb_dict_tables',
'Innodb_log_waits',
'Innodb_log_write_requests',
'Innodb_log_writes',
@@ -126,15 +151,24 @@
'Innodb_pages_created',
'Innodb_pages_read',
'Innodb_pages_written',
+ 'Innodb_row_lock_current_waits',
+ 'Innodb_row_lock_waits',
'Innodb_rows_deleted',
'Innodb_rows_inserted',
'Innodb_rows_read',
'Innodb_rows_updated',
- 'Innodb_buffer_pool_pages_flushed',
- 'Connections'
+ 'Key_read_requests',
+ 'Key_reads',
+ 'Key_write_requests',
+ 'Key_writes',
+ 'Opened_tables',
+ 'Slow_queries',
);

$stats_avg = array(
+ 'Aria_pagecache_blocks_not_flushed',
+ 'Aria_pagecache_blocks_unused',
+ 'Aria_pagecache_blocks_used',
'Innodb_buffer_pool_pages_data',
'Innodb_buffer_pool_pages_dirty',
'Innodb_buffer_pool_pages_free',
@@ -142,10 +176,16 @@
'Innodb_data_pending_fsyncs',
'Innodb_data_pending_reads',
'Innodb_data_pending_writes',
+ 'Innodb_row_lock_time',
+ 'Innodb_row_lock_time_avg',
+ 'Innodb_row_lock_time_max',
+ 'Key_blocks_unused',
+ 'Key_blocks_used',
+ 'Key_blocks_warm',
'Open_tables',
'Threads_connected',
'Threads_running'
-);
+);

$avg_sums = array();

@@ -175,13 +215,23 @@
$output = '';

foreach ($stats_incr as $si)
- $output .= 'mysql_' . strtolower($si) . '=' . round($status[$si] -
$begin_status[$si]) . ',';
+{
+ if (isset($status[$si]) && isset($begin_status[$si])) {
+ $output .= 'mysql_' . strtolower($si) . '=' .
+ round($status[$si] - $begin_status[$si]) . ',';
+ }
+}

foreach ($stats_avg as $sa)
$output .= 'mysql_' . strtolower($sa) . '=' . round($avg_sums[$sa] /
$iterations) . ',';

foreach ($stats_com as $sc)
- $output .= 'mysql_com.' . preg_replace('/^com_/', '',
strtolower($sc)) . '=' . round($status[$sc] - $begin_status[$sc]) . ',';
+{
+ if (isset($status[$sc]) && isset($begin_status[$sc])) {
+ $output .= 'mysql_com.' . preg_replace('/^com_/', '',
strtolower($sc)) .
+ '=' . round($status[$sc] - $begin_status[$sc]) . ',';
+ }
+}

$output = preg_replace('/,$/', '', $output);
print "$output\n";
=======================================
--- /trunk/plugins/fields/innodb.php Mon Dec 28 18:21:42 2009
+++ /trunk/plugins/fields/innodb.php Thu Mar 15 20:21:56 2012
@@ -441,3 +441,121 @@
var $command = 'emt_mysql';
}

+// New Innodb Incremental Fields
+
+register_field('mysql_innodb_buffer_pool_read_ahead');
+class mysql_innodb_buffer_pool_read_ahead_field extends csv_field
+{
+ var $namespace = 'innodb_pool';
+ var $name = 'mysql_innodb_buffer_pool_read_ahead';
+ var $fname = 'Buffer Pool Read Ahead';
+ var $description =
+ '(InnoDB Plugin only) The number of pages read into the InnoDB
buffer pool by the read-ahead background thread. This variable was added in
MySQL 5.1.41.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_innodb_buffer_pool_read_ahead_evicted');
+class mysql_innodb_buffer_pool_read_ahead_evicted_field extends csv_field
+{
+ var $namespace = 'innodb_pool';
+ var $name = 'mysql_innodb_buffer_pool_read_ahead_evicted';
+ var $fname = 'Buffer Pool Read Ahead Evicted';
+ var $description =
+ '(InnoDB Plugin only) 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. This variable was added in
MySQL 5.1.41.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_innodb_deadlocks');
+class mysql_innodb_deadlocks_field extends csv_field
+{
+ var $namespace = 'innodb_pool';
+ var $name = 'mysql_innodb_deadlocks';
+ var $fname = 'Deadlocks';
+ var $description = 'Counter for the number of transactions that have
been rolled back due to a deadlock only in innodb.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_innodb_dict_tables');
+class mysql_innodb_dict_tables_field extends csv_field
+{
+ var $namespace = 'innodb_pool';
+ var $name = 'mysql_innodb_dict_tables';
+ var $fname = 'Dict Tables';
+ var $description = 'This status variable shows the number of entries
in the InnoDB data dictionary cache.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_innodb_row_lock_current_waits');
+class mysql_innodb_row_lock_current_waits_field extends csv_field
+{
+ var $namespace = 'innodb_pool';
+ var $name = 'mysql_innodb_row_lock_current_waits';
+ var $fname = 'Row Lock Current Waits';
+ var $description =
+ 'The number of row locks currently being waited for.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_innodb_row_lock_waits');
+class mysql_innodb_row_lock_waits_field extends csv_field
+{
+ var $namespace = 'innodb_pool';
+ var $name = 'mysql_innodb_row_lock_waits';
+ var $fname = 'Row Lock Waits';
+ var $description =
+ 'The number of times a row lock had to be waited for.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+// New Innodb Averaged Fields
+
+register_field('mysql_innodb_row_lock_time');
+class mysql_innodb_row_lock_time_field extends csv_field
+{
+ var $namespace = 'innodb_row';
+ var $name = 'mysql_innodb_row_lock_time';
+ var $fname = 'Row Lock Time';
+ var $description =
+ 'The total time spent in acquiring row locks, in milliseconds.';
+ var $type = 'avg';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_innodb_row_lock_time_avg');
+class mysql_innodb_row_lock_time_avg_field extends csv_field
+{
+ var $namespace = 'innodb_row';
+ var $name = 'mysql_innodb_row_lock_time_avg';
+ var $fname = 'Row Lock Time Avg';
+ var $description =
+ 'The average time to acquire a row lock, in milliseconds.';
+ var $type = 'avg';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_innodb_row_lock_time_max');
+class mysql_innodb_row_lock_time_max_field extends csv_field
+{
+ var $namespace = 'innodb_row';
+ var $name = 'mysql_innodb_row_lock_time_max';
+ var $fname = 'Row Lock Time Max';
+ var $description =
+ 'The maximum time to acquire a row lock, in milliseconds.';
+ var $type = 'avg';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
=======================================
--- /trunk/plugins/fields/mysql.php Mon Dec 28 18:21:42 2009
+++ /trunk/plugins/fields/mysql.php Thu Mar 15 20:21:56 2012
@@ -30,7 +30,7 @@
var $precsision = 0;
var $command = 'emt_mysql';
var $multi_value = TRUE;
-}
+}


register_field('mysql_opened_tables');
@@ -39,7 +39,7 @@
var $namespace = 'mysql';
var $name = 'mysql_opened_tables';
var $fname = 'Opened_tables';
- var $description = 'Numbef of tables opened per second';
+ var $description = 'Number of tables opened per second';
var $type = 'incr';
var $precision = 0;
var $command = 'emt_mysql';
@@ -166,3 +166,385 @@
var $type = 'incr';
var $command = 'emt_mysql';
}
+
+// New Mysql Incremental Fields
+
+register_field('mysql_aria_pagecache_read_requests');
+class mysql_aria_pagecache_read_requests_field extends csv_field
+{
+ var $namespace = 'mysql_aria_pagecache';
+ var $name = 'mysql_aria_pagecache_read_requests';
+ var $fname = 'Read Requests';
+ var $description = 'The number of requests to read something from the
aria pagecache.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_aria_pagecache_reads');
+class mysql_aria_pagecache_reads_field extends csv_field
+{
+ var $namespace = 'mysql_aria_pagecache';
+ var $name = 'mysql_aria_pagecache_reads';
+ var $fname = 'Reads';
+ var $description = 'The number of aria page cache read requests that
caused a page to be read from the disk.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_aria_pagecache_write_requests');
+class mysql_aria_pagecache_write_requests_field extends csv_field
+{
+ var $namespace = 'mysql_aria_pagecache';
+ var $name = 'mysql_aria_pagecache_write_requests';
+ var $fname = 'Write Requests';
+ var $description = 'The number of requests to write a block to the
pagecache.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_aria_pagecache_writes');
+class mysql_aria_pagecache_writes_field extends csv_field
+{
+ var $namespace = 'mysql_aria_pagecache';
+ var $name = 'mysql_aria_pagecache_writes';
+ var $fname = 'Writes';
+ var $description = 'The number of blocks written to disk from the
pagecache.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_aria_transaction_log_syncs');
+class mysql_aria_transaction_log_syncs_field extends csv_field
+{
+ var $namespace = 'mysql_aria';
+ var $name = 'mysql_aria_transaction_log_syncs';
+ var $fname = 'Log Syncs';
+ var $description = 'The number of aria log fsyncs.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_handler_commit');
+class mysql_handler_commit_field extends csv_field
+{
+ var $namespace = 'mysql_handler';
+ var $name = 'mysql_handler_commit';
+ var $fname = 'Commit';
+ var $description = 'The number of internal COMMIT statements.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_handler_delete');
+class mysql_handler_delete_field extends csv_field
+{
+ var $namespace = 'mysql_handler';
+ var $name = 'mysql_handler_delete';
+ var $fname = 'Delete';
+ var $description =
+ 'The number of times that rows have been deleted from tables.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+
+register_field('mysql_handler_prepare');
+class mysql_handler_prepare_field extends csv_field
+{
+ var $namespace = 'mysql_handler';
+ var $name = 'mysql_handler_prepare';
+ var $fname = 'Prepare';
+ var $description =
+ 'A counter for the prepare phase of two-phase commit operations.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_handler_read_first');
+class mysql_handler_read_first_field extends csv_field
+{
+ var $namespace = 'mysql_handler';
+ var $name = 'mysql_handler_read_first';
+ var $fname = 'Read First';
+ var $description =
+ 'The number of times the first entry in an index was read. If this
value is high, it suggests that the server is doing a lot of full index
scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_handler_read_key');
+class mysql_handler_read_key_field extends csv_field
+{
+ var $namespace = 'mysql_handler';
+ var $name = 'mysql_handler_read_key';
+ var $fname = 'Read Key';
+ var $description =
+ 'The number of requests to read a row based on a key. If this
value is high, it is a good indication that your tables are properly
indexed for your queries.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_handler_read_next');
+class mysql_handler_read_next_field extends csv_field
+{
+ var $namespace = 'mysql_handler';
+ var $name = 'mysql_handler_read_next';
+ var $fname = 'Read Next';
+ var $description =
+ 'The number of requests to read the next row in key order. This
value is incremented if you are querying an index column with a range
constraint or if you are doing an index scan.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_handler_read_prev');
+class mysql_handler_read_prev_field extends csv_field
+{
+ var $namespace = 'mysql_handler';
+ var $name = 'mysql_handler_read_prev';
+ var $fname = 'Read Prev';
+ var $description =
+ 'The number of requests to read the previous row in key order.
This read method is mainly used to optimize ORDER BY ... DESC.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_handler_read_rnd');
+class mysql_handler_read_rnd_field extends csv_field
+{
+ var $namespace = 'mysql_handler';
+ var $name = 'mysql_handler_read_rnd';
+ var $fname = 'Read Rnd';
+ var $description =
+ 'The number of requests to read a row based on a fixed position.
This value is high if you are doing a lot of queries that require sorting
of the result. You probably have a lot of queries that require MySQL to
scan entire tables or you have joins that do not use keys properly.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_handler_read_rnd_next');
+class mysql_handler_read_rnd_next_field extends csv_field
+{
+ var $namespace = 'mysql_handler';
+ var $name = 'mysql_handler_read_rnd_next';
+ var $fname = 'Read Rnd Next';
+ var $description =
+ 'The number of requests to read the next row in the data file.
This value is high if you are doing a lot of table scans. Generally this
suggests that your tables are not properly indexed or that your queries are
not written to take advantage of the indexes you have.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_handler_rollback');
+class mysql_handler_rollback_field extends csv_field
+{
+ var $namespace = 'mysql_handler';
+ var $name = 'mysql_handler_rollback';
+ var $fname = 'Rollback';
+ var $description =
+ 'The number of requests for a storage engine to perform a rollback
operation.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_handler_savepoint');
+class mysql_handler_savepoint_field extends csv_field
+{
+ var $namespace = 'mysql_handler';
+ var $name = 'mysql_handler_savepoint';
+ var $fname = 'Savepoint';
+ var $description =
+ 'The number of requests for a storage engine to place a
savepoint.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_handler_savepoint_rollback');
+class mysql_handler_savepoint_rollback_field extends csv_field
+{
+ var $namespace = 'mysql_handler';
+ var $name = 'mysql_handler_savepoint_rollback';
+ var $fname = 'Savepoint Rollback';
+ var $description =
+ 'The number of requests for a storage engine to roll back to a
savepoint.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_handler_tmp_write');
+class mysql_handler_tmp_write_field extends csv_field
+{
+ var $namespace = 'mysql_handler';
+ var $name = 'mysql_handler_tmp_write';
+ var $fname = 'Tmp Write';
+ var $description = 'The number of rows inserted only into temporary
tables.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_handler_update');
+class mysql_handler_update_field extends csv_field
+{
+ var $namespace = 'mysql_handler';
+ var $name = 'mysql_handler_update';
+ var $fname = 'Update';
+ var $description = 'The number of requests to update a row in a
table.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_handler_write');
+class mysql_handler_write_field extends csv_field
+{
+ var $namespace = 'mysql_handler';
+ var $name = 'mysql_handler_write';
+ var $fname = 'Write';
+ var $description = 'The number of requests to insert a row in a
table.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_key_read_requests');
+class mysql_key_read_requests_field extends csv_field
+{
+ var $namespace = 'mysql_key';
+ var $name = 'mysql_key_read_requests';
+ var $fname = 'Read Requests';
+ var $description =
+ 'The number of requests to read a key block from the cache.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_key_reads');
+class mysql_key_reads_field extends csv_field
+{
+ var $namespace = 'mysql_myisam';
+ var $name = 'mysql_key_reads';
+ var $fname = 'Reads';
+ var $description =
+ 'The number of physical reads of a key block from disk.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_key_write_requests');
+class mysql_key_write_requests_field extends csv_field
+{
+ var $namespace = 'mysql_myisam';
+ var $name = 'mysql_key_write_requests';
+ var $fname = 'Write Requests';
+ var $description =
+ 'The number of requests to write a key block to the cache.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_key_writes');
+class mysql_key_writes_field extends csv_field
+{
+ var $namespace = 'mysql_myisam';
+ var $name = 'mysql_key_writes';
+ var $fname = 'Writes';
+ var $description =
+ 'The number of physical writes of a key block to disk.';
+ var $type = 'incr';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+// New Mysql Averaged Fields
+
+register_field('mysql_aria_pagecache_blocks_not_flushed');
+class mysql_aria_pagecache_blocks_not_flushed_field extends csv_field
+{
+ var $namespace = 'mysql_aria_pagecache';
+ var $name = 'mysql_aria_pagecache_blocks_not_flushed';
+ var $fname = 'Blocks Not Flushed';
+ var $description = 'The number of drity blocks in the pagecache.';
+ var $type = 'avg';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_aria_pagecache_blocks_unused');
+class mysql_aria_pagecache_blocks_unused_field extends csv_field
+{
+ var $namespace = 'mysql_aria_pagecache';
+ var $name = 'mysql_aria_pagecache_blocks_unused';
+ var $fname = 'Blocks Unused';
+ var $description = 'Free blocks in the pagecache';
+ var $type = 'avg';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_aria_pagecache_blocks_used');
+class mysql_aria_pagecache_blocks_used_field extends csv_field
+{
+ var $namespace = 'mysql_aria_pagecache';
+ var $name = 'mysql_aria_pagecache_blocks_used';
+ var $fname = 'Blocks Used';
+ var $description = 'Blocks used in the pagecache';
+ var $type = 'avg';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_key_blocks_unused');
+class mysql_key_blocks_unused_field extends csv_field
+{
+ var $namespace = 'mysql_myisam';
+ var $name = 'mysql_key_blocks_unused';
+ var $fname = 'Blocks Unused';
+ var $description =
+ 'The number of unused blocks in the key cache. You can use this
value to determine how much of the key cache is in use; see the discussion
of key_buffer_size in Section 5.1.3, “Server System Variables”.';
+ var $type = 'avg';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_key_blocks_used');
+class mysql_key_blocks_used_field extends csv_field
+{
+ var $namespace = 'mysql_myisam';
+ var $name = 'mysql_key_blocks_used';
+ var $fname = 'Blocks Used';
+ var $description =
+ 'The number of used blocks in the key cache. This value is a
high-water mark that indicates the maximum number of blocks that have ever
been in use at one time.';
+ var $type = 'avg';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
+
+register_field('mysql_key_blocks_warm');
+class mysql_key_blocks_warm_field extends csv_field
+{
+ var $namespace = 'mysql_myisam';
+ var $name = 'mysql_key_blocks_warm';
+ var $fname = 'Blocks Warm';
+ var $description = 'This should be the number of blocks in the myisam
key buffer warm list.';
+ var $type = 'avg';
+ var $precision = 0;
+ var $command = 'emt_mysql';
+}
Reply all
Reply to author
Forward
0 new messages