[FLINK-3180] [runtime] Log direct memory usage in MemoryLogger

- The off-heap stats reported by the memory logger didn't include direct memory.

This closes #1466


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/af996301
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/af996301
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/af996301

Branch: refs/heads/master
Commit: af996301756563e58df7559ca0d5e0e58a87145b
Parents: ba2aba8
Author: Ufuk Celebi <u...@apache.org>
Authored: Thu Dec 17 14:28:15 2015 +0100
Committer: Fabian Hueske <fhue...@apache.org>
Committed: Mon Dec 21 16:50:06 2015 +0100

----------------------------------------------------------------------
 .../taskmanager/taskmanager.metrics.jade        | 208 +++++++--------
 flink-runtime-web/web-dashboard/web/js/index.js |   4 +-
 .../taskmanager/taskmanager.metrics.html        | 258 ++++++++++---------
 .../flink/runtime/taskmanager/MemoryLogger.java |  47 +++-
 .../flink/runtime/taskmanager/TaskManager.scala |   4 +-
 5 files changed, 295 insertions(+), 226 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/af996301/flink-runtime-web/web-dashboard/app/partials/taskmanager/taskmanager.metrics.jade
----------------------------------------------------------------------
diff --git 
a/flink-runtime-web/web-dashboard/app/partials/taskmanager/taskmanager.metrics.jade
 
b/flink-runtime-web/web-dashboard/app/partials/taskmanager/taskmanager.metrics.jade
index 5c3047c..c546d74 100644
--- 
a/flink-runtime-web/web-dashboard/app/partials/taskmanager/taskmanager.metrics.jade
+++ 
b/flink-runtime-web/web-dashboard/app/partials/taskmanager/taskmanager.metrics.jade
@@ -15,110 +15,114 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 
+div(ng-if="metrics.id")
+  h1 Overview
+  table.table
+    thead
+      tr
+        th Data Port
+        th All Slots
+        th Free Slots
+        th CPU Cores
+        th Physical Memory
+        th Free Memory
+        th Flink Managed Memory
+    tbody
+      tr
+        td {{ metrics.dataPort }}
+        td {{ metrics.slotsNumber }}
+        td {{ metrics.freeSlots }}
+        td {{ metrics.cpuCores }}
+        td {{ metrics.physicalMemory | humanizeBytes }}
+        td {{ metrics.freeMemory | humanizeBytes }}
+        td {{ metrics.managedMemory | humanizeBytes }}
 
-table.table.table-properties(ng-if="metrics.id")
-  thead
-    tr
-      th Memory type / State
-      th Memory - Committed
-      th Memory - Initial
-      th Memory - Maximum
-  tbody
-    tr
-      td Heap
-      td(title="{{metrics.metrics.gauges['memory.heap.committed'].value}} 
bytes")
-        | {{metrics.metrics.gauges['memory.heap.committed'].value | 
humanizeBytes}}
-      td(title="{{metrics.metrics.gauges['memory.heap.init'].value}} bytes")
-        | {{metrics.metrics.gauges['memory.heap.init'].value | humanizeBytes}}
-      td(title="{{metrics.metrics.gauges['memory.heap.max'].value}} bytes")
-        | {{metrics.metrics.gauges['memory.heap.max'].value | humanizeBytes}}
-    tr
-      td Non-Heap
-      td(title="{{metrics.metrics.gauges['memory.non-heap.committed'].value}} 
bytes")
-        | {{metrics.metrics.gauges['memory.non-heap.committed'].value | 
humanizeBytes}}
-      td(title="{{metrics.metrics.gauges['memory.non-heap.init'].value}} 
bytes")
-        | {{metrics.metrics.gauges['memory.non-heap.init'].value | 
humanizeBytes}}
-      td(title="{{metrics.metrics.gauges['memory.non-heap.max'].value}} bytes")
-        | {{metrics.metrics.gauges['memory.non-heap.max'].value | 
humanizeBytes}}
-    tr
-      td Total
-      td(title="{{metrics.metrics.gauges['memory.total.committed'].value}} 
bytes")
-        | {{metrics.metrics.gauges['memory.total.committed'].value | 
humanizeBytes}}
-      td(title="{{metrics.metrics.gauges['memory.total.init'].value}} bytes")
-        | {{metrics.metrics.gauges['memory.total.init'].value | humanizeBytes}}
-      td(title="{{metrics.metrics.gauges['memory.total.max'].value}} bytes")
-        | {{metrics.metrics.gauges['memory.total.max'].value | humanizeBytes}}
+  h1 Memory
 
-table.table(ng-if="metrics.id")
-  thead
-    tr
-      th Data Port
-      th All Slots
-      th Free Slots
-      th CPU Cores
-      th Physical Memory
-      th Free Memory
-      th Flink Managed Memory
+  h2 JVM (Heap/Non-Heap)
+  table.table.table-properties
+    thead
+      tr
+        th Type
+        th Committed
+        th Initial
+        th Maximum
+    tbody
+      tr
+        td Heap
+        td {{metrics.metrics.gauges['memory.heap.committed'].value | 
humanizeBytes}}
+        td {{metrics.metrics.gauges['memory.heap.init'].value | humanizeBytes}}
+        td {{metrics.metrics.gauges['memory.heap.max'].value | humanizeBytes}}
+      tr
+        td Non-Heap
+        td {{metrics.metrics.gauges['memory.non-heap.committed'].value | 
humanizeBytes}}
+        td {{metrics.metrics.gauges['memory.non-heap.init'].value | 
humanizeBytes}}
+        td {{metrics.metrics.gauges['memory.non-heap.max'].value | 
humanizeBytes}}
+      tr
+        td Total
+        td {{metrics.metrics.gauges['memory.total.committed'].value | 
humanizeBytes}}
+        td {{metrics.metrics.gauges['memory.total.init'].value | 
humanizeBytes}}
+        td {{metrics.metrics.gauges['memory.total.max'].value | humanizeBytes}}
 
-  tbody
-    tr
-      td {{ metrics.dataPort }}
-      td {{ metrics.slotsNumber }}
-      td {{ metrics.freeSlots }}
-      td {{ metrics.cpuCores }}
-      td(title="{{metrics.physicalMemory}} bytes") {{ metrics.physicalMemory | 
humanizeBytes }}
-      td(title="{{metrics.freeMemory}} bytes") {{ metrics.freeMemory | 
humanizeBytes }}
-      td(title="{{metrics.managedMemory}} bytes") {{ metrics.managedMemory | 
humanizeBytes }}
+  h2 Outside JVM
+  table.table.table-properties
+    thead
+      tr
+        th Type
+        th Count
+        th Used
+        th Capacity
+    tbody
+      tr
+        td Direct
+        td {{ metrics.metrics.gauges['direct-memory.direct.count'].value }}
+        td {{ metrics.metrics.gauges['direct-memory.direct.used'].value | 
humanizeBytes }}
+        td {{ metrics.metrics.gauges['direct-memory.direct.capacity'].value | 
humanizeBytes }}
+      tr
+        td Mapped
+        td {{ metrics.metrics.gauges['direct-memory.mapped.count'].value }}
+        td {{ metrics.metrics.gauges['direct-memory.mapped.used'].value | 
humanizeBytes }}
+        td {{ metrics.metrics.gauges['direct-memory.mapped.capacity'].value | 
humanizeBytes }}
 
+  h1 Garbage Collection
+  table.table.table-properties
+    thead
+      tr
+        th Collector
+        th Count
+        th Time
+    tbody
+      tr
+        td PS-MarkSweep
+        td(table-property 
value="metrics.metrics.gauges['gc.PS-MarkSweep.count'].value")
+        td(table-property 
value="metrics.metrics.gauges['gc.PS-MarkSweep.time'].value | humanizeDuration")
+      tr
+        td PS-Scavenge
+        td(table-property 
value="metrics.metrics.gauges['gc.PS-Scavenge.count'].value")
+        td(table-property 
value="metrics.metrics.gauges['gc.PS-Scavenge.time'].value | humanizeDuration")
 
-.row(ng-if="metrics.id")
-  .col-md-6
-    table.table.table-properties
-      thead
-        tr
-          th(colspan="2")
-            | Memory - Pools
-
-      tbody
-        tr
-          td Code Cache
-          td(table-property 
value="metrics.metrics.gauges['memory.pools.Code-Cache.usage'].value | 
number:2")
-        tr
-          td Compressed Class Space
-          td(table-property 
value="metrics.metrics.gauges['memory.pools.Compressed-Class-Space.usage'].value
 | number:2")
-        tr
-          td Metaspace
-          td(table-property 
value="metrics.metrics.gauges['memory.pools.Metaspace.usage'].value | number:2")
-        tr
-          td PS Eden Space
-          td(table-property 
value="metrics.metrics.gauges['memory.pools.PS-Eden-Space.usage'].value | 
number:2")
-        tr
-          td PS Old Gen
-          td(table-property 
value="metrics.metrics.gauges['memory.pools.PS-Old-Gen.usage'].value | 
number:2")
-        tr
-          td PS Survivor Space
-          td(table-property 
value="metrics.metrics.gauges['memory.pools.PS-Survivor-Space.usage'].value | 
number:2")
-  .col-md-6
-    table.table.table-properties
-      thead
-        tr
-          th(colspan="2")
-            | Garbage Collection
-
-      tbody
-        tr
-          td PS-MarkSweep Count
-          td(table-property 
value="metrics.metrics.gauges['gc.PS-MarkSweep.count'].value")
-
-        tr
-          td PS-MarkSweep Time (ms)
-          td(table-property 
value="metrics.metrics.gauges['gc.PS-MarkSweep.time'].value")
-
-        tr
-          td PS-Scavenge Count
-          td(table-property 
value="metrics.metrics.gauges['gc.PS-Scavenge.count'].value")
-
-        tr
-          td PS-Scavenge Time (ms)
-          td(table-property 
value="manager.metrics.gauges['gc.PS-Scavenge.time'].value")
-
+  h1 Other Memory Pools
+  table.table.table-properties
+    thead
+      tr
+        th Pool
+        td Relative Usage
+    tbody
+      tr
+        td Code Cache
+        td(table-property 
value="metrics.metrics.gauges['memory.pools.Code-Cache.usage'].value | 
number:2")
+      tr
+        td Compressed Class Space
+        td(table-property 
value="metrics.metrics.gauges['memory.pools.Compressed-Class-Space.usage'].value
 | number:2")
+      tr
+        td Metaspace
+        td(table-property 
value="metrics.metrics.gauges['memory.pools.Metaspace.usage'].value | number:2")
+      tr
+        td PS Eden Space
+        td(table-property 
value="metrics.metrics.gauges['memory.pools.PS-Eden-Space.usage'].value | 
number:2")
+      tr
+        td PS Old Gen
+        td(table-property 
value="metrics.metrics.gauges['memory.pools.PS-Old-Gen.usage'].value | 
number:2")
+      tr
+        td PS Survivor Space
+        td(table-property 
value="metrics.metrics.gauges['memory.pools.PS-Survivor-Space.usage'].value | 
number:2")

Reply via email to