nice_http 1.7.10 → 1.7.11
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/nice_http.rb +30 -18
- data/lib/nice_http/manage_response.rb +10 -5
- 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: b25e87b3aa0fc0441ef89f640ab48775c51d18d15bfc9432436560f2ed419350
|
4
|
+
data.tar.gz: 7ebac02ad1e04ec6ceec028d3bd8755cfda8ae3c8e89900c49d1fbd313907ef2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ca1df8e19b1d4632bfdff00c9e358386597b10501006c9c7f877e4b311c11e0ceff6e53217b1843402e6a2c4dae01dbd304af3f59c29bcba5526e9d9a8d4133
|
7
|
+
data.tar.gz: d0c52aeee6739d242b7fd417dc622f05ea6b8d8517b77809d64a55945385230766b422753a4c07293231bc2f8e8bc1f269dd875c54a0202f6dee6c5a3caf2422
|
data/lib/nice_http.rb
CHANGED
@@ -103,11 +103,11 @@ class NiceHttp
|
|
103
103
|
num_requests: 0,
|
104
104
|
started: nil,
|
105
105
|
finished: nil,
|
106
|
-
real_time_elapsed:
|
106
|
+
real_time_elapsed: 0,
|
107
107
|
time_elapsed: {
|
108
108
|
total: 0,
|
109
109
|
maximum: 0,
|
110
|
-
minimum:
|
110
|
+
minimum: 1000000,
|
111
111
|
average: 0,
|
112
112
|
},
|
113
113
|
method: {},
|
@@ -168,14 +168,18 @@ class NiceHttp
|
|
168
168
|
# end
|
169
169
|
# NiceHttp.add_stats(:customer, :create, started, Time.now)
|
170
170
|
######################################################
|
171
|
-
def self.add_stats(name, state, started, finished, item=nil)
|
171
|
+
def self.add_stats(name, state, started, finished, item = nil)
|
172
172
|
self.stats[:specific] ||= {}
|
173
|
-
self.stats[:specific][name] ||= { num: 0, started: started, finished:
|
173
|
+
self.stats[:specific][name] ||= { num: 0, started: started, finished: started, real_time_elapsed: 0, time_elapsed: { total: 0, maximum: 0, minimum: 100000, average: 0 } }
|
174
174
|
self.stats[:specific][name][:num] += 1
|
175
175
|
|
176
|
+
if started < self.stats[:specific][name][:finished]
|
177
|
+
self.stats[:specific][name][:real_time_elapsed] += (finished - self.stats[:specific][name][:finished])
|
178
|
+
else
|
179
|
+
self.stats[:specific][name][:real_time_elapsed] += (finished - started)
|
180
|
+
end
|
176
181
|
self.stats[:specific][name][:finished] = finished
|
177
|
-
|
178
|
-
|
182
|
+
|
179
183
|
time_elapsed = self.stats[:specific][name][:time_elapsed]
|
180
184
|
time_elapsed[:total] += finished - started
|
181
185
|
if time_elapsed[:maximum] < (finished - started)
|
@@ -187,7 +191,7 @@ class NiceHttp
|
|
187
191
|
end
|
188
192
|
end
|
189
193
|
if time_elapsed[:minimum] > (finished - started)
|
190
|
-
time_elapsed[:minimum] = (finished - started)
|
194
|
+
time_elapsed[:minimum] = (finished - started)
|
191
195
|
if !item.nil?
|
192
196
|
time_elapsed[:item_minimum] = item
|
193
197
|
elsif Thread.current.name.to_s != ""
|
@@ -196,16 +200,21 @@ class NiceHttp
|
|
196
200
|
end
|
197
201
|
time_elapsed[:average] = time_elapsed[:total] / self.stats[:specific][name][:num]
|
198
202
|
|
199
|
-
self.stats[:specific][name][state] ||= { num: 0, started: started, finished:
|
203
|
+
self.stats[:specific][name][state] ||= { num: 0, started: started, finished: started, real_time_elapsed: 0, time_elapsed: { total: 0, maximum: 0, minimum: 1000, average: 0 }, items: [] }
|
200
204
|
self.stats[:specific][name][state][:num] += 1
|
205
|
+
if started < self.stats[:specific][name][state][:finished]
|
206
|
+
self.stats[:specific][name][state][:real_time_elapsed] += (finished - self.stats[:specific][name][state][:finished])
|
207
|
+
else
|
208
|
+
self.stats[:specific][name][state][:real_time_elapsed] += (finished - started)
|
209
|
+
end
|
210
|
+
|
201
211
|
self.stats[:specific][name][state][:finished] = finished
|
202
|
-
self.stats[:specific][name][state][:real_time_elapsed] = finished - self.stats[:specific][name][:started]
|
203
212
|
|
204
213
|
self.stats[:specific][name][state][:items] << item unless item.nil? or self.stats[:specific][name][state][:items].include?(item)
|
205
214
|
time_elapsed = self.stats[:specific][name][state][:time_elapsed]
|
206
215
|
time_elapsed[:total] += finished - started
|
207
216
|
if time_elapsed[:maximum] < (finished - started)
|
208
|
-
time_elapsed[:maximum] = (finished - started)
|
217
|
+
time_elapsed[:maximum] = (finished - started)
|
209
218
|
if !item.nil?
|
210
219
|
time_elapsed[:item_maximum] = item
|
211
220
|
elsif Thread.current.name.to_s != ""
|
@@ -213,7 +222,7 @@ class NiceHttp
|
|
213
222
|
end
|
214
223
|
end
|
215
224
|
if time_elapsed[:minimum] > (finished - started)
|
216
|
-
time_elapsed[:minimum] = (finished - started)
|
225
|
+
time_elapsed[:minimum] = (finished - started)
|
217
226
|
if !item.nil?
|
218
227
|
time_elapsed[:item_minimum] = item
|
219
228
|
elsif Thread.current.name.to_s != ""
|
@@ -226,7 +235,7 @@ class NiceHttp
|
|
226
235
|
######################################################
|
227
236
|
# It will save the NiceHttp.stats on different files, each key of the hash in a different file.
|
228
237
|
#
|
229
|
-
# @param file_name [String] path and file name to be used to store the stats.
|
238
|
+
# @param file_name [String] path and file name to be used to store the stats.
|
230
239
|
# In case no one supplied it will be used the value in NiceHttp.log and it will be saved on YAML format.
|
231
240
|
# In case extension is .yaml will be saved on YAML format.
|
232
241
|
# In case extension is .json will be saved on JSON format.
|
@@ -236,28 +245,29 @@ class NiceHttp
|
|
236
245
|
# NiceHttp.save_stats('./stats/my_stats.yaml')
|
237
246
|
# NiceHttp.save_stats('./stats/my_stats.json')
|
238
247
|
######################################################
|
239
|
-
def self.save_stats(file_name =
|
240
|
-
if file_name ==
|
248
|
+
def self.save_stats(file_name = "")
|
249
|
+
if file_name == ""
|
241
250
|
if self.log.is_a?(String)
|
242
251
|
file_name = self.log
|
243
252
|
else
|
244
|
-
file_name =
|
253
|
+
file_name = "./nice_http.log"
|
245
254
|
end
|
246
255
|
end
|
256
|
+
require "fileutils"
|
257
|
+
FileUtils.mkdir_p File.dirname(file_name)
|
247
258
|
if file_name.match?(/\.json$/)
|
248
|
-
require
|
259
|
+
require "json"
|
249
260
|
self.stats.keys.each do |key|
|
250
261
|
File.open("#{file_name.gsub(/.json$/, "_stats_")}#{key}.json", "w") { |file| file.write(self.stats[key].to_json) }
|
251
262
|
end
|
252
263
|
else
|
253
|
-
require
|
264
|
+
require "yaml"
|
254
265
|
self.stats.keys.each do |key|
|
255
266
|
File.open("#{file_name.gsub(/.\w+$/, "_stats_")}#{key}.yaml", "w") { |file| file.write(self.stats[key].to_yaml) }
|
256
267
|
end
|
257
268
|
end
|
258
269
|
end
|
259
270
|
|
260
|
-
|
261
271
|
######################################################
|
262
272
|
# Creates a new http connection.
|
263
273
|
#
|
@@ -363,6 +373,8 @@ class NiceHttp
|
|
363
373
|
folder += "/" unless log_filename.start_with?("/")
|
364
374
|
log_filename = folder + log_filename
|
365
375
|
end
|
376
|
+
require "fileutils"
|
377
|
+
FileUtils.mkdir_p File.dirname(log_filename)
|
366
378
|
unless Dir.exist?(File.dirname(log_filename))
|
367
379
|
@logger = Logger.new nil
|
368
380
|
raise InfoMissing, :log, "Wrong directory specified for logs.\n"
|
@@ -182,7 +182,7 @@ module NiceHttpManageResponse
|
|
182
182
|
@logger.fatal stack
|
183
183
|
@logger.fatal "manage_response Error on method #{method_s} "
|
184
184
|
end
|
185
|
-
|
185
|
+
|
186
186
|
@start_time = nil
|
187
187
|
end
|
188
188
|
|
@@ -198,8 +198,8 @@ module NiceHttpManageResponse
|
|
198
198
|
|
199
199
|
hash[:num_requests] = 0
|
200
200
|
hash[:started] = @start_time
|
201
|
-
hash[:finished] = @
|
202
|
-
hash[:real_time_elapsed] =
|
201
|
+
hash[:finished] = @start_time
|
202
|
+
hash[:real_time_elapsed] = 0
|
203
203
|
hash[:time_elapsed] = {
|
204
204
|
total: 0,
|
205
205
|
maximum: 0,
|
@@ -213,9 +213,14 @@ module NiceHttpManageResponse
|
|
213
213
|
end
|
214
214
|
end
|
215
215
|
hash[:num_requests] += 1
|
216
|
-
hash[:started] = @start_time if hash[:started].nil?
|
216
|
+
hash[:started] = hash[:finished] = @start_time if hash[:started].nil?
|
217
|
+
|
218
|
+
if @start_time < hash[:finished]
|
219
|
+
hash[:real_time_elapsed] += (@finish_time - hash[:finished])
|
220
|
+
else
|
221
|
+
hash[:real_time_elapsed] += (@finish_time - @start_time)
|
222
|
+
end
|
217
223
|
hash[:finished] = @finish_time
|
218
|
-
hash[:real_time_elapsed] = @finish_time - hash[:started]
|
219
224
|
|
220
225
|
hash[:time_elapsed][:total] += @response[:time_elapsed]
|
221
226
|
hash[:time_elapsed][:maximum] = @response[:time_elapsed] if @response[:time_elapsed] > hash[:time_elapsed][:maximum]
|