diff --git a/src/main/java/com/couchbase/spring/monitor/ClusterInfo.java b/src/main/java/com/couchbase/spring/monitor/ClusterInfo.java index 89c648e9..7cdc0bc9 100644 --- a/src/main/java/com/couchbase/spring/monitor/ClusterInfo.java +++ b/src/main/java/com/couchbase/spring/monitor/ClusterInfo.java @@ -1,10 +1,13 @@ package com.couchbase.spring.monitor; import com.couchbase.client.CouchbaseClient; +import org.springframework.jmx.export.annotation.ManagedAttribute; import org.springframework.jmx.export.annotation.ManagedOperation; import org.springframework.jmx.export.annotation.ManagedResource; - import java.net.SocketAddress; +import java.util.List; +import java.util.Map; +import java.util.Set; /** * Exposes basic cluster information. @@ -16,7 +19,7 @@ public class ClusterInfo extends AbstractMonitor { super(client); } - @ManagedOperation(description = "Cluster Hostnames") + @ManagedAttribute(description = "All hostnames of nodes in the cluster") public String getHostNames() { StringBuilder result = new StringBuilder(); for (SocketAddress node : getStats().keySet()) { @@ -25,9 +28,22 @@ public class ClusterInfo extends AbstractMonitor { return result.toString(); } - @ManagedOperation(description = "Number of Nodes") + @ManagedAttribute(description = "Number of nodes currently in the cluster") public int getNumberOfNodes() { return getStats().keySet().size(); } + @ManagedAttribute(description = "Couchbase Server versions of nodes in the cluster") + public String getNodeVersions() { + StringBuilder result = new StringBuilder(); + for(Map.Entry> entry : getStats().entrySet()) { + for(Map.Entry stat : entry.getValue().entrySet()) { + if (stat.getKey().equals("ep_version")) { + result.append(stat.getValue()).append(","); + } + } + } + return result.toString(); + } + } diff --git a/src/test/java/com/couchbase/spring/core/CouchbaseTemplateTest.java b/src/test/java/com/couchbase/spring/core/CouchbaseTemplateTest.java index ae82af15..71db4970 100644 --- a/src/test/java/com/couchbase/spring/core/CouchbaseTemplateTest.java +++ b/src/test/java/com/couchbase/spring/core/CouchbaseTemplateTest.java @@ -147,17 +147,6 @@ public class CouchbaseTemplateTest { assertEquals(votes, response.getVotes()); assertEquals(id, response.getId()); } - - @Test - public void funStuff() { - Map> stats = client.getStats(); - for(Map.Entry> entry : stats.entrySet()) { - - for(Map.Entry inner : entry.getValue().entrySet()) { - System.out.println(inner); - } - } - } /** * A sample document with just an id and property.