Add info about prometheus buckets

+ fix cpu time
This commit is contained in:
Pawel Chojnacki 2017-09-07 20:24:31 +02:00
parent b4dbc30616
commit 44eedb22bc
2 changed files with 9 additions and 7 deletions

View File

@ -11,6 +11,8 @@ module Gitlab
settings[:enabled] || false
end
# Prometheus histogram buckets used for arbitrary code measurements
EXECUTION_MEASUREMENT_BUCKETS = [0.001, 0.002, 0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1].freeze
RAILS_ROOT = Rails.root.to_s
METRICS_ROOT = Rails.root.join('lib', 'gitlab', 'metrics').to_s
PATH_REGEX = /^#{RAILS_ROOT}\/?/
@ -99,22 +101,23 @@ module Gitlab
cpu_stop = System.cpu_time
real_stop = Time.now.to_f
real_time = (real_stop - real_start) * 1000.0
real_time = (real_stop - real_start)
cpu_time = cpu_stop - cpu_start
Gitlab::Metrics.histogram("gitlab_#{name}_real_duration_seconds".to_sym,
"Measure #{name}",
Transaction::BASE_LABELS,
[0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2])
.observe(trans.labels, real_time / 1000.0)
EXECUTION_MEASUREMENT_BUCKETS)
.observe(trans.labels, real_time)
Gitlab::Metrics.histogram("gitlab_#{name}_cpu_duration_seconds".to_sym,
"Measure #{name}",
Transaction::BASE_LABELS,
[0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2])
EXECUTION_MEASUREMENT_BUCKETS)
.observe(trans.labels, cpu_time / 1000.0)
trans.increment("#{name}_real_time", real_time, false)
# InfluxDB stores the _real_time time values as milliseconds
trans.increment("#{name}_real_time", real_time * 1000, false)
trans.increment("#{name}_cpu_time", cpu_time, false)
trans.increment("#{name}_call_count", 1, false)

View File

@ -46,8 +46,7 @@ module Gitlab
cpu_time = System.cpu_time - start_cpu
@real_time += real_time
@cpu_time += System.cpu_time - start_cpu
@cpu_time += cpu_time
@call_count += 1
self.class.call_real_duration_histogram.observe(@transaction.labels.merge(labels), real_time / 1000.0)