class AppsignalReport::DeployReport
Deploy Report
Compare metrics of one hour before and after the last deploy:
-
Error Rate
-
Response Time
-
Throughput
Public Instance Methods
generate()
click to toggle source
# File lib/appsignal_report/deploy_report.rb, line 11 def generate @report = { title: title, last_deploy_time: Time.parse(last_deploy[:created_at]).utc, } process_metrics end
Private Instance Methods
info_message()
click to toggle source
@return [String]
# File lib/appsignal_report/deploy_report.rb, line 22 def info_message "The deploy finished at #{report[:last_deploy_time]}" end
last_deploy()
click to toggle source
@return [Hash]
# File lib/appsignal_report/deploy_report.rb, line 51 def last_deploy @last_deploy = perform_api_request(last_deploy_marker_uri)[:markers].first end
last_deploy_marker_uri()
click to toggle source
@return [URI]
# File lib/appsignal_report/deploy_report.rb, line 56 def last_deploy_marker_uri query = URI.encode_www_form( token: api_token, kind: :deploy, limit: 1 ) URI("#{base_uri}/markers.json?#{query}") end
metrics_uri()
click to toggle source
@return [URI]
# File lib/appsignal_report/deploy_report.rb, line 38 def metrics_uri one_hour = 3600 # seconds query = URI.encode_www_form( token: api_token, kind: :web, from: (report[:last_deploy_time] - one_hour).iso8601, to: (report[:last_deploy_time] + one_hour).iso8601, 'fields[]': %i(mean count ex_rate) ) URI("#{base_uri}/graphs.json?#{query}") end
report_split_time()
click to toggle source
@return [Time|nil]
# File lib/appsignal_report/deploy_report.rb, line 27 def report_split_time report[:last_deploy_time] end
timestamp_in_grace_period?(timestamp)
click to toggle source
@return [Boolean]
# File lib/appsignal_report/deploy_report.rb, line 32 def timestamp_in_grace_period?(timestamp) grace_period = 10 * 60 (timestamp - report[:last_deploy_time].to_time.to_i).abs < grace_period end