memcache2graphite 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/bin/memcache2graphite +22 -8
  2. data/conf.yml +2 -0
  3. metadata +17 -1
@@ -4,8 +4,9 @@ require 'simple-graphite'
4
4
  require 'dalli'
5
5
  require 'yaml'
6
6
  require 'eventmachine'
7
+ require 'daemons'
7
8
 
8
- conf = YAML.load_file(ARGV.fetch(0,"conf.yml"))
9
+ conf = YAML.load_file(ARGV.fetch(1,"conf.yml"))
9
10
 
10
11
  graphite = Graphite.new({
11
12
  :host => conf["graphite"]["host"],
@@ -38,7 +39,7 @@ end
38
39
  def collect(conf, memcache, graphite, state)
39
40
  metrics_filter = conf["metrics"]
40
41
  message = {}
41
- memcache.stats.each do |node, metrics|
42
+ memcache.stats.select{|node, metrics| metrics}.each do |node, metrics|
42
43
  metrics.select{|metric, value| metrics_filter.has_key?(metric)}.each do |metric, value|
43
44
  type = metrics_filter[metric]
44
45
  to_send = aggregate(metric, value, type, state)
@@ -50,9 +51,22 @@ def collect(conf, memcache, graphite, state)
50
51
  graphite.send_metrics(message)
51
52
  end
52
53
 
53
- EventMachine.run {
54
- state = {}
55
- EventMachine.add_periodic_timer(conf.fetch("freq",1)) do
56
- collect(conf, memcache, graphite, state)
57
- end
58
- }
54
+ def run_timer(conf, memcache, graphite)
55
+ EventMachine.run {
56
+ state = {}
57
+ EventMachine.add_periodic_timer(conf.fetch("freq",1)) do
58
+ collect(conf, memcache, graphite, state)
59
+ end
60
+ }
61
+ end
62
+
63
+ Daemons.run_proc(conf.fetch("daemon_name", "memcache2graphite"),
64
+ {
65
+ :ontop => !conf["daemon_name"],
66
+ :dir_mode => :system,
67
+ :log_dir => conf["log_dir"],
68
+ :log_output => true,
69
+ :dir => conf["pid_dir"]
70
+ }) do
71
+ run_timer(conf, memcache, graphite)
72
+ end
data/conf.yml CHANGED
@@ -1,4 +1,6 @@
1
1
  freq : 1
2
+ daemon_name : memcache2graphite_daemon
3
+ log_dir : /var/log/
2
4
  graphite :
3
5
  root-path : toto.memcache.my_bucket.<type>.debian-sf
4
6
  host : localhost
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: memcache2graphite
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -59,6 +59,22 @@ dependencies:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: 1.0.0
62
+ - !ruby/object:Gem::Dependency
63
+ name: daemons
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: 1.1.9
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 1.1.9
62
78
  description: Dumps filtered stats a single memcached instance to a graphite server
63
79
  email: sebastien.foutrier@gmail.com
64
80
  executables: