@@ -45,16 +45,16 @@ class Statements(Plugin):
45
45
"Dirty bytes/s" , Plugin .UNITS .bytes_per_second , Plugin .DELTA .speed_per_second ,
46
46
("PostgreSQL Statements: Bytes" , "9C8A4E" , 0 )),
47
47
48
- ( "stat[read_time]" ,
49
- "(sum(blk_read_time )/float4(100))::bigint" ,
48
+ [ "stat[read_time]" ,
49
+ "(sum({0} )/float4(100))::bigint" ,
50
50
"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" ,
54
54
"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 )] ,
56
56
["stat[other_time]" ,
57
- "(sum({0}-blk_read_time-blk_write_time )/float4(100))::bigint" ,
57
+ "(sum({0}-{1} )/float4(100))::bigint" ,
58
58
"Other (mostly CPU) Time" , Plugin .UNITS .s , Plugin .DELTA .speed_per_second ,
59
59
("PostgreSQL Statements: Spent Time" , "9C8A4E" , 0 )]]
60
60
@@ -160,7 +160,14 @@ def run(self, zbx):
160
160
all_items += self .Items_pg_13
161
161
162
162
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" )
164
171
all_items += self .Items_pg_13
165
172
info_view = 'pgpro_stats_info'
166
173
if self .extension == "pg_stat_statements" :
@@ -177,11 +184,17 @@ def run(self, zbx):
177
184
zbx .send (zbx_key , value , info_items [key ][4 ])
178
185
179
186
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
+
181
191
all_items += self .Items_pg_13
182
192
183
193
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
+
185
198
columns = [x [1 ] for x in all_items ]
186
199
result = Pooler .query (self .query [self .extension + "_bootstrap" ].format (
187
200
columns = ", " .join ([x [0 ][x [0 ].find ("[" ) + 1 :x [0 ].find ("]" )] for x in all_items ]),
0 commit comments