跳到內容

實作四:追到慢的那一步

**目標:**用一條 trace 連起同一次任務,分清拒絕、故障與效能問題。

Trace 是整次任務,span 是其中一段工作。本課記錄目錄讀取、授權判定、發證、SQL 查詢與撤銷。SDK 將資料送往 Collector,再存入 Jaeger。畫面的瀑布圖讀取真實 trace,不是動畫中的示意資料。

  1. 執行「查詢我的訂單」,到「執行追蹤」讀取最近一次追蹤。
  2. 找到 agent.order_task 與各子 span,記錄 database.query 耗時。
  3. 執行「注入 0.8 秒慢查詢」,重新讀取追蹤,指出變慢的 span。
  4. 執行「注入工具錯誤」,比較錯誤狀態;注意憑證仍要撤銷。
  5. 執行未授權查詢,確認沒有 credentials.issue 和 database.query。
問題 你應提出的證據
哪一步變慢? database.query 的耗時比較
為什麼沒查資料? authorization.check 的拒絕結果與缺少後續 span
故障後憑證是否清理? credentials.revoke span
成功是否等於回答正確? 不等於;還要核對資料定義與結果評估

本課 trace 保留約 3 天;它不是不可竄改的稽核帳本。正式系統需要另行設計保留、存取、個資處理與追蹤取樣。不要把卡號、密碼、CVC 或 API token 放進 span attributes。

閱讀:Learning OpenTelemetry;Python instrumentation 官方文件。