Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-11-22 21:06:00 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2019-11-22 21:06:00 +0300
commitea4762d464bb36f3e36e318db47086e41f493377 (patch)
treec2fb2b7d2eb2b775d9ab149dc3781975fcc4b7d5 /lib/gitlab/sidekiq_middleware
parent68b6846fa6c7b630cc8dab7a8474dcc34e4d67d4 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/sidekiq_middleware')
-rw-r--r--lib/gitlab/sidekiq_middleware/metrics.rb31
1 files changed, 24 insertions, 7 deletions
diff --git a/lib/gitlab/sidekiq_middleware/metrics.rb b/lib/gitlab/sidekiq_middleware/metrics.rb
index bd819843bd4..7bfb0d54d80 100644
--- a/lib/gitlab/sidekiq_middleware/metrics.rb
+++ b/lib/gitlab/sidekiq_middleware/metrics.rb
@@ -7,14 +7,17 @@ module Gitlab
# timeframes than the DEFAULT_BUCKET definition. Defined in seconds.
SIDEKIQ_LATENCY_BUCKETS = [0.1, 0.25, 0.5, 1, 2.5, 5, 10, 60, 300, 600].freeze
+ TRUE_LABEL = "yes"
+ FALSE_LABEL = "no"
+
def initialize
@metrics = init_metrics
@metrics[:sidekiq_concurrency].set({}, Sidekiq.options[:concurrency].to_i)
end
- def call(_worker, job, queue)
- labels = create_labels(queue)
+ def call(worker, job, queue)
+ labels = create_labels(worker.class, queue)
queue_duration = ::Gitlab::InstrumentationHelper.queue_duration_for_job(job)
@metrics[:sidekiq_jobs_queue_duration_seconds].observe(labels, queue_duration) if queue_duration
@@ -42,7 +45,7 @@ module Gitlab
@metrics[:sidekiq_jobs_failed_total].increment(labels, 1) unless job_succeeded
# job_status: done, fail match the job_status attribute in structured logging
- labels[:job_status] = job_succeeded ? :done : :fail
+ labels[:job_status] = job_succeeded ? "done" : "fail"
@metrics[:sidekiq_jobs_cpu_seconds].observe(labels, job_thread_cputime)
@metrics[:sidekiq_jobs_completion_seconds].observe(labels, monotonic_time)
end
@@ -62,10 +65,24 @@ module Gitlab
}
end
- def create_labels(queue)
- {
- queue: queue
- }
+ def create_labels(worker_class, queue)
+ labels = { queue: queue.to_s, latency_sensitive: FALSE_LABEL, external_dependencies: FALSE_LABEL, feature_category: "", boundary: "" }
+ return labels unless worker_class.include? WorkerAttributes
+
+ labels[:latency_sensitive] = bool_as_label(worker_class.latency_sensitive_worker?)
+ labels[:external_dependencies] = bool_as_label(worker_class.worker_has_external_dependencies?)
+
+ feature_category = worker_class.get_feature_category
+ labels[:feature_category] = feature_category.to_s
+
+ resource_boundary = worker_class.get_worker_resource_boundary
+ labels[:boundary] = resource_boundary == :unknown ? "" : resource_boundary.to_s
+
+ labels
+ end
+
+ def bool_as_label(value)
+ value ? TRUE_LABEL : FALSE_LABEL
end
def get_thread_cputime