This is the runbook for deploying and monitoring webperf-tools services.
The puppet role for these services is role::webperf:profiling_tools.
- webperf2002 (Codfw cluster): Grafana host monitor.
- webperf12 (Beta cluster): grafana-labs machine stats.
- Public URL: https://performance.wikimedia.org/php-profiling/
- Host: webperfx…2
- Source code: modules/arclamp and profile::webperf::arclamp.
- Public URL: https://performance.wikimedia.org/xhgui/
- User documentation: XHGui
- Host: tungsten (being moved to webperf1002/2002; T180761)
- Source code: operations/software/xhgui.git (upstream: github:perftools/xhgui)
Ensure you have:
- a local git clone of our origin repo ssh://gerrit.wikimedia.org:29418/operations/software/xhgui
- a second remote on that local clone, for upstream. E.g.
git remote add upstream email@example.com:perftools/xhgui.git.
- owner access to operations/software/xhgui.git (granted to Gerrit group "performance", per access).
To update our mirror:
- In your local clone, fetch from origin and checkout
- Revert any hot fix commits in our wmf_deploy branch. Use
git revert aaa0, and reference any relevant Phabricator task in the commit message.
- Fetch from upstream and git-merge in all new commits to the desired upstream tag or commit hash. (e.g.
git merge upstream/master)
- Ensure a git clean working tree (
git reset --hard && git clean -dffx)
- Create a commit reflecting from which hash to which hash we are upgrading, and mention any relevant Phabricator tasks. Ensure the subject line starts with "WMF: " to clearly distinguish it from upstream commits.
- Create our standard patch on top:
/vendoris absent from
.gitignore. Instead, ensure
git rm cache/, if it is present.
- Ensure a key for
config.platform.phpexists in composer.json and is set to
"5.6.40". This is needed because xhgui-collector uses a polyfill for the PHP 7 "random_bytes()" function, which Composer only installs for PHP 5. We currently run XHGui from tungsten.eqiad with PHP 5.6.40. (Upgrade is tracked at T180761).
- Ensure a key for
config.platform.ext-mongodbexists in composer.json and is set to
"1.999". Our server actually has ext-mongo, not ext-mongodb. XHGui has an optional dependency for users that have ext-mongo, but we don't need it, and Composer has an issue with detecting this. Details at https://github.com/perftools/xhgui/issues/271.
composer install --prefer-dist --no-dev.
- Stage the changes made to
- Commit them. Ensure the subject line starts with "WMF: " to clearly distinguish it from upstream commits.
- If any of our reverted hot fixes are still needed (e.g. not fixed by this new upstream version), re-apply them now using
- Push to Gerrit.
git push origin HEAD:wmf_deploy
To deploy in production:
- Happens automatically by puppet every 30 minutes.
To deploy to Beta Cluster:
(TODO: Not yet provisioned in Beta Cluster. As part of the upcoming upgrade - T180761 - XHGui will be installed on webperf002 in Beta with Debian Stretch; and similarly in prod.)