diff options
author | Alexander Couzens <lynxis@fe80.eu> | 2016-07-12 15:42:02 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2016-08-27 01:58:19 +0000 |
commit | 20423ea6cfdecd264b32c7fe5e15ee7de4455692 (patch) | |
tree | e62843a1ddcb0fc97891be516d57df4565de1447 /openbsc/src/libbsc | |
parent | 4e699a9cbf418518265dc7b8b6b7fe250d87222d (diff) |
libbsc/libmsc: convert old osmo counter into rate_ctrgs
rate counters support the export to statsd and can have a delta value.
Change-Id: Ie749cebd53a0bb618d0e23d375885712078bf8dd
Diffstat (limited to 'openbsc/src/libbsc')
-rw-r--r-- | openbsc/src/libbsc/abis_rsl.c | 8 | ||||
-rw-r--r-- | openbsc/src/libbsc/bsc_init.c | 4 | ||||
-rw-r--r-- | openbsc/src/libbsc/bsc_vty.c | 22 | ||||
-rw-r--r-- | openbsc/src/libbsc/gsm_04_08_utils.c | 2 | ||||
-rw-r--r-- | openbsc/src/libbsc/handover_logic.c | 10 | ||||
-rw-r--r-- | openbsc/src/libbsc/net_init.c | 32 | ||||
-rw-r--r-- | openbsc/src/libbsc/paging.c | 6 |
7 files changed, 30 insertions, 54 deletions
diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c index b84a0b582..092ec4ebc 100644 --- a/openbsc/src/libbsc/abis_rsl.c +++ b/openbsc/src/libbsc/abis_rsl.c @@ -1207,7 +1207,7 @@ static int rsl_rx_conn_fail(struct msgb *msg) TLVP_LEN(&tp, RSL_IE_CAUSE)); LOGPC(DRSL, LOGL_NOTICE, "\n"); - osmo_counter_inc(msg->lchan->ts->trx->bts->network->stats.chan.rf_fail); + rate_ctr_inc(&msg->lchan->ts->trx->bts->network->ratectrs->ctr[MSC_CTR_CHAN_RF_FAIL]); return rsl_rf_chan_release_err(msg->lchan); } @@ -1641,7 +1641,7 @@ static int rsl_rx_chan_rqd(struct msgb *msg) lctype = get_ctype_by_chreq(bts->network, rqd_ref->ra); chreq_reason = get_reason_by_chreq(rqd_ref->ra, bts->network->neci); - osmo_counter_inc(bts->network->stats.chreq.total); + rate_ctr_inc(&bts->network->ratectrs->ctr[MSC_CTR_CHREQ_TOTAL]); /* * We want LOCATION UPDATES to succeed and will assign a TCH @@ -1654,7 +1654,7 @@ static int rsl_rx_chan_rqd(struct msgb *msg) if (!lchan) { LOGP(DRSL, LOGL_NOTICE, "BTS %d CHAN RQD: no resources for %s 0x%x\n", msg->lchan->ts->trx->bts->nr, gsm_lchant_name(lctype), rqd_ref->ra); - osmo_counter_inc(bts->network->stats.chreq.no_channel); + rate_ctr_inc(&bts->network->ratectrs->ctr[MSC_CTR_CHREQ_NO_CHANNEL]); /* FIXME gather multiple CHAN RQD and reject up to 4 at the same time */ if (bts->network->T3122) rsl_send_imm_ass_rej(bts, 1, rqd_ref, bts->network->T3122 & 0xff); @@ -1837,7 +1837,7 @@ static int rsl_rx_rll_err_ind(struct msgb *msg) rll_indication(msg->lchan, rllh->link_id, BSC_RLLR_IND_ERR_IND); if (rlm_cause == RLL_CAUSE_T200_EXPIRED) { - osmo_counter_inc(msg->lchan->ts->trx->bts->network->stats.chan.rll_err); + rate_ctr_inc(&msg->lchan->ts->trx->bts->network->ratectrs->ctr[MSC_CTR_CHAN_RLL_ERR]); return rsl_rf_chan_release_err(msg->lchan); } diff --git a/openbsc/src/libbsc/bsc_init.c b/openbsc/src/libbsc/bsc_init.c index 5c2786278..5ea85d020 100644 --- a/openbsc/src/libbsc/bsc_init.c +++ b/openbsc/src/libbsc/bsc_init.c @@ -340,9 +340,9 @@ static int inp_sig_cb(unsigned int subsys, unsigned int signal, LOGP(DLMI, LOGL_ERROR, "Lost some E1 TEI link: %d %p\n", isd->link_type, trx); if (isd->link_type == E1INP_SIGN_OML) - osmo_counter_inc(trx->bts->network->stats.bts.oml_fail); + rate_ctr_inc(&trx->bts->network->ratectrs->ctr[MSC_CTR_BTS_OML_FAIL]); else if (isd->link_type == E1INP_SIGN_RSL) - osmo_counter_inc(trx->bts->network->stats.bts.rsl_fail); + rate_ctr_inc(&trx->bts->network->ratectrs->ctr[MSC_CTR_BTS_RSL_FAIL]); /* * free all allocated channels. change the nm_state so the diff --git a/openbsc/src/libbsc/bsc_vty.c b/openbsc/src/libbsc/bsc_vty.c index 6584cf0d6..fbaf06bfb 100644 --- a/openbsc/src/libbsc/bsc_vty.c +++ b/openbsc/src/libbsc/bsc_vty.c @@ -3784,18 +3784,22 @@ DEFUN(cfg_ts_e1_subslot, void openbsc_vty_print_statistics(struct vty *vty, struct gsm_network *net) { vty_out(vty, "Channel Requests : %lu total, %lu no channel%s", - osmo_counter_get(net->stats.chreq.total), - osmo_counter_get(net->stats.chreq.no_channel), VTY_NEWLINE); + net->ratectrs->ctr[MSC_CTR_CHREQ_TOTAL].current, + net->ratectrs->ctr[MSC_CTR_CHREQ_NO_CHANNEL].current, + VTY_NEWLINE); vty_out(vty, "Channel Failures : %lu rf_failures, %lu rll failures%s", - osmo_counter_get(net->stats.chan.rf_fail), - osmo_counter_get(net->stats.chan.rll_err), VTY_NEWLINE); + net->ratectrs->ctr[MSC_CTR_CHAN_RF_FAIL].current, + net->ratectrs->ctr[MSC_CTR_CHAN_RLL_ERR].current, + VTY_NEWLINE); vty_out(vty, "Paging : %lu attempted, %lu complete, %lu expired%s", - osmo_counter_get(net->stats.paging.attempted), - osmo_counter_get(net->stats.paging.completed), - osmo_counter_get(net->stats.paging.expired), VTY_NEWLINE); + net->ratectrs->ctr[MSC_CTR_PAGING_ATTEMPTED].current, + net->ratectrs->ctr[MSC_CTR_PAGING_COMPLETED].current, + net->ratectrs->ctr[MSC_CTR_PAGING_EXPIRED].current, + VTY_NEWLINE); vty_out(vty, "BTS failures : %lu OML, %lu RSL%s", - osmo_counter_get(net->stats.bts.oml_fail), - osmo_counter_get(net->stats.bts.rsl_fail), VTY_NEWLINE); + net->ratectrs->ctr[MSC_CTR_BTS_OML_FAIL].current, + net->ratectrs->ctr[MSC_CTR_BTS_RSL_FAIL].current, + VTY_NEWLINE); } DEFUN(drop_bts, diff --git a/openbsc/src/libbsc/gsm_04_08_utils.c b/openbsc/src/libbsc/gsm_04_08_utils.c index 635665a3d..d4eca4a29 100644 --- a/openbsc/src/libbsc/gsm_04_08_utils.c +++ b/openbsc/src/libbsc/gsm_04_08_utils.c @@ -304,7 +304,7 @@ int gsm48_handle_paging_resp(struct gsm_subscriber_connection *conn, subscr = conn->subscr; } - osmo_counter_inc(bts->network->stats.paging.completed); + rate_ctr_inc(&bts->network->ratectrs->ctr[MSC_CTR_PAGING_COMPLETED]); /* Stop paging on the bts we received the paging response */ paging_request_stop(conn->bts, subscr, conn, msg); diff --git a/openbsc/src/libbsc/handover_logic.c b/openbsc/src/libbsc/handover_logic.c index 52fa4af26..5424e2750 100644 --- a/openbsc/src/libbsc/handover_logic.c +++ b/openbsc/src/libbsc/handover_logic.c @@ -103,7 +103,7 @@ int bsc_handover_start(struct gsm_lchan *old_lchan, struct gsm_bts *bts) DEBUGP(DHO, "(old_lchan on BTS %u, new BTS %u)\n", old_lchan->ts->trx->bts->nr, bts->nr); - osmo_counter_inc(bts->network->stats.handover.attempted); + rate_ctr_inc(&bts->network->ratectrs->ctr[MSC_CTR_HANDOVER_ATTEMPTED]); if (!old_lchan->conn) { LOGP(DHO, LOGL_ERROR, "Old lchan lacks connection data.\n"); @@ -113,7 +113,7 @@ int bsc_handover_start(struct gsm_lchan *old_lchan, struct gsm_bts *bts) new_lchan = lchan_alloc(bts, old_lchan->type, 0); if (!new_lchan) { LOGP(DHO, LOGL_NOTICE, "No free channel\n"); - osmo_counter_inc(bts->network->stats.handover.no_channel); + rate_ctr_inc(&bts->network->ratectrs->ctr[MSC_CTR_HANDOVER_NO_CHANNEL]); return -ENOSPC; } @@ -188,7 +188,7 @@ static void ho_T3103_cb(void *_ho) struct gsm_network *net = ho->new_lchan->ts->trx->bts->network; DEBUGP(DHO, "HO T3103 expired\n"); - osmo_counter_inc(net->stats.handover.timeout); + rate_ctr_inc(&net->ratectrs->ctr[MSC_CTR_HANDOVER_TIMEOUT]); ho->new_lchan->conn->ho_lchan = NULL; ho->new_lchan->conn = NULL; @@ -265,7 +265,7 @@ static int ho_gsm48_ho_compl(struct gsm_lchan *new_lchan) ho->old_lchan->ts->trx->bts->nr, new_lchan->ts->trx->bts->nr, ho->old_lchan->ts->trx->arfcn, new_lchan->ts->trx->arfcn); - osmo_counter_inc(net->stats.handover.completed); + rate_ctr_inc(&net->ratectrs->ctr[MSC_CTR_HANDOVER_COMPLETED]); osmo_timer_del(&ho->T3103); @@ -303,7 +303,7 @@ static int ho_gsm48_ho_fail(struct gsm_lchan *old_lchan) return -ENODEV; } - osmo_counter_inc(net->stats.handover.failed); + rate_ctr_inc(&net->ratectrs->ctr[MSC_CTR_HANDOVER_FAILED]); new_lchan = ho->new_lchan; diff --git a/openbsc/src/libbsc/net_init.c b/openbsc/src/libbsc/net_init.c index 6d03ee428..b99f3d2a0 100644 --- a/openbsc/src/libbsc/net_init.c +++ b/openbsc/src/libbsc/net_init.c @@ -80,36 +80,8 @@ struct gsm_network *gsm_network_init(uint16_t country_code, uint16_t network_cod INIT_LLIST_HEAD(&net->upqueue); INIT_LLIST_HEAD(&net->bts_list); - net->stats.chreq.total = osmo_counter_alloc("net.chreq.total"); - net->stats.chreq.no_channel = osmo_counter_alloc("net.chreq.no_channel"); - net->stats.handover.attempted = osmo_counter_alloc("net.handover.attempted"); - net->stats.handover.no_channel = osmo_counter_alloc("net.handover.no_channel"); - net->stats.handover.timeout = osmo_counter_alloc("net.handover.timeout"); - net->stats.handover.completed = osmo_counter_alloc("net.handover.completed"); - net->stats.handover.failed = osmo_counter_alloc("net.handover.failed"); - net->stats.loc_upd_type.attach = osmo_counter_alloc("net.loc_upd_type.attach"); - net->stats.loc_upd_type.normal = osmo_counter_alloc("net.loc_upd_type.normal"); - net->stats.loc_upd_type.periodic = osmo_counter_alloc("net.loc_upd_type.periodic"); - net->stats.loc_upd_type.detach = osmo_counter_alloc("net.imsi_detach.count"); - net->stats.loc_upd_resp.reject = osmo_counter_alloc("net.loc_upd_resp.reject"); - net->stats.loc_upd_resp.accept = osmo_counter_alloc("net.loc_upd_resp.accept"); - net->stats.paging.attempted = osmo_counter_alloc("net.paging.attempted"); - net->stats.paging.detached = osmo_counter_alloc("net.paging.detached"); - net->stats.paging.completed = osmo_counter_alloc("net.paging.completed"); - net->stats.paging.expired = osmo_counter_alloc("net.paging.expired"); - net->stats.sms.submitted = osmo_counter_alloc("net.sms.submitted"); - net->stats.sms.no_receiver = osmo_counter_alloc("net.sms.no_receiver"); - net->stats.sms.delivered = osmo_counter_alloc("net.sms.delivered"); - net->stats.sms.rp_err_mem = osmo_counter_alloc("net.sms.rp_err_mem"); - net->stats.sms.rp_err_other = osmo_counter_alloc("net.sms.rp_err_other"); - net->stats.call.mo_setup = osmo_counter_alloc("net.call.mo_setup"); - net->stats.call.mo_connect_ack = osmo_counter_alloc("net.call.mo_connect_ack"); - net->stats.call.mt_setup = osmo_counter_alloc("net.call.mt_setup"); - net->stats.call.mt_connect = osmo_counter_alloc("net.call.mt_connect"); - net->stats.chan.rf_fail = osmo_counter_alloc("net.chan.rf_fail"); - net->stats.chan.rll_err = osmo_counter_alloc("net.chan.rll_err"); - net->stats.bts.oml_fail = osmo_counter_alloc("net.bts.oml_fail"); - net->stats.bts.rsl_fail = osmo_counter_alloc("net.bts.rsl_fail"); + /* init statistics */ + net->ratectrs = rate_ctr_group_alloc(net, &msc_ctrg_desc, 0); net->mncc_recv = mncc_recv; net->ext_min = GSM_MIN_EXTEN; diff --git a/openbsc/src/libbsc/paging.c b/openbsc/src/libbsc/paging.c index 9ae28e0c4..03c91fd7b 100644 --- a/openbsc/src/libbsc/paging.c +++ b/openbsc/src/libbsc/paging.c @@ -260,7 +260,7 @@ static void paging_T3113_expired(void *data) req, req->subscr->imsi); /* must be destroyed before calling cbfn, to prevent double free */ - osmo_counter_inc(req->bts->network->stats.paging.expired); + rate_ctr_inc(&req->bts->network->ratectrs->ctr[MSC_CTR_PAGING_EXPIRED]); cbfn_param = req->cbfn_param; cbfn = req->cbfn; @@ -330,7 +330,7 @@ int paging_request(struct gsm_network *network, struct gsm_subscriber *subscr, struct gsm_bts *bts = NULL; int num_pages = 0; - osmo_counter_inc(network->stats.paging.attempted); + rate_ctr_inc(&network->ratectrs->ctr[MSC_CTR_PAGING_ATTEMPTED]); /* start paging subscriber on all BTS within Location Area */ do { @@ -349,7 +349,7 @@ int paging_request(struct gsm_network *network, struct gsm_subscriber *subscr, } while (1); if (num_pages == 0) - osmo_counter_inc(network->stats.paging.detached); + rate_ctr_inc(&network->ratectrs->ctr[MSC_CTR_PAGING_DETACHED]); return num_pages; } |