graphite 0.1.0 → 0.1.1

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
data/graphite.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{graphite}
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ian Ragsdale", "Mike Subelsky"]
12
- s.date = %q{2010-02-03}
12
+ s.date = %q{2010-03-15}
13
13
  s.description = %q{Ruby client for sending stats to Graphite}
14
14
  s.email = %q{mike@capitalthought.com}
15
15
  s.extra_rdoc_files = [
@@ -8,8 +8,8 @@ module Graphite
8
8
  # to identify this server. Example:
9
9
  # Graphite::Client.new("graphite.example.com", "yourapp.#{Rails.env}.instances.#{hostname}.#{$$}")
10
10
 
11
- def initialize(server, prefix)
12
- @logger = Graphite::Logger.new(server)
11
+ def initialize(server, prefix, logger = nil)
12
+ @logger = Graphite::Logger.new(server,logger)
13
13
  @prefix = prefix
14
14
  @metrics = {}
15
15
  @counters = {}
@@ -27,6 +27,15 @@ module Graphite
27
27
  end
28
28
  end
29
29
 
30
+ def previous_day_metric(name)
31
+ @scheduler.every("1d", :first_in => '1m') do
32
+ date = Date.today - 1
33
+ result = yield date
34
+ log({name + ".daily" => result})
35
+ cleanup
36
+ end
37
+ end
38
+
30
39
  def metric(name, frequency = 1.minute, options = {})
31
40
  add_shifts(name,options[:shifts]) if options[:shifts]
32
41
  @scheduler.every(frequency, :first_in => '1m') do
@@ -36,13 +45,6 @@ module Graphite
36
45
  end
37
46
  end
38
47
 
39
- def add_shifts(name, shifts)
40
- shifts.each do |seconds|
41
- @shifts[seconds] ||= []
42
- @shifts[seconds] << name
43
- end
44
- end
45
-
46
48
  def metrics(frequency = 1.minute)
47
49
  @scheduler.every(frequency, :first_in => '1m') do
48
50
  results = yield
@@ -59,6 +61,13 @@ module Graphite
59
61
 
60
62
  private
61
63
 
64
+ def add_shifts(name, shifts)
65
+ shifts.each do |seconds|
66
+ @shifts[seconds] ||= []
67
+ @shifts[seconds] << name
68
+ end
69
+ end
70
+
62
71
  def log(results)
63
72
  results.keys.each do |k,v|
64
73
  @metrics["#{@prefix}.#{k}"] = results.delete(k)
@@ -106,4 +115,4 @@ module Graphite
106
115
  ActiveRecord::Base.clear_active_connections! if defined?(ActiveRecord::Base)
107
116
  end
108
117
  end
109
- end
118
+ end
@@ -33,8 +33,13 @@ module Graphite
33
33
  message << "#{key} #{value.to_f} #{time.to_i}\n"
34
34
  end
35
35
  logger.info("Graphite: #{message}") if logger
36
- socket.write(message)
36
+ begin
37
+ socket.write(message)
38
+ rescue Errno::EPIPE
39
+ @socket = nil
40
+ retry
41
+ end
37
42
  end
38
43
 
39
44
  end
40
- end
45
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ian Ragsdale
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2010-02-03 00:00:00 -05:00
13
+ date: 2010-03-15 00:00:00 -04:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency