@@ -221,24 +221,24 @@ def csv_write(
221
221
"""Store process list into CSV file.
222
222
223
223
>>> processes = [
224
- ... {'pid': 25199, 'application_name': '', 'database': 'pgbench', 'user': None,
224
+ ... {'pid': 25199, 'xmin': 1234, ' application_name': '', 'database': 'pgbench', 'user': None,
225
225
... 'client': 'local', 'cpu': 0.0, 'mem': 0.6504979545924837,
226
226
... 'read': 0.0, 'write': 0.0, 'state': 'active',
227
227
... 'query': 'autovacuum: VACUUM ANALYZE public.pgbench_tellers',
228
228
... 'duration': 0.348789, 'wait': False,
229
229
... 'io_wait': False, 'is_parallel_worker': False},
230
- ... {'pid': 25068, 'application_name': 'pgbench', 'database': None,
230
+ ... {'pid': 25068, 'xmin': 2345, ' application_name': 'pgbench', 'database': None,
231
231
... 'user': 'postgres', 'client': 'local', 'cpu': 0.0, 'mem': 2.4694780629380646,
232
232
... 'read': 278536.76590087387, 'write': 835610.2977026217,
233
233
... 'state': 'idle in transaction',
234
234
... 'query': 'INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (625, 87, 4368910, -341, CURRENT_TIMESTAMP);',
235
235
... 'duration': 0.000105, 'wait': False, 'io_wait': False,
236
236
... 'is_parallel_worker': False},
237
- ... {'pid': 25379, 'application_name': 'pgbench', 'database': 'pgbench',
237
+ ... {'pid': 25379, 'xmin': 3456, ' application_name': 'pgbench', 'database': 'pgbench',
238
238
... 'user': 'postgres', 'client': 'local', 'state': 'active',
239
239
... 'query': 'UPDATE pgbench_branches SET bbalance = bbalance + -49 WHERE bid = 73;',
240
240
... 'duration': 0, 'wait': False},
241
- ... {'pid': 25392, 'application_name': 'pgbench', 'database': 'pgbench',
241
+ ... {'pid': 25392, 'xmin': 4567, ' application_name': 'pgbench', 'database': 'pgbench',
242
242
... 'user': 'postgres', 'client': 'local', 'state': 'active',
243
243
... 'query': 'BEGIN;', 'duration': 0, 'wait': False}
244
244
... ]
@@ -249,11 +249,11 @@ def csv_write(
249
249
... _ = f.seek(0)
250
250
... content = f.read()
251
251
>>> print(content, end="") # doctest: +ELLIPSIS
252
- datetimeutc;pid;database;appname;user;client;cpu;memory;read;write;duration;wait;io_wait;state;query
253
- "...-...-...T...Z";"25199";"pgbench";"";"None";"local";"0.0";"0.6504979545924837";"0.0";"0.0";"0.348789";"N";"N";"active";"autovacuum: VACUUM ANALYZE public.pgbench_tellers"
254
- "...-...-...T...Z";"25068";"";"pgbench";"postgres";"local";"0.0";"2.4694780629380646";"278536.76590087387";"835610.2977026217";"0.000105";"N";"N";"idle in transaction";"INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (625, 87, 4368910, -341, CURRENT_TIMESTAMP);"
255
- "...-...-...T...Z";"25379";"pgbench";"pgbench";"postgres";"local";"N/A";"N/A";"N/A";"N/A";"0";"N";"N/A";"active";"UPDATE pgbench_branches SET bbalance = bbalance + -49 WHERE bid = 73;"
256
- "...-...-...T...Z";"25392";"pgbench";"pgbench";"postgres";"local";"N/A";"N/A";"N/A";"N/A";"0";"N";"N/A";"active";"BEGIN;"
252
+ datetimeutc;pid;xmin; database;appname;user;client;cpu;memory;read;write;duration;wait;io_wait;state;query
253
+ "...-...-...T...Z";"25199";"1234";" pgbench";"";"None";"local";"0.0";"0.6504979545924837";"0.0";"0.0";"0.348789";"N";"N";"active";"autovacuum: VACUUM ANALYZE public.pgbench_tellers"
254
+ "...-...-...T...Z";"25068";"2345";" ";"pgbench";"postgres";"local";"0.0";"2.4694780629380646";"278536.76590087387";"835610.2977026217";"0.000105";"N";"N";"idle in transaction";"INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (625, 87, 4368910, -341, CURRENT_TIMESTAMP);"
255
+ "...-...-...T...Z";"25379";"3456";" pgbench";"pgbench";"postgres";"local";"N/A";"N/A";"N/A";"N/A";"0";"N";"N/A";"active";"UPDATE pgbench_branches SET bbalance = bbalance + -49 WHERE bid = 73;"
256
+ "...-...-...T...Z";"25392";"4567";" pgbench";"pgbench";"postgres";"local";"N/A";"N/A";"N/A";"N/A";"0";"N";"N/A";"active";"BEGIN;"
257
257
"""
258
258
259
259
def clean_str_csv (s : str ) -> str :
@@ -266,6 +266,7 @@ def clean_str_csv(s: str) -> str:
266
266
[
267
267
"datetimeutc" ,
268
268
"pid" ,
269
+ "xmin" ,
269
270
"database" ,
270
271
"appname" ,
271
272
"user" ,
@@ -292,6 +293,7 @@ def yn_na(value: bool | None) -> str:
292
293
for p in procs :
293
294
dt = datetime .now (timezone .utc ).strftime ("%Y-%m-%dT%H:%M:%SZ" )
294
295
pid = p .get ("pid" , "N/A" )
296
+ xmin = p .get ("xmin" , "N/A" )
295
297
database = p .get ("database" , "N/A" ) or ""
296
298
appname = p .get ("application_name" , "N/A" )
297
299
user = p .get ("user" , "N/A" )
@@ -310,6 +312,7 @@ def yn_na(value: bool | None) -> str:
310
312
[
311
313
f'"{ dt } "' ,
312
314
f'"{ pid } "' ,
315
+ f'"{ xmin } "' ,
313
316
f'"{ database } "' ,
314
317
f'"{ appname } "' ,
315
318
f'"{ user } "' ,
0 commit comments