Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The high-level workflow could be summarized as follows:

Image Modified

  1. During initialization(in the open method), the base metric group information will be sent to the Python Operator. The information includes metric group variables, metric components and delimiter which is used to construct the metric identifiers. 
  2. Based on the metric group information, we can reconstruct the base metric group and do metric registrations on the Python side.
  3. Process input elements.
  4. Update metrics in the Python UDFs.
  5. Transmit metrics from Python to Java on finishBundle(). Currently, we have a time and a size limit for each bundle. Since the time limit is usually not too big(default 1s), we can leverage the bundle to transmit metrics from Python to Java. This also brings performance benefits since we don’t have to report metrics for each record. 
  6. Update the metric on the Java side.

...