Extending flow execution probes

Skip to end of metadata
Go to start of metadata

Table of contents

Probes

Probes are using during the execution life cycle of a flow. A probe provides a simple mechanism to monitor events during the execution life cycle of a flow. The events being monitored by a probe are:

  • Flow started executing
  • Flow finished executing
  • Flow aborted execution
  • The executable component requested execution abortion
  • The executable component has been initialized
  • The executable component has been initialized
  • The executable component has push a piece of data
  • The executable component has pull a piece of data
  • The executable component got a property value
  • The executable component is being fired
  • The executable component is cooling down

Where the executable component events are track for all the instances that form the flow.

The Probe Interface

All the probes implement the following basic API.

Probe interface

Creating and Using Your Own Probes

When a specific probe is not provided by the infrastructure and a developer wants to provide one to monitor the flow on his/her own terms, the following steps must be followed:

  1. Implement a Java class that implements the interface presented above.
  2. Remember that a probe object will be created per flow execution, and that initialize and dispose will be call before and after the flow execution.
  3. Compile the probe.
  4. Add a entry to the probe configuration file for the new probe where the key is the logic name of the probe (see Meandre server configuration files for more details about the configuration file).
  5. Add the compiled probe to the class path of Meandre Server (restart the server if appropriate).

Now the probe is available and can be used by the Meandre Server. To use the provided probe during the execution of a flow invoke the proper service adding logic name=true on the parameter list. For instance if we created a probe that has been assign the logic name foo on the probe configuration file, a flow using that probe could be executed using the call

The call shown above would execute the flow meandre://test.org/flow/test using three probes:

  1. statistics (provided by the infrastructure which gathers various statistics about the flow execution)
  2. rdf (provided by the infrastructure which generates a RDF model with the execution provenance of the flow, including all the data pass and component states)
  3. foo (the external probe provided)
Labels:
None
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.