You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by ne...@apache.org on 2019/03/07 15:31:15 UTC
[trafficcontrol] branch master updated: Handle port different than
80 for Traffic Ops Checks (#2600)
This is an automated email from the ASF dual-hosted git repository.
neuman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git
The following commit(s) were added to refs/heads/master by this push:
new de400cd Handle port different than 80 for Traffic Ops Checks (#2600)
de400cd is described below
commit de400cde6d8b31e5effb07f9ba84704ba55220a1
Author: Steve Malenfant <sm...@users.noreply.github.com>
AuthorDate: Thu Mar 7 10:31:09 2019 -0500
Handle port different than 80 for Traffic Ops Checks (#2600)
* Fixing TO Checks related to tcpPorts
- CDU, CHR and DSCP were not working on port different than 80
- Division by zero on server with no hit/miss/errors, check would abort
* Fixing indentation
* Broken logic to calculate cache hit
---
traffic_ops/app/bin/checks/ToCDUCheck.pl | 5 +++--
traffic_ops/app/bin/checks/ToCHRCheck.pl | 16 +++++++++++-----
traffic_ops/app/bin/checks/ToDSCPCheck.pl | 10 ++++++----
3 files changed, 20 insertions(+), 11 deletions(-)
diff --git a/traffic_ops/app/bin/checks/ToCDUCheck.pl b/traffic_ops/app/bin/checks/ToCDUCheck.pl
index a7c9351..433c1f5 100755
--- a/traffic_ops/app/bin/checks/ToCDUCheck.pl
+++ b/traffic_ops/app/bin/checks/ToCDUCheck.pl
@@ -80,7 +80,8 @@ foreach my $server ( @{$jdataserver} ) {
my $ip = $server->{ipAddress};
my $host_name = $server->{hostName};
my $interface = $server->{interfaceName};
- my $url = 'http://' . $ip . '/_astats?application=bytes_used;bytes_total&inf.name=' . $interface;
+ my $port = $server->{tcpPort};
+ my $url = 'http://' . $ip . ':' . $port . '/_astats?application=bytes_used;bytes_total&inf.name=' . $interface;
TRACE "getting $url";
my $response = $ua->get($url);
if ( $response->is_success ) {
@@ -100,7 +101,7 @@ foreach my $server ( @{$jdataserver} ) {
my $size = $stats_var->{ats}{'proxy.process.cache.bytes_total'};
my $used = $stats_var->{ats}{'proxy.process.cache.bytes_used'};
- if ( $size == 0 ) {
+ if ( $size == 0 ) {
ERROR "$host_name: cache size is 0!";
next;
}
diff --git a/traffic_ops/app/bin/checks/ToCHRCheck.pl b/traffic_ops/app/bin/checks/ToCHRCheck.pl
index 3f1add7..e17017d 100755
--- a/traffic_ops/app/bin/checks/ToCHRCheck.pl
+++ b/traffic_ops/app/bin/checks/ToCHRCheck.pl
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-# CHR check extension. Populates the 'CHR' (Cache Hit Ratio) column.
+# CHR check extension. Populates the 'CHR' (Cache Hit Ratio) column.
#
use strict;
@@ -98,7 +98,8 @@ foreach my $server ( @{$jdataserver} ) {
my $ip = $server->{ipAddress};
my $host_name = $server->{hostName};
my $interface = $server->{interfaceName};
- my $url = 'http://' . $ip . '/_astats?application=proxy.process.http.transaction_counts&inf.name=' . $interface;
+ my $port = $server->{tcpPort};
+ my $url = 'http://' . $ip . ':' . $port . '/_astats?application=proxy.process.http.transaction_counts&inf.name=' . $interface;
TRACE "getting $url";
my $response = $ua->get($url);
if ( $response->is_success ) {
@@ -149,9 +150,14 @@ foreach my $server ( @{$jdataserver} ) {
my $h = $hits - $prev_hits;
my $m = $miss - $prev_miss;
my $e = $errors - $prev_errors;
- my $hr = sprintf( "%3d", $h / ( $h + $m + $e ) * 100 );
- TRACE "$host_name: \% hitratio: $hr\% errors: $e period: $secs\n";
- $ext->post_result( $server->{id}, $check_name, $hr );
+ my $t = ( $h + $m + $e );
+ if ( $t != 0 ) {
+ my $hr = sprintf( "%d", ($h / $t) * 100 );
+ TRACE "$host_name: hitratio: $hr\%, errors: $e, period: $secs\n";
+ $ext->post_result( $server->{id}, $check_name, $hr );
+ } else {
+ TRACE "$host_name: No transaction_counts! Service enabled?"
+ }
}
}
else {
diff --git a/traffic_ops/app/bin/checks/ToDSCPCheck.pl b/traffic_ops/app/bin/checks/ToDSCPCheck.pl
index a9f6a25..787b995 100755
--- a/traffic_ops/app/bin/checks/ToDSCPCheck.pl
+++ b/traffic_ops/app/bin/checks/ToDSCPCheck.pl
@@ -136,6 +136,8 @@ foreach my $server ( @{$jdataserver} ) {
my $host_name = trim($server->{hostName});
my $fqdn = $host_name.".".trim($server->{domainName});
my $interface = trim($server->{interfaceName});
+ my $http_port = $server->{tcpPort};
+ my $https_port = $server->{httpsPort};
my $status = $server->{status};
my $details = $ext->get( '/api/1.1/servers/hostname/' . $host_name . '/details.json' );
my $successful = 1; # assume all is good
@@ -189,7 +191,7 @@ foreach my $server ( @{$jdataserver} ) {
## check ipv4
# TODO "http://" should be a var so that we can also check https
- my $url = "http://".$ip.$ds->{checkPath};
+ my $url = "http://".$ip.":".$tcpPort.$ds->{checkPath};
TRACE "About to check header: ".$header." url: ".$url;
@@ -234,7 +236,7 @@ foreach my $server ( @{$jdataserver} ) {
## check ipv6
# TODO "http://" should be a var so that we can also check https
# TODO "80" should be var when we add https
- $url = "http://".$ip6.":80".$ds->{checkPath};
+ $url = "http://".$ip.":".$tcpPort.$ds->{checkPath};
TRACE "About to check header: ".$header." url: ".$url;
@@ -324,7 +326,7 @@ sub get_dscp() {
if ( $ip_obj->{src_ip} eq $ip && $ip_obj->{len} > $max_len && $ip_obj->{proto} == 6 ) {
my $tcp_obj = NetPacket::TCP->decode( $ip_obj->{data} );
TRACE " TCP2 $ip_obj->{src_ip}:$tcp_obj->{src_port} -> $ip_obj->{dest_ip}:$tcp_obj->{dest_port} $ip_obj->{proto} tos $ip_obj->{tos} len $ip_obj->{len}\n";
- if ( ($tcp_obj->{src_port} == 80) && ($tcp_obj->{dest_port} == $src_port) ) {
+ if ( ($tcp_obj->{src_port} == $http_port) && ($tcp_obj->{dest_port} == $src_port) ) {
TRACE " TCP3 $ip_obj->{src_ip}:$tcp_obj->{src_port} -> $ip_obj->{dest_ip}:$tcp_obj->{dest_port} $ip_obj->{proto} tos $ip_obj->{tos} len $ip_obj->{len}\n";
$max_len = $ip_obj->{len};
$tos = $ip_obj->{tos};
@@ -338,7 +340,7 @@ sub get_dscp() {
if ( $ip_obj->{src_ip} eq $ip && $ip_obj->{plen} > $max_len && $ip_obj->{nxt} == 6 ) {
my $tcp_obj = NetPacket::TCP->decode( $ip_obj->{data} );
TRACE " TCP2 $ip_obj->{src_ip}:$tcp_obj->{src_port} -> $ip_obj->{dest_ip}:$tcp_obj->{dest_port} $ip_obj->{nxt} tos $ip_obj->{class} len $ip_obj->{plen}\n";
- if ( $tcp_obj->{src_port} == 80 && $tcp_obj->{dest_port} == $src_port ) {
+ if ( $tcp_obj->{src_port} == $http_port && $tcp_obj->{dest_port} == $src_port ) {
TRACE " TCP3 $ip_obj->{src_ip}:$tcp_obj->{src_port} -> $ip_obj->{dest_ip}:$tcp_obj->{dest_port} $ip_obj->{nxt} tos $ip_obj->{class} len $ip_obj->{plen}\n";
$max_len = $ip_obj->{plen};
$tos = $ip_obj->{class};