Change in osmo-bsc[master]: stats: add BTS uptime counter

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/.

daniel gerrit-no-reply at lists.osmocom.org
Tue May 4 16:09:46 UTC 2021


daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/23234 )

Change subject: stats: add BTS uptime counter
......................................................................

stats: add BTS uptime counter

Change-Id: Ib17674bbe95e828cebff12de9e0b30f06447ef6c
---
M include/osmocom/bsc/bts.h
M include/osmocom/bsc/gsm_data.h
M src/osmo-bsc/bsc_init.c
M src/osmo-bsc/bts.c
4 files changed, 32 insertions(+), 0 deletions(-)

Approvals:
  daniel: Looks good to me, approved
  pespin: Looks good to me, but someone else must approve
  Jenkins Builder: Verified



diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h
index bcc215d..7a491d9 100644
--- a/include/osmocom/bsc/bts.h
+++ b/include/osmocom/bsc/bts.h
@@ -143,6 +143,7 @@
 extern const struct rate_ctr_group_desc bts_ctrg_desc;
 
 enum {
+	BTS_STAT_UPTIME_SECONDS,
 	BTS_STAT_CHAN_LOAD_AVERAGE,
 	BTS_STAT_CHAN_CCCH_SDCCH4_USED,
 	BTS_STAT_CHAN_CCCH_SDCCH4_TOTAL,
@@ -646,6 +647,9 @@
 
 int bts_gprs_mode_is_compat(struct gsm_bts *bts, enum bts_gprs_mode mode);
 
+#define BTS_STORE_UPTIME_INTERVAL 10 /* in seconds */
+void bts_store_uptime(struct gsm_bts *bts);
+
 unsigned long long bts_uptime(const struct gsm_bts *bts);
 
 char *get_model_oml_status(const struct gsm_bts *bts);
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index 9aecd2c..dc10dc6 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -1216,6 +1216,9 @@
 	/* Timer for periodic channel load measurements to maintain each BTS's T3122. */
 	struct osmo_timer_list t3122_chan_load_timer;
 
+	/* Timer to write each BTS's uptime counter state to the stats system. */
+	struct osmo_timer_list bts_store_uptime_timer;
+
 	struct {
 		struct mgcp_client_conf *conf;
 		struct mgcp_client *client;
diff --git a/src/osmo-bsc/bsc_init.c b/src/osmo-bsc/bsc_init.c
index b572f27..24596f4 100644
--- a/src/osmo-bsc/bsc_init.c
+++ b/src/osmo-bsc/bsc_init.c
@@ -85,6 +85,18 @@
 	osmo_timer_schedule(&net->t3122_chan_load_timer, T3122_CHAN_LOAD_SAMPLE_INTERVAL, 0);
 }
 
+static void bsc_store_bts_uptime(void *data)
+{
+	struct gsm_network *net = data;
+	struct gsm_bts *bts;
+
+	llist_for_each_entry(bts, &net->bts_list, list)
+		bts_store_uptime(bts);
+
+	/* Keep this timer ticking. */
+	osmo_timer_schedule(&net->bts_store_uptime_timer, BTS_STORE_UPTIME_INTERVAL, 0);
+}
+
 static struct gsm_network *bsc_network_init(void *ctx)
 {
 	struct gsm_network *net = gsm_network_init(ctx);
@@ -128,6 +140,10 @@
 	osmo_timer_setup(&net->t3122_chan_load_timer, update_t3122_chan_load_timer, net);
 	osmo_timer_schedule(&net->t3122_chan_load_timer, T3122_CHAN_LOAD_SAMPLE_INTERVAL, 0);
 
+	/* Init uptime tracking timer. */
+	osmo_timer_setup(&net->bts_store_uptime_timer, bsc_store_bts_uptime, net);
+	osmo_timer_schedule(&net->bts_store_uptime_timer, BTS_STORE_UPTIME_INTERVAL, 0);
+
 	net->cbc->net = net;
 	net->cbc->mode = BSC_CBC_LINK_MODE_DISABLED;
 	net->cbc->server.local_addr = bsc_cbc_default_server_local_addr;
diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c
index 2192c56..17659a1 100644
--- a/src/osmo-bsc/bts.c
+++ b/src/osmo-bsc/bts.c
@@ -556,6 +556,11 @@
 	return NULL;
 }
 
+void bts_store_uptime(struct gsm_bts *bts)
+{
+	osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_UPTIME_SECONDS], bts_uptime(bts));
+}
+
 unsigned long long bts_uptime(const struct gsm_bts *bts)
 {
 	struct timespec tp;
@@ -1112,6 +1117,10 @@
 };
 
 const struct osmo_stat_item_desc bts_stat_desc[] = {
+	[BTS_STAT_UPTIME_SECONDS] = \
+		{ "uptime:seconds",
+		  "Seconds of uptime",
+		  "s", 60, 0 },
 	[BTS_STAT_CHAN_LOAD_AVERAGE] = \
 		{ "chanloadavg",
 		  "Channel load average",

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/23234
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Ib17674bbe95e828cebff12de9e0b30f06447ef6c
Gerrit-Change-Number: 23234
Gerrit-PatchSet: 8
Gerrit-Owner: iedemam <michael at kapsulate.com>
Gerrit-Assignee: daniel <dwillmann at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann at sysmocom.de>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-CC: dexter <pmaier at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210504/8540e1d0/attachment.htm>


More information about the gerrit-log mailing list