MessageHandler_& end(std::string const& msg = "", std::string const& info = "") { if (name.empty()) return *this; indent = --indentLevel * INDENT_SIZE; ResourceUsage rusage = ResourceUsage() - initialUsage; if (beginLine == lineno) { if (!info.empty()) { *this << " " << info; } else if (msg.empty()) { *this << " done"; } else { *this << " " << msg; } } else { if (msg.empty()) { *this << "\nDone " << name; } else { *this << "\n" << capitalize(msg); } if (!info.empty()) *this << " " << info; } *this << " in " << rusage << ".\n"; name = ""; return *this; }
ResourceUsage ResourceUsage::sinceEpoch() { return ResourceUsage( std::chrono::duration_cast<TimeUnit>( std::chrono::steady_clock::now().time_since_epoch()), std::chrono::duration_cast<TimeUnit>( std::chrono::microseconds( HPHP::Timer::GetRusageMicros(Timer::TotalCPU, Timer::Self))), Process::GetProcessRSS((pid_t)Process::GetProcessId())); }
MockSlaveUsage(int executors) : results(ResourceUsage()) { for (int i = 0; i < executors; i++) { ResourceHelper::addExecutor( results, CREATE_EXECUTOR_INFO(std::to_string(i + 1), "exit 1"), Resources(), ResourceHelper::createStatistics()); } }
// This test verifies the correct handling of the statistics // endpoint when there is no executor running. TEST(MonitorTest, NoExecutor) { ResourceMonitor monitor([]() -> Future<ResourceUsage> { return ResourceUsage(); }); UPID upid("monitor", process::address()); Future<http::Response> response = http::get(upid, "statistics"); AWAIT_READY(response); AWAIT_EXPECT_RESPONSE_STATUS_EQ(http::OK().status, response); AWAIT_EXPECT_RESPONSE_HEADER_EQ( "application/json", "Content-Type", response); AWAIT_EXPECT_RESPONSE_BODY_EQ("[]", response); }
process::Future<ResourceUsage> usageIter(int _iteration) { if (_iteration >= results.resource_usage_size()) return ResourceUsage(); std::cout<< _iteration << std::endl; return results.resource_usage(_iteration); }
process::Future<ResourceUsage> usage() { if (iteration >= results.resource_usage_size()) return ResourceUsage(); std::cout<< iteration << std::endl; return results.resource_usage(iteration++); }
ResourceUsage ResourceUsage::operator+(const ResourceUsage& rhs) const { return ResourceUsage(m_wall + rhs.m_wall, m_cpu + rhs.m_cpu, m_rssMb + rhs.m_rssMb); }
ResourceUsage ResourceUsage::operator-(const ResourceUsage& rhs) const { return ResourceUsage(m_wall - rhs.m_wall, m_cpu - rhs.m_cpu, m_rssMb - rhs.m_rssMb); }
ResourceUsage operator-(ResourceUsage const& u) const { return ResourceUsage(etime - u.etime, utime - u.utime, stime - u.stime, std::max(maxrss, u.maxrss)); }