Sha256: 0c6e0a94a87cb959fcc32973d66656b1eb20f923d1dbd53d0e0eaa04cbd309ff

Contents?: true

Size: 1.31 KB

Versions: 11

Compression:

Stored size: 1.31 KB

Contents

unless defined?(JRUBY_VERSION)
  require 'pg'

  master = Rubber.instances.for_role('postgresql_master').first.full_name
  slave = "localhost"
  opts = { :dbname => Rubber.config.db_name,
           :user => Rubber.config.db_user,
           :password => Rubber.config.db_pass }
  mconn = PGconn.open(opts.merge({:host => master}))
  sconn = PGconn.open(opts.merge({:host => slave}))

  mval = mconn.exec("select pg_current_xlog_location()")[0]["pg_current_xlog_location"]
  sresult = sconn.exec("select pg_last_xlog_receive_location(), pg_last_xlog_replay_location()")[0]
  sval_receive = sresult["pg_last_xlog_receive_location"]
  sval_replay = sresult["pg_last_xlog_replay_location"]


  def numeric(val)
    # First part is logid, second part is record offset
    parts = val.split("/")
    raise "Invalid location" if parts.size != 2 && parts.any {|p| p.to_s.strip.size == 0}
    result = (0xFFFFFFFF * parts[0].to_i) + parts[1].to_i(16)
    return result
  end


  master_offset = numeric(mval)
  receive_offset = numeric(sval_receive)
  replay_offset = numeric(sval_replay)

  puts "PUTVAL #{HOSTNAME}/postgresql/gauge-replication_receive_delay interval=#{INTERVAL} N:#{master_offset - receive_offset}"
  puts "PUTVAL #{HOSTNAME}/postgresql/gauge-replication_replay_delay interval=#{INTERVAL} N:#{master_offset - replay_offset}"
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
rubber-3.2.2 templates/collectd/script/collectd/role/postgresql_slave/replication_status.rb
rubber-3.2.1 templates/collectd/script/collectd/role/postgresql_slave/replication_status.rb
rubber-3.2.0 templates/collectd/script/collectd/role/postgresql_slave/replication_status.rb
rubber-3.1.0 templates/collectd/script/collectd/role/postgresql_slave/replication_status.rb
rubber-3.0.1 templates/collectd/script/collectd/role/postgresql_slave/replication_status.rb
rubber-3.0.0 templates/collectd/script/collectd/role/postgresql_slave/replication_status.rb
rubber-2.16.0 templates/collectd/script/collectd/role/postgresql_slave/replication_status.rb
rubber-2.15.2 templates/collectd/script/collectd/role/postgresql_slave/replication_status.rb
rubber-2.15.1 templates/collectd/script/collectd/role/postgresql_slave/replication_status.rb
rubber-2.15.0 templates/collectd/script/collectd/role/postgresql_slave/replication_status.rb
rubber-2.14.0 templates/collectd/script/collectd/role/postgresql_slave/replication_status.rb