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/.
Harald Welte gerrit-no-reply at lists.osmocom.orgHarald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/10133 )
Change subject: stats_statsd: sanitize statsd name
......................................................................
stats_statsd: sanitize statsd name
The statsd protocol use ':' as seperator between name and value.
It's not allowed to use the seperator in a name. Replace ':' with '.'
before sending the packet to the statsd server.
Change-Id: Ib46d08481e8ca04afd97cb9ae241e4e39c91ad66
---
M src/stats_statsd.c
1 file changed, 22 insertions(+), 1 deletion(-)
Approvals:
Harald Welte: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/src/stats_statsd.c b/src/stats_statsd.c
index c11c013..5ae2570 100644
--- a/src/stats_statsd.c
+++ b/src/stats_statsd.c
@@ -68,6 +68,25 @@
return srep;
}
+/*! Replace all illegal ':' in the stats name, but not when used as value seperator.
+ * ':' is used as seperator between the name and the value in the statsd protocol.
+ * \param[inout] buf is a null terminated string containing name, value, unit. */
+static void osmo_stats_reporter_sanitize_name(char *buf)
+{
+ /* e.g. msc.loc_update_type:normal:1|c -> msc.loc_update_type.normal:1|c
+ * last is the seperator between name and value */
+ char *last = strrchr(buf, ':');
+ char *tmp = strchr(buf, ':');
+
+ if (!last)
+ return;
+
+ while (tmp < last) {
+ *tmp = '.';
+ tmp = strchr(buf, ':');
+ }
+}
+
static int osmo_stats_reporter_statsd_send(struct osmo_stats_reporter *srep,
const char *name1, unsigned int index1, const char *name2, int64_t value,
const char *unit)
@@ -134,8 +153,10 @@
return -EMSGSIZE;
}
- if (nchars > 0)
+ if (nchars > 0) {
+ osmo_stats_reporter_sanitize_name(buf);
msgb_trim(srep->buffer, msgb_length(srep->buffer) + nchars);
+ }
if (!srep->agg_enabled)
rc = osmo_stats_reporter_send_buffer(srep);
--
To view, visit https://gerrit.osmocom.org/10133
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Ib46d08481e8ca04afd97cb9ae241e4e39c91ad66
Gerrit-Change-Number: 10133
Gerrit-PatchSet: 3
Gerrit-Owner: lynxis lazus <lynxis at fe80.eu>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180725/82dee512/attachment.htm>