1. 22 Feb, 2019 1 commit
    • Andrew Newdigate's avatar
      Switch back to using regexps in `tracing_url_template` · f78cd68d
      Andrew Newdigate authored
      This approach is able to cope with `%` characters in the URL template,
      which is important since `%` is a valid URL character. Additionally
      this approach is less likely to fail on an invalid string. This is
      important since the distributed tracing infrastructure is designed to
      degrade gracefully when not properly configured, and a small mistake
      in the configuration of the URL template could have led to a production
      outage.
      f78cd68d
  2. 08 Feb, 2019 1 commit
    • Andrew Newdigate's avatar
      Provide a performance bar link to the Jaeger UI · 48bcd524
      Andrew Newdigate authored
      Jaeger is a distributed tracing tool. This change adds a "Tracing" link
      to the performance bar to directly link to a current request in Jaeger.
      
      This is useful for two reasons: 1 - it provides affordance to developers
      that the distributed tracing tool is available, so that it can quickly
      be discovered. 2 - it allows developers to quickly find a specific trace
      without having to manually navigate to a second user-interface.
      48bcd524
  3. 17 Jan, 2019 1 commit
    • Andrew Newdigate's avatar
      Conditionally initialize the global opentracing tracer · 57a8859a
      Andrew Newdigate authored
      This change will instantiate an OpenTracing tracer and configure it
      as the global tracer when the GITLAB_TRACING environment variable is
      configured. GITLAB_TRACING takes a "connection string"-like value,
      encapsulating the driver (eg jaeger, etc) and options for the driver.
      
      Since each service, whether it's written in Ruby or Golang, uses the
      same connection-string, it should be very easy to configure all
      services in a cluster, or even a single development machine to be
      setup to use tracing.
      
      Note that this change does not include instrumentation or propagation
      changes as this is a way of breaking a previous larger change into
      components. The instrumentation and propagation changes will follow
      in separate changes.
      57a8859a