stats: Report per channel type load to statsd counters.
Change-Id: I2eac4c93061204aeb8f3d223f7e78158c61c7156
This commit is contained in:
parent
241f058aeb
commit
b091def16e
|
@ -1453,6 +1453,22 @@ static const struct rate_ctr_group_desc bts_ctrg_desc = {
|
|||
|
||||
enum {
|
||||
BTS_STAT_CHAN_LOAD_AVERAGE,
|
||||
BTS_STAT_CHAN_CCCH_SDCCH4_USED,
|
||||
BTS_STAT_CHAN_CCCH_SDCCH4_TOTAL,
|
||||
BTS_STAT_CHAN_TCH_F_USED,
|
||||
BTS_STAT_CHAN_TCH_F_TOTAL,
|
||||
BTS_STAT_CHAN_TCH_H_USED,
|
||||
BTS_STAT_CHAN_TCH_H_TOTAL,
|
||||
BTS_STAT_CHAN_SDCCH8_USED,
|
||||
BTS_STAT_CHAN_SDCCH8_TOTAL,
|
||||
BTS_STAT_CHAN_TCH_F_PDCH_USED,
|
||||
BTS_STAT_CHAN_TCH_F_PDCH_TOTAL,
|
||||
BTS_STAT_CHAN_CCCH_SDCCH4_CBCH_USED,
|
||||
BTS_STAT_CHAN_CCCH_SDCCH4_CBCH_TOTAL,
|
||||
BTS_STAT_CHAN_SDCCH8_CBCH_USED,
|
||||
BTS_STAT_CHAN_SDCCH8_CBCH_TOTAL,
|
||||
BTS_STAT_CHAN_TCH_F_TCH_H_PDCH_USED,
|
||||
BTS_STAT_CHAN_TCH_F_TCH_H_PDCH_TOTAL,
|
||||
BTS_STAT_T3122,
|
||||
BTS_STAT_RACH_BUSY,
|
||||
BTS_STAT_RACH_ACCESS,
|
||||
|
|
|
@ -109,6 +109,53 @@ void network_chan_load(struct pchan_load *pl, struct gsm_network *net)
|
|||
bts_chan_load(pl, bts);
|
||||
}
|
||||
|
||||
static void chan_load_stat_set(enum gsm_phys_chan_config pchan,
|
||||
struct gsm_bts *bts,
|
||||
struct load_counter *lc)
|
||||
{
|
||||
switch (pchan) {
|
||||
case GSM_PCHAN_NONE:
|
||||
case GSM_PCHAN_CCCH:
|
||||
case GSM_PCHAN_PDCH:
|
||||
case GSM_PCHAN_UNKNOWN:
|
||||
break;
|
||||
case GSM_PCHAN_CCCH_SDCCH4:
|
||||
osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_CHAN_CCCH_SDCCH4_USED], lc->used);
|
||||
osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_CHAN_CCCH_SDCCH4_TOTAL], lc->total);
|
||||
break;
|
||||
case GSM_PCHAN_TCH_F:
|
||||
osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_CHAN_TCH_F_USED], lc->used);
|
||||
osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_CHAN_TCH_F_TOTAL], lc->total);
|
||||
break;
|
||||
case GSM_PCHAN_TCH_H:
|
||||
osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_CHAN_TCH_H_USED], lc->used);
|
||||
osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_CHAN_TCH_H_TOTAL], lc->total);
|
||||
break;
|
||||
case GSM_PCHAN_SDCCH8_SACCH8C:
|
||||
osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_CHAN_SDCCH8_USED], lc->used);
|
||||
osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_CHAN_SDCCH8_TOTAL], lc->total);
|
||||
break;
|
||||
case GSM_PCHAN_TCH_F_PDCH:
|
||||
osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_CHAN_TCH_F_PDCH_USED], lc->used);
|
||||
osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_CHAN_TCH_F_PDCH_TOTAL], lc->total);
|
||||
break;
|
||||
case GSM_PCHAN_CCCH_SDCCH4_CBCH:
|
||||
osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_CHAN_CCCH_SDCCH4_CBCH_USED], lc->used);
|
||||
osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_CHAN_CCCH_SDCCH4_CBCH_TOTAL], lc->total);
|
||||
break;
|
||||
case GSM_PCHAN_SDCCH8_SACCH8C_CBCH:
|
||||
osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_CHAN_SDCCH8_CBCH_USED], lc->used);
|
||||
osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_CHAN_SDCCH8_CBCH_TOTAL], lc->total);
|
||||
break;
|
||||
case GSM_PCHAN_TCH_F_TCH_H_PDCH:
|
||||
osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_CHAN_TCH_F_TCH_H_PDCH_USED], lc->used);
|
||||
osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_CHAN_TCH_F_TCH_H_PDCH_TOTAL], lc->total);
|
||||
break;
|
||||
default:
|
||||
LOG_BTS(bts, DRLL, LOGL_NOTICE, "Unknown channel type %d\n", pchan);
|
||||
}
|
||||
}
|
||||
|
||||
/* Update T3122 wait indicator based on samples of BTS channel load. */
|
||||
void
|
||||
bts_update_t3122_chan_load(struct gsm_bts *bts)
|
||||
|
@ -133,6 +180,9 @@ bts_update_t3122_chan_load(struct gsm_bts *bts)
|
|||
for (i = 0; i < ARRAY_SIZE(pl.pchan); i++) {
|
||||
struct load_counter *lc = &pl.pchan[i];
|
||||
|
||||
/* Export channel load to stats gauges */
|
||||
chan_load_stat_set(i, bts, lc);
|
||||
|
||||
/* Ignore samples too large for fixed-point calculations (shouldn't happen). */
|
||||
if (lc->used > UINT16_MAX || lc->total > UINT16_MAX) {
|
||||
LOG_BTS(bts, DRLL, LOGL_NOTICE, "numbers in channel load sample "
|
||||
|
|
|
@ -371,6 +371,22 @@ void gsm_bts_set_radio_link_timeout(struct gsm_bts *bts, int value)
|
|||
|
||||
static const struct osmo_stat_item_desc bts_stat_desc[] = {
|
||||
{ "chanloadavg", "Channel load average.", "%", 16, 0 },
|
||||
{ "chan_ccch_sdcch4:used", "Number of CCCH+SDCCH4 channels used", "", 16, 0 },
|
||||
{ "chan_ccch_sdcch4:total", "Number of CCCH+SDCCH4 channels total", "", 16, 0 },
|
||||
{ "chan_tch_f:used", "Number of TCH/F channels used", "", 16, 0 },
|
||||
{ "chan_tch_f:total", "Number of TCH/F channels total", "", 16, 0 },
|
||||
{ "chan_tch_h:used", "Number of TCH/H channels used", "", 16, 0 },
|
||||
{ "chan_tch_h:total", "Number of TCH/H channels total", "", 16, 0 },
|
||||
{ "chan_sdcch8:used", "Number of SDCCH8 channels used", "", 16, 0 },
|
||||
{ "chan_sdcch8:total", "Number of SDCCH8 channels total", "", 16, 0 },
|
||||
{ "chan_tch_f_pdch:used", "Number of TCH/F_PDCH channels used", "", 16, 0 },
|
||||
{ "chan_tch_f_pdch:total", "Number of TCH/F_PDCH channels total", "", 16, 0 },
|
||||
{ "chan_ccch_sdcch4_cbch:used", "Number of CCCH+SDCCH4+CBCH channels used", "", 16, 0 },
|
||||
{ "chan_ccch_sdcch4_cbch:total", "Number of CCCH+SDCCH4+CBCH channels total", "", 16, 0 },
|
||||
{ "chan_sdcch8_cbch:used", "Number of SDCCH8+CBCH channels used", "", 16, 0 },
|
||||
{ "chan_sdcch8_cbch:total", "Number of SDCCH8+CBCH channels total", "", 16, 0 },
|
||||
{ "chan_tch_f_tch_h_pdch:used", "Number of TCH/F_TCH/H_PDCH channels used", "", 16, 0 },
|
||||
{ "chan_tch_f_tch_h_pdch:total", "Number of TCH/F_TCH/H_PDCH channels total", "", 16, 0 },
|
||||
{ "T3122", "T3122 IMMEDIATE ASSIGNMENT REJECT wait indicator.", "s", 16, GSM_T3122_DEFAULT },
|
||||
{ "rach_busy", "RACH slots with signal above threshold", "%", 16, 0 },
|
||||
{ "rach_access", "RACH slots with access bursts in them", "%", 16, 0 },
|
||||
|
|
Loading…
Reference in New Issue