1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-30 17:30:59 +01:00
phorge-phorge/resources/sql/patches/xhprof.sql
Nick Harper 5978bbfc64 Do sampled profiling of requests
Summary:
People have occasionally complained about phabricator being slow. We have
the access log to look at to see when slowness happens, but it doesn't tell
us much about why it happened. Since it's usually a sporadic issue that's
reported, it's hard to reproduce and then profile. This change will allow us
to collect sampled profiles so we can look at them when slowness occurs.

Test Plan:
checking that sampling works correctly:
- set rate to 0; do several page loads; check no new entries in table
- set rate to 1; check that there's a new row in the table for each page load
- set rate to 10; check that some requests write to table and some don't
check new ui for samples:
- load /xhprof/list/all/, see a list with a lot of samples
- load /xhprof/list/sampled/, see only sampled runs
- load /xhprof/list/manual/, see only non-sampled runs
- load /xhprof/list/my-runs/, se only my manual runs

Reviewers: vrana, epriestley

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D3458
2012-09-17 10:53:45 -07:00

14 lines
596 B
SQL

CREATE DATABASE {$NAMESPACE}_xhprof;
CREATE TABLE {$NAMESPACE}_xhprof.xhprof_sample (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`filePHID` VARCHAR(64) NOT NULL COLLATE utf8_bin,
`sampleRate` INT NOT NULL,
`usTotal` BIGINT UNSIGNED NOT NULL,
`hostname` VARCHAR(255) COLLATE utf8_bin,
`requestPath` VARCHAR(255) COLLATE utf8_bin,
`controller` VARCHAR(255) COLLATE utf8_bin,
`userPHID` VARCHAR(64) COLLATE utf8_bin,
`dateCreated` BIGINT UNSIGNED NOT NULL,
`dateModified` BIGINT UNSIGNED NOT NULL,
UNIQUE KEY (filePHID)
) ENGINE=InnoDB, COLLATE utf8_general_ci;