27
27
#
28
28
29
29
require 'sensu-plugins-postgres/pgpass'
30
+ require 'sensu-plugins-postgres/pgutil'
30
31
require 'sensu-plugin/check/cli'
31
32
require 'pg'
32
33
@@ -97,18 +98,7 @@ class CheckPostgresReplicationStatus < Sensu::Plugin::Check::CLI
97
98
description : 'Connection timeout (seconds)' )
98
99
99
100
include Pgpass
100
-
101
- def compute_lag ( master , slave , m_segbytes )
102
- m_segment , m_offset = master . split ( '/' )
103
- s_segment , s_offset = slave . split ( '/' )
104
- ( ( m_segment . hex - s_segment . hex ) * m_segbytes ) + ( m_offset . hex - s_offset . hex )
105
- end
106
-
107
- def check_vsn ( conn )
108
- pg_vsn = conn . exec ( "SELECT current_setting('server_version')" ) . getvalue ( 0 , 0 )
109
- pg_vsn = pg_vsn . split ( ' ' ) [ 0 ]
110
- Gem ::Version . new ( pg_vsn ) < Gem ::Version . new ( '10.0' ) && Gem ::Version . new ( pg_vsn ) >= Gem ::Version . new ( '9.0' )
111
- end
101
+ include PgUtil
112
102
113
103
def run
114
104
ssl_mode = config [ :ssl ] ? 'require' : 'prefer'
@@ -123,7 +113,7 @@ def run
123
113
sslmode : ssl_mode ,
124
114
connect_timeout : config [ :timeout ] )
125
115
126
- master = if check_vsn ( conn_master )
116
+ master = if check_vsn_newer_than_postgres9 ( conn_master )
127
117
conn_master . exec ( 'SELECT pg_current_xlog_location()' ) . getvalue ( 0 , 0 )
128
118
else
129
119
conn_master . exec ( 'SELECT pg_current_wal_lsn()' ) . getvalue ( 0 , 0 )
@@ -140,7 +130,7 @@ def run
140
130
sslmode : ssl_mode ,
141
131
connect_timeout : config [ :timeout ] )
142
132
143
- slave = if check_vsn ( conn_slave )
133
+ slave = if check_vsn_newer_than_postgres9 ( conn_slave )
144
134
conn_slave . exec ( 'SELECT pg_last_xlog_receive_location()' ) . getvalue ( 0 , 0 )
145
135
else
146
136
conn_slave . exec ( 'SELECT pg_last_wal_replay_lsn()' ) . getvalue ( 0 , 0 )
0 commit comments