Good afternoon,
We're monitoring some systems with Ganglia and collectl, and are also
using AoE. The devices are in the format "/dev/etherd/e##.#" (or
"/dev/etherd/e##.#p#" for partitions,) and they show up in
/proc/diskstats as "etherd/e##.#"
The metrics sent by gexpr (like "diskinfo.writes.etherd/e21.0") make
Ganglia pretty upset due to the "/" character. I see that formatit.ph
strips "cciss/" from disk names, so I tried duplicating that with
"etherd/" in the changes in the diff below. It's working well for us
with this change applied - could you consider including it in the next
version of collectl?
(We currently use these devices without partitioning, but for
consistency I tried copying the method of excluding partitions from
cciss devices. I wasn't sure if the other cciss special-case handling in
this file applied to the AoE devices, so I left those alone.)
--
--- formatit.ph 2015-09-22 10:31:21.000000000 -0400
+++ formatit.ph.patch1 2015-09-22 11:59:30.000000000 -0400
@@ -239,6 +239,7 @@
my $diskName=$fields[3];
$diskName=remapDiskName($diskName) if $diskRemapFlag;
$diskName=~s/cciss\///;
+ $diskName=~s/etherd\///;
push @dskOrder, $diskName;
$disks{$diskName}=$dskIndexNext++;
}
@@ -697,11 +698,12 @@
# now for the magic. Get the partition size and name, but ignore
# cciss devices on controller 0 OR any devices with partitions
- # noting cciss device partitions end in 'p-digit' and sd
partitions
+ # noting cciss/etherd device partitions end in 'p-digit' and
sd partitions
# always end in a digit.
($size, $name)=(split(/\s+/, $part))[3,4];
$name=~s/cciss\///;
- next if $name=~/^c0|^c.*p\d$|^sd.*\d$/;
+ $name=~s/etherd\///;
+ next if $name=~/^c0|^c.*p\d$|^e.*p\d$|^sd.*\d$/;
$partitionSize{$name}=$size;
}
@@ -3278,6 +3280,7 @@
($major, $minor, $diskName, @dskFields)=split(/\s+/, $data);
$diskName=~s/cciss\///;
+ $diskName=~s/etherd\///;
if (!defined($disks{$diskName}))
{
$dskChangeFlag|=1; # new disk found
@@ -4599,6 +4602,7 @@
$temp.="[DSK]QueLen${SEP}[DSK]Wait${SEP}[DSK]SvcTim${SEP}[DSK]Util${SEP}";
$temp=~s/DSK/DSK:$dskName/g;
$temp=~s/cciss\///g;
+ $temp=~s/etherd\///g;
$dskHeaders.=$temp;
}
writeData(0, $ch, \$dskHeaders, DSK, $ZDSK, 'dsk', \$headersAll);
--
Thanks,
Gabriel Eggleston
NHGRI Contractor – Digicon
[email protected]
------------------------------------------------------------------------------
_______________________________________________
Collectl-interest mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/collectl-interest