kpi: Start of the package
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.
Showing
kpi.py
0 → 100644
This diff is collapsed.
kpi_test.py
0 → 100644