mobile_metrics 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/lib/mobile_metrics.rb +15 -8
- data/lib/mobile_metrics/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4fad7c783004d3f8c01f018cb3350529d04d0d4e
|
4
|
+
data.tar.gz: d1610532a69212e81f2c3fe3d83d767de954d46b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 557743d0e0138090eb50ac275a8f68d582fcdb69a175e6f71779f685c7e72ff319e3cf8ef4a4786ac9e91500cfe253caec9dec4baabd1703d1df60a72ed7c958
|
7
|
+
data.tar.gz: 7552fda88947222053e6eb0e66521448ab1f5dfcc3667ca818328acd7fbbad6acb7fa1f73686936468cae66dbfa4fbf0ee869a4e22f0f7743fad56706bd723a3
|
data/.gitignore
CHANGED
data/lib/mobile_metrics.rb
CHANGED
@@ -128,20 +128,17 @@ module MobileMetrics
|
|
128
128
|
|
129
129
|
def self.log_ratio_metric(name:, ratio:)
|
130
130
|
overrides = {name: METRIC_RATIO, data: {name: name, ratio: ratio.to_f }}
|
131
|
-
|
132
|
-
append_to_log(metric)
|
131
|
+
log_partial_metric(overrides)
|
133
132
|
end
|
134
133
|
|
135
134
|
def self.log_counter_metric(name:, count:)
|
136
135
|
overrides = {name: METRIC_COUNTER, data: {name: name, count: count.to_i }}
|
137
|
-
|
138
|
-
append_to_log(metric)
|
136
|
+
log_partial_metric(overrides)
|
139
137
|
end
|
140
138
|
|
141
139
|
def self.log_size_metric(name:, sizeInBytes:, filename:, artifactUrl:)
|
142
140
|
overrides = {name: METRIC_SIZE, data: {name: name, filename: filename, sizeInBytes: sizeInBytes, artifactUrl: artifactUrl }}
|
143
|
-
|
144
|
-
append_to_log(metric)
|
141
|
+
log_partial_metric(overrides)
|
145
142
|
end
|
146
143
|
|
147
144
|
def self.start_timer_metric(name:)
|
@@ -168,8 +165,7 @@ module MobileMetrics
|
|
168
165
|
|
169
166
|
# log to file
|
170
167
|
overrides = {name: METRIC_TIMER, data: {name: name, duration: delta_in_ms }}
|
171
|
-
|
172
|
-
append_to_log(metric)
|
168
|
+
log_partial_metric(overrides)
|
173
169
|
end
|
174
170
|
|
175
171
|
# Block based timer. This is the recommended way to timer operations.
|
@@ -292,6 +288,17 @@ module MobileMetrics
|
|
292
288
|
Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
293
289
|
end
|
294
290
|
|
291
|
+
# Each metric should call this method.
|
292
|
+
# This method handles merging the metric hash with the default hash,
|
293
|
+
# Generates the JSON with the keys in the right order, then appends to the log.
|
294
|
+
def self.log_partial_metric(overrides)
|
295
|
+
merged_hash = merge_hashes(default_metric, overrides)
|
296
|
+
key_order = ['time', 'name', 'level', 'data', 'context']
|
297
|
+
ordered_hash = Hash[ merged_hash.sort_by { |key, val| key_order.index(key.to_s) || 999 } ]
|
298
|
+
metric = ordered_hash.to_json
|
299
|
+
append_to_log(metric)
|
300
|
+
end
|
301
|
+
|
295
302
|
# Util method for merging the default hash values and overrides recursively as we want them
|
296
303
|
def self.merge_hashes(default, overrides)
|
297
304
|
default.merge(overrides) { |key, oldval, newval|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mobile_metrics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dbeard
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-10-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|