mongodb-graphite-agent 0.0.9 → 0.1.0

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.
@@ -4,14 +4,12 @@ $:.unshift File.expand_path("#{File.dirname(__FILE__)}/../lib")
4
4
 
5
5
  require 'trollop'
6
6
  require 'mongodb/graphite/agent'
7
- require 'mongodb/graphite/agent/graphite_writer'
8
7
 
9
8
  opts = Trollop::options do
10
9
  opt :mongodb_username, "MongoDB username", :type => :string
11
10
  opt :mongodb_host, "MongoDB host", :type => :string, :default => "localhost"
12
11
  opt :mongodb_post, "MongoDB host", :type => :int, :default => 27017
13
12
  opt :mongodb_password, "MongoDB password", :type => :string
14
- opt :mongodb_replicaset, "Set this flag if the host is part of a MongoDB replicaSet", :type => :boolean, :default => false
15
13
  opt :graphite_host, "Graphite host", :type => :string
16
14
  opt :graphite_port, "Graphite port", :type => :string
17
15
  opt :graphite_metrics_prefix, "Graphite metrics prefix", :type => :string, :default => Socket.gethostname
@@ -8,6 +8,7 @@ require 'awesome_print'
8
8
  require 'time_difference'
9
9
  require 'mongodb/graphite/agent/utils'
10
10
  require 'mongodb/graphite/agent/op_counters_sample'
11
+ require 'mongodb/graphite/agent/mongo_cient_extensions'
11
12
 
12
13
  module Mongodb
13
14
  module Graphite
@@ -29,9 +30,11 @@ module Mongodb
29
30
  k.match('^connection|^network\.|^cursors|^mem\.mapped|^indexCounters|^repl.oplog')
30
31
  }
31
32
 
32
- unless (@opts[:mongodb_replicaset].blank?)
33
+ if (connection.is_replicaset?)
34
+ puts "ReplicaSet detected" if @opts[:verbose]
33
35
  opcounters_per_second_metric_hash = calculate_opcounters_per_second server_status_result["opcountersRepl"]
34
36
  else
37
+ puts "Single host mode detected" if @opts[:verbose]
35
38
  opcounters_per_second_metric_hash = calculate_opcounters_per_second server_status_result["opcounters"]
36
39
  end
37
40
 
@@ -0,0 +1,15 @@
1
+ module Mongo
2
+
3
+ class MongoClient
4
+ def is_replicaset?
5
+ begin
6
+ cmd = BSON::OrderedHash.new
7
+ cmd["replSetGetStatus"] = 1
8
+ result = self.db("admin").command(cmd)
9
+ return !result["set"].blank?
10
+ rescue Mongo::OperationFailure
11
+ return false
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,7 +1,7 @@
1
1
  module Mongodb
2
2
  module Graphite
3
3
  module Agent
4
- VERSION = "0.0.9"
4
+ VERSION = "0.1.0"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongodb-graphite-agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-12 00:00:00.000000000 Z
12
+ date: 2013-07-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -171,6 +171,7 @@ files:
171
171
  - bin/mongodb-graphite-agent.rb
172
172
  - lib/mongodb/graphite/agent.rb
173
173
  - lib/mongodb/graphite/agent/graphite_writer.rb
174
+ - lib/mongodb/graphite/agent/mongo_cient_extensions.rb
174
175
  - lib/mongodb/graphite/agent/op_counters_sample.rb
175
176
  - lib/mongodb/graphite/agent/utils.rb
176
177
  - lib/mongodb/graphite/agent/version.rb
@@ -190,7 +191,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
190
191
  version: '0'
191
192
  segments:
192
193
  - 0
193
- hash: 2166291128576152408
194
+ hash: 4101892219957888543
194
195
  required_rubygems_version: !ruby/object:Gem::Requirement
195
196
  none: false
196
197
  requirements:
@@ -199,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
199
200
  version: '0'
200
201
  segments:
201
202
  - 0
202
- hash: 2166291128576152408
203
+ hash: 4101892219957888543
203
204
  requirements: []
204
205
  rubyforge_project:
205
206
  rubygems_version: 1.8.25