<div dir="ltr">Greetings,<div><br></div><div>Is there anyone out there that might help shed some insight on my issue I raised?  Thank you so much.</div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Sep 6, 2018 at 3:00 AM <<a href="mailto:smokeping-users-request@lists.oetiker.ch">smokeping-users-request@lists.oetiker.ch</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Send smokeping-users mailing list submissions to<br>
        <a href="mailto:smokeping-users@lists.oetiker.ch" target="_blank">smokeping-users@lists.oetiker.ch</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
        <a href="https://lists.oetiker.ch/cgi-bin/listinfo/smokeping-users" rel="noreferrer" target="_blank">https://lists.oetiker.ch/cgi-bin/listinfo/smokeping-users</a><br>
or, via email, send a message with subject or body 'help' to<br>
        <a href="mailto:smokeping-users-request@lists.oetiker.ch" target="_blank">smokeping-users-request@lists.oetiker.ch</a><br>
<br>
You can reach the person managing the list at<br>
        <a href="mailto:smokeping-users-owner@lists.oetiker.ch" target="_blank">smokeping-users-owner@lists.oetiker.ch</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than "Re: Contents of smokeping-users digest..."<br>
<br>
<br>
Today's Topics:<br>
<br>
   1. Smokeping::probes::basefork:ping fails (Tony DeMatteis)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Wed, 5 Sep 2018 07:32:47 -0700<br>
From: Tony DeMatteis <<a href="mailto:tonydema@gmail.com" target="_blank">tonydema@gmail.com</a>><br>
To: <a href="mailto:smokeping-users@lists.oetiker.ch" target="_blank">smokeping-users@lists.oetiker.ch</a><br>
Subject: [smokeping-users] Smokeping::probes::basefork:ping fails<br>
Message-ID:<br>
        <<a href="mailto:CAGKb9AFeKsysMP%2ByYDxErj4F8A3dU3mcMhrp2OD%2B7HPtKPLENg@mail.gmail.com" target="_blank">CAGKb9AFeKsysMP+yYDxErj4F8A3dU3mcMhrp2OD+7HPtKPLENg@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
Greetings,<br>
<br>
I have been attempting to debug an issue with a custom probe I've written<br>
based off the TelnetIOSPing probe.  The probe returns an array of ping<br>
results to the caller, Smokeping::probes::basefork::ping, but the "$result"<br>
variable read in the caller equals "interrupted".  I have been unable to<br>
get any further with identifying why this is the case.  I'm not an active<br>
perl programmer but drawing on some older experience.  I've included what I<br>
believe to be the pertinent code and some debug output; the values of the<br>
ping @output and  the @times array both before and after the processor<br>
which formats the times to values for RRD.  Perhaps it's something obvious<br>
and I apologize for that.  Any help pointing me in the right direction<br>
would be great.  Thank you<br>
<br>
The probe connects to a Mikrotik Router via SSH and retrieves ping stats.<br>
Then it parses the result with the exact same code as from the<br>
TelnetIOSPing probe.<br>
<br>
*# /usr/share/perl5/Smokeping/probes/<a href="http://base.pm" rel="noreferrer" target="_blank">base.pm</a> <<a href="http://base.pm/" rel="noreferrer" target="_blank">http://base.pm/</a>>*<br>
*# The only modification to the <a href="http://base.pm" rel="noreferrer" target="_blank">base.pm</a> <<a href="http://base.pm/" rel="noreferrer" target="_blank">http://base.pm/</a>> code is the<br>
do_debug statements*<br>
<br>
    while ($s->handles and $timeleft > 0) {<br>
      for my $ready ($s->can_read($timeleft)) {<br>
        $s->remove($ready);<br>
        my $response = <$ready>;<br>
        close $ready;<br>
<br>
*$self->do_debug("Returned from probe");*<br>
*$self->do_debug(Dumper \$response);  <--- Result = 'interrupted'*<br>
<br>
        chomp $response;<br>
        my @times = split(/ /, $response);<br>
        my $target = $targetlookup{$ready};<br>
        my $tree = $target->{tree};<br>
        $self->{rtts}{$tree} = \@times;<br>
<br>
        $self->do_debug("$target->{addr}: got $response");<br>
      }<br>
      $timeleft = $timeout - (time() - $starttime);<br>
    }<br>
<br>
*# /usr/share/perl5/Smokeping/probes/MikrotikRouterOSPing.pm*<br>
...<br>
  #<br>
  # Get ping stats<br>
  #<br>
  if ( $psource ) {<br>
    @output = $ssh->capture("ping $dest count=$pings size=$bytes<br>
src-address=$psource");<br>
  } else {<br>
    @output = $ssh->capture("ping $dest count=$pings size=$bytes");<br>
  }<br>
  $ssh->system("quit");<br>
<br>
# DEBUG - Log raw result<br>
logit("MikrotikRouterOSPing Raw result from host:");<br>
logit(@output);<br>
<br>
  my @times = ();<br>
  while (@output) {<br>
    my $outputline = shift @output;<br>
    chomp($outputline);<br>
    $outputline =~ /(\d)ms/ && push(@times,$1);<br>
  }<br>
<br>
logit("MikrotikRouterOSPing \@times[] Pre Preprocessing.");<br>
logit(@times);<br>
<br>
  @times = map {sprintf "%.10e", $_ / $self->{pingfactor}} sort {$a <=> $b}<br>
@times;<br>
<br>
# DEBUG - Pings Post processing<br>
logit("MikrotikRouterOSPing Pings Post Preprocessing.  Returning this to<br>
caller:");<br>
logit(@times);<br>
<br>
my $parent = getcaller();<br>
logit("MikrotikRouterOSPing Returning ping times to $parent");<br>
<br>
  return @times;<br>
}<br>
<br>
*# Debug Logging results*<br>
<br>
MikrotikRouterOSPing Raw result from host:<br>
-------------------[ DEBUG ]---------------------<br>
$VAR1 = [<br>
',        '  SEQ HOST                                     SIZE TTL TIME<br>
STATUS<br>
',        '    0 8.8.8.8                                56 255 7ms<br>
',        '    1 8.8.8.8                                56 255 9ms<br>
',        '    2 8.8.8.8                                56 255 5ms<br>
',        '    3 8.8.8.8                                56 255 8ms<br>
',        '    4 8.8.8.8                                56 255 9ms<br>
',        '    5 8.8.8.8                                56 255 9ms<br>
',        '    6 8.8.8.8                                56 255 8ms<br>
',        '    7 8.8.8.8                                56 255 10ms<br>
',        '    8 8.8.8.8                                56 255 7ms<br>
',        '    9 8.8.8.8                                56 255 9ms<br>
',        '   10 8.8.8.8                                56 255 7ms<br>
',        '   11 8.8.8.8                                56 255 10ms<br>
',        '   12 8.8.8.8                                56 255 7ms<br>
',        '   13 8.8.8.8                                56 255 9ms<br>
',        '   14 8.8.8.8                                56 255 7ms<br>
',        '   15 8.8.8.8                                56 255 8ms<br>
',        '   16 8.8.8.8                                56 255 8ms<br>
',        '   17 8.8.8.8                                56 255 8ms<br>
',        '   18 8.8.8.8                                56 255 8ms<br>
',        '   19 8.8.8.8                                56 255 9ms<br>
',        '    sent=20 received=20 packet-loss=0% min-rtt=5ms avg-rtt=8ms<br>
max-rtt=10ms<br>
'         '<br>
        ];<br>
MikrotikRouterOSPing @times[] Pre Preprocessing.<br>
-------------------[ DEBUG ]---------------------<br>
$VAR1 = [<br>
          '7',<br>
          '9',<br>
          '5',<br>
          '8',<br>
          '9',<br>
          '9',<br>
          '8',<br>
          '0',<br>
          '7',<br>
          '9',<br>
          '7',<br>
          '0',<br>
          '7',<br>
          '9',<br>
          '7',<br>
          '8',<br>
          '8',<br>
          '8',<br>
          '8',<br>
          '9',<br>
          '5'<br>
        ];<br>
MikrotikRouterOSPing Pings Post Preprocessing.  Returning this to caller:<br>
-------------------[ DEBUG ]---------------------<br>
$VAR1 = [<br>
          '0.0000000000e+00',<br>
          '0.0000000000e+00',<br>
          '5.0000000000e-03',<br>
          '5.0000000000e-03',<br>
          '7.0000000000e-03',<br>
          '7.0000000000e-03',<br>
          '7.0000000000e-03',<br>
          '7.0000000000e-03',<br>
          '7.0000000000e-03',<br>
          '8.0000000000e-03',<br>
          '8.0000000000e-03',<br>
          '8.0000000000e-03',<br>
          '8.0000000000e-03',<br>
          '8.0000000000e-03',<br>
          '8.0000000000e-03',<br>
          '9.0000000000e-03',<br>
          '9.0000000000e-03',<br>
          '9.0000000000e-03',<br>
          '9.0000000000e-03',<br>
          '9.0000000000e-03',<br>
          '9.0000000000e-03'<br>
        ];<br>
MikrotikRouterOSPing Returning ping times to<br>
Smokeping::probes::basefork::ping<br>
Thu Aug 30 15:22:50 2018 - MikrotikRouterOSPing: Returned from probe<br>
*Thu Aug 30 15:22:50 2018 - MikrotikRouterOSPing: $VAR1 = \'interrupted**';*<br>
*Thu Aug 30 15:22:50 2018 - MikrotikRouterOSPing: 8.8.8.8<br>
<<a href="http://8.8.8.8/" rel="noreferrer" target="_blank">http://8.8.8.8/</a>>: got interrupted*<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="http://lists.oetiker.ch/pipermail/smokeping-users/attachments/20180905/c6ad1ab0/attachment-0001.html" rel="noreferrer" target="_blank">http://lists.oetiker.ch/pipermail/smokeping-users/attachments/20180905/c6ad1ab0/attachment-0001.html</a>><br>
<br>
------------------------------<br>
<br>
Subject: Digest Footer<br>
<br>
_______________________________________________<br>
smokeping-users mailing list<br>
<a href="mailto:smokeping-users@lists.oetiker.ch" target="_blank">smokeping-users@lists.oetiker.ch</a><br>
<a href="https://lists.oetiker.ch/cgi-bin/listinfo/smokeping-users" rel="noreferrer" target="_blank">https://lists.oetiker.ch/cgi-bin/listinfo/smokeping-users</a><br>
<br>
<br>
------------------------------<br>
<br>
End of smokeping-users Digest, Vol 137, Issue 1<br>
***********************************************<br>
</blockquote></div>