more logging for errors on pubsub listener

This commit is contained in:
Grant Limberg 2025-09-30 10:32:21 -07:00
parent 315bf240fc
commit 97d20a1155
2 changed files with 111 additions and 95 deletions

View file

@ -56,7 +56,7 @@ PubSubListener::PubSubListener(std::string controller_id, std::string project, s
_subscriberThread = std::thread(&PubSubListener::subscribe, this);
}
PubSubListener::~PubSubListener()
PubSubListener::~PubSubListener()`
{
_run = false;
if (_subscriberThread.joinable()) {
@ -174,13 +174,14 @@ void PubSubNetworkListener::onNotification(const std::string& payload)
}
}
catch (const nlohmann::json::parse_error& e) {
fprintf(stderr, "JSON parse error: %s\n", e.what());
fprintf(stderr, "PubSubNetworkListener JSON parse error: %s\n", e.what());
span->SetAttribute("error", e.what());
span->SetStatus(opentelemetry::trace::StatusCode::kError, e.what());
fprintf(stderr, "payload: %s\n", payload.c_str());
return;
}
catch (const std::exception& e) {
fprintf(stderr, "Exception in PubSubNetworkListener: %s\n", e.what());
fprintf(stderr, "PubSubNetworkListener Exception in PubSubNetworkListener: %s\n", e.what());
span->SetAttribute("error", e.what());
span->SetStatus(opentelemetry::trace::StatusCode::kError, e.what());
return;
@ -260,13 +261,14 @@ void PubSubMemberListener::onNotification(const std::string& payload)
}
}
catch (const nlohmann::json::parse_error& e) {
fprintf(stderr, "JSON parse error: %s\n", e.what());
fprintf(stderr, "PubSubMemberListener JSON parse error: %s\n", e.what());
span->SetAttribute("error", e.what());
span->SetStatus(opentelemetry::trace::StatusCode::kError, e.what());
fprintf(stderr, "payload: %s\n", payload.c_str());
return;
}
catch (const std::exception& e) {
fprintf(stderr, "Exception in PubSubMemberListener: %s\n", e.what());
fprintf(stderr, "PubSubMemberListener Exception in PubSubMemberListener: %s\n", e.what());
span->SetAttribute("error", e.what());
span->SetStatus(opentelemetry::trace::StatusCode::kError, e.what());
return;

View file

@ -144,6 +144,7 @@ pbmessages::NetworkChange_Network* networkFromJson(const nlohmann::json& j)
}
pbmessages::NetworkChange_Network* n = new pbmessages::NetworkChange_Network();
try {
n->set_network_id(j.value("id", ""));
n->set_name(j.value("name", ""));
n->set_capabilities(OSUtils::jsonDump(j.value("capabilities", "[]"), -1));
@ -212,7 +213,13 @@ pbmessages::NetworkChange_Network* networkFromJson(const nlohmann::json& j)
n->set_sso_provider(j.value("provider", ""));
}
n->set_rules_source("");
n->set_rules_source(j.value("rulesSource", ""));
}
catch (const std::exception& e) {
fprintf(stderr, "Exception parsing network JSON: %s\n", e.what());
delete n;
return nullptr;
}
return n;
}
@ -240,6 +247,7 @@ pbmessages::MemberChange_Member* memberFromJson(const nlohmann::json& j)
}
pbmessages::MemberChange_Member* m = new pbmessages::MemberChange_Member();
try {
m->set_network_id(j.value("networkId", ""));
m->set_device_id(j.value("id", ""));
m->set_identity(j.value("identity", ""));
@ -268,6 +276,12 @@ pbmessages::MemberChange_Member* memberFromJson(const nlohmann::json& j)
m->set_remote_trace_target(j.value("remoteTraceTarget", ""));
m->set_sso_exempt(j.value("ssoExempt", false));
m->set_auth_expiry_time(j.value("authExpiryTime", 0));
}
catch (const std::exception& e) {
fprintf(stderr, "Exception parsing member JSON: %s\n", e.what());
delete m;
return nullptr;
}
return m;
}