meter 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 42a8f51ce6d77b2e7570c8765c5a448875108f91
4
- data.tar.gz: 71cfef42ff4066b498ea05ee247ce3b6c2c9051c
3
+ metadata.gz: 4b51363f08ba9926173d4fc3ea17658953d17621
4
+ data.tar.gz: df0465fd8394b30a9723c8958d171a9976ea1121
5
5
  SHA512:
6
- metadata.gz: 06db06efc2f6e02b240d55365023ab20f2bf451ce6349139ef25848b0c68d58df80d8289a5f3dd58c4ded95f3f0e543faf3a0bda37f792eaa26a194d0366914f
7
- data.tar.gz: 64f4ee7774b78ddecf7d16df10f03c9ef9d9846bec96584a65dc12b90049f40b00b1e659563c1b240f56ff33fc26b3c0448fdc5e5b60f51b105919d60da7074e
6
+ metadata.gz: 2bfb300157cea6663debde191fa1ad5e460329764422f6608da0f3e12de7195273fa7a7a8b9848610fc0d6fc8ac9914859caa2b3e4a63ac03415195020d27812
7
+ data.tar.gz: 94945415dfd1ad008a7d89a1ea5b53ff29316333feabccc4211d1f4292d5f2ff8bcb2d1145f51d5ad074119e5ae48318173308bed89dbe50f5b50af72d498eb5
data/lib/meter/backend.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  require 'socket'
2
+ require 'pathname'
3
+
2
4
 
3
5
  # Copy and paste from https://github.com/DataDog/dogstatsd-ruby/blob/master/lib/statsd.rb
4
6
  # Changes:
@@ -24,6 +26,11 @@ module Meter
24
26
  # A namespace to prepend to all statsd calls.
25
27
  attr_reader :namespace
26
28
 
29
+ # A String describing the environment, useful to distinguish staging/production
30
+ attr_reader :environment
31
+
32
+ attr_reader :log_dir
33
+
27
34
  # StatsD host. Defaults to 127.0.0.1.
28
35
  attr_accessor :host
29
36
 
@@ -52,6 +59,10 @@ module Meter
52
59
  @prefix = "#{namespace}." if @namespace
53
60
  end
54
61
 
62
+ def environment=(new_environment)
63
+ @environment = new_environment.to_s
64
+ end
65
+
55
66
  def host=(host) #:nodoc:
56
67
  @host = host || '127.0.0.1'
57
68
  end
@@ -60,6 +71,10 @@ module Meter
60
71
  @port = port || 8125
61
72
  end
62
73
 
74
+ def log_dir=(log_dir)
75
+ @log_dir = Pathname.new log_dir
76
+ end
77
+
63
78
  # Sends an increment (count = 1) for the given stat to the statsd server.
64
79
  #
65
80
  # @param [String] stat stat name
@@ -167,8 +182,14 @@ module Meter
167
182
  end
168
183
 
169
184
  def log(stat, data = {})
170
- data = data.merge(app: @namespace, name: stat)
171
- send_to_socket data.to_json
185
+ data = { environment: environment }.merge data
186
+ data.merge! app: namespace, statname: stat
187
+ File.open(log_dir.join('application.json.log'), 'a') {|f| f.puts(data.to_json) }
188
+ end
189
+
190
+ def increment_and_log(stat, data = {})
191
+ increment stat
192
+ log stat, data
172
193
  end
173
194
 
174
195
  private
@@ -1,4 +1,5 @@
1
1
  require 'logger'
2
+ require 'pathname'
2
3
  require 'meter/backend'
3
4
 
4
5
  module Meter
@@ -9,24 +10,31 @@ module Meter
9
10
 
10
11
  def initialize(options={})
11
12
  @logger = options[:logger] || default_logger
13
+
12
14
  @primary_backend = Backend.new
13
15
  @primary_backend.host = options[:primary_host] || default_host
14
16
  @primary_backend.port = options[:primary_port] || default_port
15
17
  @primary_backend.namespace = options[:namespace] || default_namespace
18
+ @primary_backend.environment = options[:environment] || default_environment
19
+
16
20
  @secondary_backend = Backend.new
17
21
  @secondary_backend.host = options[:secondary_host] || ENV['METER_SECONDARY_HOST'] || default_host
18
22
  @secondary_backend.port = options[:secondary_port] || default_secondary_port
19
23
  @secondary_backend.namespace = options[:namespace] || default_namespace
24
+ @secondary_backend.environment = options[:environment] || default_environment
20
25
 
21
26
  @counter_backend = Backend.new
22
27
  @counter_backend.host = options[:counter_host] || default_host
23
28
  @counter_backend.port = options[:counter_port] || default_counter_port
24
29
  @counter_backend.namespace = options[:namespace] || default_namespace
30
+ @counter_backend.environment = options[:environment] || default_environment
25
31
 
26
32
  @meter_backend = Backend.new
27
33
  @meter_backend.host = options[:meter_host] || default_host
28
34
  @meter_backend.port = options[:meter_port] || default_meter_port
29
35
  @meter_backend.namespace = options[:namespace] || default_namespace
36
+ @meter_backend.environment = options[:environment] || default_environment
37
+ @meter_backend.log_dir = options[:meter_log_dir] || default_meter_log_dir
30
38
 
31
39
  @tags = options[:tags] || {}
32
40
  end
@@ -38,6 +46,13 @@ module Meter
38
46
  meter_backend.namespace = new_namespace
39
47
  end
40
48
 
49
+ def environment=(new_environment)
50
+ primary_backend.environment = new_environment
51
+ secondary_backend.environment = new_environment
52
+ counter_backend.environment = new_environment
53
+ meter_backend.environment = new_environment
54
+ end
55
+
41
56
  def namespace
42
57
  primary_backend.namespace
43
58
  end
@@ -116,6 +131,18 @@ module Meter
116
131
  nil
117
132
  end
118
133
 
134
+ def default_environment
135
+ return Rails.env if defined?(Rails)
136
+ return ENV['RACK_ENV'] if ENV['RACK_ENV'].to_s != ''
137
+ return ENV['NODE_CHEF_ENVIRONMENT'] if ENV['NODE_CHEF_ENVIRONMENT'].to_s != ''
138
+ 'unknown'
139
+ end
140
+
141
+ def default_meter_log_dir
142
+ return Rails.root.join('log') if defined?(Rails)
143
+ Pathname.pwd
144
+ end
145
+
119
146
  end
120
147
  end
121
148
 
data/lib/meter/version.rb CHANGED
@@ -2,7 +2,7 @@ module Meter
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- TINY = 9
5
+ TINY = 10
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].compact.join('.')
8
8
  end
data/lib/meter.rb CHANGED
@@ -34,6 +34,10 @@ module Meter
34
34
  meter.log(key, data)
35
35
  end
36
36
 
37
+ def increment_and_log(key, data)
38
+ meter.increment_and_log(key, data)
39
+ end
40
+
37
41
  private
38
42
 
39
43
  def primary
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: meter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - bukowskis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-02 00:00:00.000000000 Z
11
+ date: 2014-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec