zuora_connect 2.0.60t → 3.0.0k

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.
@@ -1,3 +1,3 @@
1
1
  module ZuoraConnect
2
- VERSION = "2.0.60t"
2
+ VERSION = "3.0.0k"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zuora_connect
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.60t
4
+ version: 3.0.0k
5
5
  platform: ruby
6
6
  authors:
7
7
  - Connect Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-16 00:00:00.000000000 Z
11
+ date: 2020-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: apartment
@@ -56,40 +56,40 @@ dependencies:
56
56
  name: zuora_api
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: 1.7.00
62
- - - "~>"
62
+ - - ">="
63
63
  - !ruby/object:Gem::Version
64
64
  version: 1.7.00
65
65
  type: :runtime
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
- - - ">="
69
+ - - "~>"
70
70
  - !ruby/object:Gem::Version
71
71
  version: 1.7.00
72
- - - "~>"
72
+ - - ">="
73
73
  - !ruby/object:Gem::Version
74
74
  version: 1.7.00
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: httparty
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - ">="
79
+ - - "~>"
80
80
  - !ruby/object:Gem::Version
81
81
  version: 0.16.4
82
- - - "~>"
82
+ - - ">="
83
83
  - !ruby/object:Gem::Version
84
84
  version: 0.16.4
85
85
  type: :runtime
86
86
  prerelease: false
87
87
  version_requirements: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - ">="
89
+ - - "~>"
90
90
  - !ruby/object:Gem::Version
91
91
  version: 0.16.4
92
- - - "~>"
92
+ - - ">="
93
93
  - !ruby/object:Gem::Version
94
94
  version: 0.16.4
95
95
  - !ruby/object:Gem::Dependency
@@ -182,6 +182,20 @@ dependencies:
182
182
  - - ">="
183
183
  - !ruby/object:Gem::Version
184
184
  version: '0'
185
+ - !ruby/object:Gem::Dependency
186
+ name: zuora_observability
187
+ requirement: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - '='
190
+ - !ruby/object:Gem::Version
191
+ version: 0.1.0.pre.b
192
+ type: :runtime
193
+ prerelease: false
194
+ version_requirements: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - '='
197
+ - !ruby/object:Gem::Version
198
+ version: 0.1.0.pre.b
185
199
  - !ruby/object:Gem::Dependency
186
200
  name: rspec
187
201
  requirement: !ruby/object:Gem::Requirement
@@ -196,6 +210,20 @@ dependencies:
196
210
  - - "~>"
197
211
  - !ruby/object:Gem::Version
198
212
  version: '3.0'
213
+ - !ruby/object:Gem::Dependency
214
+ name: rspec_junit_formatter
215
+ requirement: !ruby/object:Gem::Requirement
216
+ requirements:
217
+ - - ">="
218
+ - !ruby/object:Gem::Version
219
+ version: '0'
220
+ type: :development
221
+ prerelease: false
222
+ version_requirements: !ruby/object:Gem::Requirement
223
+ requirements:
224
+ - - ">="
225
+ - !ruby/object:Gem::Version
226
+ version: '0'
199
227
  - !ruby/object:Gem::Dependency
200
228
  name: rspec-rails
201
229
  requirement: !ruby/object:Gem::Requirement
@@ -224,6 +252,34 @@ dependencies:
224
252
  - - ">="
225
253
  - !ruby/object:Gem::Version
226
254
  version: '0'
255
+ - !ruby/object:Gem::Dependency
256
+ name: simplecov
257
+ requirement: !ruby/object:Gem::Requirement
258
+ requirements:
259
+ - - ">="
260
+ - !ruby/object:Gem::Version
261
+ version: '0'
262
+ type: :development
263
+ prerelease: false
264
+ version_requirements: !ruby/object:Gem::Requirement
265
+ requirements:
266
+ - - ">="
267
+ - !ruby/object:Gem::Version
268
+ version: '0'
269
+ - !ruby/object:Gem::Dependency
270
+ name: simplecov-cobertura
271
+ requirement: !ruby/object:Gem::Requirement
272
+ requirements:
273
+ - - ">="
274
+ - !ruby/object:Gem::Version
275
+ version: '0'
276
+ type: :development
277
+ prerelease: false
278
+ version_requirements: !ruby/object:Gem::Requirement
279
+ requirements:
280
+ - - ">="
281
+ - !ruby/object:Gem::Version
282
+ version: '0'
227
283
  - !ruby/object:Gem::Dependency
228
284
  name: factory_bot
229
285
  requirement: !ruby/object:Gem::Requirement
@@ -318,7 +374,6 @@ files:
318
374
  - app/models/zuora_connect/app_instance.rb
319
375
  - app/models/zuora_connect/app_instance_base.rb
320
376
  - app/models/zuora_connect/login.rb
321
- - app/models/zuora_connect/telegraf.rb
322
377
  - app/models/zuora_connect/zuora_user.rb
323
378
  - app/views/layouts/zuora_connect/application.html.erb
324
379
  - app/views/sql/refresh_aggregate_table.txt
@@ -353,8 +408,6 @@ files:
353
408
  - db/migrate/20190520232222_add_unique_index.rb
354
409
  - db/migrate/20190520232223_add_provisioning_fields.rb
355
410
  - db/migrate/20190520232224_add_environment_fields.rb
356
- - lib/logging/connect_formatter.rb
357
- - lib/metrics/influx/point_value.rb
358
411
  - lib/metrics/net.rb
359
412
  - lib/middleware/bad_multipart_form_data_sanitizer.rb
360
413
  - lib/middleware/json_parse_errors.rb
@@ -434,7 +487,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
434
487
  - !ruby/object:Gem::Version
435
488
  version: 1.3.1
436
489
  requirements: []
437
- rubygems_version: 3.0.3
490
+ rubygems_version: 3.1.4
438
491
  signing_key:
439
492
  specification_version: 4
440
493
  summary: Summary of Connect.
@@ -1,97 +0,0 @@
1
- module ZuoraConnect
2
- class Telegraf
3
- attr_accessor :host
4
-
5
- OUTBOUND_METRICS = true
6
- OUTBOUND_METRICS_NAME = "request-outbound"
7
- INBOUND_METRICS = true
8
- INBOUND_METRICS_NAME = "request-inbound"
9
-
10
- def initialize
11
- self.connect
12
- end
13
-
14
- def connect
15
- ZuoraConnect.logger.debug(self.format_metric_log('Telegraf','Need new connection')) if ZuoraConnect.configuration.telegraf_debug
16
- uri = URI.parse(ZuoraConnect.configuration.telegraf_endpoint)
17
- self.host = UDPSocket.new.tap do |socket|
18
- socket.connect uri.host, uri.port
19
- end
20
- rescue => ex
21
- self.host = nil
22
- ZuoraConnect.logger.warn(self.format_metric_log('Telegraf', "Failed to connect: #{ex.class}")) if Rails.env.to_s != 'production'
23
- end
24
-
25
- def write(direction: 'Unknown', tags: {}, values: {})
26
- time = Benchmark.measure do |bench|
27
- # To avoid writing metrics from rspec tests
28
- if Rails.env.to_sym != :test
29
- app_instance = Thread.current[:appinstance].present? ? Thread.current[:appinstance].id : 0
30
- tags = { app_name: self.class.app_name, process_type: self.class.process_type, app_instance: app_instance, pod_name: self.class.pod_name}.merge(tags)
31
-
32
- if direction == :inbound
33
- if INBOUND_METRICS && !Thread.current[:inbound_metric].to_bool
34
- self.write_udp(series: INBOUND_METRICS_NAME, tags: tags, values: values)
35
- Thread.current[:inbound_metric] = true
36
- else
37
- return
38
- end
39
- elsif direction == :outbound
40
- self.write_udp(series: OUTBOUND_METRICS_NAME, tags: tags, values: values) if OUTBOUND_METRICS
41
- else
42
- self.write_udp(series: direction, tags: tags, values: values)
43
- end
44
- end
45
- end
46
- if ZuoraConnect.configuration.telegraf_debug
47
- ZuoraConnect.logger.debug(self.format_metric_log('Telegraf', tags.to_s))
48
- ZuoraConnect.logger.debug(self.format_metric_log('Telegraf', values.to_s))
49
- ZuoraConnect.logger.debug(self.format_metric_log('Telegraf', "Writing '#{direction.capitalize}': #{time.real.round(5)} ms"))
50
- end
51
- end
52
-
53
-
54
- def write_udp(series: '', tags: {}, values: {})
55
- return if !values.present?
56
- self.host.write InfluxDB::PointValue.new({series: series, tags: tags, values: values}).dump
57
- rescue => ex
58
- self.connect
59
- ZuoraConnect.logger.warn(self.format_metric_log('Telegraf',"Failed to write udp: #{ex.class}")) if Rails.env.to_s != 'production'
60
- end
61
-
62
- def format_metric_log(message, dump = nil)
63
- message_color, dump_color = "1;91", "0;1"
64
- log_entry = " \e[#{message_color}m#{message}\e[0m "
65
- log_entry << "\e[#{dump_color}m%#{String === dump ? 's' : 'p'}\e[0m" % dump if dump
66
- if Rails.env == :development
67
- log_entry
68
- else
69
- [message, dump].compact.join(' - ')
70
- end
71
- end
72
-
73
- def self.app_name
74
- return ENV['DEIS_APP'].present? ? ENV['DEIS_APP'] : Rails.application.class.parent_name
75
- end
76
-
77
- def self.pod_name
78
- return ENV['HOSTNAME'].present? ? ENV['HOSTNAME'] : Socket.gethostname
79
- end
80
-
81
- def self.full_process_name(process_name: nil, function: nil)
82
- keys = [self.pod_name, process_name.present? ? process_name : self.process_type, Process.pid, function]
83
- return keys.compact.join('][').prepend('[').concat(']')
84
- end
85
-
86
- # Returns the process type if any
87
- def self.process_type(default: 'Unknown')
88
- p_type = default
89
- if ENV['HOSTNAME'] && ENV['DEIS_APP']
90
- temp = ENV['HOSTNAME'].split(ENV['DEIS_APP'])[1]
91
- temp = temp.split(/(-[0-9a-zA-Z]{5})$/)[0] # remove the 5 char hash
92
- p_type = temp[1, temp.rindex("-")-1]
93
- end
94
- return p_type
95
- end
96
- end
97
- end
@@ -1,44 +0,0 @@
1
- require 'ougai/formatters/base'
2
- require 'ougai/formatters/for_json'
3
-
4
- module Ougai
5
- module Formatters
6
- # A JSON formatter compatible with node-bunyan
7
- class ConnectFormatter < Base
8
- include ForJson
9
-
10
- # Intialize a formatter
11
- # @param [String] app_name application name (execution program name if nil)
12
- # @param [String] hostname hostname (hostname if nil)
13
- # @param [Hash] opts the initial values of attributes
14
- # @option opts [String] :trace_indent (2) the value of trace_indent attribute
15
- # @option opts [String] :trace_max_lines (100) the value of trace_max_lines attribute
16
- # @option opts [String] :serialize_backtrace (true) the value of serialize_backtrace attribute
17
- # @option opts [String] :jsonize (true) the value of jsonize attribute
18
- # @option opts [String] :with_newline (true) the value of with_newline attribute
19
- def initialize(app_name = nil, hostname = nil, opts = {})
20
- aname, hname, opts = Base.parse_new_params([app_name, hostname, opts])
21
- super(aname, hname, opts)
22
- init_opts_for_json(opts)
23
- end
24
-
25
- def _call(severity, time, progname, data)
26
- data.merge!({message: data.delete(:msg)})
27
- if data[:timestamp].present?
28
- time = data[:timestamp]
29
- data.delete(:timestamp)
30
- end
31
- dump({
32
- name: progname || @app_name,
33
- pid: $$,
34
- level: severity,
35
- timestamp: time.utc.strftime('%FT%T.%6NZ'),
36
- }.merge(data))
37
- end
38
-
39
- def convert_time(data)
40
- #data[:timestamp] = format_datetime(data[:time])
41
- end
42
- end
43
- end
44
- end
@@ -1,79 +0,0 @@
1
- module InfluxDB
2
- # Convert data point to string using Line protocol
3
- class PointValue
4
- attr_reader :series, :values, :tags, :timestamp
5
-
6
- def initialize(data)
7
- @series = escape data[:series], :measurement
8
- @values = escape_values data[:values]
9
- @tags = escape_tags data[:tags]
10
- @timestamp = data[:timestamp]
11
- end
12
-
13
- def dump
14
- dump = @series.dup
15
- dump << ",#{@tags}" if @tags
16
- dump << " #{@values}"
17
- dump << " #{@timestamp}" if @timestamp
18
- dump
19
- end
20
-
21
- private
22
-
23
- ESCAPES = {
24
- measurement: [' '.freeze, ','.freeze],
25
- tag_key: ['='.freeze, ' '.freeze, ','.freeze],
26
- tag_value: ['='.freeze, ' '.freeze, ','.freeze],
27
- field_key: ['='.freeze, ' '.freeze, ','.freeze, '"'.freeze],
28
- field_value: ["\\".freeze, '"'.freeze],
29
- }.freeze
30
-
31
- private_constant :ESCAPES
32
-
33
- def escape(str, type)
34
- # rubocop:disable Layout/AlignParameters
35
- str = str.encode "UTF-8".freeze, "UTF-8".freeze,
36
- invalid: :replace,
37
- undef: :replace,
38
- replace: "".freeze
39
- # rubocop:enable Layout/AlignParameters
40
-
41
- ESCAPES[type].each do |ch|
42
- str = str.gsub(ch) { "\\#{ch}" }
43
- end
44
- str
45
- end
46
-
47
- def escape_values(values)
48
- return if values.nil?
49
- values.map do |k, v|
50
- key = escape(k.to_s, :field_key)
51
- val = escape_value(v)
52
- "#{key}=#{val}"
53
- end.join(",".freeze)
54
- end
55
-
56
- def escape_value(value)
57
- if value.is_a?(String)
58
- '"'.freeze + escape(value, :field_value) + '"'.freeze
59
- elsif value.is_a?(Integer)
60
- "#{value}i"
61
- else
62
- value.to_s
63
- end
64
- end
65
-
66
- def escape_tags(tags)
67
- return if tags.nil?
68
-
69
- tags = tags.map do |k, v|
70
- key = escape(k.to_s, :tag_key)
71
- val = escape(v.to_s, :tag_value)
72
-
73
- "#{key}=#{val}" unless key == "".freeze || val == "".freeze
74
- end.compact
75
-
76
- tags.join(",") unless tags.empty?
77
- end
78
- end
79
- end