• Kirill Smelkov's avatar
    kpi: Start of the package · dc1d5481
    Kirill Smelkov authored
    Start the package to process measurements and compute KPIs from them.
    
    In this patch we add kpi.Measurement - a central part to represent
    measurement results in intermediate generic form. kpi.Measurement will
    be used by both KPI calculator, and by drivers for particular LTE stacks
    to provide their KPI-related data in this uniform common format.
    
    kpi.Measurement also establishes semantic for such measurement results
    to be followed by drivers. The semantic is stated in kpi.Measurement
    docstring and in comment for every field. Also in particular, according
    to TS 32.401 and common sense, measurement data are required to be
    correctly accounted for initiation/termination events to avoid
    discrepancies. Quoting kpi.Measurement documentation:
    
        Important note (init/fini correction):
    
          Termination events should be counted in the same granularity period, where
          corresponding initiation event occurred, even if termination event happens
          _after_ granularity period covering the initiation event. For example in the
          following illustration "ConnEstab Success" event should be counted in the
          same granularity period 1 as "ConnEstab Initiate" event:
    
                         -----------------------
                        '                       '
                | p e r ' i o d 1       | p e r ' i o d 2    |
                |       '               |       v            |
            ────'───────x───────────────'───────x────────────'────────────>
                    ConnEstab               ConnEstab                time
                    Initiate                 Success
    
          This preserves invariant that N(initiations) is always ≥ N(results) and
          goes in line with what TS 32.401 4.3.2 "Perceived accuracy -> Same period
          for the same two events" requires.
    
    kpi.Measurement comes accompanied by kpi.MeasurementLog which in essence
    is array of kpi.Measurements.
    
    We will use kpi.Measurement and kpi.MeasurementLog in later patches to
    both provide Amarisoft-specific data in this common format, and to
    compute KPIs from it.
    dc1d5481
kpi.py 13 KB