diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2021-09-14 14:37:38 +0200 |
---|---|---|
committer | neels <nhofmeyr@sysmocom.de> | 2021-09-30 18:33:43 +0000 |
commit | e90c7176be0f627610b9c28f44551ad19f114672 (patch) | |
tree | 573319f2ba9861799f4c6c739e840945d23df11e /TODO-RELEASE | |
parent | 3f43134b6b4d0459457b1edca7693ce418ea4048 (diff) |
refactor stat_item: get rid of FIFO and "skipped" error
Intead of attempting to store all distinct values of a reporting period,
just store min, max, last as well as a sum and N of each reporting
period.
This gets rid of error messages like
DLSTATS ERROR stat_item.c:285 num_bts:oml_connected: 44 stats values skipped
while at the same time more accurately reporting the max value for each
reporting period. (So far stats_item only reports the max value; keep
that part unchanged, as shown in stats_test.c.)
With the other so far unused values (min, sum), we are ready to also
report the minimum value as well as an average value per reporting
period in the future, if/when our stats reporter allows for it.
Store the complete record of the previous reporting period. So far we
only compare the 'max' value, but like this we are ready to also see
changes in min, last and average value between reporting periods.
This patch breaks API by removing:
- struct members osmo_stats_item.stats_next_id, .last_offs and .values[]
- struct osmo_stats_item_value
- osmo_stat_item_get_next()
- osmo_stat_item_discard()
- osmo_stat_item_discard_all()
and by making struct osmo_stats_item opaque.
In libosmocore, we do have a policy of never breaking API. But since the
above should never be accessed by users of the osmo_stats_item API -- or
if they are, would no longer yield useful results, we decided to make an
exception in this case. The alternative would be to introduce a new
osmo_stats_item2 API and maintaining an unused legacy osmo_stats_item
forever, but we decided that the effort is not worth it. There are no
known users of the removed items.
Related: SYS#5542
Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b
Diffstat (limited to 'TODO-RELEASE')
-rw-r--r-- | TODO-RELEASE | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/TODO-RELEASE b/TODO-RELEASE index c8966cd3..0f202e33 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -15,4 +15,8 @@ libosmovty vty_read_config_filep New API libosmosim osim_card_{reset,close} New API libosmocore struct rate_ctr_group, osmo_stat_item_group_desc ABI breakage due to new struct members libosmgsm kdf functions New API -libosmocore osmo_stat_item ABI + API breakage due to new struct members +libosmocore osmo_stat_item API breakage: remove members stats_next_id, last_offs and values[], no users should exist. +libosmocore osmo_stat_item API breakage: remove functions osmo_stat_item_get_next(), osmo_stat_item_discard(), osmo_stat_item_discard_all(), no users should exist. +libosmocore osmo_stat_item_value API breakage: struct definition removed, because no known users exist / no users should exist. +libosmocore osmo_stat_item ABI breakage: struct osmo_stat_item made opaque. +libosmocore osmo_stat_item No FIFO buffer of values used anymore, the "skipped values" error is no longer possible. |