metlo 0.0.4-aarch64-linux-musl → 0.0.6-aarch64-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 +36 -17
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b7c19c851f0f0750698ae8ec300414b5422d659ce87e49997f145109504299c5
|
|
4
|
+
data.tar.gz: 3e4fcb76c9f527028bf157e148c70b12fc3271f377332e12fb3665ed688d1c7d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 48ca5dfd378827bafbe7f33387ce96222a2c3cd4978acef8cff256bb7d2ebbb3fab9150efd4b61f2311de212021fd5b1d01c676fddae6d3d184b0b143de7956b
|
|
7
|
+
data.tar.gz: b9891fd86e08e8200c217a29621f45bf248da4a53d426480362a9c766f624875aecae140948f0d545ebcf0a7755d0c4f4a95a53ecb11fd83b461a8006770db6b
|
data/lib/metlo/version.rb
CHANGED
data/lib/metlo.rb
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
require_relative "metlo/version"
|
|
2
2
|
require "json"
|
|
3
|
+
require "logger"
|
|
3
4
|
require_relative "./libmetlo"
|
|
4
5
|
|
|
5
6
|
module Metlo
|
|
@@ -28,16 +29,18 @@ module Metlo
|
|
|
28
29
|
if not (log_level.nil?)
|
|
29
30
|
if not (log_level.is_a? String)
|
|
30
31
|
log_level = "info"
|
|
31
|
-
@logger = Logger.new($stdout,convert_log_level(log_level))
|
|
32
|
+
@logger = Logger.new($stdout, convert_log_level(log_level))
|
|
32
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.")
|
|
33
34
|
elsif not (@@LOG_LEVELS.include? log_level)
|
|
34
35
|
log_level = "info"
|
|
35
|
-
@logger = Logger.new($stdout,convert_log_level(log_level))
|
|
36
|
+
@logger = Logger.new($stdout, convert_log_level(log_level))
|
|
36
37
|
@logger.warn("log_level is not one of trace, debug, info, warn, error.\nDefaulting log level to info")
|
|
38
|
+
else
|
|
39
|
+
@logger = Logger.new($stdout, convert_log_level(log_level))
|
|
37
40
|
end
|
|
38
41
|
else
|
|
39
42
|
log_level = "info"
|
|
40
|
-
@logger = Logger.new($stdout,convert_log_level(log_level))
|
|
43
|
+
@logger = Logger.new($stdout, convert_log_level(log_level))
|
|
41
44
|
end
|
|
42
45
|
|
|
43
46
|
setup_log(@logger)
|
|
@@ -63,7 +66,7 @@ module Metlo
|
|
|
63
66
|
end
|
|
64
67
|
else
|
|
65
68
|
# Value missing.
|
|
66
|
-
if metlo_url.include? "app.metlo.com"
|
|
69
|
+
if metlo_url.is_a? String and metlo_url.include? "app.metlo.com"
|
|
67
70
|
backend_port = 443
|
|
68
71
|
else
|
|
69
72
|
backend_port = 8000
|
|
@@ -120,6 +123,8 @@ module Metlo
|
|
|
120
123
|
log_level,
|
|
121
124
|
encryption_key
|
|
122
125
|
)
|
|
126
|
+
else
|
|
127
|
+
@logger.warn("Metlo is currently disabled due to a configuration issue which can be found above. Metlo will not block requests or record traces.")
|
|
123
128
|
end
|
|
124
129
|
end
|
|
125
130
|
|
|
@@ -134,21 +139,35 @@ module Metlo
|
|
|
134
139
|
meta_raw = create_meta(env)
|
|
135
140
|
meta = JSON.generate(meta_raw)
|
|
136
141
|
rescue StandardError => e
|
|
142
|
+
@logger.warn(e)
|
|
137
143
|
status, headers, response = @app.call(env)
|
|
138
144
|
[status, headers, response]
|
|
139
145
|
else
|
|
140
|
-
block =
|
|
146
|
+
block = false
|
|
147
|
+
|
|
148
|
+
begin
|
|
149
|
+
block = block_trace(req,meta)
|
|
150
|
+
rescue StandardError => e
|
|
151
|
+
@logger.debug("Metlo encountered an error while checking for trace blocking.")
|
|
152
|
+
@logger.debug(e)
|
|
153
|
+
end
|
|
154
|
+
|
|
141
155
|
if block
|
|
142
156
|
status, headers, response = (@block_fn).call env
|
|
143
157
|
else
|
|
144
158
|
status, headers, response = @app.call(env)
|
|
145
159
|
end
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
160
|
+
|
|
161
|
+
begin
|
|
162
|
+
res_raw = create_res(status,headers,response)
|
|
163
|
+
res = JSON.generate(res_raw)
|
|
164
|
+
ingest_trace(req,res,meta)
|
|
165
|
+
rescue StandardError => e
|
|
166
|
+
@logger.debug("Metlo encountered an error while sending trace.")
|
|
167
|
+
@logger.debug(e)
|
|
168
|
+
end
|
|
150
169
|
|
|
151
|
-
[status, headers, response]
|
|
170
|
+
return [status, headers, response]
|
|
152
171
|
end
|
|
153
172
|
else
|
|
154
173
|
@app.call(env)
|
|
@@ -243,16 +262,16 @@ module Metlo
|
|
|
243
262
|
}
|
|
244
263
|
end
|
|
245
264
|
|
|
246
|
-
def create_meta(env)
|
|
247
|
-
server = env['rack.hijack'].io.addr
|
|
248
|
-
client = env['rack.hijack'].io.peeraddr
|
|
265
|
+
def create_meta(env)
|
|
266
|
+
server = env.has_key?('rack.hijack') ? env['rack.hijack'].io.addr : nil
|
|
267
|
+
client = env.has_key?('rack.hijack') ? env['rack.hijack'].io.peeraddr : nil
|
|
249
268
|
return {
|
|
250
269
|
"environment": "production",
|
|
251
270
|
"incoming": true,
|
|
252
|
-
"source": client[2],
|
|
253
|
-
"sourcePort": client[1],
|
|
254
|
-
"destination": server[2],
|
|
255
|
-
"destinationPort": server[1]
|
|
271
|
+
"source": client.nil? ? env["REMOTE_ADDR"] : client[2],
|
|
272
|
+
"sourcePort": client.nil? ? 0 : client[1],
|
|
273
|
+
"destination": server.nil? ? env["SERVER_NAME"] : server[2],
|
|
274
|
+
"destinationPort": server.nil? ? env["SERVER_PORT"].to_i : server[1]
|
|
256
275
|
}
|
|
257
276
|
end
|
|
258
277
|
|