@cryptotaxi247 / netdata-1 / commits / 79ec2dce4

Postgres : Handle when server is in recovery

anayrat committed Mar 9, 2018 at 20:17 UTC 79ec2dce4925688b762ea1e76187be79ad8e51ed
1 file changed +7 -7
python.d/postgres.chart.py
+7 -7
@@ -83,8 +83,8 @@ SELECT
83 count(*) FILTER (WHERE type = 'written') AS written_wal
84 FROM
85 (SELECT wal.name,
86 - pg_{0}file_name(pg_current_{0}_{1}()),
87 - CASE WHEN wal.name > pg_{0}file_name(pg_current_{0}_{1}()) THEN 'recycled'
86 + pg_{0}file_name(CASE pg_is_in_recovery() WHEN true THEN NULL ELSE pg_current_{0}_{1}() END ),
87 + CASE WHEN wal.name > pg_{0}file_name(CASE pg_is_in_recovery() WHEN true THEN NULL ELSE pg_current_{0}_{1}() END ) THEN 'recycled'
88 ELSE 'written'
89 END AS type
90 FROM pg_catalog.pg_ls_dir('pg_{0}') AS wal(name)
@@ -175,12 +175,12 @@ GROUP BY application_name;
175 """,
176 STANDBY_DELTA="""
177 SELECT application_name,
178 - pg_{0}_{1}_diff(pg_current_{0}_{1}() , sent_{1}) AS sent_delta,
179 - pg_{0}_{1}_diff(pg_current_{0}_{1}() , write_{1}) AS write_delta,
180 - pg_{0}_{1}_diff(pg_current_{0}_{1}() , flush_{1}) AS flush_delta,
181 - pg_{0}_{1}_diff(pg_current_{0}_{1}() , replay_{1}) AS replay_delta
178 + pg_{0}_{1}_diff(CASE pg_is_in_recovery() WHEN true THEN pg_last_{0}_receive_{1}() ELSE pg_current_{0}_{1}() END , sent_{1}) AS sent_delta,
179 + pg_{0}_{1}_diff(CASE pg_is_in_recovery() WHEN true THEN pg_last_{0}_receive_{1}() ELSE pg_current_{0}_{1}() END , write_{1}) AS write_delta,
180 + pg_{0}_{1}_diff(CASE pg_is_in_recovery() WHEN true THEN pg_last_{0}_receive_{1}() ELSE pg_current_{0}_{1}() END , flush_{1}) AS flush_delta,
181 + pg_{0}_{1}_diff(CASE pg_is_in_recovery() WHEN true THEN pg_last_{0}_receive_{1}() ELSE pg_current_{0}_{1}() END , replay_{1}) AS replay_delta
182 FROM pg_stat_replication
183 -WHERE application_name IS NOT NULL
183 +WHERE application_name IS NOT NULL;
184 """,
185 IF_SUPERUSER="""
186 SELECT current_setting('is_superuser') = 'on' AS is_superuser;