Performance/Runbook/Webperf-tools services

From Wikitech
Jump to navigation Jump to search

This is the runbook for deploying and monitoring webperf-tools services.


The puppet role for these services is role::webperf:profiling_tools.

Arc Lamp




Monitor XHGui


Upgrade XHGui

Ensure you have:

To update our mirror:

  1. In your local clone, fetch from origin and checkout origin/wmf_deploy.
  2. Revert any hot fix commits in our wmf_deploy branch. Use git revert aaa0, and reference any relevant Phabricator task in the commit message.
  3. Fetch from upstream and git-merge in all new commits to the desired upstream tag or commit hash. (e.g. git merge upstream/master)
  4. Ensure a git clean working tree (git reset --hard && git clean -dffx)
  5. 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.
  6. Create our standard patch on top:
    • Ensure /vendor is absent from .gitignore. Instead, ensure /vendor/**/.git is present.
    • Ensure /cache is absent. git rm cache/, if it is present.
    • Ensure a key for config.platform.php exists 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-mongodb exists 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
    • Run composer install --prefer-dist --no-dev.
    • Stage the changes made to gitignore, vendor or cache.
    • Commit them. Ensure the subject line starts with "WMF: " to clearly distinguish it from upstream commits.
  7. If any of our reverted hot fixes are still needed (e.g. not fixed by this new upstream version), re-apply them now using git cherry-pick.
  8. Push to Gerrit. git push origin HEAD:wmf_deploy

To deploy in production:

  1. 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.)