Files
AgentHub/client/src/i18n/locales/vi/dashboard.json
T
nntrivi2001 1c6dfea5b5 feat(health): System Health in three groups, a score that sees lag; admin user detail
Dashboard → System Health is grouped into AgentHub, Machine and Agent
activity. The machine (GET /api/host, every signed-in user) is drawn by
components/health/HostHealth.tsx: host card beside the CPU/memory history,
then CPU (threads as compact cells + temperatures/GPUs), disks & network,
busiest processes, and per-user tiles. Concurrency bars each show their own
agent type on hover.

The Health Score (client/src/lib/healthScore.ts) is now 100 minus what each
check costs, between an amber and a red threshold: event-loop p99
(server/lib/loop-delay.js, shared with /api/metrics), Linux PSI pressure for
CPU, memory and disk I/O (/api/host `pressure`; load per core without PSI),
RAM, the database's disk, V8 heap, hooks silent while agents work, and agent
errors in the last 24 h. All-time success rate, API errors and the transcript
cache hit rate no longer count. /api/settings/info adds server.event_loop and
activity {last_event_at, working_agents, agents_24h}.

Administration: a user row opens its detail in place (GET
/api/users/:id/details — spend, account pool share, live panes, workspaces,
newest sessions); the server panel is gone, member tmux folded into the table;
the Sessions list shows each row's owner in server mode.
2026-10-27 16:39:38 +07:00

188 lines
9.4 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"title": "Tổng quan",
"subtitle": "Góc nhìn thời gian thực về hoạt động Agent Claude Code",
"totalSessions": "Tổng số phiên",
"activeAgents": "Agent đang hoạt động",
"activeSubagents": "Subagent đang hoạt động",
"eventsToday": "Sự kiện hôm nay",
"totalEvents": "Tổng sự kiện",
"totalCost": "Tổng chi phí",
"viewAll": "Xem tất cả",
"activeAgentsSection": "Agent đang hoạt động",
"recentActivity": "Hoạt động gần đây",
"noAgents": "Không có Agent đang hoạt động",
"noAgentsDesc": "Agent sẽ xuất hiện ở đây khi phiên Claude Code đang chạy.",
"noActivity": "Chưa có hoạt động",
"noActivityDesc": "Sự kiện từ các phiên Claude Code sẽ được phát trực tiếp tại đây.",
"failedLoad": "Không thể tải dữ liệu",
"activeTrend": " đang hoạt động",
"totalTrend": " trong phiên hoạt động",
"tabs": {
"label": "Các chế độ xem tổng quan",
"analytics": "Phân tích",
"monitor": "Giám sát",
"health": "Sức khỏe hệ thống"
},
"collapseSubagents": "Thu gọn subagent",
"expandSubagents": "Mở rộng subagent",
"needsYou": {
"title": "Cần bạn xử lý",
"since": "đang chờ {{ago}}"
},
"health": {
"heap": "Heap V8",
"heapTip": "Heap V8: đã dùng {{pct}}%\n{{used}} / giới hạn {{limit}}\nĐã cấp phát: {{allocated}}\nNgoài heap: {{external}}",
"storage": "Lưu trữ",
"writeVelocityTip": "Tốc độ ghi (sự kiện):\n5 phút: {{m5}}\n15 phút: {{m15}}\n1 giờ: {{h1}}",
"database": "Cơ sở dữ liệu",
"recordsTip": "Phân bố bản ghi\n\nPhiên: {{sessions}} ({{sessPct}}%)\nAgent: {{agents}} ({{agentPct}}%)\nSự kiện: {{events}} ({{eventPct}}%)\n\nTổng: {{total}} bản ghi",
"total": "tổng",
"sessions": "Phiên",
"agents": "Agent",
"events": "Sự kiện",
"score": "Điểm sức khỏe",
"formula": "Công thức",
"cacheTip": "Tỉ lệ trúng cache transcript: {{pct}}% (chỉ để xem, không tính điểm — cache trống lại mỗi lần server khởi động)",
"compact": "Nén",
"compactTip": "Số lần nén transcript: {{count}}\nThu gọn cửa sổ ngữ cảnh bằng cách tóm tắt các lượt.",
"saved": "Tiết kiệm",
"savedTip": "Token thu hồi: {{tokens}}\nĐược giải phóng nhờ nén.",
"tokenUsage": "Sử dụng token",
"totalSuffix": "tổng {{value}}",
"modelTip": "{{model}}\nĐầu vào: {{input}}\nĐầu ra: {{output}}\nĐọc cache: {{cacheRead}}\nTỉ trọng: {{pct}}%",
"noModelData": "Chưa có dữ liệu mô hình",
"concurrency": "Đồng thời",
"intervals_one": "{{count}} loại agent",
"intervals_other": "{{count}} loại agent",
"concurrencyTip": "Đỉnh: {{peak}} phiên song song\nKhoảng có hoạt động: {{active}}\nTrung bình: {{avg}}",
"laneTip": "{{name}}\n{{count}} agent\nChạy từ {{start}}–{{end}}% thời lượng phiên (trung bình)",
"noConcurrencyData": "Chưa có dữ liệu đồng thời",
"peak": "Đỉnh",
"peakTip": "Đỉnh: {{count}} phiên chạy cùng lúc.",
"active": "Hoạt động",
"activeTip": "{{active}} trên {{total}} khoảng có phiên hoạt động.",
"avg": "TB",
"avgTip": "Mức đồng thời trung bình trên mọi khoảng.",
"toolUsage": "Sử dụng công cụ",
"top": "top {{count}}",
"invocationsTip_one": "{{tool}}: {{formatted}} lần gọi",
"invocationsTip_other": "{{tool}}: {{formatted}} lần gọi",
"noToolData": "Chưa có dữ liệu công cụ",
"subagentEffectiveness": "Hiệu quả subagent",
"defaultType": "mặc định",
"effectivenessTip": "{{type}}\nThành công: {{pct}}%\nTổng: {{total}} · OK: {{ok}} · Lỗi: {{errors}}",
"noSubagentData": "Chưa có dữ liệu subagent",
"integration": "Tích hợp",
"hooksActive": "Đang hoạt động",
"hookTip": "Đường dẫn: {{path}}\nTrạng thái: {{status}}",
"connected": "Đã kết nối",
"disconnected": "Mất kết nối",
"noHooks": "Chưa đăng ký hook dự án nào",
"wsTip": "Kết nối WebSocket: {{count}}\nGiao thức: RFC 6455",
"wsActive": "WebSocket đang hoạt động",
"connections_one": "{{count}} kết nối",
"connections_other": "{{count}} kết nối",
"platform": "Nền tảng",
"journalMode": "Chế độ journal",
"synchronous": "Đồng bộ",
"autoVacuum": "Tự dọn dẹp",
"foreignKeys": "Khóa ngoại",
"busyTimeout": "Thời gian chờ khóa",
"groupApp": "AgentHub",
"groupAppHint": "Tình trạng của chính dashboard: điểm, cơ sở dữ liệu, số phiên đồng thời",
"groupMachine": "Máy chủ",
"groupMachineHint": "Máy đang chạy AgentHub: CPU, bộ nhớ, ổ đĩa, tiến trình",
"groupActivity": "Hoạt động agent",
"groupActivityHint": "Agent đã dùng gì: token theo model, công cụ, subagent",
"scoreFormula": "100 trừ đi phần mỗi mục bị trừ:",
"scoreResult": "= {{score}} / 100",
"check": {
"loop": "Phản hồi AgentHub",
"cpu": "Chờ CPU",
"memory": "Chờ bộ nhớ",
"io": "Chờ ổ đĩa",
"ram": "RAM đang dùng",
"disk": "Ổ chứa dữ liệu",
"heap": "V8 heap",
"hooks": "Hook gần nhất",
"agents": "Agent lỗi 24h"
},
"checkTip": {
"loop": "Event loop của AgentHub bị nghẽn bao lâu (p99 trong phút vừa qua). Mọi trang, hook và phím gõ trong terminal đều phải chờ chừng ấy.",
"cpu": "Áp lực CPU (Linux PSI, 10 s gần nhất): tỉ lệ thời gian tác vụ phải chờ CPU rảnh — vài % trở lên là máy bắt đầu chậm.",
"cpuLoad": "Tải mỗi lõi (1 phút) — máy này không có PSI nên ước lượng chờ CPU từ load.",
"memory": "Áp lực bộ nhớ (Linux PSI, 10 s gần nhất): tỉ lệ thời gian tác vụ bị treo để thu hồi hoặc swap bộ nhớ.",
"io": "Áp lực I/O ổ đĩa (Linux PSI, 10 s gần nhất): tỉ lệ thời gian tác vụ phải chờ ổ đĩa — HDD chậm hoặc bận sẽ hiện ở đây.",
"ram": "Bộ nhớ đang dùng (tổng trừ phần còn khả dụng).",
"disk": "Mức đầy của ổ chứa cơ sở dữ liệu AgentHub ({{mount}}).",
"heap": "V8 heap của AgentHub so với giới hạn.",
"hooks": "Số phút từ hook gần nhất, chỉ tính khi có agent đang chạy: im lặng lúc đó nghĩa là dashboard không còn thấy agent.",
"agents": "Agent kết thúc với lỗi trong 24 giờ qua (lỗi / đã kết thúc; cần ít nhất 5)."
},
"checkNa": "Không đo được trên máy này — không trừ điểm.",
"checkThresholds": "Vàng từ {{warn}}{{unit}}, đỏ từ {{bad}}{{unit}}",
"checkPenalty": "Trừ {{n}} / tối đa {{max}} điểm",
"hooksMissing": "chưa cài",
"hooksIdle": "nghỉ",
"minutesAgo": "{{n}} phút trước",
"verdict": {
"ok": "Khỏe",
"warn": "Suy giảm",
"bad": "Có vấn đề"
},
"allOk": "Mọi mục đều ổn",
"badCount_one": "{{count}} đỏ",
"badCount_other": "{{count}} đỏ",
"warnCount_one": "{{count}} vàng",
"warnCount_other": "{{count}} vàng",
"lagGroup": "Độ trễ",
"systemGroup": "Tài nguyên & tín hiệu"
},
"errorBoundary": {
"title": "Đã xảy ra lỗi",
"body": "Không thể tải trang này. Tải lại thường sẽ khắc phục — ví dụ sau khi dashboard vừa được cập nhật.",
"reload": "Tải lại"
},
"host": {
"uptimeDays": "{{d}} ngày {{h}} giờ",
"uptimeHours": "{{h}} giờ {{m}} phút",
"cpu": "CPU",
"cpuHelp": "Tỷ lệ trên toàn máy: 100% nghĩa là mọi lõi đều bận.",
"memory": "Bộ nhớ",
"swap": "Swap",
"free": "trống",
"usageUnavailable": "Mức dùng theo người dùng được đọc từ /proc nên chỉ có trên Linux.",
"hostGroup": "Tài khoản máy chủ (AgentHub và tiến trình khác của host)",
"systemGroup": "Hệ thống (root và tài khoản khác)",
"homesBadge": "home",
"historyTitle": "Lịch sử",
"historyHelp": "Lưu trong bộ nhớ, mỗi {{s}} giây một điểm, từ khi máy chủ khởi động lúc {{at}}.",
"historyCpu": "CPU (% toàn máy)",
"historyMemory": "Bộ nhớ đã dùng (%)",
"range": "Khoảng thời gian",
"range1h": "1 giờ",
"range6h": "6 giờ",
"range24h": "24 giờ",
"coreN": "CPU {{n}}",
"threads": "{{n}} luồng",
"physical": "{{n}} lõi",
"perSecond": "{{v}}/giây",
"temperatures": "Nhiệt độ",
"topProcesses": "Tiến trình nặng nhất",
"cpuModel": "CPU",
"storageNetwork": "Ổ đĩa & mạng",
"processCount": "{{n}} tiến trình",
"title": "Máy chủ",
"os": "Hệ điều hành",
"uptime": "Thời gian chạy",
"load": "Tải (1/5/15 phút)",
"agenthubTip": "pid {{pid}} · Node {{node}}",
"sampling": "Đang lấy mẫu…",
"sampled": "mẫu {{s}} giây",
"historyNone": "Chưa có lịch sử — server chỉ giữ trong bộ nhớ trên Linux, tính từ lúc khởi động.",
"agenthub": "AgentHub",
"usersTitle": "Người dùng · CPU / RAM hiện tại",
"usersCount": "{{n}} người dùng"
}
}