mobile_metrics 0.0.1 → 0.0.2
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/.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
|