QuerySentry CLI
#python#automation#microsaas
Riduci drasticamente i costi di monitoraggio del DB con QuerySentry CLI. Questa micro-utility in Go senza dipendenze sostituisce SaaS da $300/mese per PostgreSQL e MySQL. Rileva automaticamente gli indici mancanti, interrompe in sicurezza le query lente fuori controllo e previene i picchi di CPU con un overhead quasi nullo. Offre una TUI live, report di audit in Markdown e avvisi istantanei su Slack/Discord.
Leggi l'approfondimento tecnicoBasta SaaS da $300/mese per il DB: Note dal Campo su QuerySentry CLImain.pymain.py — estratto d'esempio nello stile del tool
#!/usr/bin/env python3
"""
QuerySentry CLI - Zero-dependency database monitoring and query safety tool.
Replaces expensive SaaS tools by providing continuous PostgreSQL and MySQL
monitoring, missing index detection, automated rogue query termination,
and instant multi-channel alerting with near-zero runtime overhead.
Features:
- Automated missing index detection for PostgreSQL and MySQL
- Threshold-based rogue query killing with safe query validation
- Live TUI dashboard for real-time connection and query metrics
- Markdown audit reports generation for compliance and performance
- Webhook alerts targeting Slack and Discord notification channels
Usage:
$ python main.py monitor --db-uri "postgres://user:pass@localhost:5432/db"
$ python main.py daemon --config ./sentry.json
"""
from dataclasses import dataclass
from enum import Enum
import logging
import sys
from typing import Dict, List, Optional
logger = logging.getLogger("querysentry")
class DatabaseEngine(Enum):
"""Supported target database engines."""
POSTGRESQL = "postgresql"
MYSQL = "mysql"
@dataclass(frozen=True)
class QueryMetric:
"""Snapshot of an active database query execution state."""
pid: int
duration_sec: float
query_text: str
user: str
engine: DatabaseEngine
is_blocked: bool = False
class QuerySentry:
"""Core engine for database metric harvesting and query safety enforcement."""
def __init__(self, db_uri: str, timeout: float = 30.0) -> None:
self.db_uri = db_uri
# ... the full file ships with your download