From e9d3726531a7054e93285bc2c845a3c220938c2e Mon Sep 17 00:00:00 2001 From: Mark Pollack Date: Fri, 11 Feb 2011 14:48:45 -0500 Subject: [PATCH] Additional JMX Metrics --- .../document/mongodb/monitor/GlobalLockMetrics.java | 11 +++++++---- .../document/mongodb/monitor/OperationCounters.java | 7 ++++++- .../data/document/mongodb/monitor/ServerInfo.java | 5 ++--- spring-data-mongodb/src/test/resources/server-jmx.xml | 7 +++++++ 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/monitor/GlobalLockMetrics.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/monitor/GlobalLockMetrics.java index eaebe3da6..d19689a49 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/monitor/GlobalLockMetrics.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/monitor/GlobalLockMetrics.java @@ -22,7 +22,12 @@ import org.springframework.jmx.support.MetricType; import com.mongodb.DBObject; import com.mongodb.Mongo; -@ManagedResource(description="Mongo Global Lock Metrics") +/** + * JMX Metrics for Global Locks + * @author Mark Pollack + * + */ +@ManagedResource(description="Global Lock Metrics") public class GlobalLockMetrics extends AbstractMonitor { @@ -35,7 +40,7 @@ public class GlobalLockMetrics extends AbstractMonitor { return getGlobalLockData("totalTime", java.lang.Double.class); } - @ManagedMetric(metricType = MetricType.COUNTER, displayName = "Lock time", unit="seconds") + @ManagedMetric(metricType = MetricType.COUNTER, displayName = "Lock time", unit="s") public double getLockTime() { return getGlobalLockData("lockTime", java.lang.Double.class); } @@ -64,14 +69,12 @@ public class GlobalLockMetrics extends AbstractMonitor { @SuppressWarnings("unchecked") private T getGlobalLockData(String key, Class targetClass) { DBObject globalLock = (DBObject) getServerStatus().get("globalLock"); - Object o = globalLock.get("totalTime"); return (T) globalLock.get(key); } private int getCurrentQueue(String key) { DBObject globalLock = (DBObject) getServerStatus().get("globalLock"); DBObject currentQueue = (DBObject) globalLock.get("currentQueue"); - Object o = currentQueue.get("total"); return (Integer) currentQueue.get(key); } } diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/monitor/OperationCounters.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/monitor/OperationCounters.java index b692c0cca..c9b68c61e 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/monitor/OperationCounters.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/monitor/OperationCounters.java @@ -22,7 +22,12 @@ import org.springframework.jmx.support.MetricType; import com.mongodb.DBObject; import com.mongodb.Mongo; -@ManagedResource(description="Mongo Operation Counters") +/** + * JMX Metrics for Operation counters + * @author Mark Pollack + * + */ +@ManagedResource(description="Operation Counters") public class OperationCounters extends AbstractMonitor { diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/monitor/ServerInfo.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/monitor/ServerInfo.java index 911413f1f..7e53b422e 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/monitor/ServerInfo.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/monitor/ServerInfo.java @@ -23,16 +23,15 @@ import org.springframework.jmx.export.annotation.ManagedOperation; import org.springframework.jmx.export.annotation.ManagedResource; import org.springframework.jmx.support.MetricType; -import com.mongodb.CommandResult; import com.mongodb.Mongo; /** - * Expose basic server information + * Expose basic server information via JMX * * @author Mark Pollack * */ -@ManagedResource(description="Mongo Server Information") +@ManagedResource(description="Server Information") public class ServerInfo extends AbstractMonitor { public ServerInfo(Mongo mongo) { diff --git a/spring-data-mongodb/src/test/resources/server-jmx.xml b/spring-data-mongodb/src/test/resources/server-jmx.xml index 342e2f613..75226d806 100644 --- a/spring-data-mongodb/src/test/resources/server-jmx.xml +++ b/spring-data-mongodb/src/test/resources/server-jmx.xml @@ -7,6 +7,7 @@ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> + @@ -16,8 +17,14 @@ + + + + + +