# Phân Tích Các Chỉ Số Giám Sát (Metrics & Series)

Hàm `_fetch_live_snapshot` chịu trách nhiệm tổng hợp toàn bộ các chỉ số quan trọng trong khoảng thời gian `window_minutes` (thường là 20 phút) thông qua việc phân tích mảng traces trả về từ Langfuse REST API.

## 1. Top-Level Metrics
Các chỉ số tổng quan được tính toán tức thời:
- **Total Traces**: Tổng số lượng request / trace đã xử lý (lấy 100 traces gần nhất).
- **Active Sessions**: Số lượng phiên hoạt động duy nhất (dựa trên `sessionId`).
- **Total Cost (USD)**: Tổng chi phí token ước tính cho window hiện tại (`sum(totalCost)`).
- **Avg Latency (s)**: Thời gian phản hồi trung bình của hệ thống đối với LLM.
- **Error Rate (%)**: Tỷ lệ phần trăm các traces bị lỗi (`level == 'ERROR'`).
- **Peak Metrics**: Nhận diện số lượng traces, độ trễ và chi phí cao nhất đo được theo mỗi phút.

## 2. Biểu đồ Time Series (Per-Minute)
Hàm `_build_series` chia nhỏ `window_minutes` thành từng slot thời gian 1 phút để tạo dữ liệu cho biểu đồ:
- **Traffic**: Đếm số traces trong mỗi phút (`traces` array).
- **Latencies**: Latency trung bình trên từng phút.
- **Costs**: Tổng chi phí USD của từng phút.
- **Errors**: Đếm số lượng lỗi xảy ra trong phút đó.

## 3. Phân Khúc Model (Model Mix)
Nhóm traces theo tên mô hình LLM (`name`) để lọc ra **Top 6 Model** đang được dùng nhiều nhất, cung cấp:
- Số lượng traces của mỗi model.
- Tổng chi phí (`total_cost_usd`) theo model.
- Latency trung bình của model.
- Thị phần sử dụng theo phần trăm (`share_pct`).

## 4. Activity Feed (Sự kiện mới nhất)
Danh sách 12 sự kiện hoặc câu lệnh gần nhất (latest events) để hiển thị luồng dữ liệu thời gian thực. Mỗi sự kiện bao gồm:
- `trace_id` và `session_id`.
- Tuổi thọ tính bằng giây (`age_seconds`).
- Mức độ nghiêm trọng `severity`:
  - `error` (nếu trace level là ERROR)
  - `warn` (nếu latency >= 12 giây)
  - `ok` (hoạt động bình thường)
