flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-1792) Improve TM Monitoring: CPU utilization, hide graphs by default and show summary only
Date Mon, 04 May 2015 08:53:07 GMT

    [ https://issues.apache.org/jira/browse/FLINK-1792?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14526429#comment-14526429
] 

ASF GitHub Bot commented on FLINK-1792:
---------------------------------------

Github user rmetzger commented on a diff in the pull request:

    https://github.com/apache/flink/pull/553#discussion_r29572548
  
    --- Diff: flink-runtime/src/main/scala/org/apache/flink/runtime/taskmanager/TaskManager.scala
---
    @@ -129,6 +130,41 @@ class TaskManager(val connectionInfo: InstanceConnectionInfo,
         override def getValue: Double =
           ManagementFactory.getOperatingSystemMXBean().getSystemLoadAverage()
       })
    +
    +  // Preprocessing steps for registering cpuLoad
    +  // fetch the method to get process CPU load
    +  val getCPULoadMethod: Method = getMethodToFetchCPULoad()
    +
    +  // define the fetchCPULoad method as per the fetched getCPULoadMethod
    +  val fetchCPULoad: (Any) => Double = if (getCPULoadMethod != null) {
    +    (obj: Any) => getCPULoadMethod.invoke(obj).asInstanceOf[Double]
    +  } else {
    +    (obj: Any) => {
    +      log.warning("getProcessCpuLoad method not available in the Operating System Bean"
+
    +        "implementation for this Java runtime environment",Thread.currentThread().getStackTrace)
    +      -1
    +    }
    +  }
    +
    +  metricRegistry.register("cpuLoad", new Gauge[Double] {
    +    override def getValue: Double = {
    +      try{
    +        val osMXBean = ManagementFactory.getOperatingSystemMXBean().
    +          asInstanceOf[com.sun.management.OperatingSystemMXBean]
    +        return fetchCPULoad(osMXBean)
    +      } catch {
    +        case t:Throwable => {
    +          if (t.isInstanceOf[java.lang.ClassCastException]){
    --- End diff --
    
    I'm not a Scala expert, but I think you can avoid the t.isInstanceOf by matching the exception
with the pattern matching (case ..)


> Improve TM Monitoring: CPU utilization, hide graphs by default and show summary only
> ------------------------------------------------------------------------------------
>
>                 Key: FLINK-1792
>                 URL: https://issues.apache.org/jira/browse/FLINK-1792
>             Project: Flink
>          Issue Type: Sub-task
>          Components: Webfrontend
>    Affects Versions: 0.9
>            Reporter: Robert Metzger
>            Assignee: Sachin Bhat
>
> As per https://github.com/apache/flink/pull/421 from FLINK-1501, there are some enhancements
to the current monitoring required
> - Get the CPU utilization in % from each TaskManager process
> - Remove the metrics graph from the overview and only show the current stats as numbers
(cpu load, heap utilization) and add a button to enable the detailed graph.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message