Skip to content

Commit

Permalink
Make metrics optional.
Browse files Browse the repository at this point in the history
  • Loading branch information
GhostofCookie committed May 31, 2024
1 parent eea725b commit e3ea500
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 6 deletions.
16 changes: 14 additions & 2 deletions src/quicr_client_raw_session.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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());
Expand All @@ -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));
}

/*===========================================================================*/
Expand Down Expand Up @@ -1013,7 +1017,15 @@ ClientRawSession::handle(std::optional<uint64_t> stream_id,
<< " relay_id: " << response.relay_id
<< std::flush;

publishIntent(std::make_shared<MetricsPublishDelegate>(*this), metrics_namespace, "", "", {}, TransportMode::ReliablePerTrack, 31);
if (metrics_namespace) {
publishIntent(std::make_shared<MetricsPublishDelegate>(*this),
*metrics_namespace,
"",
"",
{},
TransportMode::ReliablePerTrack,
31);
}
break;
}
case messages::MessageType::SubscribeResponse: {
Expand Down
2 changes: 1 addition & 1 deletion src/quicr_client_raw_session.h
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ class ClientRawSession
friend MetricsPublishDelegate;

std::thread _metrics_thread;
quicr::Namespace metrics_namespace;
std::optional<quicr::Namespace> metrics_namespace;
Measurement connection_measurement;
std::map<qtransport::DataContextId, Measurement> data_measurements;

Expand Down
7 changes: 5 additions & 2 deletions src/quicr_server_raw_session.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion src/quicr_server_raw_session.h
Original file line number Diff line number Diff line change
Expand Up @@ -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<quicr::Namespace> metrics_namespace;
std::map<qtransport::TransportConnId, Measurement> conn_measurements;
std::map<qtransport::TransportConnId, std::map<qtransport::DataContextId, Measurement>> data_measurements;

Expand Down

0 comments on commit e3ea500

Please sign in to comment.