mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-20 20:40:56 +01:00
Cascade DarkConsole query plan analyzer to Ajax requests
Summary: Fixes T4123. If you click "Profile" on a page, we already profile all the ajax requests it generates. Do the same for "Analyze Query Plans". Test Plan: Viewed a page with Ajax requests using "Analyze Query Plans", and not using "Analyze Query Plans". Reviewers: btrahan Reviewed By: btrahan CC: aran Maniphest Tasks: T4123 Differential Revision: https://secure.phabricator.com/D7601
This commit is contained in:
parent
c207964036
commit
4aba4ddb2c
2 changed files with 24 additions and 2 deletions
|
@ -15,17 +15,36 @@ final class DarkConsoleServicesPlugin extends DarkConsolePlugin {
|
|||
return 'Information about services.';
|
||||
}
|
||||
|
||||
public static function getQueryAnalyzerHeader() {
|
||||
return 'X-Phabricator-QueryAnalyzer';
|
||||
}
|
||||
|
||||
public static function isQueryAnalyzerRequested() {
|
||||
if (!empty($_REQUEST['__analyze__'])) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$header = AphrontRequest::getHTTPHeader(self::getQueryAnalyzerHeader());
|
||||
if ($header) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @phutil-external-symbol class PhabricatorStartup
|
||||
*/
|
||||
public function generateData() {
|
||||
|
||||
$should_analyze = self::isQueryAnalyzerRequested();
|
||||
|
||||
$log = PhutilServiceProfiler::getInstance()->getServiceCallLog();
|
||||
foreach ($log as $key => $entry) {
|
||||
$config = idx($entry, 'config', array());
|
||||
unset($log[$key]['config']);
|
||||
|
||||
if (empty($_REQUEST['__analyze__'])) {
|
||||
if (!$should_analyze) {
|
||||
$log[$key]['explain'] = array(
|
||||
'sev' => 7,
|
||||
'size' => null,
|
||||
|
@ -139,7 +158,7 @@ final class DarkConsoleServicesPlugin extends DarkConsolePlugin {
|
|||
'analyzeURI' => (string)$this
|
||||
->getRequestURI()
|
||||
->alter('__analyze__', true),
|
||||
'didAnalyze' => isset($_REQUEST['__analyze__']),
|
||||
'didAnalyze' => $should_analyze,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -185,6 +185,9 @@ final class PhabricatorStandardPageView extends PhabricatorBarePageView {
|
|||
if (DarkConsoleXHProfPluginAPI::isProfilerStarted()) {
|
||||
$headers[DarkConsoleXHProfPluginAPI::getProfilerHeader()] = 'page';
|
||||
}
|
||||
if (DarkConsoleServicesPlugin::isQueryAnalyzerRequested()) {
|
||||
$headers[DarkConsoleServicesPlugin::getQueryAnalyzerHeader()] = true;
|
||||
}
|
||||
|
||||
Javelin::initBehavior(
|
||||
'dark-console',
|
||||
|
|
Loading…
Reference in a new issue