Skip to content

Commit f0eb3b9

Browse files
author
codebot
committed
Update main
# Conflicts: # lib/scheduler/policy/slice_allocator.h # lib/scheduler/policy/ue_allocator.h
2 parents 8120ffb + 562192e commit f0eb3b9

File tree

104 files changed

+2851
-1962
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

104 files changed

+2851
-1962
lines changed

.github/workflows/ccpp.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@ jobs:
1818
os: [ubuntu-24.04]
1919
compiler: [gcc]
2020
steps:
21-
- uses: actions/checkout@v3
21+
- uses: actions/checkout@v4
22+
with:
23+
submodules: recursive
24+
token: ${{ secrets.CI_TOKEN != '' && secrets.CI_TOKEN || github.token }}
2225
- name: Install Dependencies
2326
run: |
2427
sudo docker/scripts/install_dependencies.sh

.gitlab/ci/docker.yml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,14 +265,26 @@ grafana server image:
265265
NAME: grafana
266266
CONTEXT: ${CI_PROJECT_DIR}/docker/grafana
267267
MODE: publish
268-
before_script:
268+
before_script: &grafana_before_script
269+
- |
270+
if [ -n "$LOGO_URL" ]; then
271+
DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y --no-install-recommends ca-certificates wget
272+
wget --header="PRIVATE-TOKEN: $CODEBOT_TOKEN" -O ${CONTEXT}/provisioning/logo.png ${LOGO_URL}
273+
export BUILD_ARGS="LOGO_SRC=/etc/grafana/provisioning/logo.png"
274+
fi
269275
- |
270276
export VERSION=$(cat docker/grafana/version.yml | grep SRS_GRAFANA_VERSION | cut -d'"' -f2)
277+
parallel:
278+
matrix:
279+
- REGISTRY_ORG: /${CI_PROJECT_NAME}
280+
- REGISTRY_ORG: /${SRSRAN_IMAGE_PREFIX}
281+
LOGO_URL: ${SRSRAN_IMAGE_LOGO_URL}
271282

272283
grafana server image latest:
273284
extends: grafana server image
274285
variables:
275286
OVERWRITE: "true"
276287
before_script:
288+
- *grafana_before_script
277289
- |
278290
export VERSION=latest

.gitlab/ci/e2e.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,7 @@ amari 32UE:
265265
"iperf and udp and not band:3",
266266
"iperf and tcp and band:3",
267267
"iperf and tcp and not band:3",
268+
"pucch",
268269
]
269270

270271
amari 32UE [ping]:

.gitlab/ci/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ download final branch:
195195
before_script:
196196
- *git_setup
197197
script:
198-
- git clone --branch ${PRIVATE_BRANCH} https://${CODEBOT_USERNAME}:${CODEBOT_TOKEN}@gitlab.com/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}.git ${CI_PROJECT_DIR}
198+
- git clone --recurse-submodules --branch ${PRIVATE_BRANCH} https://${CODEBOT_USERNAME}:${CODEBOT_TOKEN}@gitlab.com/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}.git ${CI_PROJECT_DIR}
199199
- cd ${CI_PROJECT_DIR}
200200
- git config --global --add safe.directory ${CI_PROJECT_DIR}
201201
artifacts:

apps/units/flexible_o_du/o_du_high/du_high/metrics/du_high_mac_metrics_consumers.cpp

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "du_high_mac_metrics_consumers.h"
2424
#include "srsran/mac/mac_metrics.h"
2525
#include "srsran/ran/pci.h"
26+
#include "srsran/support/format/fmt_to_c_str.h"
2627

2728
using namespace srsran;
2829

@@ -86,3 +87,50 @@ void mac_metrics_consumer_json::handle_metric(const app_services::metrics_set& m
8687
ctx.write<metric_timestamp_tag>(get_time_stamp());
8788
log_chan(ctx);
8889
}
90+
91+
static void write_latency_information(fmt::memory_buffer& buffer,
92+
const mac_dl_cell_metric_report::latency_report& report,
93+
std::string_view name,
94+
bool add_space = true,
95+
bool add_new_line = false)
96+
{
97+
fmt::format_to(std::back_inserter(buffer),
98+
"{}=[avg={}usec max={}usec max_slot={}]",
99+
name,
100+
std::round(report.average.count() * 1e-3),
101+
std::round(report.max.count() * 1e-3),
102+
report.max_slot);
103+
104+
if (add_space) {
105+
fmt::format_to(std::back_inserter(buffer), " ");
106+
}
107+
if (add_new_line) {
108+
fmt::format_to(std::back_inserter(buffer), "\n");
109+
}
110+
}
111+
112+
void mac_metrics_consumer_log::handle_metric(const app_services::metrics_set& metric)
113+
{
114+
const mac_metric_report& mac_metrics = static_cast<const mac_metrics_impl&>(metric).get_metrics();
115+
116+
fmt::memory_buffer buffer;
117+
fmt::format_to(std::back_inserter(buffer), "Mac Metrics: \n");
118+
119+
for (unsigned i = 0, e = mac_metrics.dl.cells.size(), last_index = e - 1; i != e; ++i) {
120+
const mac_dl_cell_metric_report& cell = mac_metrics.dl.cells[i];
121+
122+
fmt::format_to(std::back_inserter(buffer),
123+
" - pci={} nof_slots={} slot_duration={}usec nof_voluntary_context_switches={} "
124+
"nof_involuntary_context_switches={} ",
125+
static_cast<unsigned>(cell.pci),
126+
cell.nof_slots,
127+
std::round(cell.slot_duration.count() * 1e-3),
128+
cell.count_voluntary_context_switches,
129+
cell.count_involuntary_context_switches);
130+
131+
write_latency_information(buffer, cell.wall_clock_latency, "wall_clock_latency");
132+
write_latency_information(buffer, cell.slot_ind_handle_latency, "slot_ind_latency", false, i != last_index);
133+
}
134+
135+
log_chan("{}", to_c_str(buffer));
136+
}

apps/units/flexible_o_du/o_du_high/du_high/metrics/du_high_mac_metrics_consumers.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,17 @@ class mac_metrics_consumer_json : public app_services::metrics_consumer
4040
srslog::log_channel& log_chan;
4141
};
4242

43+
/// Consumer for the logger MAC metrics.
44+
class mac_metrics_consumer_log : public app_services::metrics_consumer
45+
{
46+
public:
47+
explicit mac_metrics_consumer_log(srslog::log_channel& log_chan_) : log_chan(log_chan_) {}
48+
49+
// See interface for documentation.
50+
void handle_metric(const app_services::metrics_set& metric) override;
51+
52+
private:
53+
srslog::log_channel& log_chan;
54+
};
55+
4356
} // namespace srsran

apps/units/flexible_o_du/o_du_high/du_high/metrics/du_high_scheduler_cell_metrics_consumers.cpp

Lines changed: 70 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include "du_high_rlc_metrics.h"
2525
#include "srsran/scheduler/scheduler_metrics.h"
2626
#include "srsran/support/engineering_notation.h"
27+
#include "srsran/support/format/custom_formattable.h"
2728
#include "fmt/ranges.h"
2829
#include "fmt/std.h"
2930
#include <ostream>
@@ -113,11 +114,13 @@ DECLARE_METRIC_SET("cell_events", mset_cell_event, metric_sfn, metric_slot_index
113114
/// cell-wide metrics.
114115
DECLARE_METRIC("error_indication_count", metric_error_indication_count, unsigned, "");
115116
DECLARE_METRIC("average_latency", metric_average_latency, unsigned, "");
117+
DECLARE_METRIC("max_latency", metric_max_latency, unsigned, "");
116118
DECLARE_METRIC("latency_histogram", latency_histogram, std::vector<unsigned>, "");
117119
DECLARE_METRIC_SET("cell_metrics",
118120
cell_metrics,
119121
metric_error_indication_count,
120122
metric_average_latency,
123+
metric_max_latency,
121124
latency_histogram);
122125

123126
/// Metrics root object.
@@ -223,7 +226,7 @@ void scheduler_cell_metrics_consumer_stdout::handle_metric(const app_services::m
223226
if (ue.ul_ri_stats.get_nof_observations() > 0) {
224227
fmt::print(" {:>3.1f}", ue.ul_ri_stats.get_mean());
225228
} else {
226-
fmt::print(" {:>3}", "n/a");
229+
fmt::print(" 1");
227230
}
228231

229232
fmt::print(" {:>2}", ue.ul_mcs.to_uint());
@@ -342,6 +345,7 @@ void scheduler_cell_metrics_consumer_json::handle_metric(const app_services::met
342345
auto& cell_output = ctx.get<cell_metrics>();
343346
cell_output.write<metric_error_indication_count>(metrics.nof_error_indications);
344347
cell_output.write<metric_average_latency>(metrics.average_decision_latency.count());
348+
cell_output.write<metric_max_latency>(metrics.max_decision_latency.count());
345349
cell_output.write<latency_histogram>(
346350
std::vector<unsigned>(metrics.latency_histogram.begin(), metrics.latency_histogram.end()));
347351

@@ -364,25 +368,62 @@ void scheduler_cell_metrics_consumer_log::handle_metric(const app_services::metr
364368

365369
unsigned sum_dl_bitrate_kbps = 0;
366370
unsigned sum_ul_bitrate_kbps = 0;
371+
unsigned sum_pdsch_rbs = 0;
372+
unsigned sum_pusch_rbs = 0;
373+
float max_crc_delay = std::numeric_limits<float>::min();
374+
float max_ce_delay = std::numeric_limits<float>::min();
375+
float max_pucch_delay = std::numeric_limits<float>::min();
376+
float max_pusch_delay = std::numeric_limits<float>::min();
367377
for (const auto& ue : metrics.ue_metrics) {
368378
sum_dl_bitrate_kbps += ue.dl_brate_kbps;
369379
sum_ul_bitrate_kbps += ue.ul_brate_kbps;
380+
sum_pdsch_rbs += ue.tot_pdsch_prbs_used;
381+
sum_pusch_rbs += ue.tot_pusch_prbs_used;
382+
if (ue.max_crc_delay_ms.has_value()) {
383+
max_crc_delay = std::max(max_crc_delay, ue.max_crc_delay_ms.value());
384+
}
385+
if (ue.max_ce_delay_ms.has_value()) {
386+
max_ce_delay = std::max(max_ce_delay, ue.max_ce_delay_ms.value());
387+
}
388+
if (ue.max_pucch_harq_delay_ms.has_value()) {
389+
max_pucch_delay = std::max(max_pucch_delay, ue.max_pucch_harq_delay_ms.value());
390+
}
391+
if (ue.max_pusch_harq_delay_ms.has_value()) {
392+
max_pusch_delay = std::max(max_pusch_delay, ue.max_pusch_harq_delay_ms.value());
393+
}
370394
}
371395

372396
// log cell-wide metrics
373397
fmt::format_to(std::back_inserter(buffer), "Cell Scheduler Metrics:");
374398
fmt::format_to(
375399
std::back_inserter(buffer),
376400
" total_dl_brate={}bps total_ul_brate={}bps nof_prbs={} nof_dl_slots={} nof_ul_slots={} error_indications={} "
377-
"mean_latency={}usec latency_hist=[{}]",
401+
"pdsch_rbs_per_slot={} pusch_rbs_per_slot={} mean_latency={}usec max_latency={}usec max_latency_slot={} "
402+
"latency_hist=[{}]",
378403
float_to_eng_string(sum_dl_bitrate_kbps * 1e3, 1, false),
379404
float_to_eng_string(sum_ul_bitrate_kbps * 1e3, 1, false),
380405
metrics.nof_prbs,
381406
metrics.nof_dl_slots,
382407
metrics.nof_ul_slots,
383408
metrics.nof_error_indications,
409+
sum_pdsch_rbs / metrics.nof_dl_slots,
410+
sum_pusch_rbs / metrics.nof_ul_slots,
384411
metrics.average_decision_latency.count(),
412+
metrics.max_decision_latency.count(),
413+
metrics.max_decision_latency_slot,
385414
fmt::join(metrics.latency_histogram.begin(), metrics.latency_histogram.end(), ", "));
415+
if (max_crc_delay != std::numeric_limits<float>::min()) {
416+
fmt::format_to(std::back_inserter(buffer), " max_crc_delay={}ms", max_crc_delay);
417+
}
418+
if (max_ce_delay != std::numeric_limits<float>::min()) {
419+
fmt::format_to(std::back_inserter(buffer), " max_ce_delay={}ms", max_ce_delay);
420+
}
421+
if (max_pucch_delay != std::numeric_limits<float>::min()) {
422+
fmt::format_to(std::back_inserter(buffer), " max_pucch_harq_delay={}ms", max_pucch_delay);
423+
}
424+
if (max_pusch_delay != std::numeric_limits<float>::min()) {
425+
fmt::format_to(std::back_inserter(buffer), " max_pusch_harq_delay={}ms", max_pusch_delay);
426+
}
386427
if (not metrics.events.empty()) {
387428
fmt::format_to(std::back_inserter(buffer), " events=[");
388429
bool first = true;
@@ -432,7 +473,7 @@ void scheduler_cell_metrics_consumer_log::handle_metric(const app_services::metr
432473
" dl_error_rate={}%",
433474
dl_total > 0 ? to_percentage<int>(ue.dl_nof_nok, dl_total) : 0);
434475
fmt::format_to(std::back_inserter(buffer), " dl_bs={}", scaled_fmt_integer(ue.dl_bs, false));
435-
fmt::format_to(std::back_inserter(buffer), " dl_nof_prbs={}", ue.tot_dl_prbs_used);
476+
fmt::format_to(std::back_inserter(buffer), " dl_nof_prbs={}", ue.tot_pdsch_prbs_used);
436477
if (ue.last_dl_olla.has_value()) {
437478
fmt::format_to(std::back_inserter(buffer), " dl_olla={}", ue.last_dl_olla);
438479
}
@@ -456,7 +497,7 @@ void scheduler_cell_metrics_consumer_log::handle_metric(const app_services::metr
456497
if (ue.ul_ri_stats.get_nof_observations() > 0) {
457498
fmt::format_to(std::back_inserter(buffer), " ul_ri={:.1f}", ue.ul_ri_stats.get_mean());
458499
} else {
459-
fmt::format_to(std::back_inserter(buffer), " ul_ri=n/a");
500+
fmt::format_to(std::back_inserter(buffer), " ul_ri=1");
460501
}
461502

462503
fmt::format_to(std::back_inserter(buffer), " ul_mcs={}", ue.ul_mcs.to_uint());
@@ -470,81 +511,38 @@ void scheduler_cell_metrics_consumer_log::handle_metric(const app_services::metr
470511
fmt::format_to(std::back_inserter(buffer), " ul_nof_nok={}", ue.ul_nof_nok);
471512

472513
unsigned ul_total = ue.ul_nof_ok + ue.ul_nof_nok;
473-
fmt::format_to(std::back_inserter(buffer),
474-
" ul_error_rate={}%",
475-
ul_total > 0 ? to_percentage<int>(ue.ul_nof_nok, ul_total) : 0);
476-
if (ul_total > 0) {
477-
fmt::format_to(std::back_inserter(buffer), " avg_crc_delay={:.3}ms", ue.avg_crc_delay_ms);
478-
} else {
479-
fmt::format_to(std::back_inserter(buffer), " avg_crc_delay=n/a");
480-
}
481-
fmt::format_to(std::back_inserter(buffer), " ul_nof_prbs={}", ue.tot_ul_prbs_used);
482-
fmt::format_to(std::back_inserter(buffer), " bsr={}", scaled_fmt_integer(ue.bsr, false));
483-
fmt::format_to(std::back_inserter(buffer), " sr_count={}", ue.sr_count);
484-
fmt::format_to(std::back_inserter(buffer), " f0f1_invalid_harqs={}", ue.nof_pucch_f0f1_invalid_harqs);
485-
fmt::format_to(std::back_inserter(buffer), " f2f3f4_invalid_harqs={}", ue.nof_pucch_f2f3f4_invalid_harqs);
486-
fmt::format_to(std::back_inserter(buffer), " f2f3f4_invalid_csis={}", ue.nof_pucch_f2f3f4_invalid_csis);
487-
fmt::format_to(std::back_inserter(buffer), " pusch_invalid_harqs={}", ue.nof_pusch_invalid_harqs);
488-
fmt::format_to(std::back_inserter(buffer), " pusch_invalid_csis={}", ue.nof_pusch_invalid_csis);
514+
auto out_it = std::back_inserter(buffer);
515+
fmt::format_to(out_it, " ul_error_rate={}%", ul_total > 0 ? to_percentage<int>(ue.ul_nof_nok, ul_total) : 0);
516+
fmt::format_to(out_it, " ul_nof_prbs={}", ue.tot_pusch_prbs_used);
517+
fmt::format_to(out_it, " bsr={}", scaled_fmt_integer(ue.bsr, false));
518+
fmt::format_to(out_it, " sr_count={}", ue.sr_count);
519+
fmt::format_to(out_it, " f0f1_invalid_harqs={}", ue.nof_pucch_f0f1_invalid_harqs);
520+
fmt::format_to(out_it, " f2f3f4_invalid_harqs={}", ue.nof_pucch_f2f3f4_invalid_harqs);
521+
fmt::format_to(out_it, " f2f3f4_invalid_csis={}", ue.nof_pucch_f2f3f4_invalid_csis);
522+
fmt::format_to(out_it, " pusch_invalid_harqs={}", ue.nof_pusch_invalid_harqs);
523+
fmt::format_to(out_it, " pusch_invalid_csis={}", ue.nof_pusch_invalid_csis);
489524
if (ue.last_ul_olla.has_value()) {
490-
fmt::format_to(std::back_inserter(buffer), " ul_olla={}", ue.last_ul_olla.value());
525+
fmt::format_to(out_it, " ul_olla={}", ue.last_ul_olla.value());
491526
}
492527
if (ue.ta_stats.get_nof_observations() > 0) {
493-
fmt::format_to(std::back_inserter(buffer), " ta={}s", float_to_eng_string(ue.ta_stats.get_mean(), 0, false));
528+
fmt::format_to(out_it, " ta={}s", float_to_eng_string(ue.ta_stats.get_mean(), 0, false));
494529
} else {
495-
fmt::format_to(std::back_inserter(buffer), " ta=n/a");
530+
fmt::format_to(out_it, " ta=n/a");
496531
}
497532
if (ue.srs_ta_stats.get_nof_observations() > 0) {
498-
fmt::format_to(
499-
std::back_inserter(buffer), " srs_ta={}s", float_to_eng_string(ue.srs_ta_stats.get_mean(), 0, false));
533+
fmt::format_to(out_it, " srs_ta={}s", float_to_eng_string(ue.srs_ta_stats.get_mean(), 0, false));
500534
} else {
501-
fmt::format_to(std::back_inserter(buffer), " srs_ta=n/a");
502-
}
503-
if (ue.last_phr.has_value()) {
504-
fmt::format_to(std::back_inserter(buffer), " last_phr={}", ue.last_phr.value());
505-
} else {
506-
fmt::format_to(std::back_inserter(buffer), " last_phr=n/a");
507-
}
508-
if (ue.avg_ce_delay_ms.has_value()) {
509-
fmt::format_to(std::back_inserter(buffer), " avg_ul_ce_delay={:.2}ms", ue.avg_ce_delay_ms.value());
510-
} else {
511-
fmt::format_to(std::back_inserter(buffer), " avg_ul_ce_delay=n/a");
512-
}
513-
if (ue.max_ce_delay_ms.has_value()) {
514-
fmt::format_to(std::back_inserter(buffer), " max_ul_ce_delay={:.2}ms", ue.max_ce_delay_ms.value());
515-
} else {
516-
fmt::format_to(std::back_inserter(buffer), " max_ul_ce_delay=n/a");
517-
}
518-
if (ue.avg_crc_delay_ms.has_value()) {
519-
fmt::format_to(std::back_inserter(buffer), " avg_crc_delay={:.2}ms", ue.avg_crc_delay_ms.value());
520-
} else {
521-
fmt::format_to(std::back_inserter(buffer), " avg_crc_delay=n/a");
522-
}
523-
if (ue.max_crc_delay_ms.has_value()) {
524-
fmt::format_to(std::back_inserter(buffer), " max_crc_delay={:.2}ms", ue.max_crc_delay_ms.value());
525-
} else {
526-
fmt::format_to(std::back_inserter(buffer), " max_crc_delay=n/a");
527-
}
528-
if (ue.avg_pusch_harq_delay_ms.has_value()) {
529-
fmt::format_to(std::back_inserter(buffer), " avg_pusch_harq_delay={:.2}ms", ue.avg_pusch_harq_delay_ms.value());
530-
} else {
531-
fmt::format_to(std::back_inserter(buffer), " avg_pusch_harq_delay=n/a");
532-
}
533-
if (ue.max_pusch_harq_delay_ms.has_value()) {
534-
fmt::format_to(std::back_inserter(buffer), " max_pusch_harq_delay={:.2}ms", ue.max_pusch_harq_delay_ms.value());
535-
} else {
536-
fmt::format_to(std::back_inserter(buffer), " max_pusch_harq_delay=n/a");
537-
}
538-
if (ue.avg_pucch_harq_delay_ms.has_value()) {
539-
fmt::format_to(std::back_inserter(buffer), " avg_pucch_harq_delay={:.2}ms", ue.avg_pucch_harq_delay_ms.value());
540-
} else {
541-
fmt::format_to(std::back_inserter(buffer), " avg_pucch_harq_delay=n/a");
542-
}
543-
if (ue.max_pucch_harq_delay_ms.has_value()) {
544-
fmt::format_to(std::back_inserter(buffer), " max_pucch_harq_delay={:.2}ms", ue.max_pucch_harq_delay_ms.value());
545-
} else {
546-
fmt::format_to(std::back_inserter(buffer), " max_pucch_harq_delay=n/a");
547-
}
535+
fmt::format_to(out_it, " srs_ta=n/a");
536+
}
537+
fmt::format_to(out_it, " last_phr={}", format_value_or(ue.last_phr, "n/a"));
538+
fmt::format_to(out_it, " avg_ul_ce_delay={:.3}", format_unit_or(ue.avg_ce_delay_ms, "ms", "n/a"));
539+
fmt::format_to(out_it, " max_ul_ce_delay={:.3}", format_unit_or(ue.max_ce_delay_ms, "ms", "n/a"));
540+
fmt::format_to(out_it, " avg_crc_delay={:.3}", format_unit_or(ue.avg_crc_delay_ms, "ms", "n/a"));
541+
fmt::format_to(out_it, " max_crc_delay={:.3}", format_unit_or(ue.max_crc_delay_ms, "ms", "n/a"));
542+
fmt::format_to(out_it, " avg_pusch_harq_delay={:.3}", format_unit_or(ue.avg_pusch_harq_delay_ms, "ms", "n/a"));
543+
fmt::format_to(out_it, " max_pusch_harq_delay={:.3}", format_unit_or(ue.max_pusch_harq_delay_ms, "ms", "n/a"));
544+
fmt::format_to(out_it, " avg_pucch_harq_delay={:.3}", format_unit_or(ue.avg_pucch_harq_delay_ms, "ms", "n/a"));
545+
fmt::format_to(out_it, " max_pucch_harq_delay={:.3}", format_unit_or(ue.max_pucch_harq_delay_ms, "ms", "n/a"));
548546

549547
log_chan("{}", to_c_str(buffer));
550548
buffer.clear();

apps/units/flexible_o_du/o_du_high/o_du_high_unit_factory.cpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ static mac_metrics_notifier* build_mac_du_metrics(std::vector<app_services::metr
212212

213213
// MAC metrics.
214214
const app_helpers::metrics_config& metrics_config = du_hi_cfg.metrics.common_metrics_cfg;
215-
if (!metrics_config.json_config.enable_json_metrics) {
215+
if (!metrics_config.enabled()) {
216216
return out;
217217
}
218218

@@ -225,8 +225,15 @@ static mac_metrics_notifier* build_mac_du_metrics(std::vector<app_services::metr
225225
out = &(*mac_metric_gen);
226226
mac_metrics_cfg.producers.push_back(std::move(mac_metric_gen));
227227

228-
mac_metrics_cfg.consumers.push_back(
229-
std::make_unique<mac_metrics_consumer_json>(app_helpers::fetch_json_metrics_log_channel()));
228+
if (metrics_config.enable_log_metrics) {
229+
mac_metrics_cfg.consumers.push_back(
230+
std::make_unique<mac_metrics_consumer_log>(app_helpers::fetch_logger_metrics_log_channel()));
231+
}
232+
233+
if (metrics_config.json_config.enable_json_metrics) {
234+
mac_metrics_cfg.consumers.push_back(
235+
std::make_unique<mac_metrics_consumer_json>(app_helpers::fetch_json_metrics_log_channel()));
236+
}
230237

231238
return out;
232239
}

0 commit comments

Comments
 (0)