diff options
author | Tomasz Maczukin <tomasz@maczukin.pl> | 2019-07-29 13:25:42 +0200 |
---|---|---|
committer | Tomasz Maczukin <tomasz@maczukin.pl> | 2019-07-29 13:25:42 +0200 |
commit | 60f1866af8d61283c17c59b2175161fcbd8f3b0f (patch) | |
tree | 265ebc7863bacae21bc7791c83d578b63fe83ee6 | |
parent | ca05130319ae9d74ee7771b5a8adb6cf25857fb7 (diff) | |
download | gitlab-ce-add-metric-counting-handled-ci-jobs-duration.tar.gz |
Add metric tracking duration of handled CI jobsadd-metric-counting-handled-ci-jobs-duration
-rw-r--r-- | app/workers/build_finished_worker.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/app/workers/build_finished_worker.rb b/app/workers/build_finished_worker.rb index 8e2a18a8fd8..78c85b91179 100644 --- a/app/workers/build_finished_worker.rb +++ b/app/workers/build_finished_worker.rb @@ -4,6 +4,8 @@ class BuildFinishedWorker include ApplicationWorker include PipelineQueue + JOB_DURATION_SECONDS_BUCKETS = [60, 300, 600, 1800, 3600, 7200, 21600, 86400].freeze + queue_namespace :pipeline_processing # rubocop: disable CodeReuse/ActiveRecord @@ -33,4 +35,19 @@ class BuildFinishedWorker ExpirePipelineCacheWorker.perform_async(build.pipeline_id) ChatNotificationWorker.perform_async(build.id) if build.pipeline.chat? end + + def register_duration(build) + runner_type = if build.runner + build.runner.runner_type + else + :none + end + labels = { runner_type: runner_type } + + job_duration_seconds.observe(labels, build.duration) + end + + def job_duration_seconds + @job_duration_seconds ||= Gitlab::Metrics.histogram(:job_duration_seconds, 'Job execution time', {}, JOB_DURATION_SECONDS_BUCKETS) + end end |