sensu-plugins-postgres 2.3.1 → 2.3.2
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -2
- data/bin/metric-postgres-graphite.rb +26 -10
- data/lib/sensu-plugins-postgres/version.rb +1 -1
- metadata +9 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 43c426179d0828ff7ef0de6e2a201735baaca16d742747313360ad7bcd5faa70
|
4
|
+
data.tar.gz: 88cdc1e4577cf7d50f1a6feb026b376a58734afb4488df9b63408a5830d9ad1c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0f6523e426f54432345905d36e5a4f4e386066683bb2f9e34f209249adf96412bae11cd311c948e044261d0a16c7451e9a5f05032b386f738223939bae02112
|
7
|
+
data.tar.gz: d8262bba5ca7c0eaf358be481f279e4e87c518e2c86f8b5c62b922fe03c6ba0cb408bdffcc1600c97e9dea1e36576b9f2fefe930d16f81fb6102b4d250b3f5e8
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,10 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
|
|
5
5
|
|
6
6
|
## [Unreleased]
|
7
7
|
|
8
|
+
## [2.3.2] - 2019-03-12
|
9
|
+
### Fixed
|
10
|
+
- Support for PostgreSQL v10+ replication function names fixed in `bin/metric-postgres-graphite.rb` (@jfineberg)
|
11
|
+
|
8
12
|
## [2.3.1] - 2018-12-16
|
9
13
|
### Fixed
|
10
14
|
- metric-postgres-statsdb.rb: Change `Array` method from `append` to `push` to maintain compatibility w/ non-EOL Rubies (@phumpal)
|
@@ -36,7 +40,7 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
|
|
36
40
|
|
37
41
|
## [1.4.6] - 2018-05-03
|
38
42
|
### Fixed
|
39
|
-
- version number check for build strings such as `10.3 (Ubuntu 10.3-1.pgdg16.04+1)`
|
43
|
+
- version number check for build strings such as `10.3 (Ubuntu 10.3-1.pgdg16.04+1)` (@jfineberg)
|
40
44
|
|
41
45
|
### Added
|
42
46
|
- tests for connecting with a pgpass file (@majormoses)
|
@@ -174,7 +178,8 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
|
|
174
178
|
### Added
|
175
179
|
- initial release
|
176
180
|
|
177
|
-
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-postgres/compare/2.3.
|
181
|
+
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-postgres/compare/2.3.2...HEAD
|
182
|
+
[2.3.2]: https://github.com/sensu-plugins/sensu-plugins-postgres/compare/2.3.1...2.3.2
|
178
183
|
[2.3.1]: https://github.com/sensu-plugins/sensu-plugins-postgres/compare/2.3.0...2.3.1
|
179
184
|
[2.3.0]: https://github.com/sensu-plugins/sensu-plugins-postgres/compare/2.2.2...2.3.0
|
180
185
|
[2.2.2]: https://github.com/sensu-plugins/sensu-plugins-postgres/compare/2.2.1...2.2.2
|
@@ -27,8 +27,9 @@
|
|
27
27
|
#
|
28
28
|
|
29
29
|
require 'sensu-plugins-postgres/pgpass'
|
30
|
-
require '
|
30
|
+
require 'sensu-plugins-postgres/pgutil'
|
31
31
|
require 'sensu-plugin/metric/cli'
|
32
|
+
require 'pg'
|
32
33
|
require 'socket'
|
33
34
|
|
34
35
|
class CheckpostgresReplicationStatus < Sensu::Plugin::Metric::CLI::Graphite
|
@@ -64,6 +65,12 @@ class CheckpostgresReplicationStatus < Sensu::Plugin::Metric::CLI::Graphite
|
|
64
65
|
long: '--password=VALUE',
|
65
66
|
description: 'Database password'
|
66
67
|
|
68
|
+
option :ssl,
|
69
|
+
short: '-S',
|
70
|
+
long: '--ssl',
|
71
|
+
boolean: true,
|
72
|
+
description: 'Require SSL'
|
73
|
+
|
67
74
|
option :scheme,
|
68
75
|
description: 'Metric naming scheme, text to prepend to metric',
|
69
76
|
short: '-g SCHEME',
|
@@ -82,8 +89,11 @@ class CheckpostgresReplicationStatus < Sensu::Plugin::Metric::CLI::Graphite
|
|
82
89
|
default: nil
|
83
90
|
|
84
91
|
include Pgpass
|
92
|
+
include PgUtil
|
85
93
|
|
86
94
|
def run
|
95
|
+
ssl_mode = config[:ssl] ? 'require' : 'prefer'
|
96
|
+
|
87
97
|
# Establishing connections to the master
|
88
98
|
pgpass
|
89
99
|
conn_master = PG.connect(host: config[:master_host],
|
@@ -91,29 +101,35 @@ class CheckpostgresReplicationStatus < Sensu::Plugin::Metric::CLI::Graphite
|
|
91
101
|
user: config[:user],
|
92
102
|
password: config[:password],
|
93
103
|
port: config[:port],
|
104
|
+
sslmode: ssl_mode,
|
94
105
|
connect_timeout: config[:timeout])
|
95
|
-
|
106
|
+
|
107
|
+
master = if check_vsn_newer_than_postgres9(conn_master)
|
108
|
+
conn_master.exec('SELECT pg_current_xlog_location()').getvalue(0, 0)
|
109
|
+
else
|
110
|
+
conn_master.exec('SELECT pg_current_wal_lsn()').getvalue(0, 0)
|
111
|
+
end
|
96
112
|
m_segbytes = conn_master.exec('SHOW wal_segment_size').getvalue(0, 0).sub(/\D+/, '').to_i << 20
|
97
113
|
conn_master.close
|
98
114
|
|
99
|
-
def lag_compute(res1, res, m_segbytes) # rubocop:disable NestedMethodDefinition
|
100
|
-
m_segment, m_offset = res1.split(/\//)
|
101
|
-
s_segment, s_offset = res.split(/\//)
|
102
|
-
((m_segment.hex - s_segment.hex) * m_segbytes) + (m_offset.hex - s_offset.hex)
|
103
|
-
end
|
104
|
-
|
105
115
|
# Establishing connections to the slave
|
106
116
|
conn_slave = PG.connect(host: config[:slave_host],
|
107
117
|
dbname: config[:database],
|
108
118
|
user: config[:user],
|
109
119
|
password: config[:password],
|
110
120
|
port: config[:port],
|
121
|
+
sslmode: ssl_mode,
|
111
122
|
connect_timeout: config[:timeout])
|
112
|
-
|
123
|
+
|
124
|
+
slave = if check_vsn_newer_than_postgres9(conn_slave)
|
125
|
+
conn_slave.exec('SELECT pg_last_xlog_receive_location()').getvalue(0, 0)
|
126
|
+
else
|
127
|
+
conn_slave.exec('SELECT pg_last_wal_replay_lsn()').getvalue(0, 0)
|
128
|
+
end
|
113
129
|
conn_slave.close
|
114
130
|
|
115
131
|
# Compute lag
|
116
|
-
lag =
|
132
|
+
lag = compute_lag(master, slave, m_segbytes)
|
117
133
|
output config[:scheme].to_s, lag
|
118
134
|
|
119
135
|
ok
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-plugins-postgres
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sensu-Plugins and contributors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-03-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sensu-plugin
|
@@ -72,28 +72,28 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '0
|
75
|
+
version: '1.0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0
|
82
|
+
version: '1.0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: github-markup
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '3.0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
96
|
+
version: '3.0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: kitchen-docker
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -162,14 +162,14 @@ dependencies:
|
|
162
162
|
requirements:
|
163
163
|
- - "~>"
|
164
164
|
- !ruby/object:Gem::Version
|
165
|
-
version: '
|
165
|
+
version: '12.3'
|
166
166
|
type: :development
|
167
167
|
prerelease: false
|
168
168
|
version_requirements: !ruby/object:Gem::Requirement
|
169
169
|
requirements:
|
170
170
|
- - "~>"
|
171
171
|
- !ruby/object:Gem::Version
|
172
|
-
version: '
|
172
|
+
version: '12.3'
|
173
173
|
- !ruby/object:Gem::Dependency
|
174
174
|
name: redcarpet
|
175
175
|
requirement: !ruby/object:Gem::Requirement
|
@@ -324,8 +324,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
324
324
|
- !ruby/object:Gem::Version
|
325
325
|
version: '0'
|
326
326
|
requirements: []
|
327
|
-
|
328
|
-
rubygems_version: 2.7.8
|
327
|
+
rubygems_version: 3.0.3
|
329
328
|
signing_key:
|
330
329
|
specification_version: 4
|
331
330
|
summary: Sensu plugins for postgres
|