Add distributed tracing support with LabKit
See labkit!2 (merged) for details
Workhorse companion MR: gitlab-workhorse!325 (merged)
GitLab-CE companion MRs: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21280 https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24186
Adds distributed tracing via LabKit.
By default, this merge request does not add any functionality to Gitaly, since it only inserts a zero-cost null-operation tracer.
OpenTracing implementations can be compiled into the binary using build tags. Initially, this will be done for GDK compilations, but may in future be used to compile opentracing support into production, using the as-yet-unselected opentracing provider.
To compile support for Jaeger, set the make variable BUILD_TAGS="tracer_static tracer_static_jaeger"
, For example:
$ make BUILD_TAGS="tracer_static tracer_static_jaeger"
Testing
The best way to get a feel for how this works is to test it end-to-end. You can find detailed instructions of how to do this in the How to Test section here: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21280#how-to-test