pcp
[Top] [All Lists]

Re: [pcp] MySQL PMDA question

To: chandana@xxxxxxxxxxxxx
Subject: Re: [pcp] MySQL PMDA question
From: Chandana De Silva <chandana@xxxxxxxxxxxxx>
Date: Sat, 27 Oct 2012 09:19:33 +1100
Cc: Nathan Scott <nathans@xxxxxxxxxx>, pcp@xxxxxxxxxxx
In-reply-to: <508B05B9.1020906@xxxxxxxxxxxxx>
References: <161602181.15309899.1350885221821.JavaMail.root@xxxxxxxxxx> <508B05B9.1020906@xxxxxxxxxxxxx>
Reply-to: chandana@xxxxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121011 Thunderbird/16.0.1
Sending the changes as a diff, as the sgi mail server refused an attachment.

 diff /tmp/pmdamysql.pl /var/lib/pcp/pmdas/mysql/pmdamysql.pl
35,36c35,36
< use vars qw( $pmda %status %variables @processes %slave_status );
< use vars qw( $dbh $sth_variables $sth_status $sth_processes $sth_slave_status );
---
> use vars qw( $pmda %status %variables @processes );
> use vars qw( $dbh $sth_variables $sth_status $sth_processes );
51d50
<           $sth_slave_status = $dbh->prepare('show slave status');
105,118d103
< sub mysql_slave_status_refresh
< {
<     # $pmda->log("mysql_slave_status_refresh\n");
<
<     %slave_status = ();       # clear any previous contents
<     if (defined($dbh)) {
<       $sth_slave_status->execute();
<       my $result = $sth_slave_status->fetchrow_hashref();
<       while ( my ($key, $value) = each(%$result) ) {
<           $slave_status{lc $key} = $value;
<       }
<     }
< }
<
127d111
<     elsif ($cluster == 3)     { mysql_slave_status_refresh; }
164,169d147
<     elsif ($cluster == 3) {
<       $mysql_name =~ s/^mysql\.slave_status\.//;
<       $value = $slave_status{$mysql_name};
<       if (!defined($value))   { return (PM_ERR_APPVERSION, 0); }
<       return ($value, 1);
<     }
1657,1753d1634
< $pmda->add_metric(pmda_pmid(3,0), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_INSTANT, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.slave_io_state', '', '');
< $pmda->add_metric(pmda_pmid(3,1), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_INSTANT, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.slave_io_running', '', '');
< $pmda->add_metric(pmda_pmid(3,2), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_INSTANT, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.slave_sql_running', '', '');
< $pmda->add_metric(pmda_pmid(3,3), PM_TYPE_U32, PM_INDOM_NULL,
<                 PM_SEM_INSTANT, pmda_units(1,0,0,PM_TIME_SEC,0,0),
<                 'mysql.slave_status.seconds_behind_master', '', '');
< $pmda->add_metric(pmda_pmid(3,4), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_INSTANT, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.master_log_file', '', '');
< $pmda->add_metric(pmda_pmid(3,5), PM_TYPE_U32, PM_INDOM_NULL,
<                 PM_SEM_INSTANT, pmda_units(0,0,1,0,0,PM_COUNT_ONE),
<                 'mysql.slave_status.read_master_log_pos', '', '');
< $pmda->add_metric(pmda_pmid(3,6), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_INSTANT, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.relay_master_log_file', '', '');
< $pmda->add_metric(pmda_pmid(3,7), PM_TYPE_U32, PM_INDOM_NULL,
<                 PM_SEM_INSTANT, pmda_units(0,0,1,0,0,PM_COUNT_ONE),
<                 'mysql.slave_status.exec_master_log_pos', '', '');
< $pmda->add_metric(pmda_pmid(3,8),  PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_INSTANT, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.relay_log_file', '', '');
< $pmda->add_metric(pmda_pmid(3,9), PM_TYPE_U32, PM_INDOM_NULL,
<                 PM_SEM_INSTANT, pmda_units(0,0,1,0,0,PM_COUNT_ONE),
<                 'mysql.slave_status.relay_log_pos', '', '');
< $pmda->add_metric(pmda_pmid(3,10), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_INSTANT, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.until_log_file', '', '');
< $pmda->add_metric(pmda_pmid(3,11), PM_TYPE_U32, PM_INDOM_NULL,
<                 PM_SEM_INSTANT, pmda_units(0,0,1,0,0,PM_COUNT_ONE),
<                 'mysql.slave_status.until_log_pos', '', '');
< $pmda->add_metric(pmda_pmid(3,12), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_DISCRETE, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.master_ssl_cipher', '', '');
< $pmda->add_metric(pmda_pmid(3,13), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_DISCRETE, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.master_ssl_ca_file', '', '');
< $pmda->add_metric(pmda_pmid(3,14), PM_TYPE_U32, PM_INDOM_NULL,
<                 PM_SEM_INSTANT, pmda_units(0,0,1,0,0,PM_COUNT_ONE),
<                 'mysql.slave_status.skip_counter', '', '');
< $pmda->add_metric(pmda_pmid(3,15), PM_TYPE_U32, PM_INDOM_NULL,
<                 PM_SEM_INSTANT, pmda_units(0,0,1,0,0,PM_COUNT_ONE),
<                 'mysql.slave_status.relay_log_space', '', '');
< $pmda->add_metric(pmda_pmid(3,16), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_DISCRETE, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.until_condition', '', '');
< $pmda->add_metric(pmda_pmid(3,17), PM_TYPE_U32, PM_INDOM_NULL,
<                 PM_SEM_DISCRETE, pmda_units(1,PM_TIME_SEC,0,0,0,0),
<                 'mysql.slave_status.connect_retry', '', '');
< $pmda->add_metric(pmda_pmid(3,18), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_DISCRETE, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.master_host', '', '');
< $pmda->add_metric(pmda_pmid(3,19), PM_TYPE_U32, PM_INDOM_NULL,
<                 PM_SEM_INSTANT, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.last_errno', '', '');
< $pmda->add_metric(pmda_pmid(3,20), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_DISCRETE, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.master_ssl_cert', '', '');
< $pmda->add_metric(pmda_pmid(3,21), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_DISCRETE, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.replicate_do_db', '', '');
< $pmda->add_metric(pmda_pmid(3,22), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_DISCRETE, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.replicate_ignore_db', '', '');
< $pmda->add_metric(pmda_pmid(3,23), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_DISCRETE, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.master_user', '', '');
< $pmda->add_metric(pmda_pmid(3,24), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_DISCRETE, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.replicate_do_table', '', '');
< $pmda->add_metric(pmda_pmid(3,25), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_DISCRETE, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.replicate_wild_do_table', '', '');
< $pmda->add_metric(pmda_pmid(3,26), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_DISCRETE, pmda_units(0,0,0,0,0,0),
< 'mysql.slave_status.replicate_wild_ignore_table', '', '');
< $pmda->add_metric(pmda_pmid(3,27), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_DISCRETE, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.replicate_ignore_table', '', '');
< $pmda->add_metric(pmda_pmid(3,28), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_DISCRETE, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.master_ssl_allowed', '', '');
< $pmda->add_metric(pmda_pmid(3,29), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_DISCRETE, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.master_ssl_ca_path', '', '');
< $pmda->add_metric(pmda_pmid(3,30), PM_TYPE_U32, PM_INDOM_NULL,
<                 PM_SEM_DISCRETE, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.master_port', '', '');
< $pmda->add_metric(pmda_pmid(3,31), PM_TYPE_STRING, PM_INDOM_NULL,
<                 PM_SEM_DISCRETE, pmda_units(0,0,0,0,0,0),
<                 'mysql.slave_status.master_ssl_key', '', '');
<

On 27/10/12 08:50, Chandana De Silva wrote:
Hello Nathan,

Thank you very much for your help. I got the new metrics working. The reason it did not work last evening was that the data returned from 'show slave status' is a single row, not a bunch of rows.

I have now added all the slave status metrics in, hope I have got the semantics right. I would appreciate if you (or someone) can cast an eye over them.

I need to get these metrics into my environment as soon as possible. I would like to generate a new pcp rpm with the new code. How should I name the rpm to ensure that the change goes in cleanly when I upgrade ?. The current RPM is pcp-3.6.9-1. If the next RPM is going to be pcp-3.6.10-1, then I can safely use pcp-3.6.9.1-1. Is that ok ?

Regards
Chandana

On 22/10/12 16:53, Nathan Scott wrote:

----- Original Message -----
Nathan,
Many thanks.

I will get this working.


<Prev in Thread] Current Thread [Next in Thread>