You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by mr...@apache.org on 2016/06/02 17:07:50 UTC
[32/54] [abbrv] usergrid git commit: Add status/memory endpoint to
get heap usage, max heap, and free heap.
Add status/memory endpoint to get heap usage, max heap, and free heap.
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/02352dff
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/02352dff
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/02352dff
Branch: refs/heads/apm
Commit: 02352dff0ba164dfcf2789457c0c65e0deee8771
Parents: a8ba65f
Author: Mike Dunker <md...@apigee.com>
Authored: Thu Apr 21 10:08:25 2016 -0700
Committer: Mike Dunker <md...@apigee.com>
Committed: Thu Apr 21 10:08:25 2016 -0700
----------------------------------------------------------------------
.../org/apache/usergrid/utils/StringUtils.java | 8 +++++++
.../org/apache/usergrid/rest/RootResource.java | 23 ++++++++++++++++++++
2 files changed, 31 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/02352dff/stack/core/src/main/java/org/apache/usergrid/utils/StringUtils.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/utils/StringUtils.java b/stack/core/src/main/java/org/apache/usergrid/utils/StringUtils.java
index b91b866..6bb44d8 100644
--- a/stack/core/src/main/java/org/apache/usergrid/utils/StringUtils.java
+++ b/stack/core/src/main/java/org/apache/usergrid/utils/StringUtils.java
@@ -17,6 +17,7 @@
package org.apache.usergrid.utils;
+import java.text.DecimalFormat;
import java.util.Arrays;
import org.apache.commons.io.IOUtils;
@@ -169,4 +170,11 @@ public class StringUtils extends org.apache.commons.lang.StringUtils {
}
return null;
}
+
+ public static String readableByteSize(long size) {
+ if(size <= 0) return "0";
+ final String[] units = new String[] { "B", "kB", "MB", "GB", "TB" };
+ int digitGroups = (int) (Math.log10(size)/Math.log10(1024));
+ return new DecimalFormat("#,##0.#").format(size/Math.pow(1024, digitGroups)) + " " + units[digitGroups];
+ }
}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/02352dff/stack/rest/src/main/java/org/apache/usergrid/rest/RootResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/RootResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/RootResource.java
index 75ed567..9701105 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/RootResource.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/RootResource.java
@@ -248,6 +248,29 @@ public class RootResource extends AbstractContextResource implements MetricProce
}
+ @GET
+ @Path("/status/memory")
+ @JSONP
+ @Produces({MediaType.APPLICATION_JSON, "application/javascript"})
+ public ApiResponse getMemoryStats(){
+
+ ApiResponse response = createApiResponse();
+
+ ObjectNode node = JsonNodeFactory.instance.objectNode();
+
+ long heapSize = Runtime.getRuntime().totalMemory();
+ long heapMaxSize = Runtime.getRuntime().maxMemory();
+ long heapFreeSize = Runtime.getRuntime().freeMemory();
+
+ node.put( "currentHeap", org.apache.usergrid.utils.StringUtils.readableByteSize(heapSize) );
+ node.put( "maxHeap", org.apache.usergrid.utils.StringUtils.readableByteSize(heapMaxSize) );
+ node.put( "freeHeap", org.apache.usergrid.utils.StringUtils.readableByteSize(heapFreeSize) );
+
+ response.setProperty( "status", node );
+ return response;
+
+ }
+
private void dumpMetrics( ObjectNode node ) {