This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
neels gerrit-no-reply at lists.osmocom.orgneels has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25465 ) Change subject: refactor stat_item: report only changed values ...................................................................... refactor stat_item: report only changed values Change the functionality of skipping unchanged values: instead of looking up whether new values have been set on a stat item, rather remember the last reported value and skip reporting identical values. stats_test.c shows that previously, a stat item reported a value of 10 again, even though the previous report had already sent a value of 10. That's just because the value 10 was explicitly set again, internally. >From a perspective of preserving all data points, it could make sense to send consecutive identical values. But since we already collapse all data points per reporting period into a max, that is pointless. Related: SYS#5542 Change-Id: I8f4cf34dfed17e0879716fa2cbeee137c158978b --- M TODO-RELEASE M src/stats.c M tests/stats/stats_test.c M tests/stats/stats_test.err 4 files changed, 9 insertions(+), 14 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve neels: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/TODO-RELEASE b/TODO-RELEASE index 0f202e3..ead2c50 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -20,3 +20,4 @@ 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. +libosmocore stats reporting for osmo_stat_item, values are now never repeated from one stats report to the next. diff --git a/src/stats.c b/src/stats.c index 5dac242..28a3ab3 100644 --- a/src/stats.c +++ b/src/stats.c @@ -700,15 +700,11 @@ if (!srep->running) continue; - /* If no new stat values have been set in the current reporting period, skip resending the value. - * However, if the previously sent value is not the same as the current value, then do send the changed - * value (while n == 0, the last value from the previous reporting period is in item->value.max == .last - * == .min, which was put in new_value above). - * Also if the stats reporter is set to resend all values, also do resend the current value regardless - * of repetitions. + /* If the previously reported value is the same as the current value, skip resending the value. + * However, if the stats reporter is set to resend all values, do resend the current value regardless of + * repetitions. */ - if ((!item->value.n && new_value == prev_reported_value) - && !srep->force_single_flush) + if (new_value == prev_reported_value && !srep->force_single_flush) continue; if (!osmo_stats_reporter_check_config(srep, diff --git a/tests/stats/stats_test.c b/tests/stats/stats_test.c index dea2bf7..3aa1f52 100644 --- a/tests/stats/stats_test.c +++ b/tests/stats/stats_test.c @@ -443,10 +443,10 @@ osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 10); do_report(0, 2); - fprintf(stderr, "report (group 1, item 1 update twice):\n"); + fprintf(stderr, "report (group 1, item 1 update twice, with same value):\n"); osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 10); osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 10); - do_report(0, 2); + do_report(0, 0); fprintf(stderr, "report (group 1, item 1 update twice, check max):\n"); osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 20); diff --git a/tests/stats/stats_test.err b/tests/stats/stats_test.err index a890e0f..1e604d1 100644 --- a/tests/stats/stats_test.err +++ b/tests/stats/stats_test.err @@ -114,10 +114,8 @@ test2: item p= g=test.one i=1 n=item.a v=10 u=ma test1: item p= g=test.one i=1 n=item.a v=10 u=ma reported: 0 counter vals, 2 stat item vals -report (group 1, item 1 update twice): - test2: item p= g=test.one i=1 n=item.a v=10 u=ma - test1: item p= g=test.one i=1 n=item.a v=10 u=ma -reported: 0 counter vals, 2 stat item vals +report (group 1, item 1 update twice, with same value): +reported: 0 counter vals, 0 stat item vals report (group 1, item 1 update twice, check max): test2: item p= g=test.one i=1 n=item.a v=20 u=ma test1: item p= g=test.one i=1 n=item.a v=20 u=ma -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8f4cf34dfed17e0879716fa2cbeee137c158978b Gerrit-Change-Number: 25465 Gerrit-PatchSet: 7 Gerrit-Owner: neels <nhofmeyr at sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel <dwillmann at sysmocom.de> Gerrit-Reviewer: laforge <laforge at osmocom.org> Gerrit-Reviewer: neels <nhofmeyr at sysmocom.de> Gerrit-Reviewer: pespin <pespin at sysmocom.de> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210930/c18fe3fd/attachment.htm>