[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")