Merge pull request #1838 from majestrate/sd_notify_extra_info-2022-01-13

redo systemd status line
pull/1843/head
majestrate 2 years ago committed by GitHub
commit 27619f5fb4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -319,10 +319,24 @@ namespace llarp
PathContext::CurrentTransitPaths()
{
SyncTransitMap_t::Lock_t lock(m_TransitPaths.first);
auto& map = m_TransitPaths.second;
const auto& map = m_TransitPaths.second;
return map.size() / 2;
}
uint64_t
PathContext::CurrentOwnedPaths(path::PathStatus st)
{
uint64_t num{};
util::Lock lock{m_OurPaths.first};
auto& map = m_OurPaths.second;
for (auto itr = map.begin(); itr != map.end(); ++itr)
{
if (itr->second->Status() == st)
num++;
}
return num / 2;
}
void
PathContext::PutTransitHop(std::shared_ptr<TransitHop> hop)
{

@ -173,6 +173,10 @@ namespace llarp
uint64_t
CurrentTransitPaths();
/// current number of paths we created in status
uint64_t
CurrentOwnedPaths(path::PathStatus status = path::PathStatus::ePathEstablished);
private:
AbstractRouter* m_Router;
SyncTransitMap_t m_TransitPaths;

@ -822,12 +822,18 @@ namespace llarp
else
{
ss << " client | known/connected: " << nodedb()->NumLoaded() << "/"
<< NumberOfConnectedRouters() << " | path success: ";
hiddenServiceContext().ForEachService([&ss](const auto& name, const auto& ep) {
ss << " [" << name << " " << std::setprecision(4)
<< (100.0 * ep->CurrentBuildStats().SuccessRatio()) << "%]";
return true;
});
<< NumberOfConnectedRouters();
if (auto ep = hiddenServiceContext().GetDefault())
{
ss << " | paths/endpoints " << pathContext().CurrentOwnedPaths() << "/"
<< ep->UniqueEndpoints();
auto success_rate = ep->CurrentBuildStats().SuccessRatio();
if (success_rate < 0.5)
{
ss << " [ !!! Low Build Success Rate (" << std::setprecision(4)
<< (100.0 * success_rate) << "%) !!! ] ";
}
};
}
const auto status = ss.str();
::sd_notify(0, status.c_str());

@ -695,6 +695,12 @@ namespace llarp
}
}
size_t
Endpoint::UniqueEndpoints() const
{
return m_state->m_RemoteSessions.size() + m_state->m_SNodeSessions.size();
}
constexpr auto PublishIntrosetTimeout = 20s;
bool

@ -396,6 +396,10 @@ namespace llarp
std::optional<uint64_t>
GetSeqNoForConvo(const ConvoTag& tag);
/// count unique endpoints we are talking to
size_t
UniqueEndpoints() const;
bool
HasExit() const;

Loading…
Cancel
Save