summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarin Jankovski <marin@gitlab.com>2016-10-12 14:22:26 +0000
committerMarin Jankovski <marin@gitlab.com>2016-10-12 14:22:26 +0000
commit8ba3bc0e3014125d519af26ee601df0d25bfefc5 (patch)
treee40a001e12b025cf5934e9393c4baa17a35e9990
parent3cba0e6ea6d30e9faca7727b66eb9ddfe5b5b51c (diff)
parent1d68fefe5016baa61043e72ba7ee5458eded8634 (diff)
downloadgitlab-shell-8ba3bc0e3014125d519af26ee601df0d25bfefc5.tar.gz
Merge branch 'reuse-logger' into 'master'
Re-use the default logger for performance metrics See #64 for the discussion leading up to this. See merge request !100
-rw-r--r--CHANGELOG3
-rw-r--r--lib/gitlab_metrics.rb5
-rw-r--r--spec/gitlab_metrics_spec.rb12
3 files changed, 10 insertions, 10 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 9965f58..0e96dc5 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+v3.6.6
+ - Re-use the default logger when logging metrics data
+
v3.6.5
- Test against ruby 2.3
- Instrument GitLab Shell and log metrics data to a file
diff --git a/lib/gitlab_metrics.rb b/lib/gitlab_metrics.rb
index 7bf07a5..b974b8a 100644
--- a/lib/gitlab_metrics.rb
+++ b/lib/gitlab_metrics.rb
@@ -1,5 +1,6 @@
require 'logger'
require_relative 'gitlab_config'
+require_relative 'gitlab_logger'
module GitlabMetrics
module System
@@ -25,7 +26,7 @@ module GitlabMetrics
end
def self.logger
- @logger ||= Logger.new(GitlabConfig.new.metrics_log_file)
+ $logger
end
# Measures the execution time of a block.
@@ -48,7 +49,7 @@ module GitlabMetrics
real_time = System.monotonic_time - start_real
cpu_time = System.cpu_time - start_cpu
- logger.debug { "name=#{name.inspect} wall_time=#{real_time.inspect} cpu_time=#{cpu_time.inspect}" }
+ logger.debug("metrics: name=#{name.inspect} wall_time=#{real_time} cpu_time=#{cpu_time}")
retval
end
diff --git a/spec/gitlab_metrics_spec.rb b/spec/gitlab_metrics_spec.rb
index 885fa3b..07be670 100644
--- a/spec/gitlab_metrics_spec.rb
+++ b/spec/gitlab_metrics_spec.rb
@@ -2,22 +2,18 @@ require_relative 'spec_helper'
require_relative '../lib/gitlab_metrics'
describe GitlabMetrics do
- describe '::measure' do
+ describe '.measure' do
it 'returns the return value of the block' do
val = described_class.measure('foo') { 10 }
expect(val).to eq(10)
end
- it 'write in a file metrics data' do
- result = nil
- expect(described_class.logger).to receive(:debug) do |&b|
- result = b.call
- end
+ it 'writes the metrics data to a log file' do
+ expect(described_class.logger).to receive(:debug).
+ with(/metrics: name=\"foo\" wall_time=\d+ cpu_time=\d+/)
described_class.measure('foo') { 10 }
-
- expect(result).to match(/name=\"foo\" wall_time=\d+ cpu_time=\d+/)
end
it 'calls proper measure methods' do