There are a few concepts with which you should be familiar before starting to work with Mona:

  • Context classes, instances and IDs - (Watch video) In Mona, the complete monitoring scope, including all the information about the data’s schema, relevant metrics, segmentation specifications, anomaly detection directives, and more, is defined in a configuration object we call a "Context Class". You can think of a Context Class as a description of a data table, ready with smart analytical capabilities.

    A single context instance, which adheres to the Context Class’ specifications and is uniquely
    identifiable with a context id represents one row in that table.

    In SB’s example, the Context Class might be called "POST", and each context instance will represent
    a single social media post, along with metadata about that post and metrics describing the runs of
    different models on the post.


NOTE: Context instances may include data about runs of various models, as long as these models relate to the same basic object (in SB’s example, a single social media post). When multiple models are tied to the same context instance, Mona can also find correlations between metrics of different models.

  • exportTimestamp - This is the primary timestamp Mona will use when considering the data being sent. It should be a date (ISO string, or a Unix time number) representing the time the message was created. If this field isn't provided, the message exportTimestamp will be the time in which the exporting happened

this tells Mona when the system run for this application took place. Using this parameter allows you to export data after the fact. If it is omitted, Mona will use the actual time the data was exported by default.

  • Field - exported or calculated variable in the monitoring dataset. In Mona’s configuration, for a given Context Class, there is a named object for every Field, representing columns in the processed dataset (effectively creating a schema for the Context Class). Mona supports robust configurable ETL capabilities to create fields that are relevant for monitoring, with no processing effort on your end, enabling separation between your business logic and the monitoring logic.

  • Segmentation - a configuration object, defining how the dataset can be segmented given the values of a specific source field. In SB’s example, example segmentations would be defined over the text length field, the language field, and even the "found_brands" field, which contains the chosen classes from the brands' classification model.

  • Segment - a subset of Context instances, described by one or more segmentation values or value ranges. For example, posts in which the text_length<100 AND language="en".

  • Insight - an indication of anomalous data or model behavior in the monitoring context. An insight is represented through a specific segment in which the anomalous behavior occurred.

  • Verse - A Mona configuration object, used to define which anomalies would cause signal and insight creation.

  • Stanza - A Mona configuration object, used to logically group verses under one name and shared parameters.