Communitygithub.com

Piyush-Nagar/coding-agents-skills

你無法修復你看不見的東西。可觀測性必須內建在設計中,而非事後補救。如果為了回答生產環境的問題而需要修改程式碼,那表示儀器化機制出了問題。

coding-agents-skills 是什麼?

這個技能提供了可觀測性(Observability)的設計與實作原則,幫助開發者與AI代理建立具備日誌(logs)、指標(metrics)與追蹤(traces)三大支柱的系統。它強調結構化日誌、跨服務的關聯ID傳遞、每個端點的RED指標與每個資源的USE指標,並推薦使用OpenTelemetry進行追蹤。技能也涵蓋了警報應基於SLO而非原始指標、健康檢查與就緒檢查應分離、以及避免記錄PII或機密等最佳實務。透過這些規則,使用者可在任何支援Markdown的AI代理平台(如Claude Code、Cursor、Codex)上,確保系統可觀測性從設計階段就內建,而非事後補救。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Piyush-Nagar/coding-agents-skills/tree/HEAD/backend/core/nfr/observability

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

可觀測性

你無法修復你看不見的東西。可觀測性必須內建在設計中,而非事後補救。如果為了回答生產環境的問題而需要修改程式碼,那表示儀器化機制出了問題。

規則

  • 三大支柱:日誌、指標、追蹤。 每個支柱回答不同的問題——發生了什麼事(日誌)、發生多少與頻率(指標)、為何變慢(追蹤)。三者缺一不可。
  • 僅使用結構化日誌。 JSON(或類似格式)。在大規模環境中,grep並非可靠策略。
  • 每行日誌都包含關聯ID/追蹤ID。 透過跨服務邊界的標頭傳遞該ID。一個ID就能串起整個請求的旅程。
  • 每個端點都要有RED指標。 速率(Rate)、錯誤(Errors)、持續時間(Duration,包含P50/P95/P99)。這是發現迴歸問題的最低要求。
  • 每個資源都要有USE指標。 利用率(Utilization)、飽和度(Saturation)、錯誤(Errors)——針對CPU、記憶體、池、佇列、磁碟、網路。
  • 追蹤每個跨服務呼叫。 使用OpenTelemetry。資料庫查詢與快取命中也應記錄為跨度(spans)。
  • 根據SLO發出警報,而非原始指標。 「CPU > 80%」只會讓人類在凌晨三點無謂地被叫醒。「P99延遲違反SLO持續5分鐘」才能捕捉到真實的使用者痛點。
  • 健康檢查與就緒檢查是不同的端點。 /health = 「我還活著,不要重啟我。」/ready = 「我現在可以接受流量。」請確實區分。
  • 在正確的層級記錄,每個事件只記錄一次。 INFO 用於請求生命週期,WARN 用於可復原問題,ERROR 用於需要人類介入的情況。重複的日誌會讓儀表板失真。
  • 絕不記錄PII或機密。 在日誌附加器(appender)層級遮罩處理,不要依賴呼叫端記得做。
  • 每個警報都對應一份操作手冊。 沒有紀錄行動方案的警報,只是偽裝成呼叫的Slack通知。

警示訊號

  • 透過SSH登入Pod來除錯生產環境。
  • 定期觸發卻被忽略的警報。(警報疲勞是可靠性問題。)
  • 寫著 "error occurred" 但沒有上下文、沒有ID、沒有堆疊追蹤的日誌。
  • 只顯示平均值、沒有百分位數的指標。
  • 每個服務一個儀表板,但沒有任何工具是針對使用者旅程的。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

相關技能