Interface AnalyticsClassifier


public interface AnalyticsClassifier
Before analytic events are recorded, they are classified into channels. Each channel is backed by persistence and a single AnalyticsExporter which is responsible for exporting analytics from the device. This means that the classifier is used to route interesting events into the correct channels that correspond to exporters.

By combining classifiers and exporters, a given subset of analytics can be forwarded to an arbitrary destination. Since an event can be in multiple channels, this also allows routing events to multiple destinations.

By default KOS logs all events to AnalyticsServer.DEFAULT_CHANNEL. As this classifier is set early in the boot process, it can capture events that other classifiers can't. Typically the system agent will provide an exporter for this channel (AnalyticsServer.DEFAULT_CHANNEL).

Since KOS provides a default classifier, the only reason to add additional classifiers is to send a subset of the analytics stream to another destination. For example, a business partner may require certain events to drive their business case. They can add a classifier and exporter to extract the data they need directly from the device.

Since every channel represents a persistent copy of analytic events, having a channel with no exporter will simply fill the database with events that are never used. The service will purge data by size and date, so it will generally not cause issues, but a channel without an exporter makes little sense.

Since:
1.0
Version:
2024-03-19
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Called to classify the channels that the record should be sent to.
  • Method Details

    • classifyAnalyticsRecord

      void classifyAnalyticsRecord(AnalyticsRecord record, Set<String> channels)
      Called to classify the channels that the record should be sent to. The classifier can examine the event and optionally add channel names to the provided set.
      Parameters:
      record - the analytics record to examine
      channels - the set of channels to add to