add client_addr to metric pg_stat_activity_max_tx_duration

This commit is contained in:
Felix Hamme 2023-12-11 10:56:00 +01:00
parent f5b613aba7
commit 422bbe4c35
2 changed files with 4 additions and 1 deletions

View File

@ -252,6 +252,7 @@ var builtinMetricMaps = map[string]intermediateMetricMap{
"state": {LABEL, "connection state", nil, semver.MustParseRange(">=9.2.0")}, "state": {LABEL, "connection state", nil, semver.MustParseRange(">=9.2.0")},
"usename": {LABEL, "connection usename", nil, nil}, "usename": {LABEL, "connection usename", nil, nil},
"application_name": {LABEL, "connection application_name", nil, nil}, "application_name": {LABEL, "connection application_name", nil, nil},
"client_addr": {LABEL, "connection client_addr", nil, nil},
"count": {GAUGE, "number of connections in this state", nil, nil}, "count": {GAUGE, "number of connections in this state", nil, nil},
"max_tx_duration": {GAUGE, "max duration in seconds any active transaction has been running", nil, nil}, "max_tx_duration": {GAUGE, "max duration in seconds any active transaction has been running", nil, nil},
}, },

View File

@ -114,6 +114,7 @@ var queryOverrides = map[string][]OverrideQuery{
tmp.state, tmp.state,
tmp2.usename, tmp2.usename,
tmp2.application_name, tmp2.application_name,
tmp2.client_addr,
COALESCE(count,0) as count, COALESCE(count,0) as count,
COALESCE(max_tx_duration,0) as max_tx_duration COALESCE(max_tx_duration,0) as max_tx_duration
FROM FROM
@ -132,9 +133,10 @@ var queryOverrides = map[string][]OverrideQuery{
state, state,
usename, usename,
application_name, application_name,
client_addr,
count(*) AS count, count(*) AS count,
MAX(EXTRACT(EPOCH FROM now() - xact_start))::float AS max_tx_duration MAX(EXTRACT(EPOCH FROM now() - xact_start))::float AS max_tx_duration
FROM pg_stat_activity GROUP BY datname,state,usename,application_name) AS tmp2 FROM pg_stat_activity GROUP BY datname,state,usename,application_name, client_addr) AS tmp2
ON tmp.state = tmp2.state AND pg_database.datname = tmp2.datname ON tmp.state = tmp2.state AND pg_database.datname = tmp2.datname
`, `,
}, },