Add system metrics snapshot

This commit is contained in:
2026-02-08 00:02:34 +03:00
parent 5f3c9184b1
commit d3572c6005
6 changed files with 106 additions and 4 deletions

View File

@@ -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",

View File

@@ -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):