metlo 0.0.3-x86_64-linux-musl → 0.0.5-x86_64-linux-musl
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 +4 -4
- data/lib/metlo/version.rb +1 -1
- data/lib/metlo.rb +56 -26
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 86fb7beca5094ed616ae29e7952b4d183d0d0a1283009dcc77221a1fbda47511
|
|
4
|
+
data.tar.gz: 12605caef115c4316e7353ad8099a2114dcd3c42f2cd6efb3007af6855b9b6eb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a90cb637178c9b1756c20291acabb0e025cec1ee03f06e92ce4273132b9f380a1415a57da68afe71f3c2787a486f458deef9092594003736bbbf33a67bc51b7e
|
|
7
|
+
data.tar.gz: dcceefab8fc54182afb5a08ac351c47b1ad97e703900c72f73fbb9f9e56a1fd9eae0ed7196df75c9c55f916a782aaced21d51de9541086d1c89ec609a5910cb4
|
data/lib/metlo/version.rb
CHANGED
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
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.
|
|
4
|
+
version: 0.0.5
|
|
5
5
|
platform: x86_64-linux-musl
|
|
6
6
|
authors:
|
|
7
7
|
- Metlo
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-07-
|
|
11
|
+
date: 2023-07-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: The Ruby Agent for Metlo
|
|
14
14
|
email:
|