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

Reply via email to