diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-06 09:09:03 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-06 09:09:03 +0000 |
commit | 61ee5c363522f2639d1c515a74b9b02b7672c7c2 (patch) | |
tree | 65905860063ad3af3c31656b6aa1ca6f8fe36856 /lib/gitlab/ci | |
parent | 5e230e10b86a9b65eb5a7aa532879fe7456003e6 (diff) | |
download | gitlab-ce-61ee5c363522f2639d1c515a74b9b02b7672c7c2.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/ci')
-rw-r--r-- | lib/gitlab/ci/pipeline/chain/command.rb | 7 | ||||
-rw-r--r-- | lib/gitlab/ci/pipeline/chain/helpers.rb | 15 | ||||
-rw-r--r-- | lib/gitlab/ci/pipeline/chain/metrics.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/ci/pipeline/metrics.rb | 30 |
4 files changed, 43 insertions, 11 deletions
diff --git a/lib/gitlab/ci/pipeline/chain/command.rb b/lib/gitlab/ci/pipeline/chain/command.rb index 46ecb10ea2b..c3c1728602c 100644 --- a/lib/gitlab/ci/pipeline/chain/command.rb +++ b/lib/gitlab/ci/pipeline/chain/command.rb @@ -84,7 +84,7 @@ module Gitlab end def metrics - @metrics ||= ::Gitlab::Ci::Pipeline::Metrics.new + @metrics ||= ::Gitlab::Ci::Pipeline::Metrics end def observe_creation_duration(duration) @@ -97,6 +97,11 @@ module Gitlab .observe({ source: pipeline.source.to_s }, pipeline.total_size) end + def increment_pipeline_failure_reason_counter(reason) + metrics.pipeline_failure_reason_counter + .increment(reason: (reason || :unknown_failure).to_s) + end + def dangling_build? %i[ondemand_dast_scan webide].include?(source) end diff --git a/lib/gitlab/ci/pipeline/chain/helpers.rb b/lib/gitlab/ci/pipeline/chain/helpers.rb index d7271df1694..c59a2194823 100644 --- a/lib/gitlab/ci/pipeline/chain/helpers.rb +++ b/lib/gitlab/ci/pipeline/chain/helpers.rb @@ -12,7 +12,8 @@ module Gitlab end pipeline.add_error_message(message) - pipeline.drop!(drop_reason) if drop_reason && persist_pipeline? + + drop_pipeline!(drop_reason) # TODO: consider not to rely on AR errors directly as they can be # polluted with other unrelated errors (e.g. state machine) @@ -24,8 +25,16 @@ module Gitlab pipeline.add_warning_message(message) end - def persist_pipeline? - command.save_incompleted && !pipeline.readonly? + private + + def drop_pipeline!(drop_reason) + return if pipeline.readonly? + + if drop_reason && command.save_incompleted + pipeline.drop!(drop_reason) + else + command.increment_pipeline_failure_reason_counter(drop_reason) + end end end end diff --git a/lib/gitlab/ci/pipeline/chain/metrics.rb b/lib/gitlab/ci/pipeline/chain/metrics.rb index 0d7449813b4..b17ae77d445 100644 --- a/lib/gitlab/ci/pipeline/chain/metrics.rb +++ b/lib/gitlab/ci/pipeline/chain/metrics.rb @@ -14,7 +14,7 @@ module Gitlab end def counter - ::Gitlab::Ci::Pipeline::Metrics.new.pipelines_created_counter + ::Gitlab::Ci::Pipeline::Metrics.pipelines_created_counter end end end diff --git a/lib/gitlab/ci/pipeline/metrics.rb b/lib/gitlab/ci/pipeline/metrics.rb index c77f4dcca5a..50cc08c0d66 100644 --- a/lib/gitlab/ci/pipeline/metrics.rb +++ b/lib/gitlab/ci/pipeline/metrics.rb @@ -4,9 +4,9 @@ module Gitlab module Ci module Pipeline class Metrics - include Gitlab::Utils::StrongMemoize + extend Gitlab::Utils::StrongMemoize - def pipeline_creation_duration_histogram + def self.pipeline_creation_duration_histogram strong_memoize(:pipeline_creation_duration_histogram) do name = :gitlab_ci_pipeline_creation_duration_seconds comment = 'Pipeline creation duration' @@ -17,7 +17,7 @@ module Gitlab end end - def pipeline_size_histogram + def self.pipeline_size_histogram strong_memoize(:pipeline_size_histogram) do name = :gitlab_ci_pipeline_size_builds comment = 'Pipeline size' @@ -28,7 +28,7 @@ module Gitlab end end - def pipeline_processing_events_counter + def self.pipeline_processing_events_counter strong_memoize(:pipeline_processing_events_counter) do name = :gitlab_ci_pipeline_processing_events_total comment = 'Total amount of pipeline processing events' @@ -37,7 +37,7 @@ module Gitlab end end - def pipelines_created_counter + def self.pipelines_created_counter strong_memoize(:pipelines_created_count) do name = :pipelines_created_total comment = 'Counter of pipelines created' @@ -46,7 +46,7 @@ module Gitlab end end - def legacy_update_jobs_counter + def self.legacy_update_jobs_counter strong_memoize(:legacy_update_jobs_counter) do name = :ci_legacy_update_jobs_as_retried_total comment = 'Counter of occurrences when jobs were not being set as retried before update_retried' @@ -54,6 +54,24 @@ module Gitlab Gitlab::Metrics.counter(name, comment) end end + + def self.pipeline_failure_reason_counter + strong_memoize(:pipeline_failure_reason_counter) do + name = :gitlab_ci_pipeline_failure_reasons + comment = 'Counter of pipeline failure reasons' + + Gitlab::Metrics.counter(name, comment) + end + end + + def self.job_failure_reason_counter + strong_memoize(:job_failure_reason_counter) do + name = :gitlab_ci_job_failure_reasons + comment = 'Counter of job failure reasons' + + Gitlab::Metrics.counter(name, comment) + end + end end end end |