resurfaceio-logger 1.9.2 → 1.10.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8203412ccd551845453a39c74a9cf6cc577938c17baecd94f722bd5748aedb8e
4
- data.tar.gz: 8df56d5c2e56183a347cb1777f8b94e4c71cc91777b3ffd8c2ecfa261952aa24
3
+ metadata.gz: '081b638ef0c63585d851de54a9b30ef9b54de58cf68f880785c2e1a8d214cb54'
4
+ data.tar.gz: a71c49ec92a27637f7d77b52177df39d0b197757a056154e5247f5e40aa350d1
5
5
  SHA512:
6
- metadata.gz: f72e583b028aa00b092ff07be615f9a8628cc784b59a05678932bfa506da99a462b5ed233bdd10d81a00318ffab132bc9920925e250e4796da4e7d4b289453a4
7
- data.tar.gz: 339c8ca8ee136ca575c428c44683bab7731c285d8a6319a8945038a24bf1ed2d6fd30c2aad3b592920929e91fc1dec2220497a6050cd898db419df3e57593f14
6
+ metadata.gz: f2f2c6be12c8977756ab185cc34c64cc29b0956940139315a1d9c023f4df0756cbea1c3fdb8eaab9207070ddda63ee1dac34688d8272d1782d5664b531de94a3
7
+ data.tar.gz: 8eed5ac226184687025edf8d3f213585b73d1577c8c6a5420f71b4bc5205add88470672e350746edef7e2a48bf3441276517fcb7ec176bdb16f88b21f9059c7a
@@ -4,6 +4,7 @@
4
4
  require 'uri'
5
5
  require 'net/http'
6
6
  require 'net/https'
7
+ require 'socket'
7
8
  require 'zlib'
8
9
  require 'resurfaceio/usage_loggers'
9
10
 
@@ -11,6 +12,7 @@ class BaseLogger
11
12
 
12
13
  def initialize(agent, options = {})
13
14
  @agent = agent
15
+ @host = BaseLogger.host_lookup
14
16
  @skip_compression = false
15
17
  @skip_submission = false
16
18
  @version = BaseLogger.version_lookup
@@ -74,6 +76,10 @@ class BaseLogger
74
76
  @enabled && UsageLoggers.enabled?
75
77
  end
76
78
 
79
+ def host
80
+ @host
81
+ end
82
+
77
83
  def queue
78
84
  @queue
79
85
  end
@@ -94,11 +100,11 @@ class BaseLogger
94
100
  @skip_submission = value
95
101
  end
96
102
 
97
- def submit(json)
98
- if json.nil? || @skip_submission || !enabled?
103
+ def submit(msg)
104
+ if msg.nil? || @skip_submission || !enabled?
99
105
  true
100
106
  elsif @queue
101
- @queue << json
107
+ @queue << msg
102
108
  true
103
109
  else
104
110
  begin
@@ -107,10 +113,10 @@ class BaseLogger
107
113
  @url_connection.use_ssl = @url.include?('https')
108
114
  request = Net::HTTP::Post.new(@url_parsed.path)
109
115
  if @skip_compression
110
- request.body = json
116
+ request.body = msg
111
117
  else
112
118
  request.add_field('Content-Encoding', 'deflated')
113
- request.body = Zlib::Deflate.deflate(json)
119
+ request.body = Zlib::Deflate.deflate(msg)
114
120
  end
115
121
  response = @url_connection.request(request)
116
122
  response.code.to_i == 204
@@ -129,6 +135,16 @@ class BaseLogger
129
135
  @version
130
136
  end
131
137
 
138
+ def self.host_lookup
139
+ dyno = ENV['DYNO']
140
+ return dyno unless dyno.nil?
141
+ begin
142
+ Socket.gethostname
143
+ rescue
144
+ 'unknown'
145
+ end
146
+ end
147
+
132
148
  def self.version_lookup
133
149
  Gem.loaded_specs['resurfaceio-logger'].version.to_s
134
150
  end
@@ -116,6 +116,7 @@ class HttpLogger < BaseLogger
116
116
  # finish message
117
117
  details << ['now', now.nil? ? (Time.now.to_f * 1000).floor.to_s : now]
118
118
  details << ['agent', @agent]
119
+ details << ['host', @host]
119
120
  details << ['version', @version]
120
121
  JSON.generate details
121
122
  end
@@ -7,9 +7,9 @@ class HttpMessage
7
7
 
8
8
  def self.build(request, response, response_body = nil, request_body = nil)
9
9
  message = []
10
- append_value message, 'request_method', request.request_method
11
- append_value message, 'request_url', request.url
12
- append_value message, 'response_code', response.status
10
+ append_value message, 'request_method', request.request_method unless request.request_method.nil?
11
+ append_value message, 'request_url', request.url unless request.url.nil?
12
+ append_value message, 'response_code', response.status unless response.status.nil?
13
13
  append_request_headers message, request
14
14
  append_request_params message, request
15
15
  append_response_headers message, response
@@ -79,12 +79,12 @@ class HttpRules
79
79
  protected
80
80
 
81
81
  def self.parse_regex(r, regex)
82
- str = parse_string(r, regex)
83
- raise RuntimeError.new("Invalid regex (#{regex}) in rule: #{r}") if '*' == str || '+' == str || '?' == str
84
- str = "^#{str}" unless str.start_with?('^')
85
- str = "#{str}$" unless str.end_with?('$')
82
+ s = parse_string(r, regex)
83
+ raise RuntimeError.new("Invalid regex (#{regex}) in rule: #{r}") if '*' == s || '+' == s || '?' == s
84
+ s = "^#{s}" unless s.start_with?('^')
85
+ s = "#{s}$" unless s.end_with?('$')
86
86
  begin
87
- return Regexp.compile(str)
87
+ return Regexp.compile(s)
88
88
  rescue RegexpError
89
89
  raise RuntimeError.new("Invalid regex (#{regex}) in rule: #{r}")
90
90
  end
@@ -98,15 +98,15 @@ class HttpRules
98
98
  end
99
99
  end
100
100
 
101
- def self.parse_string(r, str)
101
+ def self.parse_string(r, expr)
102
102
  %w(~ ! % | /).each do |sep|
103
- if (m = str.match(/^[#{sep}](.*)[#{sep}]$/))
103
+ if (m = expr.match(/^[#{sep}](.*)[#{sep}]$/))
104
104
  m1 = m[1]
105
105
  raise RuntimeError.new("Unescaped separator (#{sep}) in rule: #{r}") if m1.match(/^[#{sep}].*|.*[^\\][#{sep}].*/)
106
106
  return m1.gsub("\\#{sep}", sep)
107
107
  end
108
108
  end
109
- raise RuntimeError.new("Invalid expression (#{str}) in rule: #{r}")
109
+ raise RuntimeError.new("Invalid expression (#{expr}) in rule: #{r}")
110
110
  end
111
111
 
112
112
  REGEX_ALLOW_HTTP_URL = /^\s*allow_http_url\s*(#.*)?$/.freeze
@@ -3,16 +3,16 @@
3
3
 
4
4
  class UsageLoggers
5
5
 
6
- @@DISABLED = 'true'.eql?(ENV['USAGE_LOGGERS_DISABLE'])
6
+ @@BRICKED = 'true'.eql?(ENV['USAGE_LOGGERS_DISABLE'])
7
7
 
8
- @@disabled = @@DISABLED
8
+ @@disabled = @@BRICKED
9
9
 
10
10
  def self.disable
11
11
  @@disabled = true
12
12
  end
13
13
 
14
14
  def self.enable
15
- @@disabled = false unless @@DISABLED
15
+ @@disabled = false unless @@BRICKED
16
16
  end
17
17
 
18
18
  def self.enabled?
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resurfaceio-logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.2
4
+ version: 1.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - RobDickinson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-23 00:00:00.000000000 Z
11
+ date: 2019-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler