opinionated-metrics 0.0.3 → 0.0.4

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/metrics_service.rb +9 -6
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 125809985163fe5f5a5e0abb99e64b96c362f680e63cd0aed5052c12eecb7f11
4
- data.tar.gz: 21e293db7ff53f5a2867f17fe2a5f7f6fb42dc731184a32f2787b33c1942e431
3
+ metadata.gz: 84705f7a3ee86c20a07a84db7e9a78e82a8747d050f78f5ca8db1892a201699b
4
+ data.tar.gz: 2d7f49f956652d651b035e5b005412dc3ddbb7a8c931c8fce87b272007f4d4e1
5
5
  SHA512:
6
- metadata.gz: 95883e31abd394627da9f5f76bdb079b62fe36e47c347d507d9d02cf60579336396a8f8df9f03321fa8830ad6482bd4aa6d8a5226537485244500002660cc8b0
7
- data.tar.gz: f96c67253bdde4806992c8fd7fa159600fa91bcb3726f00d941acd31d36c7a54d78ffffce71050ad071ad85e180eec181826f4586ba52123cf27a22a8e1b3d85
6
+ metadata.gz: bc29989b1bcd051bbf079933fb4a3590b6382e481343ee0c7a0fe6fbbe0ddf248333f0176460db0d3472927643b1b844ed57cab17c6e42df00d9fed50d293601
7
+ data.tar.gz: 9ec84f4dc4141cd1068b7ad2966826e23129542581f1326db604b053fc7cd2841fab19cd632e524b45d16d209786c100f1c52df5bb84ebd4d200d354f3f18a62
@@ -3,6 +3,10 @@
3
3
  ##
4
4
  # An object with methods for tracking basic, consistent metrics
5
5
  class MetricsService
6
+ ##
7
+ # Must be set in application bootstrap before use
8
+ LOGGER = nil
9
+
6
10
  ##
7
11
  # Track a basic event; intended for COUNT queries. Outputs `TrackedEvent`
8
12
  #
@@ -20,10 +24,9 @@ class MetricsService
20
24
  raise 'A block is required for time_operation calls' unless block_given?
21
25
 
22
26
  start = Time.current
23
- yield
27
+ result = yield
24
28
  duration_start_end(name, start, Time.current, **additional_properties)
25
- rescue StandardError => e
26
- Rails.logger.error("Failed reporting timing to NewRelic: #{e}")
29
+ result
27
30
  end
28
31
 
29
32
  ##
@@ -35,7 +38,7 @@ class MetricsService
35
38
  def self.duration_start_end(name, start, finish, **additional_properties)
36
39
  duration(name, (finish - start).seconds, **additional_properties)
37
40
  rescue StandardError => e
38
- Rails.logger.error("Failed reporting duration to NewRelic: #{e}")
41
+ LOGGER.error("Failed reporting duration to NewRelic: #{e}")
39
42
  end
40
43
 
41
44
  ##
@@ -48,7 +51,7 @@ class MetricsService
48
51
  properties = { name: name, duration: duration.in_milliseconds }.merge(additional_properties)
49
52
  ::NewRelic::Agent.record_custom_event('OpDurationMs', properties)
50
53
  rescue StandardError => e
51
- Rails.logger.error("Failed reporting duration to NewRelic: #{e}")
54
+ LOGGER.error("Failed reporting duration to NewRelic: #{e}")
52
55
  end
53
56
 
54
57
  ##
@@ -67,6 +70,6 @@ class MetricsService
67
70
  properties = { error_name: name }.merge(additional_properties)
68
71
  ::NewRelic::Agent.record_custom_event('Error', properties)
69
72
  rescue StandardError => e
70
- Rails.logger.error("Failed reporting error to NewRelic: #{e}")
73
+ LOGGER.error("Failed reporting error to NewRelic: #{e}")
71
74
  end
72
75
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opinionated-metrics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Wyant