Table of Contents
The hackyCore_Telemetry module in the Hackystat system provides the implementation of Software Project Telemetry. As discussed in Section 5.3.7, “Why is this language so complicated?”, a key design feature of Software Project Telemetry is to not hard-wire a specific set of atomic metric analyses, but rather allow developers to specify the "alphabet" of the Telemetry Definition Language through extension points.
Software Project Telemetry provides two extensions points: Telemetry Reduction Functions and Telemetry Filter Functions. (Sometimes you will see reference to "Reducers", which is a nickname in the system for reduction functions.)
Telemetry Reduction Functions are Java classes that implement the TelemetryReducer interface. The key property of a Telemetry Reduction Function is that it accepts a set of strings and returns a collection of Telemetry Stream instances. Reduction functions are used to build Telemetry Streams objects, and this usage is described further in Section 5.4, “Defining Telemetry Streams”.
Telemetry Filter Functions are Java classes that implement the TelemetryFilter interface. The key property of a Telemetry Filter Function is that it accepts a collection of Telemetry Stream instances, and returns a (typically smaller) collection of Telemetry Stream instances. Section 5.3.6, “Telemetry Filter Functions” provides motivation for and an introduction to the use of filter functions.