zuora_connect 1.5.40c → 1.5.40d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/zuora_connect/static_controller.rb +0 -2
- data/app/models/zuora_connect/app_instance_base.rb +0 -16
- data/lib/zuora_connect.rb +1 -9
- data/lib/zuora_connect/configuration.rb +1 -12
- data/lib/zuora_connect/controllers/helpers.rb +3 -5
- data/lib/zuora_connect/railtie.rb +0 -24
- data/lib/zuora_connect/version.rb +1 -1
- metadata +1 -31
- data/config/initializers/prometheus.rb +0 -39
- data/lib/middleware/metrics_middleware.rb +0 -130
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e00ff173a2094215c2333b04afdc4bef45391f40
|
|
4
|
+
data.tar.gz: b0d443fe6d3f688e31c8bf68ea7ac233301d4421
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4bf28a84c95743029118cec66b542afb503f3364e28ff195bba51c2a45be0076087db63a997353ebe48b2757f9dcb1743d4b77a917345470fc929f6def7a32fb
|
|
7
|
+
data.tar.gz: 31676bb71346262a4001b35386dbf2dee2a3ff796806b0792164e5f6a6368193c8a3c5705e55a0f090fd6ec82871a7ba168921e5d55313394a2a6dc14bf7f8a0
|
|
@@ -2,7 +2,6 @@ module ZuoraConnect
|
|
|
2
2
|
class StaticController < ApplicationController
|
|
3
3
|
before_filter :authenticate_connect_app_request, :except => [:health, :session_error, :invalid_app_instance_error]
|
|
4
4
|
after_filter :persist_connect_app_session, :except => [:health, :session_error, :invalid_app_instance_error]
|
|
5
|
-
|
|
6
5
|
def session_error
|
|
7
6
|
respond_to do |format|
|
|
8
7
|
format.html
|
|
@@ -23,6 +22,5 @@ module ZuoraConnect
|
|
|
23
22
|
status: 200
|
|
24
23
|
}, status: 200
|
|
25
24
|
end
|
|
26
|
-
|
|
27
25
|
end
|
|
28
26
|
end
|
|
@@ -24,21 +24,6 @@ module ZuoraConnect
|
|
|
24
24
|
self.apartment_switch(nil, true)
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
# method for writing outbound metrics
|
|
29
|
-
|
|
30
|
-
def telegraf_time(endpoint_name: nil, &block)
|
|
31
|
-
|
|
32
|
-
response_time = Benchmark.realtime(&block)
|
|
33
|
-
p_type = Middleware::get_process_type
|
|
34
|
-
|
|
35
|
-
ZuoraConnect.configuration.telegraf_client.write(ZuoraConnect.configuration.app_name_outbound,
|
|
36
|
-
tags: {endpoint: endpoint_name, instance_id: self.id, process_type: p_type},
|
|
37
|
-
values: {response_time: response_time, caller: block.source_location[0]})
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
27
|
def apartment_switch(method = nil, migrate = false)
|
|
43
28
|
begin
|
|
44
29
|
Apartment::Tenant.switch!(self.id) if self.persisted?
|
|
@@ -759,7 +744,6 @@ module ZuoraConnect
|
|
|
759
744
|
super
|
|
760
745
|
end
|
|
761
746
|
|
|
762
|
-
|
|
763
747
|
method_hook :refresh, :updateOption, :update_logins, :before => :check_oauth_state
|
|
764
748
|
method_hook :new_session, :refresh, :build_task, :after => :apartment_switch
|
|
765
749
|
end
|
data/lib/zuora_connect.rb
CHANGED
|
@@ -4,11 +4,9 @@ require 'zuora_connect/exceptions'
|
|
|
4
4
|
require 'zuora_connect/controllers/helpers'
|
|
5
5
|
require 'zuora_connect/views/helpers'
|
|
6
6
|
require 'zuora_connect/railtie'
|
|
7
|
-
require 'resque/additions'
|
|
7
|
+
require 'resque/additions'
|
|
8
8
|
require 'resque/dynamic_queues'
|
|
9
9
|
require 'resque/self_lookup'
|
|
10
|
-
require 'prometheus/client'
|
|
11
|
-
|
|
12
10
|
|
|
13
11
|
module ZuoraConnect
|
|
14
12
|
class << self
|
|
@@ -37,10 +35,4 @@ module ZuoraConnect
|
|
|
37
35
|
|
|
38
36
|
return configuration
|
|
39
37
|
end
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
38
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module ZuoraConnect
|
|
2
2
|
class Configuration
|
|
3
|
-
attr_accessor :oauth_client_id, :oauth_client_secret, :oauth_client_redirect_uri,:use_s3, :default_locale,:dev_mode_appinstance ,:dev_mode_admin, :dev_mode_user, :dev_mode_pass, :default_time_zone,:delayed_job,:url, :private_key, :dev_mode_logins,:dev_mode_mode, :dev_mode_options, :mode, :timeout,:dev_mode_secret_access_key,:dev_mode_access_key_id,:aws_region, :s3_bucket_name, :s3_folder_name, :additional_apartment_models
|
|
3
|
+
attr_accessor :oauth_client_id, :oauth_client_secret, :oauth_client_redirect_uri,:use_s3, :default_locale,:dev_mode_appinstance ,:dev_mode_admin, :dev_mode_user, :dev_mode_pass, :default_time_zone,:delayed_job,:url, :private_key, :dev_mode_logins,:dev_mode_mode, :dev_mode_options, :mode, :timeout,:dev_mode_secret_access_key,:dev_mode_access_key_id,:aws_region, :s3_bucket_name, :s3_folder_name, :additional_apartment_models
|
|
4
4
|
|
|
5
5
|
def initialize
|
|
6
6
|
@default_locale = :en
|
|
@@ -11,13 +11,6 @@ module ZuoraConnect
|
|
|
11
11
|
@use_s3 = false
|
|
12
12
|
@private_key = ENV["CONNECT_KEY"]
|
|
13
13
|
@additional_apartment_models = []
|
|
14
|
-
@telegraf_endpoint = 'udp://telegraf-ds.deis.svc.cluster.local:8094'
|
|
15
|
-
@enable_metrics_flag = true
|
|
16
|
-
@telegraf_client = Telegraf::Agent.new @telegraf_endpoint
|
|
17
|
-
|
|
18
|
-
# Setting the app name for telegraf write
|
|
19
|
-
@app_name_inbound = ENV['DEIS_APP'].present? ? "#{ENV['DEIS_APP']}-inbound" : "#{Rails.application.class.parent_name}-inbound"
|
|
20
|
-
@app_name_outbound = ENV['DEIS_APP'].present? ? "#{ENV['DEIS_APP']}-outbound" : "#{Rails.application.class.parent_name}-outbound"
|
|
21
14
|
|
|
22
15
|
# OAuth Settings
|
|
23
16
|
@oauth_client_id = ""
|
|
@@ -37,10 +30,6 @@ module ZuoraConnect
|
|
|
37
30
|
@aws_region = "us-west-2"
|
|
38
31
|
@s3_bucket_name = "rbm-apps"
|
|
39
32
|
@s3_folder_name = Rails.application.class.parent_name
|
|
40
|
-
|
|
41
|
-
#Prometheus
|
|
42
|
-
@custom_prometheus_update_block = nil
|
|
43
|
-
|
|
44
33
|
end
|
|
45
34
|
|
|
46
35
|
def private_key
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
require 'apartment/migrator'
|
|
2
|
-
require 'benchmark'
|
|
3
|
-
|
|
4
2
|
module ZuoraConnect
|
|
5
3
|
module Controllers
|
|
6
4
|
module Helpers
|
|
@@ -38,14 +36,14 @@ module ZuoraConnect
|
|
|
38
36
|
else
|
|
39
37
|
setup_instance_via_dev_mode
|
|
40
38
|
end
|
|
41
|
-
#Call .data_lookup with the current session to retrieve session. In some cases session may be stored/cache in redis
|
|
39
|
+
#Call .data_lookup with the current session to retrieve session. In some cases session may be stored/cache in redis
|
|
42
40
|
#so data lookup provides a model method that can be overriden per app.
|
|
43
41
|
if params[:controller] != 'zuora_connect/api/v1/app_instance' && params[:action] != 'drop'
|
|
44
42
|
if @appinstance.new_session_for_ui_requests(:params => params)
|
|
45
43
|
@appinstance.new_session(:session => @appinstance.data_lookup(:session => session))
|
|
46
44
|
end
|
|
47
45
|
end
|
|
48
|
-
PaperTrail.whodunnit = session["#{@appinstance.id}::user::email"] if defined?(PaperTrail) && session["#{@appinstance.id}::user::email"].present?
|
|
46
|
+
PaperTrail.whodunnit = session["#{@appinstance.id}::user::email"] if defined?(PaperTrail) && session["#{@appinstance.id}::user::email"].present?
|
|
49
47
|
begin
|
|
50
48
|
I18n.locale = session["#{@appinstance.id}::user::locale"] ? session["#{@appinstance.id}::user::locale"] : @appinstance.locale
|
|
51
49
|
rescue I18n::InvalidLocale => ex
|
|
@@ -114,7 +112,7 @@ module ZuoraConnect
|
|
|
114
112
|
else
|
|
115
113
|
raise ZuoraConnect::Exceptions::AccessDenied.new("Authorization mistmatch. Possible tampering")
|
|
116
114
|
end
|
|
117
|
-
end
|
|
115
|
+
end
|
|
118
116
|
end
|
|
119
117
|
|
|
120
118
|
def setup_instance_via_session
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
require 'middleware/metrics_middleware'
|
|
2
|
-
|
|
3
1
|
module ZuoraConnect
|
|
4
2
|
class Railtie < Rails::Railtie
|
|
5
|
-
require 'prometheus/middleware/exporter'
|
|
6
|
-
|
|
7
|
-
|
|
8
3
|
config.before_initialize do
|
|
9
4
|
version = Rails.version
|
|
10
5
|
if version >= "5.0.0"
|
|
@@ -17,25 +12,6 @@ module ZuoraConnect
|
|
|
17
12
|
::Rails.configuration.action_dispatch.x_sendfile_header = nil
|
|
18
13
|
end
|
|
19
14
|
|
|
20
|
-
# Base object not being loaded at this point for some reason
|
|
21
|
-
if ZuoraConnect::Configuration.new.enable_metrics_flag == true
|
|
22
|
-
|
|
23
|
-
initializer "prometheus.configure_rails_initialization" do |app|
|
|
24
|
-
app.middleware.use Prometheus::Middleware::Exporter,(options ={:path => '/connect/internal/metrics'})
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
initializer "zuora_connect.configure_rails_initialization" do |app|
|
|
28
|
-
app.middleware.insert_after Rack::Sendfile, Middleware::MetricsMiddleware
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
# hook to process_action
|
|
32
|
-
ActiveSupport::Notifications.subscribe('process_action.action_controller', Middleware::PageRequest.new)
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
|
|
39
15
|
initializer(:rails_stdout_logging, before: :initialize_logger) do
|
|
40
16
|
if Rails.env != 'development' && !ENV['DEIS_APP'].blank?
|
|
41
17
|
require 'lograge'
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: zuora_connect
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.5.
|
|
4
|
+
version: 1.5.40d
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Connect Team
|
|
@@ -106,34 +106,6 @@ dependencies:
|
|
|
106
106
|
- - ">="
|
|
107
107
|
- !ruby/object:Gem::Version
|
|
108
108
|
version: '0'
|
|
109
|
-
- !ruby/object:Gem::Dependency
|
|
110
|
-
name: telegraf
|
|
111
|
-
requirement: !ruby/object:Gem::Requirement
|
|
112
|
-
requirements:
|
|
113
|
-
- - "~>"
|
|
114
|
-
- !ruby/object:Gem::Version
|
|
115
|
-
version: 0.4.0
|
|
116
|
-
type: :runtime
|
|
117
|
-
prerelease: false
|
|
118
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
119
|
-
requirements:
|
|
120
|
-
- - "~>"
|
|
121
|
-
- !ruby/object:Gem::Version
|
|
122
|
-
version: 0.4.0
|
|
123
|
-
- !ruby/object:Gem::Dependency
|
|
124
|
-
name: prometheus-client
|
|
125
|
-
requirement: !ruby/object:Gem::Requirement
|
|
126
|
-
requirements:
|
|
127
|
-
- - "~>"
|
|
128
|
-
- !ruby/object:Gem::Version
|
|
129
|
-
version: 0.8.0
|
|
130
|
-
type: :runtime
|
|
131
|
-
prerelease: false
|
|
132
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
133
|
-
requirements:
|
|
134
|
-
- - "~>"
|
|
135
|
-
- !ruby/object:Gem::Version
|
|
136
|
-
version: 0.8.0
|
|
137
109
|
- !ruby/object:Gem::Dependency
|
|
138
110
|
name: railties
|
|
139
111
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -266,7 +238,6 @@ files:
|
|
|
266
238
|
- app/views/zuora_connect/static/session_error.html.erb
|
|
267
239
|
- config/initializers/apartment.rb
|
|
268
240
|
- config/initializers/object_method_hooks.rb
|
|
269
|
-
- config/initializers/prometheus.rb
|
|
270
241
|
- config/initializers/redis.rb
|
|
271
242
|
- config/initializers/resque.rb
|
|
272
243
|
- config/initializers/to_bool.rb
|
|
@@ -281,7 +252,6 @@ files:
|
|
|
281
252
|
- db/migrate/20110503003603_add_catalog_mappings_to_app_instance.rb
|
|
282
253
|
- db/migrate/20110503003604_catalog_default.rb
|
|
283
254
|
- db/migrate/20180301052853_add_catalog_attempted_at.rb
|
|
284
|
-
- lib/middleware/metrics_middleware.rb
|
|
285
255
|
- lib/resque/additions.rb
|
|
286
256
|
- lib/resque/dynamic_queues.rb
|
|
287
257
|
- lib/resque/self_lookup.rb
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
module Prometheus
|
|
2
|
-
require "zuora_connect/version"
|
|
3
|
-
require "zuora_api/version"
|
|
4
|
-
|
|
5
|
-
app_name = ENV['DEIS_APP'].present? ? "#{ENV['DEIS_APP']}" : "#{Rails.application.class.parent_name}"
|
|
6
|
-
# Create a default Prometheus registry for our metrics.
|
|
7
|
-
prometheus = Prometheus::Client.registry
|
|
8
|
-
|
|
9
|
-
# Create your metrics.
|
|
10
|
-
ZUORA_VERSION = Prometheus::Client::Gauge.new(:zuora_version, 'The current Zuora Gem version.')
|
|
11
|
-
CONNECT_VERSION = Prometheus::Client::Gauge.new(:gem_version, 'The current Connect Gem version.')
|
|
12
|
-
RAILS_VERSION = Prometheus::Client::Gauge.new(:rails_version, 'The current Rails version.')
|
|
13
|
-
RUBY_V = Prometheus::Client::Gauge.new(:ruby_version, 'The current Ruby version.')
|
|
14
|
-
|
|
15
|
-
# Register your metrics with the registry we previously created.
|
|
16
|
-
prometheus.register(ZUORA_VERSION);ZUORA_VERSION.set({version:ZuoraAPI::VERSION,name:app_name},0)
|
|
17
|
-
prometheus.register(CONNECT_VERSION);CONNECT_VERSION.set({version:ZuoraConnect::VERSION,name:app_name},0)
|
|
18
|
-
prometheus.register(RAILS_VERSION);RAILS_VERSION.set({version:Rails.version,name:app_name},0)
|
|
19
|
-
prometheus.register(RUBY_V);RUBY_V.set({version:RUBY_VERSION,name:app_name},0)
|
|
20
|
-
|
|
21
|
-
# Do they have resque jobs?
|
|
22
|
-
if defined? Resque.redis
|
|
23
|
-
REDIS_CONNECTION = Prometheus::Client::Gauge.new(:redis_connection, 'The status of the redis connection, 0 or 1')
|
|
24
|
-
FINISHED_JOBS = Prometheus::Client::Gauge.new(:finished_jobs, 'Done resque jobs')
|
|
25
|
-
WORKERS = Prometheus::Client::Gauge.new(:workers, 'Total resque workers')
|
|
26
|
-
ACTIVE_WORKERS = Prometheus::Client::Gauge.new(:active_workers, 'Active resque workers')
|
|
27
|
-
FAILED_JOBS = Prometheus::Client::Gauge.new(:failed_jobs, 'Failed resque jobs')
|
|
28
|
-
PENDING_JOBS = Prometheus::Client::Gauge.new(:pending_jobs, 'Pending resque jobs')
|
|
29
|
-
|
|
30
|
-
prometheus.register(REDIS_CONNECTION)
|
|
31
|
-
prometheus.register(FINISHED_JOBS)
|
|
32
|
-
prometheus.register(ACTIVE_WORKERS)
|
|
33
|
-
prometheus.register(WORKERS)
|
|
34
|
-
prometheus.register(FAILED_JOBS)
|
|
35
|
-
prometheus.register(PENDING_JOBS)
|
|
36
|
-
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
end
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
module Middleware
|
|
2
|
-
require 'uri'
|
|
3
|
-
|
|
4
|
-
# Returns the process type if any
|
|
5
|
-
def self.get_process_type
|
|
6
|
-
p_type = nil
|
|
7
|
-
if ENV['HOSTNAME']
|
|
8
|
-
temp = ENV['HOSTNAME'].split(ENV['DEIS_APP'])[1]
|
|
9
|
-
temp = temp.split(/(-[0-9a-zA-Z]{5})$/)[0] # remove the 5 char hash
|
|
10
|
-
p_type = temp[1, temp.rindex("-")-1]
|
|
11
|
-
end
|
|
12
|
-
return p_type
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
# Write to telegraf
|
|
17
|
-
def self.write_to_telegraf(endpoint_name: nil, method_name: nil, status_code: nil, response_time: nil, db_runtime: nil, view_runtime: nil, content_type: nil)
|
|
18
|
-
|
|
19
|
-
# Getting the process type
|
|
20
|
-
p_type = Middleware::get_process_type
|
|
21
|
-
|
|
22
|
-
# Separately handling 200 and non 200 as influx does not accept nil as a value
|
|
23
|
-
if db_runtime && view_runtime
|
|
24
|
-
# 200 requests
|
|
25
|
-
ZuoraConnect.configuration.telegraf_client.write(ZuoraConnect.configuration.app_name_inbound,
|
|
26
|
-
tags: {endpoint: endpoint_name, "content-type": content_type, method: method_name, status: status_code, process_type: p_type},
|
|
27
|
-
values: {response_time: response_time, db_time: db_runtime, view_time: view_runtime})
|
|
28
|
-
else
|
|
29
|
-
# non 200 requests
|
|
30
|
-
ZuoraConnect.configuration.telegraf_client.write(ZuoraConnect.configuration.app_name_inbound,
|
|
31
|
-
tags: {endpoint: endpoint_name, "content-type": content_type, method: method_name, status: status_code, process_type: p_type},
|
|
32
|
-
values: {response_time: response_time})
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
# Object of this class is passed to the ActiveSupport::Notification hook
|
|
39
|
-
class PageRequest
|
|
40
|
-
|
|
41
|
-
# This method is triggered when a non error page is loaded (not 404, 500)
|
|
42
|
-
def call(name, started, finished, unique_id, payload)
|
|
43
|
-
|
|
44
|
-
# If the url contains any css or JavaScript files then do not collect metrics for them
|
|
45
|
-
block_words = ["css", "assets", "jpg", "png", "jpeg", "ico"]
|
|
46
|
-
if block_words.any? { |word| payload[:path].include?(word) }
|
|
47
|
-
return nil
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
# Getting the endpoint and the content_type
|
|
51
|
-
request_path = URI(payload[:headers]['REQUEST_URI']).path.split(".")[0]
|
|
52
|
-
content_type = ((payload[:headers]["action_controller.instance"].instance_variable_get :@_response).instance_variable_get :@header)["Content-Type"]
|
|
53
|
-
content_type = content_type.split(";")[0]
|
|
54
|
-
|
|
55
|
-
response_time = finished-started
|
|
56
|
-
|
|
57
|
-
# Write to telegraf
|
|
58
|
-
Middleware.write_to_telegraf("endpoint_name": request_path, "method_name": payload[:method], "status_code": payload[:status], "response_time": response_time, "db_runtime": payload[:db_runtime], "view_runtime": payload[:view_runtime], "content_type": content_type)
|
|
59
|
-
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
class MetricsMiddleware
|
|
65
|
-
|
|
66
|
-
require "zuora_connect/version"
|
|
67
|
-
require "zuora_api/version"
|
|
68
|
-
require "telegraf"
|
|
69
|
-
|
|
70
|
-
def initialize(app)
|
|
71
|
-
@app = app
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
def call(env)
|
|
75
|
-
start_time = Time.now
|
|
76
|
-
@status, @headers, @response = @app.call(env)
|
|
77
|
-
|
|
78
|
-
# If the url contains any CSS or JavaScript files then do not collect metrics for them
|
|
79
|
-
block_words = ["css", "assets", "jpg", "png", "jpeg", "ico"]
|
|
80
|
-
if block_words.any? { |word| env['PATH_INFO'].include?(word) }
|
|
81
|
-
return [@status, @headers, @response]
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
end_time = Time.now
|
|
85
|
-
response_time = end_time - start_time
|
|
86
|
-
|
|
87
|
-
#Prometheus Stuff
|
|
88
|
-
if env['PATH_INFO'] == '/connect/internal/metrics'
|
|
89
|
-
|
|
90
|
-
#Do something before each scrape
|
|
91
|
-
if defined? Resque.redis
|
|
92
|
-
|
|
93
|
-
app_name = ENV['DEIS_APP'].present? ? "#{ENV['DEIS_APP']}" : "#{Rails.application.class.parent_name}"
|
|
94
|
-
begin
|
|
95
|
-
|
|
96
|
-
Resque.redis.ping
|
|
97
|
-
|
|
98
|
-
Prometheus::REDIS_CONNECTION.set({connection:'redis',name:app_name},1)
|
|
99
|
-
Prometheus::FINISHED_JOBS.set({type:'resque',name:app_name},Resque.info[:processed])
|
|
100
|
-
Prometheus::PENDING_JOBS.set({type:'resque',name:app_name},Resque.info[:pending])
|
|
101
|
-
Prometheus::ACTIVE_WORKERS.set({type:'resque',name:app_name},Resque.info[:working])
|
|
102
|
-
Prometheus::WORKERS.set({type:'resque',name:app_name},Resque.info[:workers])
|
|
103
|
-
Prometheus::FAILED_JOBS.set({type:'resque',name:app_name},Resque.info[:failed])
|
|
104
|
-
|
|
105
|
-
rescue Redis::CannotConnectError
|
|
106
|
-
Prometheus::REDIS_CONNECTION.set({connection:'redis',name:app_name},0)
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
if ZuoraConnect.configuration.custom_prometheus_update_block != nil
|
|
110
|
-
ZuoraConnect.configuration.custom_prometheus_update_block.call()
|
|
111
|
-
end
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
# Writing to telegraf: Handle 404 and 500 requests
|
|
117
|
-
if @status != 200
|
|
118
|
-
# Getting the endpoint and content_type
|
|
119
|
-
request_path = URI(env['REQUEST_URI']).path.split(".")[0]
|
|
120
|
-
content_type = @headers['Content-Type'].split(';')[0] if @headers['Content-Type']
|
|
121
|
-
Middleware::write_to_telegraf("endpoint_name": request_path, "method_name": env['REQUEST_METHOD'], "status_code": @status, "response_time": response_time, "content_type": content_type)
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
[@status, @headers, @response]
|
|
125
|
-
|
|
126
|
-
end
|
|
127
|
-
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
end
|