Add system metrics snapshot
This commit is contained in:
@@ -17,7 +17,7 @@ async def help_cmd(msg: Message):
|
||||
"🐳 Docker — управление контейнерами\n"
|
||||
"📦 Backup — restic бэкапы\n"
|
||||
"🧉 Artifacts — критичные образы (Clonezilla, NAND)\n"
|
||||
"⚙️ System — диски, безопасность, URL, reboot\n\n"
|
||||
"⚙️ System — диски, безопасность, URL, metrics, reboot\n\n"
|
||||
"Inline-кнопки используются для выбора контейнеров.",
|
||||
reply_markup=menu_kb,
|
||||
parse_mode="Markdown",
|
||||
|
||||
@@ -9,7 +9,8 @@ from services.http_checks import get_url_checks, check_url
|
||||
from services.queue import enqueue
|
||||
from services.updates import list_updates, apply_updates
|
||||
from services.runner import run_cmd
|
||||
from state import UPDATES_CACHE, REBOOT_PENDING
|
||||
from state import UPDATES_CACHE, REBOOT_PENDING, METRICS_STORE
|
||||
from services.metrics import summarize
|
||||
|
||||
|
||||
@dp.message(F.text == "💽 Disks")
|
||||
@@ -55,6 +56,16 @@ async def urls(msg: Message):
|
||||
asyncio.create_task(worker())
|
||||
|
||||
|
||||
@dp.message(F.text == "📈 Metrics")
|
||||
async def metrics(msg: Message):
|
||||
if not is_admin_msg(msg):
|
||||
return
|
||||
if METRICS_STORE is None:
|
||||
await msg.answer("⚠️ Metrics not initialized", reply_markup=system_kb)
|
||||
return
|
||||
await msg.answer(summarize(METRICS_STORE, minutes=15), reply_markup=system_kb)
|
||||
|
||||
|
||||
@dp.message(F.text == "📦 Updates")
|
||||
async def updates_list(msg: Message):
|
||||
if not is_admin_msg(msg):
|
||||
|
||||
Reference in New Issue
Block a user