Sha256: f65e64b5c90b6734e47f0d4bf217c8a0157923005abd9935b3af6ba5ebed4fa2

Contents?: true

Size: 680 Bytes

Versions: 16

Compression:

Stored size: 680 Bytes

Contents

module PgHero
  module Methods
    module Replica
      def replica?
        select_all("SELECT setting FROM pg_settings WHERE name = 'hot_standby'").first["setting"] == "on"
      end

      # http://www.postgresql.org/message-id/CADKbJJWz9M0swPT3oqe8f9+tfD4-F54uE6Xtkh4nERpVsQnjnw@mail.gmail.com
      def replication_lag
        select_all(<<-SQL
          SELECT
            CASE
              WHEN pg_last_xlog_receive_location() = pg_last_xlog_replay_location() THEN 0
              ELSE EXTRACT (EPOCH FROM NOW() - pg_last_xact_replay_timestamp())
            END
          AS replication_lag
        SQL
        ).first["replication_lag"].to_f
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
pghero-1.6.3 lib/pghero/methods/replica.rb
pghero-1.6.2 lib/pghero/methods/replica.rb
pghero-1.6.1 lib/pghero/methods/replica.rb
pghero-1.6.0 lib/pghero/methods/replica.rb
pghero-1.5.3 lib/pghero/methods/replica.rb
pghero-1.5.2 lib/pghero/methods/replica.rb
pghero-1.5.1 lib/pghero/methods/replica.rb
pghero-1.5.0 lib/pghero/methods/replica.rb
pghero-1.4.2 lib/pghero/methods/replica.rb
pghero-1.4.1 lib/pghero/methods/replica.rb
pghero-1.4.0 lib/pghero/methods/replica.rb
pghero-1.3.2 lib/pghero/methods/replica.rb
pghero-1.3.1 lib/pghero/methods/replica.rb
pghero-1.3.0 lib/pghero/methods/replica.rb
pghero-1.2.4 lib/pghero/methods/replica.rb
pghero-1.2.3 lib/pghero/methods/replica.rb