MonitorGraph
Jobflow Component
Short Description
MonitorGraph allows watching of running graphs. Component can either wait for a final execution status or periodically monitor the current execution status.
Same input metadata | Sorted inputs | Inputs | Outputs | Each to all outputs | Java | CTL | Auto-propagated metadata |
---|---|---|---|---|---|---|---|
⨯ |
⨯ |
0-1 |
0-2 |
✓ |
⨯ |
✓ |
✓ |
Ports
Port type | Number | Required | Description | Metadata |
---|---|---|---|---|
Input |
0 |
⨯ |
Input tokens with identification of monitored graph. |
Any |
Output |
0 |
⨯ |
Execution information for successful graphs. |
Any |
1 |
⨯ |
Execution information for unsuccessful graphs. |
Any |
Metadata
MonitorGraph does not propagate metadata from left to right or from right to left.
This component has metadata templates. The templates are described in Details. See general details on metadata templates.
MonitorGraph Attributes
Attribute | Req | Description | Possible values |
---|---|---|---|
Basic |
|||
Graph URL |
no |
The path to a graph which represents a typical monitored graph. The graph referenced by this attribute is also used for all mapping dialogs - they display dictionary entries and tracking information based on this graph. |
|
Timeout |
no |
The maximal amount of time dedicated for graph run; by default in milliseconds, but other time units may be used. If the graph is running longer than the time specified in this attribute, the current graph information with TIMEOUT status is send to the error output port. This is just a default value for all graph monitors. It can be overridden in input mapping individually for each graph monitor. By default, the value of this attribute is not specified meaning the component waits indefinitely. If set to 0, it aborts the target job execution immediately. |
not specified | 0 | positive number |
Monitoring interval |
no |
Whenever time specified in this attribute elapses, the graph monitor sends an actual graph status information to the first output port. The interval is in milliseconds by default, but other time units may be used. By default, only final graph results are sent to output ports. This is just a default value for all graph monitors. It can be overridden in the input mapping individually for each graph monitor. |
none (default) | positive number |
Input mapping |
no |
Input mapping defines how to extract run ID and other graph monitor settings from incoming token. See Input Mapping. |
CTL transformation |
Output mapping |
no |
Output mapping maps results of successful graphs to the first output port. Output mapping is used also for sending of current status in case the monitoring interval is specified. See Output mapping. |
CTL transformation |
Error mapping |
no |
The error mapping maps results of unsuccessful graphs to the second output port. See Error mapping. |
CTL transformation |
Redirect error output |
no |
By default, results of failed graphs are sent to the second output port (error port). If this switch is true, results of unsuccessful graphs are sent to the first output port in the same way as successful graphs. |
false (default) | true |
Advanced |
|||
Run ID |
no |
Statically defined run ID of monitored graph. This attribute is usually overridden in the input mapping by data from an incoming token. |
string |
Details
The MonitorGraph component allows watching of running graphs. Each incoming token triggers a new monitor of a graph specified by run ID extracted from the token. It is possible to monitor multiple graphs at once.
A single graph monitor watches the graph and waits for it to finish. When the graph is finished running, graph results are sent to the output port in the same manner as in ExecuteGraph component; results of successful graphs are sent to the first output port and unsuccessful graphs are sent to the second output port. Moreover, whenever time specified in the monitoring interval attribute elapses, the graph monitors send current graph status information even for still running graphs.
In case no input port is attached, only one graph is monitored with the settings specified in component’s attributes. In case the first output port is not connected, the component just prints out the graph results to the log. In case the second output port (error port) is not attached, the first graph that fails would cause interruption of the parent job.
Input mapping defines how to extract run ID and other settings of the graph monitor from incoming token. Whenever graph results or actual graph status need to be mapped to output ports, output mapping and error mapping attributes are used to populate output tokens. Information available in graph results comprise mainly of general runtime information, dictionary content and tracking information.
Only graphs executed by the current jobflow (direct children) can be watched by the MonitorGraph component. |
Input Mapping
Input mapping is a regular CTL transformation which is executed for each incoming token to specify the run ID of monitored graph and settings of respective graph monitor. Available output fields:
Field Name | Type | Description |
---|---|---|
runId |
long |
Run ID of monitored graph. Overrides component attribute Run ID. |
timeout |
long |
Overrides component attribute Timeout. |
monitoringInterval |
long |
Overrides component attribute Monitoring interval. |
Output mapping
Output mapping is a regular CTL transformation which is used to populate token passed to the first output port. The mapping is executed for successful graphs or for current status of still running graphs, which is sent in case monitoring interval is specified. More details about input records for this output mapping is available in documentation for the ExecuteGraph component.
The graph monitor finishes watching the graph after the graph is complete or timeout elapses. Another option how to stop graph monitoring is to return STOP constant in output mapping.
Error mapping
Error mapping is almost identical to output mapping. This error mapping is used only if the graph finished unsuccessfully or timeout elapsed. The second output port is populated by error mapping.