You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sirona.apache.org by ol...@apache.org on 2013/11/11 07:32:58 UTC

svn commit: r1540615 - in /incubator/sirona/trunk: agent/pull/src/test/java/org/apache/sirona/agent/webapp/pull/ core/src/main/java/org/apache/sirona/gauges/jvm/ core/src/main/java/org/apache/sirona/repositories/ server/reporting/src/main/java/org/apac...

Author: olamy
Date: Mon Nov 11 06:32:58 2013
New Revision: 1540615

URL: http://svn.apache.org/r1540615
Log:
add a Gauge for heap off memory usage

Added:
    incubator/sirona/trunk/core/src/main/java/org/apache/sirona/gauges/jvm/UsedNonHeapMemoryGauge.java   (with props)
Modified:
    incubator/sirona/trunk/agent/pull/src/test/java/org/apache/sirona/agent/webapp/pull/PullAnswerTest.java
    incubator/sirona/trunk/core/src/main/java/org/apache/sirona/repositories/DefaultRepository.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/jvm/JVMEndpoints.java
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/jvm/jvm.vm

Modified: incubator/sirona/trunk/agent/pull/src/test/java/org/apache/sirona/agent/webapp/pull/PullAnswerTest.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/pull/src/test/java/org/apache/sirona/agent/webapp/pull/PullAnswerTest.java?rev=1540615&r1=1540614&r2=1540615&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/pull/src/test/java/org/apache/sirona/agent/webapp/pull/PullAnswerTest.java (original)
+++ incubator/sirona/trunk/agent/pull/src/test/java/org/apache/sirona/agent/webapp/pull/PullAnswerTest.java Mon Nov 11 06:32:58 2013
@@ -37,12 +37,12 @@ public class PullAnswerTest {
     public void json() {
         final JSONArray snapshotJson = JSONArray.class.cast(
             JSONSerializer.toJSON(createRepo().snapshot().replaceAll("\"time\": \"[^\"]*\"", "\"time\": \"assert\"").replaceAll("\"marker\": \"[^\"]*\"", "\"marker\": \"ubuntu\"")));
-        assertEquals(8, snapshotJson.size());
+        assertEquals(9, snapshotJson.size());
 
         final Collection<Integer> counters = new LinkedList<Integer>();
         final Collection<String> gauges = new LinkedList<String>();
         final Collection<String> validations = new LinkedList<String>();
-        for (int i = 0; i < 8; i++) {
+        for (int i = 0; i < 9; i++) {
             final JSONObject object = JSONObject.class.cast(snapshotJson.get(i));
             final Object type = object.get("type");
             final JSONObject data = JSONObject.class.cast(object.get("data"));

Added: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/gauges/jvm/UsedNonHeapMemoryGauge.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/gauges/jvm/UsedNonHeapMemoryGauge.java?rev=1540615&view=auto
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/gauges/jvm/UsedNonHeapMemoryGauge.java (added)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/gauges/jvm/UsedNonHeapMemoryGauge.java Mon Nov 11 06:32:58 2013
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sirona.gauges.jvm;
+
+import org.apache.sirona.Role;
+import org.apache.sirona.counters.Unit;
+
+public class UsedNonHeapMemoryGauge
+    extends BaseMemoryGauge {
+    public static final Role USED_NONHEAPMEMORY = new Role("Used Non Heap Memory", Unit.UNARY);
+
+    @Override
+    public Role role() {
+        return USED_NONHEAPMEMORY;
+    }
+
+    @Override
+    public double value() {
+        return MEMORY_MX_BEAN.getNonHeapMemoryUsage().getUsed();
+    }
+}

Propchange: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/gauges/jvm/UsedNonHeapMemoryGauge.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/gauges/jvm/UsedNonHeapMemoryGauge.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/repositories/DefaultRepository.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/repositories/DefaultRepository.java?rev=1540615&r1=1540614&r2=1540615&view=diff
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/repositories/DefaultRepository.java (original)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/repositories/DefaultRepository.java Mon Nov 11 06:32:58 2013
@@ -24,6 +24,7 @@ import org.apache.sirona.gauges.DefaultG
 import org.apache.sirona.gauges.Gauge;
 import org.apache.sirona.gauges.GaugeManager;
 import org.apache.sirona.gauges.jvm.CPUGauge;
+import org.apache.sirona.gauges.jvm.UsedNonHeapMemoryGauge;
 import org.apache.sirona.gauges.jvm.UsedMemoryGauge;
 import org.apache.sirona.status.NodeStatus;
 import org.apache.sirona.stopwatches.CounterStopWatch;
@@ -77,6 +78,7 @@ public class DefaultRepository implement
         if (Configuration.is(Configuration.CONFIG_PROPERTY_PREFIX + "core.gauge.activated", true)) {
             addGauge(new CPUGauge());
             addGauge(new UsedMemoryGauge());
+            addGauge(new UsedNonHeapMemoryGauge());
         }
     }
 

Modified: incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/jvm/JVMEndpoints.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/jvm/JVMEndpoints.java?rev=1540615&r1=1540614&r2=1540615&view=diff
==============================================================================
--- incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/jvm/JVMEndpoints.java (original)
+++ incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/jvm/JVMEndpoints.java Mon Nov 11 06:32:58 2013
@@ -18,6 +18,7 @@ package org.apache.sirona.reporting.web.
 
 import org.apache.sirona.gauges.jvm.CPUGauge;
 import org.apache.sirona.gauges.jvm.UsedMemoryGauge;
+import org.apache.sirona.gauges.jvm.UsedNonHeapMemoryGauge;
 import org.apache.sirona.reporting.web.handler.api.Regex;
 import org.apache.sirona.reporting.web.handler.api.Template;
 import org.apache.sirona.util.Environment;
@@ -43,7 +44,9 @@ public class JVMEndpoints {
             params.put("version", os.getVersion());
             params.put("numberProcessor", os.getAvailableProcessors());
             params.put("maxMemory", memory.getHeapMemoryUsage().getMax());
-            params.put("initMemory", memory.getHeapMemoryUsage().getInit());
+            params.put( "initMemory", memory.getHeapMemoryUsage().getInit() );
+            params.put("maxNonHeapMemory", memory.getNonHeapMemoryUsage().getMax());
+            params.put("initNonHeapMemory", memory.getNonHeapMemoryUsage().getInit());
         }
         return new Template("jvm/jvm.vm", params);
     }
@@ -57,4 +60,9 @@ public class JVMEndpoints {
     public String memory(final long start, final long end) {
         return generateReport("Used Memory", UsedMemoryGauge.USED_MEMORY, start, end);
     }
+
+    @Regex("/nonheapmemory/([0-9]*)/([0-9]*)")
+    public String nonHeapmemory(final long start, final long end) {
+        return generateReport("Used Non Heap Memory", UsedNonHeapMemoryGauge.USED_NONHEAPMEMORY, start, end);
+    }
 }

Modified: incubator/sirona/trunk/server/reporting/src/main/resources/templates/jvm/jvm.vm
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/src/main/resources/templates/jvm/jvm.vm?rev=1540615&r1=1540614&r2=1540615&view=diff
==============================================================================
--- incubator/sirona/trunk/server/reporting/src/main/resources/templates/jvm/jvm.vm (original)
+++ incubator/sirona/trunk/server/reporting/src/main/resources/templates/jvm/jvm.vm Mon Nov 11 06:32:58 2013
@@ -60,6 +60,29 @@
             </div>
             #end
         </div>
+
+        <div class="col-lg-6">
+            #graphBlock("Used Non Heap Memory", "nonheapmemory")
+
+            #if ($initMemory)
+                <div class="panel panel-primary">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">
+                            <i class="icon-table"></i>Memory Status
+                        </h3>
+                    </div>
+                    <div class="panel-body">
+                        <table id="memory-table" class="table table-bordered table-striped table-hover">
+                            <tbody>
+                            <tr><td>Init</td><td>$initNonHeapMemory</td></tr>
+                            <tr><td>Max</td><td>$maxNonHeapMemory</td></tr>
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+            #end
+        </div>
+
     </div>
 </div>
 
@@ -113,5 +136,6 @@
         // update diagram when clicking on update buttons
         Sirona.initGraph("$mapping", 'jvm', 'cpu', cpuOptions);
         Sirona.initGraph("$mapping", 'jvm', 'memory', memoryOptions);
+        Sirona.initGraph("$mapping", 'jvm', 'nonheapmemory', memoryOptions);
     });
 </script>