resurfaceio-logger 1.9.2 → 1.10.0

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: 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