Reflection
The Hop Reflection plugin adds easy ways for you to get more information about what’s going on inside your pipelines or workflows. It offers 3 main ways of reflecting on what’s going on during execution:
Log pipeline and transform execution information
Log workflow and action execution information
Listen to what the output is of a particular transform
Pipeline Log
You can have a pipeline and its transforms log what it’s doing by creating a new Pipeline Log
metadata object. For each metadata object of this type you create Hop will execute a pipeline of your choice. It will pass runtime information of all your pipelines to it. These are the options:
Options
Option | Description |
---|---|
Name | The name of the metadata object |
Enabled | Use this to enable or disable pipeline logging for this object |
Logging parent pipelines only? | If you enable this only the parent pipelines, executed by Hop Run, GUI, Server or API will be logged. When disabled every pipeline will be logged with the exclusion of logging and data probing pipelines obviously. |
Pipeline executed to capture logging | The filename of the pipeline which will get executed every time a pipeline is executed. You can hit the |
Execute at the start of a pipeline? | Execute right before a pipeline starts. The loggingPhase field of the |
Execute at the end of a pipeline? | Execute after the pipeline finished execution. The loggingPhase field of the |
Execute periodically during execution? | Enable this flag if you want to be kept apprised of long-running pipelines. The logging pipeline specified above will be called at regular intervals. The loggingPhase field of the |
Interval in seconds | The interval of the period execution of the logging pipeline |
Transform
The Pipeline Logging
transform only has one option at this time:
- Also log transform details : besides information about a running pipeline it will give you a series of fields detailed below per running or finished transform copy.
Field | Type | Level | Description |
---|---|---|---|
loggingDate | Date | Pipeline | Logging date |
loggingPhase | String | Pipeline | Logging phase (see above) |
pipelineName | String | Pipeline | Name of the pipeline |
pipelineFilename | String | Pipeline | Filename of the pipeline |
pipelineStart | Date | Pipeline | Start date of the pipeline |
pipelineEnd | Date | Pipeline | End date of the pipeline |
pipelineLogChannelId | String | Pipeline | Pipeline log channel ID |
parentLogChannelId | String | Pipeline | Parent log channel ID |
pipelineLogging | String | Pipeline | Logging text of the pipeline |
pipelineErrorCount | Integer | Pipeline | Number of errors |
pipelineStatusDescription | String | Pipeline | Pipeline status description |
transformName | String | Transform | Name of the transform |
transformCopyNr | Integer | Transform | Copy number of the transform |
transformStatusDescription | String | Transform | Transform status description |
transformLogChannelId | String | Transform | Transform log channel ID |
transformLoggingText | String | Transform | Transform logging text |
transformLinesRead | Integer | Transform | Number of lines read |
transformLinesWritten | Integer | Transform | Number of lines written |
transformLinesInput | Integer | Transform | Number of lines input |
transformLinesOutput | Integer | Transform | Number of lines output |
transformLinesUpdated | Integer | Transform | Number of lines updated |
transformLinesRejected | Integer | Transform | Number of lines rejected by error handling |
transformErrors | Integer | Transform | Number of errors |
transformStart | Date | Transform | Execution start |
transformEnd | Date | Transform | Execution end |
transformDuration | Integer | Transform | Execution duration in ms |
Workflow Log
You can have a workflow and its actions log what it’s doing by creating a new Workflow Log
metadata object. For each metadata object of this type you create Hop will execute a pipeline of your choice. It will pass runtime information of all your workflows to it. These are the options:
Options
Option | Description |
---|---|
Name | The name of the metadata object |
Enabled | Use this to enable or disable workflow logging for this object |
Logging parent workflows only? | If you enable this only the parent pipelines, executed by Hop Run, GUI, Server or API will be logged. When disabled every workflow execution will be logged. |
Pipeline executed to capture logging | The filename of the pipeline which will get executed every time a workflow is executed. You can hit the |
Execute at the start of a workflow? | Execute right before a workflow starts. The loggingPhase field of the |
Execute at the end of a workflow? | Execute after the workflow finished execution. The loggingPhase field of the |
Execute periodically during execution? | Enable this flag if you want to be kept apprised of long-running workflows. The logging pipeline specified above will be called at regular intervals. The loggingPhase field of the |
Interval in seconds | The interval of the period execution of the logging pipeline |
Transform
The Workflow Logging
transform only has one option at this time:
- Also log action details : besides information about a running workflow it will give you a series of fields detailed below per running or finished action.
Field | Type | Level | Description |
---|---|---|---|
loggingDate | Date | Workflow | Logging date |
loggingPhase | String | Workflow | Logging phase (see above) |
workflowName | String | Workflow | Workflow name |
workflowFilename | String | Workflow | Workflow filename |
workflowStart | Date | Workflow | Execution start |
workflowEnd | Date | Workflow | Execution end |
workflowLogChannelId | String | Workflow | Workflow log channel ID |
workflowParentLogChannelId | String | Workflow | Parent log channel ID |
workflowLogging | String | Workflow | Logging text of the workflow |
workflowErrorCount | Integer | Workflow | Number of errors |
workflowStatusDescription | String | Workflow | Workflow status description |
actionName | String | Action | Action name |
actionNr | Integer | Action | Action number |
actionResult | Boolean | Action | Result (true/false) |
actionLogChannelId | String | Action | Log channel ID of the action |
actionLoggingText | String | Action | Logging text of the action |
actionErrors | Integer | Action | Number of errors |
actionLogDate | Date | Action | Action logging date |
actionDuration | Integer | Action | Action duration |
actionExitStatus | Integer | Action | Action exit status (of shell scripts) |
actionNrFilesRetrieved | Integer | Action | Number of files retrieved (from remote systems) |
actionFilename | String | Action | The filename of the action (if there is any referenced) |
actionComment | String | Action | Action comment |
actionReason | String | Action | Action reason |
Pipeline Probe
You can have the output of one or more pipeline transforms streamed to another pipeline in a normalized fashion. You can do this by creating a Pipeline Probe
metadata object. These are its options:
Options
Option | Description |
---|---|
Name | The name of the pipeline probe |
Enabled | When enabled data from all the specified pipeline transforms will be streamed to the specified pipeline |
Pipeline executed to capture data | The filename of the pipeline which will get executed every time a specified source pipeline is execute containing the specified source transform. |
Capture output of the following transforms | You can specify a set of |
Please note that to add capture sources you can use a transform action called Add data probe
in the Preview
section of the context dialog.
Transform
Field name | Type | Description |
---|---|---|
sourcePipelineName | String | THe name of the pipeline where this data originates |
sourceTransformLogChannelId | String | The log channel ID of the source transform |
sourceTransformName | String | The name of the source transform |
sourceTransformCopy | Integer | The copy number of the source transform |
rowNr | Integer | The source row number. You have one or more fields per source row. |
fieldName | String | The field name |
fieldType | String | The field type |
fieldFormat | String | The field format |
fieldLength | Integer | The field length |
fieldPrecision | Integer | The field precision |
value | String | The value in String format |