6. Filter tooling: debugging tools#

Status#

Draft

Context#

By accessing in-memory models and other objects, filters have a large surface area for breaking. To minimize this, it is necessary that the filter framework allows for good monitoring, logging, and debugging capabilities.

Measuring performance is best accomplished by having persisted data that can be used for statistical analysis.

Decisions#

1. Tooling for debugging must be able to be turned on/off per filter and in straightforward way in the same way that filters are normally configured.

2. Logging tools for the pipeline execution must allow that a developer logs both a filter function individually at its step and together with other functions called before or after in the same pipeline run.

3. It should be possible to send performance data to external services such as sentry or newrelic.

Consequences#

  1. The OpenEdxPublicFilters class must implement different logging strategies.

2. There will possibly be a dependency on some third-party tools for data aggregation.