24.8. Reduction Function (*.telemetry.def.xml)

A file named <moduleName>.<reductionFunctionName>.telemetry.def.xml defines one or more reduction functions. Reduction functions are the primitive building blocks of the Telemetry Definition Language, which is used to create telemetry streams and charts. This extension point requires a file pattern of "*.telemetry.def.xml" in order to be recognized by the build system.

Example 24.8, “hackySdt_FileMetric.filemetric.telemetry.def.xml” illustrates an example Telemetry definition file for the File Metric sensor data type

Example 24.8. hackySdt_FileMetric.filemetric.telemetry.def.xml

<TelemetryReducers>

  <!-- Single-Stream Reducer -->
  <Reducer name="FileMetric" 
           class="org.hackystat.sdt.filemetric.reducer.FileMetricReducer"
           reducerDescription="Computes single stream representing project generic file metrics information."
           optionDescription="(1) FileType, such as '*', 'Java', 'C', 'Perl', etc. Optional. Default is '*' for all file types. 
                              (2) SizeMetricName, such as 'totalLines', 'classCount', 'functionCount', 'commentLines', etc. Optional. Default is 'totalLines'. 
                              (3) FileFilterPattern, optional, default='**'."
  />     

  <!-- Workspace Level -->
  <Reducer name="WorkspaceFileMetric" 
           class="org.hackystat.sdt.filemetric.reducer.WorkspaceFileMetricReducer"
           reducerDescription="Computes telemetry streams representing project generic file metrics information for each top-level workspace."
           optionDescription="(1) FileType, such as '*', 'Java', 'C', 'Perl', etc. Optional. Default is '*' for all file types. 
                              (2) SizeMetricName, such as 'totalLines', 'classCount', 'functionCount', 'commentLines', etc. Optional. Default is 'totalLines'. 
                              (3) FileFilterPattern, optional, default='**'."
  />

  <!-- By Language Type -->
  <Reducer name="LanguageFileMetric" 
           class="org.hackystat.sdt.filemetric.reducer.LanguageFileMetricReducer"
           reducerDescription="Computes telemetry streams representing project generic file metrics information for each language type."
           optionDescription="(1) SizeMetricName, such as 'totalLines', 'classCount', 'functionCount', 'commentLines', etc. Optional. Default is 'totalLines'. 
                              (2) FileFilterPattern, optional, default='**'."
  />

</TelemetryReducers>

The definition file specifies three telemetry reduction functions, which are used to process FileMetric data in various ways.