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;
 }
Beispiel #2
0
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()));
}
Beispiel #3
0
 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());
     }
 }
Beispiel #4
0
// 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);
}
Beispiel #5
0
 process::Future<ResourceUsage> usageIter(int _iteration) {
   if (_iteration >= results.resource_usage_size())
     return ResourceUsage();
   std::cout<< _iteration << std::endl;
   return results.resource_usage(_iteration);
 }
Beispiel #6
0
 process::Future<ResourceUsage> usage() {
   if (iteration >= results.resource_usage_size())
     return ResourceUsage();
   std::cout<< iteration << std::endl;
   return results.resource_usage(iteration++);
 }
Beispiel #7
0
ResourceUsage ResourceUsage::operator+(const ResourceUsage& rhs) const {
  return ResourceUsage(m_wall + rhs.m_wall,
                       m_cpu + rhs.m_cpu,
                       m_rssMb + rhs.m_rssMb);
}
Beispiel #8
0
ResourceUsage ResourceUsage::operator-(const ResourceUsage& rhs) const {
  return ResourceUsage(m_wall - rhs.m_wall,
                       m_cpu - rhs.m_cpu,
                       m_rssMb - rhs.m_rssMb);
}
Beispiel #9
0
 ResourceUsage operator-(ResourceUsage const& u) const {
     return ResourceUsage(etime - u.etime, utime - u.utime, stime - u.stime,
             std::max(maxrss, u.maxrss));
 }