Add alert management functionality in backend and frontend
This commit introduces alert management capabilities, including creating, updating, listing, and removing custom SQL-based alerts in the backend. It adds the necessary database migrations, API endpoints, and frontend pages to manage alerts, enabling users to define thresholds and monitor system health effectively.
This commit is contained in:
@@ -41,7 +41,19 @@ async def collect_target(target: Target) -> None:
|
||||
try:
|
||||
stat_db = await conn.fetchrow(
|
||||
"""
|
||||
SELECT numbackends, xact_commit, xact_rollback, blks_hit, blks_read, tup_returned, tup_fetched
|
||||
SELECT
|
||||
numbackends,
|
||||
xact_commit,
|
||||
xact_rollback,
|
||||
deadlocks,
|
||||
temp_files,
|
||||
temp_bytes,
|
||||
blk_read_time,
|
||||
blk_write_time,
|
||||
blks_hit,
|
||||
blks_read,
|
||||
tup_returned,
|
||||
tup_fetched
|
||||
FROM pg_stat_database
|
||||
WHERE datname = current_database()
|
||||
"""
|
||||
@@ -67,6 +79,11 @@ async def collect_target(target: Target) -> None:
|
||||
"numbackends": 0,
|
||||
"xact_commit": 0,
|
||||
"xact_rollback": 0,
|
||||
"deadlocks": 0,
|
||||
"temp_files": 0,
|
||||
"temp_bytes": 0,
|
||||
"blk_read_time": 0,
|
||||
"blk_write_time": 0,
|
||||
"blks_hit": 0,
|
||||
"blks_read": 0,
|
||||
"tup_returned": 0,
|
||||
@@ -106,6 +123,13 @@ async def collect_target(target: Target) -> None:
|
||||
await _store_metric(db, target.id, "connections_total", activity["total_connections"], {})
|
||||
await _store_metric(db, target.id, "connections_active", activity["active_connections"], {})
|
||||
await _store_metric(db, target.id, "xacts_total", stat_db["xact_commit"] + stat_db["xact_rollback"], {})
|
||||
await _store_metric(db, target.id, "xact_commit", stat_db["xact_commit"], {})
|
||||
await _store_metric(db, target.id, "xact_rollback", stat_db["xact_rollback"], {})
|
||||
await _store_metric(db, target.id, "deadlocks", stat_db["deadlocks"], {})
|
||||
await _store_metric(db, target.id, "temp_files", stat_db["temp_files"], {})
|
||||
await _store_metric(db, target.id, "temp_bytes", stat_db["temp_bytes"], {})
|
||||
await _store_metric(db, target.id, "blk_read_time", stat_db["blk_read_time"], {})
|
||||
await _store_metric(db, target.id, "blk_write_time", stat_db["blk_write_time"], {})
|
||||
await _store_metric(db, target.id, "cache_hit_ratio", cache_hit_ratio, {})
|
||||
await _store_metric(db, target.id, "locks_total", lock_count, {})
|
||||
await _store_metric(db, target.id, "checkpoints_timed", bgwriter["checkpoints_timed"], {})
|
||||
|
||||
Reference in New Issue
Block a user