Track method call times/counts as a single metric
This changes method call tracking so only a single metric is emitted regardless of the number of calls. This allows us to more accurately measure the total execution time of a method as well as the number of times a method is called. See 851e3ff7578973c2206628424eac3b951a3c656d for more details.
Method call tracking tracked calls individually meaning the end statistics may not always be accurate enough to get a good understanding of where time is spent.
See merge request !4754
By default instrumentation will instrument public,
protected and private methods, because usually
heavy work is done on private method or at least
that’s what facts is showing
Add guide on changing a document's location
## What does this MR do?
Add a documentation styleguide when changing a document's location.
## What are the relevant issue numbers?
https://gitlab.com/gitlab-org/gitlab-ce/issues/3349
See merge request !4624
Added helper methods for database migrations
These helpers can ultimately be used to write migrations that don't
require downtime.
See #15464 for more information.
See merge request !3860
Added documentation on how to instrument methods
This will hopefully remove me as a single point of failure when it comes to adding instrumentation.
cc @axil @rspeicher
See merge request !4035
Using db:reset ensures existing tables are first dropped. This in turn
ensures that we can drop tables regardless of any foreign key
constraints. While CE currently doesn't have any foreign keys EE defines
the following relation:
remote_mirrors.project_id -> projects.id
MySQL will complain whenever you try to drop the "projects" table first
even when using "DROP TABLE ... CASCADE".
This makes it easier to query, simplifies the code, and makes it
possible to figure out what transaction the data belongs to (simply
because it's now stored _in_ the transaction).
This new setup keeps track of both the real/wall time _and_ CPU time
spent in a block, both measured using milliseconds (to keep all units
the same).
Fixed ~git beeing displayed as link to issues tagged with git in architecture.md
The architecture documentation explains `~git` from the picture below which is replaced by a [link to issues tagged with `git`](https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name=git). I believe that this was unintended and should be fixed by using backticks.

See merge request !2814