summaryrefslogtreecommitdiff
path: root/app/models/deployment.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/deployment.rb')
-rw-r--r--app/models/deployment.rb18
1 files changed, 12 insertions, 6 deletions
diff --git a/app/models/deployment.rb b/app/models/deployment.rb
index f49410f18ae..fe7fa4e66b7 100644
--- a/app/models/deployment.rb
+++ b/app/models/deployment.rb
@@ -12,6 +12,7 @@ class Deployment < ActiveRecord::Base
delegate :name, to: :environment, prefix: true
after_create :create_ref
+ after_create :invalidate_cache
def commit
project.commit(sha)
@@ -33,6 +34,10 @@ class Deployment < ActiveRecord::Base
project.repository.create_ref(ref, ref_path)
end
+ def invalidate_cache
+ environment.expire_etag_cache
+ end
+
def manual_actions
@manual_actions ||= deployable.try(:other_actions)
end
@@ -103,10 +108,6 @@ class Deployment < ActiveRecord::Base
project.monitoring_service.present?
end
- def has_additional_metrics?
- has_metrics? && project.monitoring_service&.respond_to?(:reactive_query)
- end
-
def metrics
return {} unless has_metrics?
@@ -114,11 +115,16 @@ class Deployment < ActiveRecord::Base
end
def additional_metrics
- return {} unless has_additional_metrics?
- metrics = project.monitoring_service.reactive_query(Gitlab::Prometheus::Queries::AdditionalMetricsDeploymentQuery.name, id, &:itself)
+ return {} unless prometheus_service.present?
+
+ metrics = prometheus_service.additional_deployment_metrics(self)
metrics&.merge(deployment_time: created_at.to_i) || {}
end
+ def prometheus_service
+ @prometheus_service ||= project.monitoring_services.reorder(nil).find_by(active: true, type: PrometheusService.name)
+ end
+
private
def ref_path