XHGui/Runbook
This is the internal runbook for XHGui service.
Hosts
Hosts as of July 2023:
- webperf
- deployment-webperf21 (Beta cluster)
Provisioned by the Puppet role::webperf which installs the XHGui web app at https://performance.wikimedia.org/xhgui/ from the operations/software/xhgui repository (this is a mirror of the upstream perftools/xhgui repo).
Public web access is provided via an Apache proxy from the webperf host that serves performance.wikimedia.org.
Meta
- Public URL:
- Production: https://performance.wikimedia.org/xhgui/
- Beta cluster: https://performance.wikimedia.beta.wmflabs.org/xhgui/
- User documentation: XHGui
- Database: m2
Upgrade XHGui
You will need:
- a local checkout of operations/software/xhgui.git, which is our mirror.
- including a remote for upstream.
git remote add upstream git@github.com:perftools/xhgui.git
- including submodules checked out.
git submodule update --init --recursive
- including a remote for upstream.
- a local checkout of performance/docroot.git, which stores the https://performance.wikimedia.org/ website
- including submodules checked out.
git submodule update --init --recursive
- including submodules checked out.
- commit access to operations/software/xhgui.git and performance/* repositories (granted to Gerrit group "performance", per access).
Update our mirror
- Check out our mirror.
- Merge in the new release tag from upstream.
- Push to Gerrit (fast-forward only).
$ cd xhgui/ xhgui$ git checkout wmf_deploy && git remote update && git reset --hard origin/wmf_deploy xhgui$ git merge 0.12.0 xhgui$ git push origin HEAD:wmf_deploy
Update dependencies
To update our dependencies in performance/xhgui-vendor, follow steps in README.
Then, in your local xhgui checkout:
- Fast-forward the vendor submodule.
- Commit the submodule update.
- Push to Gerrit (fast-forward only).
$ cd xhgui/ xhgui$ cd vendor/ xhgui/vendor$ git pull xhgui/vendor$ cd .. xhgui$ git add vendor && git commit xhgui$ git push origin HEAD:wmf_deploy
Upgrade our install
To deploy an XHGui upgrade, update the submodule pointer in performance/docroot.git
- Fast-forward the xhgui submodule.
- Commit the submodule update.
- Push to Gerrit for review.
$ cd performance.wikimedia.org performance.wikimedia.org$ cd xhgui/ performance.wikimedia.org/xhgui$ git pull performance.wikimedia.org/xhgui$ cd .. performance.wikimedia.org$ git add vendor && git commit performance.wikimedia.org$ git review
Test on Beta Cluster:
ssh deployment-webperf21.deployment-prep.eqiad1.wikimedia.cloud
- Copy the "Download > Anonymous HTTP > Cherry pick" command from Gerrit for your docroot patch and run it as www-data on the beta server:
cd /srv/org/wikimedia/performance$ sudo -u www-data sh -c 'git fetch … && git cherry-pick FETCH_HEAD'
Deploy to production:
Once the performance/docroot
patch is reviewed and merged, Puppet will automatically apply it to production webperf*
hosts within 30 minutes.