Add support for pg_stat_statements configuration in Targets
This commit introduces a `use_pg_stat_statements` flag for targets, allowing users to enable or disable the use of `pg_stat_statements` for query insights. It includes database schema changes, backend logic, and UI updates to manage this setting in both creation and editing workflows.
This commit is contained in:
@@ -106,18 +106,19 @@ async def collect_target(target: Target) -> None:
|
||||
cache_hit_ratio = stat_db["blks_hit"] / (stat_db["blks_hit"] + stat_db["blks_read"])
|
||||
|
||||
query_rows = []
|
||||
try:
|
||||
query_rows = await conn.fetch(
|
||||
"""
|
||||
SELECT queryid::text, calls, total_exec_time, mean_exec_time, rows, left(query, 2000) AS query_text
|
||||
FROM pg_stat_statements
|
||||
ORDER BY total_exec_time DESC
|
||||
LIMIT 20
|
||||
"""
|
||||
)
|
||||
except Exception:
|
||||
# Extension may be disabled on monitored instance.
|
||||
query_rows = []
|
||||
if target.use_pg_stat_statements:
|
||||
try:
|
||||
query_rows = await conn.fetch(
|
||||
"""
|
||||
SELECT queryid::text, calls, total_exec_time, mean_exec_time, rows, left(query, 2000) AS query_text
|
||||
FROM pg_stat_statements
|
||||
ORDER BY total_exec_time DESC
|
||||
LIMIT 20
|
||||
"""
|
||||
)
|
||||
except Exception:
|
||||
# Extension may be disabled on monitored instance.
|
||||
query_rows = []
|
||||
|
||||
async with SessionLocal() as db:
|
||||
await _store_metric(db, target.id, "connections_total", activity["total_connections"], {})
|
||||
|
||||
Reference in New Issue
Block a user