amari.kpi: New package with driver for Amarisoft LTE stack to retrieve...
amari.kpi: New package with driver for Amarisoft LTE stack to retrieve KPI-related measurements from logs amari.kpi provides LogMeasure that takes enb.xlog (TODO and enb.log) as input, and produces kpi.Measurements on output. enb.xlog ───────── ─────────> │ Log │ │ │ ────> []kpi.Measurement ─────────> │ Measure │ enb.log ───────── We read log data organizing periods around stats queries, and for now we build Measurement from stats' counters. To do so we take δ(stats_prev, stat) and process it mapping Amarisoft counters to 3GPP ones specified by kpi.Measurement. We emit measurement X after reading stats X+2 - i.e. we emit measurement for a period after reading data covering _next_ period. It is organized this way to account for init/fini correction: fini adjust ------------- ' ' Sx v Sx+1 ' Sx+2 ────|───────────|───────────|──── Measurement Measurement X X+1 This approach has following limitations: - for most of the counters there is no direct mapping in between Amarisoft and 3GPP. For example we currently use s1_erab_setup_request for ERAB.EstabAddAtt.sum, but this mapping is not strictly correct and will break if corresponding S1 E-RAB SETUP REQUEST message contains multiple ERABs. The code has corresponding FIXME marks where such approximations are used. - it is not possible to implement init/fini correction precisely. From aggregated statistics we only get total amount for a fini value for a period - without knowing which part of it corresponds to init events from previous period, and which part to init events from current one. With that it is only possible to make a reasonable guess and try to preserve statistical properties, but not more. See m_initfini in the code for details. - it is possible to handle eNB with single cell only. This limitation comes from the fact that in Amarisoft LTE stack S1-related counters come as "globals" ones, while e.g. RRC-related counters are "per-cell". It is thus not possible to see how much S1 connection establishments are associated with one particular cell if there are several of them. TODO also parse enb.log to fix those issues.
Showing
amari/kpi.py
0 → 100644
amari/kpi_test.py
0 → 100644