metlo 0.0.3-x86_64-darwin → 0.0.5-x86_64-darwin

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: 6b32879e3e1bb16bb0fe42fd41cec3cc8b3361712f234d21bc2c8198cf0ff308
4
- data.tar.gz: f12d5d2bafa6bdfbc1eb5bb34f6be33f7570b298ef8e452330d8db31c16de423
3
+ metadata.gz: 675298f51ccc2075fb963c683f41852f11c27a19545e5a322b0ae4953a0d2391
4
+ data.tar.gz: 3e1bc5b093d348f0e93a0661417b21932b01866c0359ac9bafd02d2898497266
5
5
  SHA512:
6
- metadata.gz: 22b352e7c4a45b89869845142c25d167f66f97275820337c36c81aa5a87151f3e8ecd37d75920c1e0230cd3fd4beb920f77c044e2dbd785a1a079c34d8dc90e7
7
- data.tar.gz: 4fa3af703baeb1c04905db86fd3d74124a207012d60ee68295989f8b42c5d2ca9127c09f5f58206d3abd74f65cd7249dbb5803f5378d06415cf26083ccf9753a
6
+ metadata.gz: 2d4da87ecb24a9ebff9815fdf89ced6824a41fe0f60290ab769abc26f5f2a449917c5e0c49eff1223a430098af8cb799b3c7de65a6c80303219b5f18b5480d90
7
+ data.tar.gz: 8cac0b09538141b929fa7da96b10f5e0eb08a630f50b5a9939ea32e1922c69ead9a6ffec3b2e5d9f3ebb7c77fc9044bee09628a69aaea031ff92da64648c81ca
data/lib/metlo/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Metlo
4
- VERSION = "0.0.3"
4
+ VERSION = "0.0.5"
5
5
  end
data/lib/metlo.rb CHANGED
@@ -1,10 +1,11 @@
1
1
  require_relative "metlo/version"
2
2
  require "json"
3
+ require "logger"
3
4
  require_relative "./libmetlo"
4
5
 
5
6
  module Metlo
6
7
 
7
- class ResponseTimer
8
+ class Metlo
8
9
 
9
10
  @@MAX_RES_ITER_COUNT = 10
10
11
  @@MAX_BODY_LENGTH = 10 * 1024
@@ -25,15 +26,32 @@ module Metlo
25
26
  block_response = params[:block_response]
26
27
  get_user = params[:get_user]
27
28
 
29
+ if not (log_level.nil?)
30
+ if not (log_level.is_a? String)
31
+ log_level = "info"
32
+ @logger = Logger.new($stdout, convert_log_level(log_level))
33
+ @logger.warn("log_level is not a string. log_level is expected to be one of trace, debug, info, warn, error.\nDefaulting log level to info.")
34
+ elsif not (@@LOG_LEVELS.include? log_level)
35
+ log_level = "info"
36
+ @logger = Logger.new($stdout, convert_log_level(log_level))
37
+ @logger.warn("log_level is not one of trace, debug, info, warn, error.\nDefaulting log level to info")
38
+ end
39
+ else
40
+ log_level = "info"
41
+ @logger = Logger.new($stdout, convert_log_level(log_level))
42
+ end
43
+
44
+ setup_log(@logger)
45
+
28
46
  # Metlo URL
29
47
  if not (metlo_url.is_a? String)
30
- p "metlo_url is not a string"
48
+ @logger.warn("metlo_url is not a string")
31
49
  @disable = true
32
50
  end
33
51
 
34
52
  # Metlo API Key
35
53
  if not (api_key.is_a? String)
36
- p "api_key is not a string"
54
+ @logger.warn("api_key is not a string")
37
55
  @disable = true
38
56
  end
39
57
 
@@ -41,12 +59,12 @@ module Metlo
41
59
  if not (backend_port.nil?)
42
60
  # Value is present
43
61
  if not (backend_port.is_a? Integer)
44
- p "backend_port is not an integer"
62
+ @logger.warn("backend_port is not an integer")
45
63
  @disable = true
46
64
  end
47
65
  else
48
66
  # Value missing.
49
- if metlo_url.include? "app.metlo.com"
67
+ if metlo_url.is_a? String and metlo_url.include? "app.metlo.com"
50
68
  backend_port = 443
51
69
  else
52
70
  backend_port = 8000
@@ -56,39 +74,25 @@ module Metlo
56
74
  # Collector Port
57
75
  if not (collector_port.nil?)
58
76
  if not (collector_port.is_a? Integer)
59
- p "collector_port is not an integer"
77
+ @logger.warn("collector_port is not an integer")
60
78
  @disable = true
61
79
  end
62
80
  else
63
81
  collector_port = 8081
64
82
  end
65
83
 
66
- if not (log_level.nil?)
67
- if not (log_level.is_a? String)
68
- p "log_level is not a string. log_level is expected to be one of trace, debug, info, warn, error."
69
- p "Defaulting log level to info."
70
- log_level = "info"
71
- elsif not (@@LOG_LEVELS.include? log_level)
72
- p "log_level is not one of trace, debug, info, warn, error."
73
- p "Defaulting log level to info"
74
- log_level = "info"
75
- end
76
- else
77
- log_level = "info"
78
- end
79
-
80
84
  if not (encryption_key.nil?) and not (encryption_key.is_a? String)
81
- p "Encryption key is expected to be a string."
85
+ @logger.warn("Encryption key is expected to be a string.")
82
86
  encryption_key = nil
83
87
  end
84
88
 
85
89
  if not (block_response.nil?)
86
90
  if not defined? block_response == "expression"
87
- p "block_response param is expected to be a symbol to a method/function"
91
+ @logger.warn("block_response param is expected to be a symbol to a method/function")
88
92
  @block_fn = method(:metlo_default_block)
89
93
  else
90
94
  if not(((defined? method(block_response)) == "method") and (method(block_response).arity == 1))
91
- p "block_response param is expected to be a method that takes a single param"
95
+ @logger.warn("block_response param is expected to be a method that takes a single param")
92
96
  @block_fn = method(:metlo_default_block)
93
97
  else
94
98
  @block_fn = method(block_response)
@@ -101,7 +105,7 @@ module Metlo
101
105
 
102
106
  if not (get_user.nil?)
103
107
  if not (defined? get_user == "expression" and defined? method(get_user) == "method" and method(get_user).arity == 1)
104
- p "get_user param is expected to be a method that takes a single param env"
108
+ @logger.warn("get_user param is expected to be a method that takes a single param env")
105
109
  @get_user = nil
106
110
  else
107
111
  @get_user = method(get_user)
@@ -117,6 +121,8 @@ module Metlo
117
121
  log_level,
118
122
  encryption_key
119
123
  )
124
+ else
125
+ @logger.warn("Metlo is currently disabled due to a configuration issue which can be found above. Metlo will not block requests or record traces.")
120
126
  end
121
127
  end
122
128
 
@@ -211,7 +217,7 @@ module Metlo
211
217
  body_tmp.rewind
212
218
  end
213
219
  else
214
- p "Metlo doesn't currently handle streaming responses"
220
+ @logger.debug("Metlo doesn't currently handle streaming responses")
215
221
  end
216
222
 
217
223
  # Check response type
@@ -254,7 +260,31 @@ module Metlo
254
260
  end
255
261
 
256
262
  def metlo_default_block(env)
257
- return [403,{},["Forbidden"]]
263
+ return [403,{},["Forbidden"]]
258
264
  end
265
+
266
+ def setup_log(logger)
267
+ logger.formatter = proc do |severity, datetime, _progname, msg|
268
+ datefmt = datetime.strftime('%Y-%m-%dT%H:%M:%S.%6N')
269
+ "[timestamp=#{datefmt} level=#{severity.ljust(5)}] Metlo: #{msg}\n"
270
+ end
271
+ end
272
+
273
+ def convert_log_level(level)
274
+ if level == "trace"
275
+ return Logger::DEBUG
276
+ elsif level == "debug"
277
+ return Logger::DEBUG
278
+ elsif level == "info"
279
+ return Logger::INFO
280
+ elsif level == "warn"
281
+ return Logger::WARN
282
+ elsif level == "error"
283
+ return Logger::ERROR
284
+ else
285
+ return Logger::INFO
286
+ end
287
+ end
288
+
259
289
  end
260
290
  end
@@ -25,9 +25,9 @@ Gem::Specification.new do |spec|
25
25
  "README.md",
26
26
  "Rakefile",
27
27
  "lib/metlo.rb",
28
- "lib/libmetlo.so",
28
+ "lib/libmetlo.bundle",
29
29
  "lib/metlo/version.rb",
30
- "metlo.gemspec",
30
+ "metlo_darwin.gemspec",
31
31
  "sig/metlo.rbs",
32
32
  ]
33
33
  spec.require_paths = ["lib"]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metlo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: x86_64-darwin
6
6
  authors:
7
7
  - Metlo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-27 00:00:00.000000000 Z
11
+ date: 2023-07-28 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: The Ruby Agent for Metlo
14
14
  email:
@@ -20,10 +20,10 @@ files:
20
20
  - Gemfile
21
21
  - README.md
22
22
  - Rakefile
23
- - lib/libmetlo.so
23
+ - lib/libmetlo.bundle
24
24
  - lib/metlo.rb
25
25
  - lib/metlo/version.rb
26
- - metlo.gemspec
26
+ - metlo_darwin.gemspec
27
27
  - sig/metlo.rbs
28
28
  homepage: https://www.metlo.com
29
29
  licenses:
File without changes