memcached_graphite 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,7 +4,7 @@ require 'pp'
4
4
  require 'logger'
5
5
  require 'optparse'
6
6
  require 'rubygems'
7
- require 'dalli'
7
+ require 'memcache_do'
8
8
  require 'graphite'
9
9
  require 'memcached_graphite'
10
10
 
@@ -22,19 +22,24 @@ def format_hostname ( hostname, options )
22
22
  options[:reverse_hostname] ? hn.reverse : hn.to_s
23
23
  end
24
24
 
25
+ def get_stats_slabs (host, port)
26
+ Hash[MemcacheDo.exec('stats slabs',host,port).gsub(/^STAT (\d+):/,'STAT slab_\1.').scan(/^STAT (.*?) (.*)\r$/)]
27
+ end
28
+
29
+ def get_stats (host, port)
30
+ Hash[MemcacheDo.exec('stats',host,port).scan(/^STAT (.*?) (.*)\r$/)]
31
+ end
32
+
25
33
  #format the stats in a way that graphite expects
26
- def format_stats ( allstats, options )
27
- carbon_prefix = options[:carbon_prefix]
34
+ def format_stats ( server_stats, host = 'localhost', port = 11211, options = {} )
28
35
  stats = {}
29
- allstats.each do |server,server_stats|
30
- server_split = server.split(':')
31
- server_piece = sprintf("%s.port_%s",
32
- format_hostname(server_split[0], options),
33
- server_split[1] || 11211 )
36
+ carbon_prefix = options[:carbon_prefix]
37
+ server_piece = sprintf("%s.port_%s",
38
+ format_hostname(host, options),
39
+ port)
34
40
 
35
- prefix = [carbon_prefix, server_piece].join('.')
36
- stats.merge! server_stats.prefix_keys("#{prefix}.")
37
- end
41
+ prefix = [carbon_prefix, server_piece].join('.')
42
+ stats.merge! server_stats.prefix_keys("#{prefix}.")
38
43
 
39
44
  # only return numeric values
40
45
  # & convert to floats
@@ -82,9 +87,19 @@ opts.on("-h", "--help", "help" ) do |v|
82
87
  end
83
88
  opts.parse!
84
89
 
85
- Dalli.logger = logger
86
- dc = Dalli::Client.new options[:memcached_servers]
87
- g = Graphite::Logger.new(options[:carbon_server], logger)
90
+ g = Graphite::Logger.new(options[:carbon_server], logger)
91
+
92
+ options[:memcached_servers].each do |server|
93
+ stats = {}
94
+ host,port = server.split(':')
95
+ host ||= 'localhost'
96
+ port ||= 11211
97
+
98
+ stats = get_stats(host,port)
99
+ stats.merge! get_stats_slabs(host,port)
100
+ stats = format_stats(stats, host, port, options)
101
+
102
+ g.log(Time.now.to_i, stats)
103
+ end
104
+
88
105
 
89
- stats = format_stats(dc.stats, options)
90
- g.log(Time.now.to_i, stats)
@@ -1,3 +1,3 @@
1
1
  module MemcachedGraphite
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
 
21
21
  # specify any dependencies here; for example:
22
22
  # s.add_development_dependency "rspec"
23
- s.add_runtime_dependency "dalli"
24
23
  s.add_runtime_dependency "graphite"
24
+ s.add_runtime_dependency "memcache_do"
25
25
  s.rubygems_version = '1.3.5'
26
26
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: memcached_graphite
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Aaron Brown
@@ -15,10 +15,10 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-10-31 00:00:00 Z
18
+ date: 2012-11-01 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- name: dalli
21
+ name: graphite
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
24
  none: false
@@ -32,7 +32,7 @@ dependencies:
32
32
  type: :runtime
33
33
  version_requirements: *id001
34
34
  - !ruby/object:Gem::Dependency
35
- name: graphite
35
+ name: memcache_do
36
36
  prerelease: false
37
37
  requirement: &id002 !ruby/object:Gem::Requirement
38
38
  none: false