Status
...
Page properties | |
---|---|
|
...
...
|
...
|
Motivation
It is desirable to provide better visibility into the distribution of CPU resources while executing user code. One of the most visually effective means to do that are Flame Graphs. They allow to easily answer question like:
Which methods are currently consuming CPU resources?
How consumption by one method compares to the others?
Which series of calls on the stack led to executing a particular method?
...
Flame Graphs are constructed by sampling stack traces a number of times. Every method call is presented by a bar, where the length of the bar is proportional to the number of times it is present in the samples.
...
in order to retrieve a “live” ExecutionGraph
, proposed implementation can instead utilize an ArchivedExecutionGraph
. It is already available in the web monitor endpoint and can be directly used for localizing operator’s Tasks
and their corresponding TaskExecutors
. ThreadInfoRequestCoordinator
can therefore be initialized and executed as part of the WebMonitorEndpoint
instead of “polluting” adding non-core functionality to the JobManagerSharedServices
with non-core functionality.
Call flow is illustrated by the following sequence diagram (click to zoom):
A new method is added to the TaskExecutorGateway
interface:
...