# #127 Sentry Session Replay 效能評估報告

> **測試日期**: 2026-03-31 16:09 (台北時間)
> **測試工具**: Lighthouse 13.0.3
> **測試 URL**: https://awoooi.wooo.work
> **Replay 配置**: replaysSessionSampleRate=0.1, replaysOnErrorSampleRate=1.0

---

## 效能指標摘要

| 指標 | 數值 | 目標 | 狀態 | 說明 |
|------|------|------|------|------|
| **Performance Score** | 84% | >80% | ✅ 通過 | 整體良好 |
| **LCP (Largest Contentful Paint)** | 4.4s | <2.5s | ⚠️ 需優化 | 最大內容渲染較慢 |
| **FCP (First Contentful Paint)** | 0.9s | <1.8s | ✅ 優秀 | 首次繪製快速 |
| **CLS (Cumulative Layout Shift)** | 0 | <0.1 | ✅ 優秀 | 無佈局偏移 |
| **TBT (Total Blocking Time)** | 10ms | <200ms | ✅ 優秀 | 阻塞時間極短 |
| **Speed Index** | 3.0s | <3.4s | ✅ 通過 | 視覺完成速度 |
| **TTI (Time to Interactive)** | 4.4s | <3.8s | ⚠️ 需優化 | 可交互時間較長 |

---

## Sentry Replay 影響分析

### 觀察結果

1. **Lazy Loading**: Sentry SDK 採用延遲載入策略
   - 初次頁面載入時未觀察到 Sentry 相關網路請求
   - Replay 模組僅在需要時動態載入

2. **採樣率配置**:
   ```typescript
   replaysSessionSampleRate: 0.1,  // 10% 隨機 session
   replaysOnErrorSampleRate: 1.0,  // 100% 錯誤 session
   ```

3. **Bundle 影響**:
   - 未觀察到顯著的 JavaScript bundle 增加
   - 未影響 TBT (Total Blocking Time)

### 結論

**Sentry Session Replay 對初始載入效能影響極低**

原因:
- Lazy loading 策略
- 10% 採樣率避免大量 session 錄製
- 異步載入不阻塞主線程

---

## LCP/TTI 優化建議 (非 Replay 相關)

LCP 和 TTI 較慢的根因分析:

1. **Dashboard API 請求延遲**
   - 多個並行 API 請求 (health, incidents, approvals)
   - 建議: 實作 API 聚合或 BFF 合併端點

2. **SSR/ISR 優化**
   - 當前完全 CSR (Client-Side Rendering)
   - 建議: 評估 ISR (Incremental Static Regeneration) 可行性

3. **圖片/字體優化**
   - 確認 VT323 字體使用 font-display: swap
   - 確認關鍵圖片使用 priority 預載

---

## 測試詳情

```json
{
  "performance_score": 0.84,
  "lcp": 4400.75,
  "fcp": 945.25,
  "cls": 0,
  "tbt": 11,
  "speed_index": 2969.08,
  "tti": 4402.80
}
```

---

## 建議後續行動

| # | 行動 | 優先度 | 預估工時 |
|---|------|--------|----------|
| 1 | API 聚合端點 (BFF 合併) | P2 | 2h |
| 2 | ISR 評估與實作 | P3 | 4h |
| 3 | 字體 preload 優化 | P3 | 30min |

**Replay 相關**: 維持現有配置，無需調整

---

*報告生成: Claude Code (#127 Replay Performance Evaluation)*
