summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Newdigate <andrew@gitlab.com>2019-08-23 10:11:19 +0000
committerNick Thomas <nick@gitlab.com>2019-08-23 10:11:19 +0000
commit3956e7bb8695ebea0038d529162127fd514ea8f1 (patch)
tree5e4777e71d95a093776b6af0363e011406703a6b
parentf7f3b3c3efd58f31ed422808722b0c81a0bf1064 (diff)
downloadgitlab-ce-3956e7bb8695ebea0038d529162127fd514ea8f1.tar.gz
Add cache tracing and Redis tracing
This change adds Distributed Tracing support for two new types of events 1. Redis Calls 1. ActiveSupport (Rails) Caching Operations The intention is to help application developers and infrastructure SREs to understand the pressure that caching operations can have on the application when running at scale. The Redis and Caching spans can be viewed in the Jaeger UI by clicking the "Trace" link in the performance bar when running on GDK.
-rw-r--r--Gemfile2
-rw-r--r--Gemfile.lock7
-rw-r--r--changelogs/unreleased/labkit-cache-tracing.yml5
-rw-r--r--config/initializers/tracing.rb4
4 files changed, 14 insertions, 4 deletions
diff --git a/Gemfile b/Gemfile
index 116c94bdaf8..e5023a6f67d 100644
--- a/Gemfile
+++ b/Gemfile
@@ -283,7 +283,7 @@ gem 'sentry-raven', '~> 2.9'
gem 'premailer-rails', '~> 1.9.7'
# LabKit: Tracing and Correlation
-gem 'gitlab-labkit', '~> 0.4.2'
+gem 'gitlab-labkit', '~> 0.5'
# I18n
gem 'ruby_parser', '~> 3.8', require: false
diff --git a/Gemfile.lock b/Gemfile.lock
index 0ecf3aa2840..d9a32027f3c 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -311,12 +311,13 @@ GEM
gitaly (1.58.0)
grpc (~> 1.0)
github-markup (1.7.0)
- gitlab-labkit (0.4.2)
+ gitlab-labkit (0.5.2)
actionpack (~> 5)
activesupport (~> 5)
grpc (~> 1.19)
jaeger-client (~> 0.10)
opentracing (~> 0.4)
+ redis (> 3.0.0, < 5.0.0)
gitlab-markup (1.7.0)
gitlab-sidekiq-fetcher (0.5.1)
sidekiq (~> 5)
@@ -712,7 +713,7 @@ GEM
rails-dom-testing (2.0.3)
activesupport (>= 4.2.0)
nokogiri (>= 1.6)
- rails-html-sanitizer (1.0.4)
+ rails-html-sanitizer (1.2.0)
loofah (~> 2.2, >= 2.2.2)
rails-i18n (5.1.1)
i18n (>= 0.7, < 2)
@@ -1100,7 +1101,7 @@ DEPENDENCIES
gettext_i18n_rails_js (~> 1.3)
gitaly (~> 1.58.0)
github-markup (~> 1.7.0)
- gitlab-labkit (~> 0.4.2)
+ gitlab-labkit (~> 0.5)
gitlab-markup (~> 1.7.0)
gitlab-sidekiq-fetcher (= 0.5.1)
gitlab-styles (~> 2.7)
diff --git a/changelogs/unreleased/labkit-cache-tracing.yml b/changelogs/unreleased/labkit-cache-tracing.yml
new file mode 100644
index 00000000000..7e58e1b88dd
--- /dev/null
+++ b/changelogs/unreleased/labkit-cache-tracing.yml
@@ -0,0 +1,5 @@
+---
+title: Add Redis interceptor tracing
+merge_request: 30238
+author:
+type: other
diff --git a/config/initializers/tracing.rb b/config/initializers/tracing.rb
index 3c8779f238f..5b55a06692e 100644
--- a/config/initializers/tracing.rb
+++ b/config/initializers/tracing.rb
@@ -21,9 +21,13 @@ if Labkit::Tracing.enabled?
end
end
+ # Instrument Redis
+ Labkit::Tracing::Redis.instrument
+
# Instrument Rails
Labkit::Tracing::Rails::ActiveRecordSubscriber.instrument
Labkit::Tracing::Rails::ActionViewSubscriber.instrument
+ Labkit::Tracing::Rails::ActiveSupportSubscriber.instrument
# In multi-processed clustered architectures (puma, unicorn) don't
# start tracing until the worker processes are spawned. This works