changeset 47:e66923c7bac3

* keep more statistics
author Peter Stamfest <peter@stamfest.at>
date Mon, 04 Nov 2013 21:09:48 +0100
parents 061017e16d4b
children 79cd80808d6d
files src/main/java/net/stamfest/rrd/util/RRDFeedThread.java src/main/java/net/stamfest/rrd/util/RRDFeedThreadJMXInfo.java src/main/java/net/stamfest/rrd/util/RRDFeedThreadJMXInfoMBean.java
diffstat 3 files changed, 47 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/net/stamfest/rrd/util/RRDFeedThread.java	Mon Nov 04 20:22:27 2013 +0100
+++ b/src/main/java/net/stamfest/rrd/util/RRDFeedThread.java	Mon Nov 04 21:09:48 2013 +0100
@@ -98,6 +98,9 @@
     private boolean askstop = false;
     private int lostCount = 0;
     private int addedCount = 0;
+    private int updatesSent = 0;
+    private int updatesOK = 0;
+    private int overruns = 0;
 
     /**
      * Constructor. The thread has to be started explicitly after construction.
@@ -139,6 +142,7 @@
 		    feed.notify();
 		}
 	    } else {
+		overruns++;
 		logger.log(Level.FINEST, "full!");
 		
 		// do not add - we are full!
@@ -197,8 +201,11 @@
 			    logger.log(Level.FINEST, "updating {0} {1}",
 				       new Object[]{fde.filename, fde.args});
 			}
+			updatesSent++;
 			CommandResult result = service.update(fde.filename, fde.args);
-			if (!result.ok) {
+			if (result.ok) {
+			    updatesOK++;
+			} else {
 			    /* problem with the command, protocol OK - do not re-add */
 			    lostCount++;
 			    logger.log(Level.INFO, "Could not update {0} {1} error: {2}",
@@ -311,7 +318,26 @@
     public int getQueueSize() {
 	return feed.size();
     }
-    
+
+    /** Returns the number of update attempts. */
+    public int getUpdatesSent() {
+	return updatesSent;
+    }
+
+    /** Returns the number of successful update attempts */
+    public int getUpdatesOK() {
+	return updatesOK;
+    }
+
+    /**
+     * Returns how often the queue was full when a new update was queued, that
+     * is, how often an update was lost.
+     */
+    public int getOverruns() {
+	return overruns;
+    }
+
+
     private RRDFeedThreadJMXInfo mbean = null;
     /**
      * Register a JMX MBean for this feeder thread. You should call
--- a/src/main/java/net/stamfest/rrd/util/RRDFeedThreadJMXInfo.java	Mon Nov 04 20:22:27 2013 +0100
+++ b/src/main/java/net/stamfest/rrd/util/RRDFeedThreadJMXInfo.java	Mon Nov 04 21:09:48 2013 +0100
@@ -67,4 +67,16 @@
     public boolean isAskedStop() {
 	return t.isAskedStop();
     }
+
+    public int getUpdatesSent() {
+	return t.getUpdatesSent();
+    }
+
+    public int getUpdatesOK() {
+	return t.getUpdatesOK();
+    }
+
+    public int getOverruns() {
+	return t.getOverruns();
+    }
 }
--- a/src/main/java/net/stamfest/rrd/util/RRDFeedThreadJMXInfoMBean.java	Mon Nov 04 20:22:27 2013 +0100
+++ b/src/main/java/net/stamfest/rrd/util/RRDFeedThreadJMXInfoMBean.java	Mon Nov 04 21:09:48 2013 +0100
@@ -26,6 +26,12 @@
     
     public int getGuessEvery();
     public void setGuessEvery(int every);
-    
+
+    public int getUpdatesSent();
+
+    public int getUpdatesOK();
+
+    public int getOverruns();
+
     public boolean isAskedStop();
 }