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

View File

@@ -811,6 +811,123 @@ const jaJP = {
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 jaJP;