From 71d785dc70af0c4f7210ad3f5d36ed51bec2fcda Mon Sep 17 00:00:00 2001
From: Tomas Plesnik <plesnik@ics.muni.cz>
Date: Thu, 24 Jan 2013 16:54:49 +0100
Subject: [PATCH] pridan vypis stavu Warden serveru i s invalid klienty a
 udalostmi; do statistiky registrovanych klientu zahrnuti pouze validni
 klienti a udalosti

---
 src/warden-server/bin/getStatus.pl | 71 ++++++++++++++++++++++--------
 1 file changed, 53 insertions(+), 18 deletions(-)

diff --git a/src/warden-server/bin/getStatus.pl b/src/warden-server/bin/getStatus.pl
index 6561a34..fd043bd 100755
--- a/src/warden-server/bin/getStatus.pl
+++ b/src/warden-server/bin/getStatus.pl
@@ -103,37 +103,67 @@ my $db_size = defined $size ? Format::Human::Bytes::base10($size) : "none";
 $sth = $DBH->prepare("SELECT count(*) FROM events WHERE valid = 't';") or die "Cannot prepare statement: " . $DBH->errstr;
 $sth->execute or die "Cannot execute statement: " . $sth->errstr;
 my $events_sum = $sth->fetchrow();
-if (!defined $events_sum) { $events_sum = "none" }
+if (!defined $events_sum) {$events_sum = "none"}
+
+# sum of records in table events (with invalid)
+$sth = $DBH->prepare("SELECT count(*) FROM events;") or die "Cannot prepare statement: " . $DBH->errstr;
+$sth->execute or die "Cannot execute statement: " . $sth->errstr;
+my $events_sum_inv = $sth->fetchrow();
+if (!defined $events_sum_inv) {$events_sum_inv = "none"}
 
 # id of last record in table events
-$sth = $DBH->prepare("SELECT max(id) FROM events;") or die "Cannot prepare statement: " . $DBH->errstr;
+$sth = $DBH->prepare("SELECT max(id) FROM events WHERE valid = 't';") or die "Cannot prepare statement: " . $DBH->errstr;
 $sth->execute or die "Cannot execute statement: " . $sth->errstr;
 my $events_last_id = $sth->fetchrow();
-if (!defined $events_last_id) { $events_last_id = "none" }
+if (!defined $events_last_id) {$events_last_id = "none"}
+
+# id of last record in table events (with invalid)
+$sth = $DBH->prepare("SELECT max(id) FROM events;") or die "Cannot prepare statement: " . $DBH->errstr;
+$sth->execute or die "Cannot execute statement: " . $sth->errstr;
+my $events_last_id_inv = $sth->fetchrow();
+if (!defined $events_last_id_inv) {$events_last_id_inv = "none"}
 
 # timestamp of first record in table events
-$sth = $DBH->prepare("SELECT received FROM events WHERE id = (SELECT min(id) FROM events);") or die "Cannot prepare statement: " . $DBH->errstr;
+$sth = $DBH->prepare("SELECT received FROM events WHERE id = (SELECT min(id) FROM events WHERE valid = 't');") or die "Cannot prepare statement: " . $DBH->errstr;
 $sth->execute or die "Cannot execute statement: " . $sth->errstr;
 my $events_first_timestamp = $sth->fetchrow();
-if (!defined $events_first_timestamp) { $events_first_timestamp = "none" }
+if (!defined $events_first_timestamp) {$events_first_timestamp = "none"}
+
+# timestamp of first record in table events (with invalid)
+$sth = $DBH->prepare("SELECT received FROM events WHERE id = (SELECT min(id) FROM events);") or die "Cannot prepare statement: " . $DBH->errstr;
+$sth->execute or die "Cannot execute statement: " . $sth->errstr;
+my $events_first_timestamp_inv = $sth->fetchrow();
+if (!defined $events_first_timestamp_inv) {$events_first_timestamp_inv = "none"}
 
 # timestamp of last record in table events
-$sth = $DBH->prepare("SELECT received FROM events WHERE id = (SELECT max(id) FROM events);") or die "Cannot prepare statement: " . $DBH->errstr;
+$sth = $DBH->prepare("SELECT received FROM events WHERE id = (SELECT max(id) FROM events WHERE valid = 't');") or die "Cannot prepare statement: " . $DBH->errstr;
 $sth->execute or die "Cannot execute statement: " . $sth->errstr;
 my $events_last_timestamp = $sth->fetchrow();
-if (!defined $events_last_timestamp) { $events_last_timestamp = "none" }
+if (!defined $events_last_timestamp) {$events_last_timestamp = "none"}
+
+# timestamp of last record in table events (with invalid)
+$sth = $DBH->prepare("SELECT received FROM events WHERE id = (SELECT max(id) FROM events);") or die "Cannot prepare statement: " . $DBH->errstr;
+$sth->execute or die "Cannot execute statement: " . $sth->errstr;
+my $events_last_timestamp_inv = $sth->fetchrow();
+if (!defined $events_last_timestamp_inv) {$events_last_timestamp_inv = "none"}
 
 # sum of records in table clients
-$sth = $DBH->prepare("SELECT count(*) FROM clients;") or die "Cannot prepare statement: " . $DBH->errstr;
+$sth = $DBH->prepare("SELECT count(*) FROM clients WHERE valid = 't';") or die "Cannot prepare statement: " . $DBH->errstr;
 $sth->execute or die "Cannot execute statement: " . $sth->errstr;
 my $clients_sum = $sth->fetchrow();
-if (!defined $clients_sum) { $clients_sum = "none" }
+if (!defined $clients_sum) {$clients_sum = "none"}
+
+# sum of records in table clients (with invalid)
+$sth = $DBH->prepare("SELECT count(*) FROM clients;") or die "Cannot prepare statement: " . $DBH->errstr;
+$sth->execute or die "Cannot execute statement: " . $sth->errstr;
+my $clients_sum_inv = $sth->fetchrow();
+if (!defined $clients_sum_inv) {$clients_sum_inv = "none"}
 
 #-------------------------------------------------------------------------------
 # Statistics of active registered senders
 my $hash_ref;
 if ($clients_sum != 0) {
-  $sth = $DBH->prepare("SELECT clients.client_id, clients.hostname, clients.service, count(*), max(received) FROM events LEFT JOIN clients ON (events.hostname=clients.hostname AND events.service=clients.service) GROUP BY hostname, service;") or die "Cannot prepare statement: " . $DBH->errstr;
+  $sth = $DBH->prepare("SELECT clients.client_id, clients.hostname, clients.service, count(*), max(received) FROM events LEFT JOIN clients ON (events.hostname=clients.hostname AND events.service=clients.service) WHERE clients.valid='t' AND events.valid='t' GROUP BY client_id;") or die "Cannot prepare statement: " . $DBH->errstr;
   $sth->execute or die "Cannot execute statement: " . $sth->errstr;
   my ($client_id, $hostname, $service, $count, $timestamp, $client_status);
   $hash_ref = $sth->fetchall_hashref("client_id");
@@ -160,17 +190,22 @@ print "\n";
 
 print "Warden server status:\n";
 print "=====================\n";
-print "Database size:\t\t\t$db_size\n";
-print "Count of saved events:\t\t$events_sum\n";
-print "Last ID in events table:\t$events_last_id\n";
-print "Time of first inserted event:\t$events_first_timestamp (UTC)\n";
-print "Time of latest inserted event:\t$events_last_timestamp (UTC)\n";
-print "Count of registered clients:\t$clients_sum\n";
+print "Database size:\t\t\t\t\t$db_size\n";
+print "Count of saved events:\t\t\t\t$events_sum\n";
+print "Count of saved events (with invalid):\t\t$events_sum_inv\n";
+print "Last ID in events table:\t\t\t$events_last_id\n";
+print "Last ID in events table (with invalid):\t\t$events_last_id_inv\n";
+print "Time of first inserted event:\t\t\t$events_first_timestamp (UTC)\n";
+print "Time of first inserted event (with invalid):\t$events_first_timestamp_inv (UTC)\n";
+print "Time of latest inserted event:\t\t\t$events_last_timestamp (UTC)\n";
+print "Time of latest inserted event (with invalid):\t$events_last_timestamp_inv (UTC)\n";
+print "Count of registered clients:\t\t\t$clients_sum\n";
+print "Count of registered clients (with invalid):\t$clients_sum_inv\n";
 print "\n";
 
 if ($clients_sum != 0) {
-  print "Statistics of active registered senders:\n";
-  print "========================================\n";
+  print "Statistics of ACTIVE and VALID registered senders:\n";
+  print "==================================================\n";
   print "+----------------------------------------------------------------------------------------------------------------+\n";
   print "| Client ID  | Hostname                       | Service                   | Stored events | Last insertion (UTC) |\n";
   print "+----------------------------------------------------------------------------------------------------------------+\n";
-- 
GitLab