@@ -45,16 +45,16 @@ class Statements(Plugin):
4545 "Dirty bytes/s" , Plugin .UNITS .bytes_per_second , Plugin .DELTA .speed_per_second ,
4646 ("PostgreSQL Statements: Bytes" , "9C8A4E" , 0 )),
4747
48- ( "stat[read_time]" ,
49- "(sum(blk_read_time )/float4(100))::bigint" ,
48+ [ "stat[read_time]" ,
49+ "(sum({0} )/float4(100))::bigint" ,
5050 "Read IO Time" , Plugin .UNITS .s , Plugin .DELTA .speed_per_second ,
51- ("PostgreSQL Statements: Spent Time" , "87C2B9" , 0 )) ,
52- ( "stat[write_time]" ,
53- "(sum(blk_write_time )/float4(100))::bigint" ,
51+ ("PostgreSQL Statements: Spent Time" , "87C2B9" , 0 )] ,
52+ [ "stat[write_time]" ,
53+ "(sum({0} )/float4(100))::bigint" ,
5454 "Write IO Time" , Plugin .UNITS .s , Plugin .DELTA .speed_per_second ,
55- ("PostgreSQL Statements: Spent Time" , "793F5D" , 0 )) ,
55+ ("PostgreSQL Statements: Spent Time" , "793F5D" , 0 )] ,
5656 ["stat[other_time]" ,
57- "(sum({0}-blk_read_time-blk_write_time )/float4(100))::bigint" ,
57+ "(sum({0}-{1} )/float4(100))::bigint" ,
5858 "Other (mostly CPU) Time" , Plugin .UNITS .s , Plugin .DELTA .speed_per_second ,
5959 ("PostgreSQL Statements: Spent Time" , "9C8A4E" , 0 )]]
6060
@@ -160,7 +160,14 @@ def run(self, zbx):
160160 all_items += self .Items_pg_13
161161
162162 elif Pooler .server_version_greater ("14" ):
163- self .Items [5 ][1 ] = self .Items [5 ][1 ].format ("total_exec_time+total_plan_time" )
163+ if Pooler .server_version_greater ("17" ):
164+ self .Items [3 ][1 ] = self .Items [3 ][1 ].format ("shared_blk_read_time+local_blk_read_time+temp_blk_read_time" )
165+ self .Items [4 ][1 ] = self .Items [4 ][1 ].format ("shared_blk_write_time+local_blk_write_time+temp_blk_write_time" )
166+ self .Items [5 ][1 ] = self .Items [5 ][1 ].format ("total_exec_time+total_plan_time" , "shared_blk_read_time-local_blk_read_time-temp_blk_read_time-shared_blk_write_time-local_blk_write_time-temp_blk_write_time" )
167+ else :
168+ self .Items [3 ][1 ] = self .Items [3 ][1 ].format ("blk_read_time" )
169+ self .Items [4 ][1 ] = self .Items [4 ][1 ].format ("blk_write_time" )
170+ self .Items [5 ][1 ] = self .Items [5 ][1 ].format ("total_exec_time+total_plan_time" , "blk_read_time-blk_write_time" )
164171 all_items += self .Items_pg_13
165172 info_view = 'pgpro_stats_info'
166173 if self .extension == "pg_stat_statements" :
@@ -177,11 +184,17 @@ def run(self, zbx):
177184 zbx .send (zbx_key , value , info_items [key ][4 ])
178185
179186 elif Pooler .server_version_greater ("13" ):
180- self .Items [5 ][1 ] = self .Items [5 ][1 ].format ("total_exec_time+total_plan_time" )
187+ self .Items [3 ][1 ] = self .Items [3 ][1 ].format ("blk_read_time" )
188+ self .Items [4 ][1 ] = self .Items [4 ][1 ].format ("blk_write_time" )
189+ self .Items [5 ][1 ] = self .Items [5 ][1 ].format ("total_exec_time+total_plan_time" , "blk_read_time-blk_write_time" )
190+
181191 all_items += self .Items_pg_13
182192
183193 else :
184- self .Items [5 ][1 ] = self .Items [5 ][1 ].format ("total_time" )
194+ self .Items [3 ][1 ] = self .Items [3 ][1 ].format ("blk_read_time" )
195+ self .Items [4 ][1 ] = self .Items [4 ][1 ].format ("blk_write_time" )
196+ self .Items [5 ][1 ] = self .Items [5 ][1 ].format ("total_time" , "blk_read_time-blk_write_time" )
197+
185198 columns = [x [1 ] for x in all_items ]
186199 result = Pooler .query (self .query [self .extension + "_bootstrap" ].format (
187200 columns = ", " .join ([x [0 ][x [0 ].find ("[" ) + 1 :x [0 ].find ("]" )] for x in all_items ]),
0 commit comments