Révision e641c802
mysql_size_all: use clean fieldnames for databsaes with invalid characters
Thanks, Lokutos!
See: #1032
| plugins/mysql/mysql_size_all | ||
|---|---|---|
| 39 | 39 |
|
| 40 | 40 |
use strict; |
| 41 | 41 |
|
| 42 |
# unless ($0 =~ /mysql_size(?:_([^_]+)|)_(.+)\s*$/) |
|
| 43 |
# {
|
|
| 44 |
# die "Could not parse name $0.\n"; |
|
| 45 |
# } |
|
| 46 |
# my $db = $2; |
|
| 42 |
use Munin::Plugin; |
|
| 43 |
|
|
| 47 | 44 |
|
| 48 | 45 |
my $COMMAND; |
| 49 | 46 |
my $MYSQLADMIN = $ENV{mysqladmin} || "mysql";
|
| ... | ... | |
| 103 | 100 |
close(SERVICE); |
| 104 | 101 |
|
| 105 | 102 |
} |
| 106 |
print("$db.value $total_size\n");
|
|
| 103 |
my $fieldname = clean_fieldname($db); |
|
| 104 |
print("$fieldname.value $total_size\n");
|
|
| 107 | 105 |
} |
| 108 | 106 |
|
| 109 | 107 |
|
| ... | ... | |
| 121 | 119 |
'); |
| 122 | 120 |
|
| 123 | 121 |
for my $db (@dbs) {
|
| 124 |
my $title = "$db";
|
|
| 125 |
print("$title.label ${title}\n",
|
|
| 126 |
"$title.min 0\n",
|
|
| 127 |
"$title.type GAUGE\n",
|
|
| 128 |
"$title.draw ", ($num) ? "STACK" : "AREA" , "\n",
|
|
| 122 |
my $fieldname = clean_fieldname($db);
|
|
| 123 |
print("$fieldname.label $db\n",
|
|
| 124 |
"$fieldname.min 0\n",
|
|
| 125 |
"$fieldname.type GAUGE\n",
|
|
| 126 |
"$fieldname.draw AREASTACK\n",
|
|
| 129 | 127 |
); |
| 130 | 128 |
$num++; |
| 131 | 129 |
} |
| ... | ... | |
| 162 | 160 |
foreach my $f (glob("/var/lib/mysql/*")) {
|
| 163 | 161 |
if (-d $f) {
|
| 164 | 162 |
$f =~ s/\@002d/-/g; |
| 163 |
$f =~ s/\@002e/./g; |
|
| 165 | 164 |
$f =~ s!.*/!!; |
| 166 | 165 |
@dbs[$#dbs+1]=$f }; |
| 167 | 166 |
} |
Formats disponibles : Unified diff