Skip to content

Commit 1bae17d

Browse files
alvasMancodebot
authored andcommitted
rlc: use engineering notation on RLC metrics
1 parent f4a7651 commit 1bae17d

File tree

4 files changed

+42
-65
lines changed

4 files changed

+42
-65
lines changed

apps/services/metrics_log_helper.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,9 @@ void metrics_log_helper::report_metrics(const rlc_metrics& metrics)
118118
}
119119
fmt::memory_buffer buffer;
120120
fmt::format_to(buffer, "RLC Metrics:");
121-
fmt::format_to(buffer, " du_index={}", metrics.du_index);
122-
fmt::format_to(buffer, " ue_index={}", metrics.ue_index);
123-
fmt::format_to(buffer, " rb_id={}", metrics.rb_id);
121+
fmt::format_to(buffer, " du={}", metrics.du_index);
122+
fmt::format_to(buffer, " ue={}", metrics.ue_index);
123+
fmt::format_to(buffer, " rb={}", metrics.rb_id);
124124
fmt::format_to(buffer, " TX=[{}]", format_rlc_tx_metrics(metrics.metrics_period, metrics.tx));
125125
fmt::format_to(buffer, " RX=[{}] ", format_rlc_rx_metrics(metrics.metrics_period, metrics.rx));
126126
logger.debug("{}", to_c_str(buffer));

include/srsran/rlc/rlc_rx_metrics.h

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#pragma once
1212

1313
#include "srsran/rlc/rlc_config.h"
14+
#include "srsran/support/engineering_notation.h"
1415
#include "srsran/support/format_utils.h"
1516
#include "fmt/format.h"
1617

@@ -75,25 +76,26 @@ inline std::string format_rlc_rx_metrics(timer_duration metrics_period, const rl
7576
{
7677
fmt::memory_buffer buffer;
7778
fmt::format_to(buffer,
78-
"period={}ms num_sdus={} sdu_rate={}kbps num_pdus={} pdu_rate={}kbps",
79-
metrics_period.count(),
80-
m.num_sdus,
81-
(double)m.num_sdu_bytes * 8 / (double)metrics_period.count(),
82-
m.num_pdus,
79+
"num_sdus={} sdu_rate={}bps num_pdus={} pdu_rate={}bps",
80+
scaled_fmt_integer(m.num_sdus, false),
81+
float_to_eng_string((double)m.num_sdu_bytes * 8 * 1000 / metrics_period.count(), 1, false),
82+
scaled_fmt_integer(m.num_pdus, false),
8383
(double)m.num_pdu_bytes * 8 / (double)metrics_period.count());
8484
if (m.mode == rlc_mode::tm) {
8585
// No TM specific metrics for RX
8686
} else if ((m.mode == rlc_mode::um_bidir || m.mode == rlc_mode::um_unidir_ul)) {
8787
// Format UM specific metrics for RX
88-
fmt::format_to(buffer,
89-
" ctrl_pdus={}, ctrl_rate={}kbps",
90-
m.mode_specific.um.num_sdu_segments,
91-
(double)m.mode_specific.um.num_sdu_segments * 8 / (double)metrics_period.count());
88+
fmt::format_to(
89+
buffer,
90+
" ctrl_pdus={}, ctrl_rate={}bps",
91+
scaled_fmt_integer(m.mode_specific.um.num_sdu_segments, false),
92+
float_to_eng_string((double)m.mode_specific.um.num_sdu_segments * 8 * 1000 / metrics_period.count(), 1, false));
9293
} else if (m.mode == rlc_mode::am) {
9394
fmt::format_to(buffer,
94-
" ctrl_pdus={}, ctrl_rate={}kbps",
95-
m.mode_specific.am.num_ctrl_pdus,
96-
(double)m.mode_specific.am.num_ctrl_pdu_bytes * 8 / (double)metrics_period.count());
95+
" ctrl_pdus={}, ctrl_rate={}bps",
96+
scaled_fmt_integer(m.mode_specific.am.num_ctrl_pdus, false),
97+
float_to_eng_string(
98+
(float)m.mode_specific.am.num_ctrl_pdu_bytes * 8 * 1000 / metrics_period.count(), 1, false));
9799
}
98100
return to_c_str(buffer);
99101
}

include/srsran/rlc/rlc_tx_metrics.h

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -81,34 +81,37 @@ class rlc_tx_metrics_interface
8181
inline std::string format_rlc_tx_metrics(timer_duration metrics_period, const rlc_tx_metrics& m)
8282
{
8383
fmt::memory_buffer buffer;
84-
fmt::format_to(buffer,
85-
"period={}ms num_sdus={} sdu_rate={}bps, dropped_sdus={} discarded_sdus={} "
86-
"num_pdus_no_segm={} pdu_rate_no_segm={}kbps",
87-
metrics_period.count(),
88-
scaled_fmt_integer(m.num_sdus, /*right_align=*/false),
89-
float_to_eng_string((float)m.num_sdu_bytes * 8 * 1000 / (metrics_period.count()), 1, false),
90-
m.num_dropped_sdus,
91-
m.num_discarded_sdus,
92-
m.num_pdus_no_segmentation,
93-
(double)m.num_pdu_bytes_no_segmentation * 8 / (double)metrics_period.count());
84+
fmt::format_to(
85+
buffer,
86+
"num_sdus={} sdu_rate={}bps, dropped_sdus={} discarded_sdus={} "
87+
"num_pdus_no_segm={} pdu_rate_no_segm={}bps",
88+
scaled_fmt_integer(m.num_sdus, false),
89+
float_to_eng_string((float)m.num_sdu_bytes * 8 * 1000 / (metrics_period.count()), 1, false),
90+
scaled_fmt_integer(m.num_dropped_sdus, false),
91+
scaled_fmt_integer(m.num_discarded_sdus, false),
92+
scaled_fmt_integer(m.num_pdus_no_segmentation, false),
93+
float_to_eng_string((float)m.num_pdu_bytes_no_segmentation * 8 * 1000 / metrics_period.count(), 1, false));
9494

9595
if (m.mode == rlc_mode::tm) {
9696
// No TM specific metrics for RX
9797
} else if ((m.mode == rlc_mode::um_bidir || m.mode == rlc_mode::um_unidir_dl)) {
9898
fmt::format_to(buffer,
99-
" num_pdus_with_segm={}, pdu_with_segm_rate={}kbps",
99+
" num_pdus_with_segm={}, pdu_with_segm_rate={}bps",
100100
m.mode_specific.um.num_pdus_with_segmentation,
101101
(double)m.mode_specific.um.num_pdu_bytes_with_segmentation * 8 / (double)metrics_period.count());
102102
} else if (m.mode == rlc_mode::am) {
103-
fmt::format_to(buffer,
104-
" num_pdus_with_segm={} pdu_rate_with_segm={}kbps num_retx={} "
105-
"retx_rate={}kbps ctrl_pdus={} ctrl_rate={}kbps",
106-
m.mode_specific.am.num_pdus_with_segmentation,
107-
(double)m.mode_specific.am.num_pdu_bytes_with_segmentation * 8 / (double)metrics_period.count(),
108-
m.mode_specific.am.num_retx_pdus,
109-
(double)m.mode_specific.am.num_retx_pdu_bytes * 8 / (double)metrics_period.count(),
110-
m.mode_specific.am.num_ctrl_pdus,
111-
(double)m.mode_specific.am.num_ctrl_pdu_bytes * 8 / (double)metrics_period.count());
103+
fmt::format_to(
104+
buffer,
105+
" num_pdus_with_segm={} pdu_rate_with_segm={}bps num_retx={} "
106+
"retx_rate={}bps ctrl_pdus={} ctrl_rate={}bps",
107+
scaled_fmt_integer(m.mode_specific.am.num_pdus_with_segmentation, false),
108+
float_to_eng_string(
109+
(float)m.mode_specific.am.num_pdu_bytes_with_segmentation * 8 * 1000 / metrics_period.count(), 1, false),
110+
scaled_fmt_integer(m.mode_specific.am.num_retx_pdus, false),
111+
float_to_eng_string((float)m.mode_specific.am.num_retx_pdu_bytes * 8 * 1000 / metrics_period.count(), 1, false),
112+
scaled_fmt_integer(m.mode_specific.am.num_ctrl_pdus, false),
113+
float_to_eng_string(
114+
(float)m.mode_specific.am.num_ctrl_pdu_bytes * 8 * 1000 / (double)metrics_period.count(), 1, false));
112115
}
113116
return to_c_str(buffer);
114117
}

lib/rlc/rlc_base_entity.h

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ class rlc_base_entity : public rlc_entity
9191
rlc_bearer_logger logger;
9292
du_ue_index_t ue_index;
9393
rb_id_t rb_id;
94-
std::unique_ptr<rlc_tx_entity> tx = {};
95-
std::unique_ptr<rlc_rx_entity> rx = {};
94+
std::unique_ptr<rlc_tx_entity> tx;
95+
std::unique_ptr<rlc_rx_entity> rx;
9696
timer_duration metrics_period;
9797

9898
private:
@@ -106,34 +106,6 @@ class rlc_base_entity : public rlc_entity
106106
if (rlc_metrics_notif) {
107107
rlc_metrics_notif->report_metrics(m);
108108
}
109-
if (m.tx.mode == rlc_mode::am) {
110-
logger.log_info(
111-
"TX metrics period={}ms num_sdus={} sdu_rate={}kbps, dropped_sdus={} discarded_sdus={} "
112-
"num_pdus_no_segm={} pdu_rate_no_segm={}kbps num_pdus_with_segm={} pdu_rate_with_segm={}kbps num_retx={} "
113-
"retx_rate={}kbps ctrl_pdus={} ctrl_rate={}kbps",
114-
metrics_period.count(),
115-
m.tx.num_sdus,
116-
(double)m.tx.num_sdu_bytes * 8 / (double)metrics_period.count(),
117-
m.tx.num_dropped_sdus,
118-
m.tx.num_discarded_sdus,
119-
m.tx.num_pdus_no_segmentation,
120-
(double)m.tx.num_pdu_bytes_no_segmentation * 8 / (double)metrics_period.count(),
121-
m.tx.mode_specific.am.num_pdus_with_segmentation,
122-
(double)m.tx.mode_specific.am.num_pdu_bytes_with_segmentation * 8 / (double)metrics_period.count(),
123-
m.tx.mode_specific.am.num_retx_pdus,
124-
(double)m.tx.mode_specific.am.num_retx_pdu_bytes * 8 / (double)metrics_period.count(),
125-
m.tx.mode_specific.am.num_ctrl_pdus,
126-
(double)m.tx.mode_specific.am.num_ctrl_pdu_bytes * 8 / (double)metrics_period.count());
127-
logger.log_info("RX metrics period={}ms num_sdus={} sdu_rate={}kbps num_pdus={} pdu_rate={}kbps "
128-
"ctrl_pdus={}, ctrl_rate={}kbps",
129-
metrics_period.count(),
130-
m.rx.num_sdus,
131-
(double)m.rx.num_sdu_bytes * 8 / (double)metrics_period.count(),
132-
m.rx.num_pdus,
133-
(double)m.rx.num_pdu_bytes * 8 / (double)metrics_period.count(),
134-
m.tx.mode_specific.am.num_ctrl_pdus,
135-
(double)m.rx.mode_specific.am.num_ctrl_pdu_bytes * 8 / (double)metrics_period.count());
136-
}
137109
reset_metrics();
138110
metrics_timer.run();
139111
}

0 commit comments

Comments
 (0)