forked from lix-project/hydra
Keep track of how many threads are waiting
This commit is contained in:
parent
06d75699a7
commit
3ded87329d
|
@ -179,9 +179,11 @@ void State::buildRemote(std::shared_ptr<StoreAPI> store,
|
|||
|
||||
/* Copy the input closure. */
|
||||
if (machine->sshName != "localhost") {
|
||||
printMsg(lvlDebug, format("sending closure of ‘%1%’ to ‘%2%’") % step->drvPath % machine->sshName);
|
||||
MaintainCount mc(nrStepsCopyingTo);
|
||||
auto mc1 = std::make_shared<MaintainCount>(nrStepsWaiting);
|
||||
std::lock_guard<std::mutex> sendLock(machine->state->sendLock);
|
||||
mc1.reset();
|
||||
MaintainCount mc2(nrStepsCopyingTo);
|
||||
printMsg(lvlDebug, format("sending closure of ‘%1%’ to ‘%2%’") % step->drvPath % machine->sshName);
|
||||
copyClosureTo(store, from, to, inputs, bytesSent);
|
||||
}
|
||||
|
||||
|
|
|
@ -1283,6 +1283,7 @@ void State::dumpStatus(Connection & conn, bool log)
|
|||
root.attr("nrStepsBuilding", nrStepsBuilding);
|
||||
root.attr("nrStepsCopyingTo", nrStepsCopyingTo);
|
||||
root.attr("nrStepsCopyingFrom", nrStepsCopyingFrom);
|
||||
root.attr("nrStepsWaiting", nrStepsWaiting);
|
||||
root.attr("bytesSent"); out << bytesSent;
|
||||
root.attr("bytesReceived"); out << bytesReceived;
|
||||
root.attr("nrBuildsRead", nrBuildsRead);
|
||||
|
|
|
@ -203,6 +203,7 @@ private:
|
|||
counter nrStepsBuilding{0};
|
||||
counter nrStepsCopyingTo{0};
|
||||
counter nrStepsCopyingFrom{0};
|
||||
counter nrStepsWaiting{0};
|
||||
counter nrRetries{0};
|
||||
counter maxNrRetries{0};
|
||||
counter totalStepTime{0}; // total time for steps, including closure copying
|
||||
|
|
|
@ -29,6 +29,7 @@ sub sendQueueRunnerStats {
|
|||
gauge("hydra.queue.steps.building", $json->{nrStepsBuilding});
|
||||
gauge("hydra.queue.steps.copying_to", $json->{nrStepsCopyingTo});
|
||||
gauge("hydra.queue.steps.copying_from", $json->{nrStepsCopyingFrom});
|
||||
gauge("hydra.queue.steps.waiting", $json->{nrStepsWaiting});
|
||||
gauge("hydra.queue.steps.runnable", $json->{nrRunnableSteps});
|
||||
gauge("hydra.queue.steps.unfinished", $json->{nrUnfinishedSteps});
|
||||
gauge("hydra.queue.steps.finished", $json->{nrStepsDone});
|
||||
|
|
Loading…
Reference in a new issue