Implement tracing for `CreatePipelineService`
Description
We should enable distributed tracing for CreatePipelineService
in staging / production environment by dogfooding our observability product.
Before we do that we may need to add additional instrumentation.
Details
We want to have access to distributed tracing backend that looks similarly to what is on the screenshot below. Think about it as a flamegraph for distributed services (Gitaly, Rails, Runner, Container Registry, etc) where individual tasks within them can be visualized on a chart. This is similar to flamegraph (perhaps it is just vertical vs horizontal), but there may be a better analogy. In case of the distributed trace, the "flames" are called "spans", and similarly to the flamegraph they visualize the duration of individual components of the chart.
This is a distributed trace:
And this is what we are using right now:
We can only visualize these timings within a single service (here: Rails), it can't be done to visualize how Rails interacts with other services, like Gitaly, because we need a "distributed" solution for this.
/cc @mappelman