mirror of https://github.com/oxen-io/lokinet
Merge pull request #1856 from Bilb/fix-num-path-built-summary-status
fix numPaths value in Router::ExtractSummaryStatus
This commit is contained in:
commit
f8b6b9d34b
|
@ -139,30 +139,44 @@ namespace llarp
|
|||
// Compute all stats on all path builders on the default endpoint
|
||||
// Merge snodeSessions, remoteSessions and default into a single array
|
||||
std::vector<nlohmann::json> builders;
|
||||
auto snode_sessions = services["default"]["snodeSessions"];
|
||||
|
||||
const auto& serviceDefault = services.at("default");
|
||||
builders.push_back(serviceDefault);
|
||||
|
||||
auto snode_sessions = serviceDefault.at("snodeSessions");
|
||||
for (const auto& session : snode_sessions)
|
||||
builders.push_back(session["buildStats"]);
|
||||
builders.push_back(session);
|
||||
|
||||
auto remote_sessions = services["default"]["remoteSessions"];
|
||||
auto remote_sessions = serviceDefault.at("remoteSessions");
|
||||
for (const auto& session : remote_sessions)
|
||||
builders.push_back(session["buildStats"]);
|
||||
|
||||
builders.push_back(services["default"]["buildStats"]);
|
||||
builders.push_back(session);
|
||||
|
||||
// Iterate over all items on this array to build the global pathStats
|
||||
uint64_t paths = 0;
|
||||
uint64_t pathsCount = 0;
|
||||
uint64_t success = 0;
|
||||
uint64_t attempts = 0;
|
||||
for (const auto& builder : builders)
|
||||
{
|
||||
if (builder.is_null())
|
||||
continue;
|
||||
if (builder["length"].is_number())
|
||||
paths += builder["length"].get<uint64_t>();
|
||||
if (builder["success"].is_number())
|
||||
success += builder["success"].get<uint64_t>();
|
||||
if (builder["attempts"].is_number())
|
||||
attempts += builder["attempts"].get<uint64_t>();
|
||||
|
||||
const auto& paths = builder.at("paths");
|
||||
if (paths.is_array())
|
||||
{
|
||||
for (const auto& [key, value] : paths.items())
|
||||
{
|
||||
if (value.is_object() && value.at("status").is_string()
|
||||
&& value.at("status") == "established")
|
||||
pathsCount++;
|
||||
}
|
||||
}
|
||||
|
||||
const auto& buildStats = builder.at("buildStats");
|
||||
if (buildStats.is_null())
|
||||
continue;
|
||||
|
||||
success += buildStats.at("success").get<uint64_t>();
|
||||
attempts += buildStats.at("attempts").get<uint64_t>();
|
||||
}
|
||||
double ratio = static_cast<double>(success) / (attempts + 1);
|
||||
|
||||
|
@ -171,7 +185,7 @@ namespace llarp
|
|||
{"authCodes", services["default"]["authCodes"]},
|
||||
{"exitMap", services["default"]["exitMap"]},
|
||||
{"lokiAddress", services["default"]["identity"]},
|
||||
{"numPathsBuilt", paths},
|
||||
{"numPathsBuilt", pathsCount},
|
||||
{"numPeersConnected", peers},
|
||||
{"numRoutersKnown", _nodedb->NumLoaded()},
|
||||
{"ratio", ratio},
|
||||
|
|
Loading…
Reference in New Issue