Sketch flow from web request to fully completed request, highlight what is monitored.

Related to checking out performance #1830 (closed)

  • Starting with the production architecture diagram, sketch full flow from web request submitted to web request fulfilled, mapping it to our services / infra / code.
  • Consider making it into a sequence diagram, using https://mscgen.js.org/
  • Point out what is being measured / where things are measured, and what is not.

Path will look something like:

  1. user clicks button (e.g. new issue, merge request)
  2. (...)
  3. request routed to our servers
  4. HTTP queue timings is what HAproxy can't pass to an application server https://performance.gitlab.net/dashboard/db/rails-controllers?orgId=1&panelId=21&fullscreen
  5. Nginx queue (not measured?)
  6. In unicorn queue (not measured?)
  7. In rails metal (maybe measured?)
  8. In rails controller transaction timings
    1. sql requests
    2. views actions
  9. back out (enumerate steps)