diff options
author | Michael Iedema <michael@kapsulate.com> | 2021-03-04 13:14:10 +0000 |
---|---|---|
committer | daniel <dwillmann@sysmocom.de> | 2021-05-04 16:09:46 +0000 |
commit | 858ac62b883900eb8958ccf8ec1f8aab21100476 (patch) | |
tree | 085c13acff520134083f60ead562710231e044f5 /src/osmo-bsc | |
parent | 377aac83bb31b876f02670b36097ab6a8d442b38 (diff) |
stats: add BTS uptime counter
Change-Id: Ib17674bbe95e828cebff12de9e0b30f06447ef6c
Diffstat (limited to 'src/osmo-bsc')
-rw-r--r-- | src/osmo-bsc/bsc_init.c | 16 | ||||
-rw-r--r-- | src/osmo-bsc/bts.c | 9 |
2 files changed, 25 insertions, 0 deletions
diff --git a/src/osmo-bsc/bsc_init.c b/src/osmo-bsc/bsc_init.c index b572f27f0..24596f4eb 100644 --- a/src/osmo-bsc/bsc_init.c +++ b/src/osmo-bsc/bsc_init.c @@ -85,6 +85,18 @@ static void update_t3122_chan_load_timer(void *data) 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 @@ static struct gsm_network *bsc_network_init(void *ctx) 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 2192c560f..17659a1b2 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -556,6 +556,11 @@ struct gsm_bts_trx *gsm_bts_trx_num(const struct gsm_bts *bts, int num) 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 rate_ctr_group_desc bts_ctrg_desc = { }; 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", |