1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-25 00:02:40 +01:00

Clean up some service profiler behavior in Conduit futures

Summary:
Correct two minor Conduit future issues:

  - FutureAgent shows up in the trace log as "<mystery>". Since it isn't doing anything useful, solve the mystery and drop it from the log.
  - Simply the ConduitFuture code for interacting with the service profiler now that a more structured integration is available.

Test Plan: Ran "arc branches --trace", saw conduit calls and no more "<mystery>" clutter.

Differential Revision: https://secure.phabricator.com/D21388
This commit is contained in:
epriestley 2020-07-01 06:23:23 -07:00
parent b8a5191e3b
commit 01e91dc260
3 changed files with 20 additions and 20 deletions

View file

@ -5,7 +5,6 @@ final class ConduitFuture extends FutureProxy {
private $client;
private $engine;
private $conduitMethod;
private $profilerCallID;
public function setClient(ConduitClient $client, $method) {
$this->client = $client;
@ -13,29 +12,19 @@ final class ConduitFuture extends FutureProxy {
return $this;
}
public function isReady() {
if ($this->profilerCallID === null) {
$profiler = PhutilServiceProfiler::getInstance();
$this->profilerCallID = $profiler->beginServiceCall(
array(
protected function getServiceProfilerStartParameters() {
return array(
'type' => 'conduit',
'method' => $this->conduitMethod,
'size' => $this->getProxiedFuture()->getHTTPRequestByteLength(),
));
);
}
return parent::isReady();
protected function getServiceProfilerResultParameters() {
return array();
}
protected function didReceiveResult($result) {
if ($this->profilerCallID !== null) {
$profiler = PhutilServiceProfiler::getInstance();
$profiler->endServiceCall(
$this->profilerCallID,
array());
}
list($status, $body, $headers) = $result;
if ($status->isError()) {
throw $status;

View file

@ -35,4 +35,11 @@ abstract class FutureAgent
return $sockets;
}
protected function getServiceProfilerStartParameters() {
// At least today, the agent construct doesn't add anything interesting
// to the trace and the underlying futures always show up in the trace
// themselves.
return null;
}
}

View file

@ -115,6 +115,10 @@ abstract class Future extends Phobject {
$params = $this->getServiceProfilerStartParameters();
if ($params === null) {
return;
}
$profiler = PhutilServiceProfiler::getInstance();
$call_id = $profiler->beginServiceCall($params);