diff --git a/src/quicr_client_raw_session.cpp b/src/quicr_client_raw_session.cpp index 9a2c4284..07e014a6 100644 --- a/src/quicr_client_raw_session.cpp +++ b/src/quicr_client_raw_session.cpp @@ -244,6 +244,8 @@ ClientRawSession::connecting() const void ClientRawSession::runPublishMeasurements() { + if (!metrics_namespace) return; + LOGGER_INFO(logger, "Starting metrics thread"); _metrics_thread = std::thread([this]{ while (!stopping) @@ -338,6 +340,8 @@ ClientRawSession::runPublishMeasurements() void ClientRawSession::publishMeasurement(const Measurement& measurement) { + if (!metrics_namespace) return; + const json measurement_json = measurement; const std::string measurement_str = measurement_json.dump(); quicr::bytes measurement_bytes(measurement_str.begin(), measurement_str.end()); @@ -347,7 +351,7 @@ ClientRawSession::publishMeasurement(const Measurement& measurement) trace.reserve(10); trace.push_back({"libquicr:publishMetrics:begin", start_time}); - publishNamedObject(metrics_namespace, 31, 500, std::move(measurement_bytes), std::move(trace)); + publishNamedObject(*metrics_namespace, 31, 500, std::move(measurement_bytes), std::move(trace)); } /*===========================================================================*/ @@ -1013,7 +1017,15 @@ ClientRawSession::handle(std::optional stream_id, << " relay_id: " << response.relay_id << std::flush; - publishIntent(std::make_shared(*this), metrics_namespace, "", "", {}, TransportMode::ReliablePerTrack, 31); + if (metrics_namespace) { + publishIntent(std::make_shared(*this), + *metrics_namespace, + "", + "", + {}, + TransportMode::ReliablePerTrack, + 31); + } break; } case messages::MessageType::SubscribeResponse: { diff --git a/src/quicr_client_raw_session.h b/src/quicr_client_raw_session.h index f1bb25d5..6417d1c5 100644 --- a/src/quicr_client_raw_session.h +++ b/src/quicr_client_raw_session.h @@ -375,7 +375,7 @@ class ClientRawSession friend MetricsPublishDelegate; std::thread _metrics_thread; - quicr::Namespace metrics_namespace; + std::optional metrics_namespace; Measurement connection_measurement; std::map data_measurements; diff --git a/src/quicr_server_raw_session.cpp b/src/quicr_server_raw_session.cpp index b30cc489..74e31034 100644 --- a/src/quicr_server_raw_session.cpp +++ b/src/quicr_server_raw_session.cpp @@ -111,7 +111,10 @@ ServerRawSession::run() std::this_thread::sleep_for(std::chrono::milliseconds(100)); } - runPublishMeasurements(); + if (metrics_namespace) + { + runPublishMeasurements(); + } return transport->status() == qtransport::TransportStatus::Ready; } @@ -801,7 +804,7 @@ ServerRawSession::publishMeasurement(const Measurement& measurement) quicr::bytes measurement_bytes(measurement_str.begin(), measurement_str.end()); messages::PublishDatagram datagram; - datagram.header.name = metrics_namespace; + datagram.header.name = *metrics_namespace; datagram.header.media_id = 0; datagram.header.group_id = 0; datagram.header.object_id = 0; diff --git a/src/quicr_server_raw_session.h b/src/quicr_server_raw_session.h index e34cea4e..8d598db9 100644 --- a/src/quicr_server_raw_session.h +++ b/src/quicr_server_raw_session.h @@ -293,7 +293,7 @@ class ServerRawSession : public ServerSession uint64_t _subscriber_id{ 0 }; std::thread _metrics_thread; - quicr::Namespace metrics_namespace = std::string_view("0xA11CEB0B000000000000000000000000/80"); + std::optional metrics_namespace; std::map conn_measurements; std::map> data_measurements;