lock conflicts monitoring ()

This commit is contained in:
Alexey Mukas 2023-04-04 06:17:36 +02:00 committed by GitHub
parent a215869f1b
commit aec5cf01b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 1 deletions
cmd/postgres_exporter

View File

@ -225,6 +225,14 @@ var builtinMetricMaps = map[string]intermediateMetricMap{
true,
0,
},
"pg_lock_conflicts": {
map[string]ColumnMapping{
"blocking_pid": {LABEL, "PID of blocking session", nil, nil},
"count": {GAUGE, "Number of blocked sessions", nil, nil},
},
true,
0,
},
"pg_stat_replication": {
map[string]ColumnMapping{
"procpid": {DISCARD, "Process ID of a WAL sender process", nil, semver.MustParseRange("<9.2.0")},

View File

@ -70,7 +70,19 @@ var queryOverrides = map[string][]OverrideQuery{
ON tmp.mode=tmp2.mode and pg_database.oid = tmp2.database ORDER BY 1`,
},
},
"pg_lock_conflicts": {
{
semver.MustParseRange(">0.0.0"),
`SELECT blockinga.pid AS blocking_pid, count(*) as count
FROM pg_catalog.pg_locks blockedl
JOIN pg_stat_activity blockeda ON blockedl.pid = blockeda.pid
JOIN pg_catalog.pg_locks blockingl ON(blockingl.transactionid=blockedl.transactionid
AND blockedl.pid != blockingl.pid)
JOIN pg_stat_activity blockinga ON blockingl.pid = blockinga.pid
WHERE NOT blockedl.granted
group by blocking_pid`,
},
},
"pg_stat_replication": {
{
semver.MustParseRange(">=10.0.0"),