Feat/monitor (#1928)

* feat: add monitor

* feat: fix tab

* feat: work

* feat: not reliable monitor

* feat: enhance monitoring page layout with integrated filters and refresh button

* feat: add support for runner recording

* feat: add jump button & alignment

* feat: new

* fix: not show query variables in local agent

* fix: pnpm lint and python ruff check

* fix: ruff fromat

* chore: remove unnecessary migration

* style: optimize monitoring page layout and fix sticky filter issues

- Enhanced metric cards with gradient backgrounds and hover effects
- Increased traffic chart height from 200px to 300px
- Adjusted grid layout and spacing for better visual appeal
- Fixed sticky filter area to properly cover parent padding without transparent gaps
- Used negative margins and positioning to eliminate scrolling artifacts
- Matched padding/margins with other pages (pipelines, bots) for consistency
- Removed duplicate title/subtitle from page content
- Added cursor-pointer styling to tab triggers
- Removed border between tab list and tab content

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix: apply prettier formatting to monitoring components

- Fixed indentation and spacing in MetricCard.tsx
- Fixed formatting in TrafficChart.tsx
- Applied prettier formatting to page.tsx

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* feat: update HomeSidebar to trigger action on child selection and localize monitoring titles

* refactor: streamline LLM and embedding invocation methods

* feat: add embedding model monitor

* fix: database version

* chore: simplify pnpm-lock.yaml formatting

---------

Co-authored-by: Junyan Qin <rockchinq@gmail.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Guanchao Wang
2026-01-26 21:08:23 +08:00
committed by GitHub
parent b73847f1a6
commit 5d9f6ec763
37 changed files with 6706 additions and 3182 deletions
+116
View File
@@ -760,6 +760,122 @@ const zhHant = {
setPasswordHint: '設定密碼後可使用電子郵件密碼登入',
spaceEmailMismatch: 'Space登入帳號電子郵件與本實例帳號電子郵件不匹配',
},
monitoring: {
title: '日誌監控',
description: '監控機器人活動、LLM調用和系統效能',
overview: '概覽',
totalMessages: '總訊息數',
llmCallsCount: 'LLM調用',
modelCallsCount: '模型調用',
successRate: '成功率',
activeSessions: '活躍會話',
last24Hours: '最近24小時',
filters: {
title: '篩選',
bot: '機器人',
pipeline: '流水線',
allBots: '全部機器人',
selectBot: '選擇機器人',
allPipelines: '全部流水線',
selectPipeline: '選擇流水線',
loading: '載入中...',
timeRange: '時間範圍',
customRange: '自訂範圍',
from: '從',
to: '到',
apply: '套用',
reset: '重置篩選',
lastHour: '最近1小時',
last6Hours: '最近6小時',
last24Hours: '最近24小時',
last7Days: '最近7天',
last30Days: '最近30天',
},
tabs: {
messages: '訊息記錄',
llmCalls: 'LLM調用',
embeddingCalls: 'Embedding調用',
modelCalls: '模型調用',
sessions: '會話分析',
errors: '錯誤日誌',
},
messageList: {
timestamp: '時間戳記',
bot: '機器人',
pipeline: '流水線',
message: '訊息',
sessionId: '會話ID',
status: '狀態',
actions: '操作',
viewDetails: '查看詳情',
copyId: '複製ID',
noMessages: '未找到訊息',
noMessagesDescription: '嘗試調整篩選條件或稍後查看',
loading: '載入訊息中...',
loadMore: '載入更多',
autoRefresh: '自動重新整理',
platform: '平台',
user: '使用者',
level: '級別',
runner: '執行器',
viewConversation: '顯示對話詳情',
},
llmCalls: {
model: '模型',
tokens: '代幣數',
duration: '持續時間',
cost: '成本',
noData: '未找到LLM調用記錄',
inputTokens: '輸入代幣',
outputTokens: '輸出代幣',
totalTokens: '總代幣數',
},
embeddingCalls: {
title: 'Embedding調用',
model: '模型',
tokens: '代幣數',
duration: '持續時間',
noData: '未找到Embedding調用記錄',
promptTokens: '輸入代幣',
totalTokens: '總代幣數',
inputCount: '輸入數量',
knowledgeBase: '知識庫',
queryText: '查詢文字',
},
modelCalls: {
title: '模型調用',
llmModel: '對話模型',
embeddingModel: '嵌入模型',
embeddingCall: '嵌入調用',
retrieveCall: '檢索調用',
noData: '未找到模型調用記錄',
},
sessions: {
sessionId: '會話ID',
messageCount: '訊息數',
duration: '持續時間',
lastActivity: '最後活動',
noSessions: '未找到會話',
startTime: '開始時間',
},
errors: {
errorType: '錯誤類型',
errorMessage: '錯誤訊息',
occurredAt: '發生時間',
noErrors: '未找到錯誤',
stackTrace: '堆疊追蹤',
title: '錯誤',
},
messageDetails: {
noData: '此查詢沒有LLM調用或錯誤記錄',
},
queryVariables: {
title: '查詢變數',
},
viewMonitoring: '查看日誌監控',
refreshData: '重新整理資料',
exportData: '匯出資料',
},
};
export default zhHant;