zuora_connect 2.0.60t → 3.0.0k

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d7eee2d7cabce6128892afac88428f3c7f77a3318e244bd3becdf521716d0a25
4
- data.tar.gz: 12c07009df449c54d70bec094e16594f0a3ecdb251c59ffed230d64787939cfb
3
+ metadata.gz: bad84d0fc35d26f517f83b2cc38e5d1569dafc4253c6c12a474f69aa9d9fee5e
4
+ data.tar.gz: 0ad1de0856425104abb6288662ca1481b097dfb3af696c40d1e8d5a1d018a0af
5
5
  SHA512:
6
- metadata.gz: a45196b2a77449c349e1e1fe4b9853d08e35da763327e2f74134cee20f4ee4af9311a4298b048b937d1d4f5056e047f0db503f57b3b36f2335a963fe4e1f3336
7
- data.tar.gz: d3d14ec18ce3da9ad27776cf2c79ed3b7f9aafa88c331f3a0efa9a2075258cf438e3dd469c50ba1e4d0e46d339ec0ba895632535ab9644dd8cf4a29513d77f7d
6
+ metadata.gz: c00dcd65d70b84242e2c298f1d663d98259083c53e4232cf00c477b32fb32d480a49a39bf982a5682807ee0ae828905cd6dfeb1f548bf6e1a501dd4aca58c63e
7
+ data.tar.gz: 91fe7a9815f2340879cc0a30ef405b48960d44b54f1a020f193c5f029448b19ddb513944ce424fde25764cc0b5bf9a25ae25f3b70d124d715f69e4304ebf36d3
data/Rakefile CHANGED
@@ -15,7 +15,7 @@ RDoc::Task.new(:rdoc) do |rdoc|
15
15
  rdoc.rdoc_files.include('lib/**/*.rb')
16
16
  end
17
17
 
18
- APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
18
+ APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
19
19
  load 'rails/tasks/engine.rake'
20
20
 
21
21
 
@@ -1,16 +1,12 @@
1
1
  module ZuoraConnect
2
2
  class StaticController < ApplicationController
3
- before_action :authenticate_connect_app_request, :except => [:metrics, :health, :initialize_app, :provision, :instance_user]
4
- before_action :clear_connect_app_session, :only => [:metrics, :health, :initialize_app, :provision, :instance_user]
5
- after_action :persist_connect_app_session, :except => [:metrics, :health, :initialize_app, :provision, :instance_user]
3
+ before_action :authenticate_connect_app_request, :except => [:health, :initialize_app, :provision, :instance_user]
4
+ before_action :clear_connect_app_session, :only => [:health, :initialize_app, :provision, :instance_user]
5
+ after_action :persist_connect_app_session, :except => [:health, :initialize_app, :provision, :instance_user]
6
6
 
7
7
  skip_before_action :verify_authenticity_token, :only => [:initialize_app, :provision]
8
8
  http_basic_authenticate_with name: ENV['PROVISION_USER'], password: ENV['PROVISION_SECRET'], :only => [:provision, :instance_user]
9
9
 
10
- def metrics
11
- type = params[:type].present? ? params[:type] : "versions"
12
- render json: ZuoraConnect::AppInstance.get_metrics(type).to_json, status: 200
13
- end
14
10
 
15
11
  def health
16
12
  if params[:error].present?
@@ -12,7 +12,6 @@ module ZuoraConnect
12
12
 
13
13
  self.table_name = "zuora_connect_app_instances"
14
14
  attr_accessor :options, :mode, :logins, :task_data, :last_refresh, :username, :password, :s3_client, :api_version, :drop_message, :new_session_message, :connect_user, :logitems, :user_timezone
15
- @@telegraf_host = nil
16
15
  REFRESH_TIMEOUT = 2.minute #Used to determine how long to wait on current refresh call before executing another
17
16
  INSTANCE_REFRESH_WINDOW = 1.hours #Used to set how how long till app starts attempting to refresh cached task connect data
18
17
  INSTANCE_REDIS_CACHE_PERIOD = 24.hours #Used to determine how long to cached task data will live for
@@ -25,6 +24,8 @@ module ZuoraConnect
25
24
  CATALOG_LOOKUP_CACHE_TIME_KEY = 'CatalogCachedAt'
26
25
  CATALOG_LOOKUP_TTL = 60.seconds
27
26
  CATALOG_LOOKUP_CACHE_RESULT_KEY = 'CatalogCache'
27
+ TIMEZONE_LOG_RATE_LIMIT_KEY = 'TimezoneLoggedAt'
28
+ TIMEZONE_LOG_PERIOD = 4.hours
28
29
  IGNORED_LOCALS = ['fr', 'ja', 'es', 'zh', 'de']
29
30
  INTERNAL_HOSTS = []
30
31
  LOGIN_TENANT_DESTINATION = 'target_login'
@@ -33,7 +34,7 @@ module ZuoraConnect
33
34
  Aws::Errors::MissingCredentialsError,
34
35
  Aws::S3::Errors::AccessDenied,
35
36
  Aws::SES::Errors::AccessDenied,
36
- Aws::KMS::Errors::AccessDeniedException
37
+ Aws::KMS::Errors::AccessDeniedException
37
38
  ].freeze
38
39
  AWS_AUTH_ERRORS_MSG = "AWS Auth Errors".freeze
39
40
 
@@ -151,7 +152,8 @@ module ZuoraConnect
151
152
  if ZuoraConnect.configuration.mode != "Production"
152
153
  mock_task_data = {
153
154
  "id" => ZuoraConnect.configuration.dev_mode_appinstance,
154
- "mode" => ZuoraConnect.configuration.dev_mode_mode
155
+ "mode" => ZuoraConnect.configuration.dev_mode_mode,
156
+ "name" => "Developer Instance"
155
157
  }
156
158
 
157
159
  case ZuoraConnect.configuration.dev_mode_options.class
@@ -167,6 +169,7 @@ module ZuoraConnect
167
169
  end
168
170
 
169
171
  self.build_task(task_data: mock_task_data, session: session)
172
+ self.set_backup_creds if !self['zuora_logins'].present?
170
173
  self.last_refresh = Time.now.to_i
171
174
  else
172
175
  time_expire = (session["#{self.id}::last_refresh"] || Time.now).to_i - INSTANCE_REFRESH_WINDOW.ago.to_i
@@ -245,48 +248,7 @@ module ZuoraConnect
245
248
  ZuoraConnect.logger.error(ex) if !IGNORED_LOCALS.include?(ex.locale.to_s.downcase)
246
249
  end
247
250
 
248
- begin
249
- sql = <<-eos
250
- SELECT zuora_users.zuora_identity_response
251
- FROM "#{self.id}".zuora_users
252
- ORDER BY zuora_users.updated_at DESC
253
- LIMIT 1;
254
- eos
255
- user = ActiveRecord::Base.connection.execute(sql).to_a.first
256
-
257
- if user.present?
258
- zuora_identity_response = JSON.parse(user.fetch('zuora_identity_response', '{}'))
259
- self.user_timezone = zuora_identity_response.values.first&.dig('timeZone')
260
- end
261
- rescue => ex
262
- Rails.logger.error('Failed to get users while setting app instance timezone', ex)
263
- end
264
-
265
- if self.user_timezone.present?
266
- # connect instance which has a custom timezone
267
- if !self.auto_deployed? && (
268
- ActiveSupport::TimeZone[self.task_data.dig('user_settings', 'timezone') || '']&.utc_offset !=
269
- ActiveSupport::TimeZone[self.user_timezone]&.utc_offset
270
- )
271
- if self.environment == 'Production'
272
- ZuoraConnect.logger.error(
273
- "Instance and user timezones are different. User has '#{self.user_timezone}' and " \
274
- "instance has '#{self.task_data.dig('user_settings', 'timezone')}'",
275
- app_instance_id: self.id
276
- )
277
- end
278
- self.user_timezone = nil
279
- Time.zone = self.timezone
280
- else
281
- begin
282
- Time.zone = self.user_timezone
283
- rescue ArgumentError
284
- Time.zone = self.timezone
285
- end
286
- end
287
- else
288
- Time.zone = self.timezone
289
- end
251
+ self.set_timezone
290
252
 
291
253
  if self.task_data.present?
292
254
  tenants = self.task_data.fetch('tenant_ids', [])
@@ -302,7 +264,7 @@ module ZuoraConnect
302
264
  end
303
265
 
304
266
  params = {
305
- name: self.task_data.dig('name'),
267
+ name: self.task_data.dig('name'),
306
268
  zuora_entity_ids: (self.task_data.dig(LOGIN_TENANT_DESTINATION,'entities') || []).map{|e| e['id']}.uniq,
307
269
  zuora_tenant_ids: tenants.map(&:to_s).uniq,
308
270
  organizations: organizations
@@ -311,7 +273,7 @@ module ZuoraConnect
311
273
  client = self.send(LOGIN_TENANT_DESTINATION).client
312
274
  if defined?(client.rest_domain)
313
275
  ZuoraConnect::RequestIdMiddleware.zuora_rest_domain = client.rest_domain
314
- params.merge!({zuora_domain: client.rest_domain, environment: client.environment })
276
+ params.merge!({zuora_domain: client.rest_domain, environment: client.environment })
315
277
  end
316
278
  end
317
279
  params = params.reject{|k,v| !self.attributes.keys.member?(k.to_s) || self[k] == v}
@@ -319,16 +281,77 @@ module ZuoraConnect
319
281
  end
320
282
  end
321
283
 
284
+ def set_timezone(timezone: self.timezone, type: :default)
285
+ if timezone.blank?
286
+ timezone = self.timezone
287
+ end
288
+
289
+ if type == :default
290
+ Time.zone = timezone
291
+ elsif type == :user
292
+ begin
293
+ sql = <<-eos
294
+ SELECT zuora_users.zuora_identity_response FROM "#{self.id}".zuora_users ORDER BY zuora_users.updated_at DESC LIMIT 1;
295
+ eos
296
+ user = ActiveRecord::Base.connection.execute(sql).to_a.first
297
+
298
+ if user.present?
299
+ zuora_identity_response = JSON.parse(user.fetch('zuora_identity_response', '{}'))
300
+ self.user_timezone = zuora_identity_response.values.first&.dig('timeZone')
301
+ else
302
+ if (Redis.current.hget(TIMEZONE_LOG_RATE_LIMIT_KEY, self.id).to_i + TIMEZONE_LOG_PERIOD.to_i) <= Time.now.to_i
303
+ Rails.logger.error('Cannot find any user to set the timezone', app_instance_id: self.id)
304
+ Redis.current.hset(TIMEZONE_LOG_RATE_LIMIT_KEY, self.id, Time.now.to_i)
305
+ end
306
+ end
307
+ rescue => ex
308
+ Rails.logger.error('There is an error while getting timezone users', ex)
309
+ end
310
+
311
+ if self.user_timezone.present?
312
+ # connect instance which has a custom timezone
313
+ if !self.auto_deployed? && (
314
+ ActiveSupport::TimeZone[self.task_data.dig('user_settings', 'timezone') || '']&.utc_offset !=
315
+ ActiveSupport::TimeZone[self.user_timezone]&.utc_offset
316
+ )
317
+ if self.environment == 'Production' &&
318
+ (Redis.current.hget(TIMEZONE_LOG_RATE_LIMIT_KEY, self.id).to_i + TIMEZONE_LOG_PERIOD.to_i) <= Time.now.to_i
319
+ ZuoraConnect.logger.error(
320
+ "Instance and user timezones are different. User has '#{self.user_timezone}' and " \
321
+ "instance has '#{self.task_data.dig('user_settings', 'timezone')}'",
322
+ app_instance_id: self.id
323
+ )
324
+ Redis.current.hset(TIMEZONE_LOG_RATE_LIMIT_KEY, self.id, Time.now.to_i)
325
+ end
326
+ self.user_timezone = nil
327
+ Time.zone = timezone
328
+ else
329
+ begin
330
+ Time.zone = self.user_timezone
331
+ rescue ArgumentError
332
+ Rails.logger.error('Malformed user timezone', app_instance_id: self.id)
333
+ Time.zone = timezone
334
+ end
335
+ end
336
+ else
337
+ Time.zone = timezone
338
+ end
339
+ end
340
+ rescue => e
341
+ Rails.logger.error('Malformed timezone used', e, app_instance_id: self.id)
342
+ Time.zone = self.timezone
343
+ end
344
+
322
345
  def auto_deployed?
323
346
  self.id >= 25000000
324
347
  end
325
348
 
326
- def refresh(session: {})
349
+ def refresh(session: {})
327
350
  refresh_count ||= 0
328
351
  skip_connect ||= false
329
352
  begin
330
353
  #Check how app was deployed
331
- if self.id < 25000000 && !skip_connect
354
+ if !self.auto_deployed? && !skip_connect
332
355
  self.check_oauth_state
333
356
  response = HTTParty.get(ZuoraConnect.configuration.url + "/api/#{self.api_version}/tools/tasks/#{self.id}.json",:body => {:access_token => self.access_token})
334
357
 
@@ -340,16 +363,8 @@ module ZuoraConnect
340
363
  end
341
364
 
342
365
  self.build_task(task_data: parsed_json, session: session)
343
- if self.kms_key.present? && self.kms_key.match(/^arn:aws:.*/)
344
- begin
345
- self.zuora_logins = self.strip_cache_data(object: parsed_json.dup, keys: ['applications', 'tokens', 'user_settings'])
346
- self.save(:validate => false)
347
- rescue Aws::KMS::Errors::ValidationException, *AWS_AUTH_ERRORS => ex
348
- Rails.logger.warn(AWS_AUTH_ERRORS_MSG, ex)
349
- rescue => ex
350
- Rails.logger.error(AWS_AUTH_ERRORS_MSG, ex)
351
- end
352
- end
366
+ self.set_backup_creds
367
+ self.save(validate: false) if self.changed?
353
368
  else
354
369
  raise ZuoraConnect::Exceptions::ConnectCommunicationError.new("Error Communicating with Connect", response.body, response.code)
355
370
  end
@@ -394,8 +409,16 @@ module ZuoraConnect
394
409
  end
395
410
 
396
411
  #### START KMS ENCRYPTION Methods ####
412
+ def set_backup_creds
413
+ if self.kms_key.present? && self.kms_key.match(/^arn:aws:.*/) && self.task_data.present?
414
+ self.zuora_logins = self.strip_cache_data(object: self.task_data.dup, keys: ['applications', 'tokens', 'user_settings'])
415
+ end
416
+ end
417
+
397
418
  def zuora_logins=(val)
398
419
  write_attribute(:zuora_logins, kms_encrypt(val.to_json))
420
+ rescue Aws::KMS::Errors::ValidationException, Aws::KMS::Errors::NotFoundException, *AWS_AUTH_ERRORS => ex
421
+ Rails.logger.warn(AWS_AUTH_ERRORS_MSG, ex)
399
422
  end
400
423
 
401
424
  def zuora_logins
@@ -455,82 +478,6 @@ module ZuoraConnect
455
478
  end
456
479
  Thread.current[:appinstance] = self
457
480
  end
458
-
459
- def self.write_to_telegraf(*args)
460
- if ZuoraConnect.configuration.enable_metrics && !defined?(Prometheus)
461
- @@telegraf_host = ZuoraConnect::Telegraf.new() if @@telegraf_host == nil
462
- unicorn_stats = self.unicorn_listener_stats() if defined?(Unicorn) && Unicorn.respond_to?(:listener_names)
463
- @@telegraf_host.write(direction: 'Raindrops', tags: {}, values: unicorn_stats) unless unicorn_stats.blank?
464
- return @@telegraf_host.write(*args)
465
- end
466
- end
467
-
468
- def self.unicorn_listener_stats ()
469
- stats_hash = {}
470
- stats_hash["total_active"] = 0
471
- stats_hash["total_queued"] = 0
472
-
473
- begin
474
- tmp = Unicorn.listener_names
475
- unix = tmp.grep(%r{\A/})
476
- tcp = tmp.grep(/\A.+:\d+\z/)
477
- tcp = nil if tcp.empty?
478
- unix = nil if unix.empty?
479
-
480
-
481
- Raindrops::Linux.tcp_listener_stats(tcp).each do |addr,stats|
482
- stats_hash["active_#{addr}"] = stats.active
483
- stats_hash["queued_#{addr}"] = stats.queued
484
- stats_hash["total_active"] = stats.active + stats_hash["total_active"]
485
- stats_hash["total_queued"] = stats.queued + stats_hash["total_queued"]
486
- end if tcp
487
-
488
- Raindrops::Linux.unix_listener_stats(unix).each do |addr,stats|
489
- stats_hash["active_#{addr}"] = stats.active
490
- stats_hash["queued_#{addr}"] = stats.queued
491
- stats_hash["total_active"] = stats.active + stats_hash["total_active"]
492
- stats_hash["total_queued"] = stats.queued + stats_hash["total_queued"]
493
- end if unix
494
- rescue IOError => ex
495
- rescue => ex
496
- ZuoraConnect.logger.error(ex)
497
- end
498
- return stats_hash
499
- end
500
-
501
- def self.get_metrics(type)
502
- @data = {}
503
-
504
- if type == "versions"
505
- @data = {
506
- app_name: ZuoraConnect::Telegraf.app_name,
507
- url: "dummy",
508
- Version_Gem: ZuoraConnect::VERSION,
509
- Version_Zuora: ZuoraAPI::VERSION ,
510
- Version_Ruby: RUBY_VERSION,
511
- Version_Rails: Rails.version,
512
- hold: 1
513
- }
514
- elsif type == "stats"
515
- begin
516
- Resque.redis.ping
517
- @resque = Resque.info
518
- @data = {
519
- app_name: ZuoraConnect::Telegraf.app_name,
520
- url: "dummy",
521
- Resque:{
522
- Jobs_Finished: @resque[:processed] ,
523
- Jobs_Failed: @resque[:failed],
524
- Jobs_Pending: @resque[:pending],
525
- Workers_Active: @resque[:working],
526
- Workers_Total: @resque[:workers]
527
- }
528
- }
529
- rescue
530
- end
531
- end
532
- return @data
533
- end
534
481
  #### END Task Methods ####
535
482
 
536
483
  #### START Task Methods ####
@@ -573,7 +520,7 @@ module ZuoraConnect
573
520
  end
574
521
  rescue ZuoraConnect::Exceptions::MissMatch => ex
575
522
  raise
576
- rescue ZuoraConnect::Exceptions::InvalidCredentialSet => ex
523
+ rescue ZuoraConnect::Exceptions::InvalidCredentialSet => ex
577
524
  raise
578
525
  rescue => ex
579
526
  ZuoraConnect.logger.error("Build Task Error", ex)
@@ -629,12 +576,12 @@ module ZuoraConnect
629
576
  self.refresh if !defined?(self.target_login)
630
577
 
631
578
  response = HTTParty.get("#{ZuoraConnect.configuration.url}/api/#{self.api_version}/tenants/search?hostname=#{self.target_login.client.hostname}&node_id=#{self.zuora_entity_ids.first}")
632
-
579
+
633
580
  if response.success?
634
581
  parsed_json = JSON.parse(response.body)
635
-
582
+
636
583
  #Set Org
637
- if self.id >= 25000000 && parsed_json['organization'].present?
584
+ if self.auto_deployed? && parsed_json['organization'].present?
638
585
  login_cache = self.zuora_logins
639
586
  login_cache.delete('organization')
640
587
  self.zuora_logins = login_cache.merge({'organizations' => [parsed_json['organization']]})
@@ -654,7 +601,7 @@ module ZuoraConnect
654
601
  end
655
602
  end
656
603
  self.save(:validate => false)
657
-
604
+
658
605
  return parsed_json
659
606
  end
660
607
  rescue *(ZuoraAPI::Login::CONNECTION_EXCEPTIONS + ZuoraAPI::Login::CONNECTION_READ_EXCEPTIONS) => ex
@@ -708,7 +655,7 @@ module ZuoraConnect
708
655
  end
709
656
 
710
657
  def refresh_oauth
711
- refresh_oauth_count ||= 0
658
+ refresh_oauth_count ||= 0
712
659
  response = HTTParty.post("#{ZuoraConnect.configuration.url}/oauth/token", body: {
713
660
  :grant_type => "refresh_token",
714
661
  :redirect_uri => ZuoraConnect.configuration.oauth_client_redirect_uri,
@@ -1082,7 +1029,7 @@ module ZuoraConnect
1082
1029
  catalog_container = catalog_container[object_id]
1083
1030
  end
1084
1031
 
1085
- return catalog_container
1032
+ return catalog_container || {}
1086
1033
  end
1087
1034
 
1088
1035
  if defined?(Redis.current) && object_id.present? && object_id.class == String && object_id.present?
@@ -1344,7 +1291,7 @@ module ZuoraConnect
1344
1291
 
1345
1292
  def self.without_sticking
1346
1293
  if self.connection.respond_to?(:without_sticking)
1347
- self.connection.without_sticking do
1294
+ self.connection.without_sticking do
1348
1295
  yield
1349
1296
  end
1350
1297
  else
@@ -26,7 +26,7 @@ module ActiveRecord
26
26
  if oids
27
27
  query += "WHERE t.oid::integer IN (%s)" % oids.join(", ")
28
28
  else
29
- query += initializer.query_conditions_for_initial_load(type_map)
29
+ query += initializer.query_conditions_for_initial_load
30
30
  end
31
31
 
32
32
  execute_and_clear(query, "SCHEMA", []) do |records|
@@ -49,10 +49,10 @@ if defined? Prometheus
49
49
  prometheus = Prometheus::Client.registry
50
50
 
51
51
  # Create your metrics.
52
- ZUORA_VERSION = prometheus.gauge(:zuora_version, docstring: 'The current Zuora Gem version.', labels: %i(version name), preset_labels: { version: ZuoraAPI::VERSION, name: ZuoraConnect::Telegraf.app_name }, store_settings: most_recent_aggregation)
53
- CONNECT_VERSION = prometheus.gauge(:gem_version, docstring: 'The current Connect Gem version.', labels: %i(version name), preset_labels: { version: ZuoraConnect::VERSION, name: ZuoraConnect::Telegraf.app_name }, store_settings: most_recent_aggregation)
54
- RAILS_VERSION = prometheus.gauge(:rails_version, docstring: 'The current Rails version.', labels: %i(version name), preset_labels: { version: Rails.version, name: ZuoraConnect::Telegraf.app_name }, store_settings: most_recent_aggregation)
55
- RUBY_V = prometheus.gauge(:ruby_version, docstring: 'The current Ruby version.', labels: %i(version name), preset_labels: { version: RUBY_VERSION, name: ZuoraConnect::Telegraf.app_name }, store_settings: most_recent_aggregation)
52
+ ZUORA_VERSION = prometheus.gauge(:zuora_version, docstring: 'The current Zuora Gem version.', labels: %i(version name), preset_labels: { version: ZuoraAPI::VERSION, name: ZuoraObservability::Env.app_name }, store_settings: most_recent_aggregation)
53
+ CONNECT_VERSION = prometheus.gauge(:gem_version, docstring: 'The current Connect Gem version.', labels: %i(version name), preset_labels: { version: ZuoraConnect::VERSION, name: ZuoraObservability::Env.app_name }, store_settings: most_recent_aggregation)
54
+ RAILS_VERSION = prometheus.gauge(:rails_version, docstring: 'The current Rails version.', labels: %i(version name), preset_labels: { version: Rails.version, name: ZuoraObservability::Env.app_name }, store_settings: most_recent_aggregation)
55
+ RUBY_V = prometheus.gauge(:ruby_version, docstring: 'The current Ruby version.', labels: %i(version name), preset_labels: { version: RUBY_VERSION, name: ZuoraObservability::Env.app_name }, store_settings: most_recent_aggregation)
56
56
 
57
57
  ZUORA_VERSION.set(0)
58
58
  CONNECT_VERSION.set(0)
@@ -61,12 +61,12 @@ if defined? Prometheus
61
61
 
62
62
  # Do they have resque jobs?
63
63
  if defined? Resque.redis
64
- REDIS_CONNECTION = prometheus.gauge(:redis_connection, docstring: 'The status of the redis connection, 0 or 1', labels: %i(connection name), preset_labels: {connection:'redis', name: ZuoraConnect::Telegraf.app_name}, store_settings: most_recent_aggregation)
65
- JOBS_FINISHED = prometheus.gauge(:jobs_finished, docstring: 'Done resque jobs', labels: %i(type name), preset_labels: {type:'resque', name: ZuoraConnect::Telegraf.app_name}, store_settings: most_recent_aggregation)
66
- WORKERS_TOTAL = prometheus.gauge(:workers_total, docstring: 'Total resque workers', labels: %i(type name), preset_labels: {type:'resque', name: ZuoraConnect::Telegraf.app_name}, store_settings: most_recent_aggregation)
67
- WORKERS_ACTIVE = prometheus.gauge(:workers_active, docstring: 'Active resque workers', labels: %i(type name), preset_labels: {type:'resque', name: ZuoraConnect::Telegraf.app_name}, store_settings: most_recent_aggregation)
68
- JOBS_FAILED = prometheus.gauge(:jobs_failed, docstring: 'Failed resque jobs', labels: %i(type name), preset_labels: {type:'resque', name: ZuoraConnect::Telegraf.app_name}, store_settings: most_recent_aggregation)
69
- JOBS_PENDING = prometheus.gauge(:jobs_pending, docstring: 'Pending resque jobs', labels: %i(type name), preset_labels: {type:'resque', name: ZuoraConnect::Telegraf.app_name}, store_settings: most_recent_aggregation)
64
+ REDIS_CONNECTION = prometheus.gauge(:redis_connection, docstring: 'The status of the redis connection, 0 or 1', labels: %i(connection name), preset_labels: {connection:'redis', name: ZuoraObservability::Env.app_name}, store_settings: most_recent_aggregation)
65
+ JOBS_FINISHED = prometheus.gauge(:jobs_finished, docstring: 'Done resque jobs', labels: %i(type name), preset_labels: {type:'resque', name: ZuoraObservability::Env.app_name}, store_settings: most_recent_aggregation)
66
+ WORKERS_TOTAL = prometheus.gauge(:workers_total, docstring: 'Total resque workers', labels: %i(type name), preset_labels: {type:'resque', name: ZuoraObservability::Env.app_name}, store_settings: most_recent_aggregation)
67
+ WORKERS_ACTIVE = prometheus.gauge(:workers_active, docstring: 'Active resque workers', labels: %i(type name), preset_labels: {type:'resque', name: ZuoraObservability::Env.app_name}, store_settings: most_recent_aggregation)
68
+ JOBS_FAILED = prometheus.gauge(:jobs_failed, docstring: 'Failed resque jobs', labels: %i(type name), preset_labels: {type:'resque', name: ZuoraObservability::Env.app_name}, store_settings: most_recent_aggregation)
69
+ JOBS_PENDING = prometheus.gauge(:jobs_pending, docstring: 'Pending resque jobs', labels: %i(type name), preset_labels: {type:'resque', name: ZuoraObservability::Env.app_name}, store_settings: most_recent_aggregation)
70
70
  end
71
71
 
72
72
  if defined?(Unicorn) && Unicorn.respond_to?(:listener_names)
@@ -74,17 +74,17 @@ if defined? Prometheus
74
74
  :unicorn_kills,
75
75
  docstring: 'Unicorn Kills',
76
76
  labels: %i(type name),
77
- preset_labels: {type:'Unicorn-Killer', name: ZuoraConnect::Telegraf.app_name},
77
+ preset_labels: {type:'Unicorn-Killer', name: ZuoraObservability::Env.app_name},
78
78
  store_settings: sum_aggregation
79
79
  )
80
80
 
81
- ZuoraConnect::AppInstanceBase.unicorn_listener_stats.each do |key, _|
81
+ ZuoraObservability::Metrics.unicorn_listener.each do |key, _|
82
82
  gauge_name = "unicorn_#{key}".gsub(/[^a-zA-Z0-9_]/, '_')
83
83
  gauge = prometheus.gauge(
84
84
  gauge_name.to_sym,
85
85
  docstring: 'Unicorn Stats',
86
86
  labels: %i(type name),
87
- preset_labels: { type: 'unicorn', name: ZuoraConnect::Telegraf.app_name },
87
+ preset_labels: { type: 'unicorn', name: ZuoraObservability::Env.app_name },
88
88
  store_settings: most_recent_aggregation
89
89
  )
90
90
  Prometheus.const_set(