跳轉到內容
supastack
瀏覽檔案
WebNext.js

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /zh-tw/docs/web/setup-observability.md (or send Accept: text/markdown).

設定可觀測性

錯誤追蹤、產品分析和失敗告警,全部可選。

詢問本指南
開啟方式

當操作失敗時查詢有用的資訊

可觀察性意味著檢視您的應用程式做了什麼。從執行 Web 伺服器的終端開始:重複一個失敗的操作並讀取第一個錯誤和任何相關 ID(連結來自同一請求的訊息的標籤)。尋求幫助時分享命令、時間和已清理的錯誤;不要共享 .env 檔案或令牌。

對於託管錯誤報告,請按照執行狀況和操作在 apps/web/.env.local 或主機的環境儀錶板中配置支援的監控設定。儲存並重啟伺服器。在測試環境中觸發受控測試失敗,並確認它在正確的工作區上下文中出現。正在配置的監視並不能證明它收到了事件。

ALERT_WEBHOOK_URL 是作業和終端 Webhook 傳遞失敗警報的可選 HTTPS 目標。如果需要,建立一個相容的傳入端點並將其URL伺服器端儲存起來;否則將其留空。要求代理模擬一次故障並準確確認一次警報,且文本中不包含任何秘密。請勿在此測試中觸發付費工作或客戶帳戶失敗。

保留工作區審計軌跡

審計記錄捕獲工作區內諸如供應商配置更新之類的變更。讀寫這些記錄前,先解析已認證的工作區;新增產品事件時也要保持這個邊界。

記錄動作與理解它所需的識別符號。供應商憑證等敏感值必須留在審計載荷與日誌之外。

採集產品事件

可觀測性包暴露 AnalyticsClient 介面卡與按工作區劃界的 AnalyticsEvent。每個事件帶有名稱、獨立身份、workspaceId 與可選屬性。

用 createObservability 把事件路由到你配置的分析客戶端。結構化屬性在投遞前會脫敏;同樣要把敏感的自由文本留在事件名與屬性值之外。

攜帶安全上下文上報錯誤

ErrorClient 用 workspaceId 標籤與結構化附加上下文捕獲異常。共享的可觀測性層在轉發給配置的客戶端之前,會清洗異常並脫敏敏感上下文。

用本地介面卡驗證捕獲的事件與異常,而不用呼叫監控供應商。在啟用外部目的地之前,測試工作區標籤仍在、憑證已被移除。

跨任務、作業和 Webhook 跟蹤請求

條目邊界建立一個 corr_<uuid> 相關 ID,將原始請求連結到它觸發的工作。 AI 任務提交會在任務負載和 ai_task_subscribed 事件上標記 id,每個計費 Webhook 接收器為每個請求建立一個,排程程式為每個分派作業建立一個。

相同的 id 包含 job.completed 和 ai_task_completed 事件屬性、captureException 額外內容、webhook_event ledger 有效負載和每個 webhook_delivery 有效負載元 — 因此它位於訂閱者收到的簽名主體內。丟失或格式錯誤的 ID 是可以容忍的:消費者建立一個新的 ID,而不是拒絕舊的行。

對實際故障發出警報

將 ALERT_WEBHOOK_URL 設定為接受 JSON POST 形狀的 {text, name,嚴重性, context} 的任何 HTTPS 端點; Slack 風格的傳入 Webhook 按原樣工作。警報是一勞永逸的,有五秒超時,失敗的傳遞會記錄一個控制台警告,並且在變數未設定時警報器不會執行任何操作。

傳送的警報是 job.failed (警告 - 作業處理程序丟擲或作業型別未知)和 webhook.delivery_failed (嚴重 - 僅當傳出交付在最終嘗試後達到終端故障時;普通重試保持安靜,每個交付行最多發出一次警報)。

測量持續時間並流式傳輸結構化日誌

serverObservability.measure 對非同步操作進行計時,並在成功和失敗時發出攜帶urationMs 的 <name>.duration 分析事件,而不掩蓋原始錯誤。 ai.task.execute 作業執行已打包,因此任務執行持續時間會落在配置的分析客戶端中。

serverObservability.logger 將每條記錄寫入一行 JSON 到 stdout,其中包含環境和服務基礎欄位;共享編輯層在發出任何行之前剝離秘密。

安裝與配置

1. 設定 SENTRY_DSN 以報告錯誤;捕獲的異常會帶有請求關聯 ID 和工作區標籤。

2. 設定 NEXT_PUBLIC_POSTHOG_KEY 和 NEXT_PUBLIC_POSTHOG_HOST 以啟用產品分析;它們按設計會公開給瀏覽器。

3. 將 ALERT_WEBHOOK_URL 設定為相容 Slack 的端點以接收失敗告警;應用會傳送包含 {text, name, severity, context} 的 JSON。

SENTRY_DSN=https://…@….ingest.sentry.io/…

NEXT_PUBLIC_POSTHOG_KEY=phc_…
NEXT_PUBLIC_POSTHOG_HOST=https://us.i.posthog.com

ANALYTICS_PROVIDER=off    # off | local | plausible | posthog
# ANALYTICS_SITE_ID=
# ANALYTICS_HOST=

ALERT_WEBHOOK_URL=https://hooks.slack.com/services/…

實現流程

可觀測性層會清理異常內容,並在轉發前隱藏已知金鑰;但自由填寫的事件文本由編寫者負責,請勿把憑據放入事件名稱或屬性值。

本地介面卡允許測試斷言捕獲的事件和異常,不會呼叫 Sentry 或 PostHog;本地執行無需這些變數。

事件已開始流動?繼續閱讀《設定自定義域名》。

驗證與排障

觸發測試異常並確認它進入 Sentry 且金鑰已從資料中移除,然後檢查配置的失敗是否會向 ALERT_WEBHOOK_URL 傳送 POST。如果收不到事件,請確認 DSN/金鑰配對正確,且伺服器能訪問該主機。

如果你想繼續完成設定,可以閱讀《設定自定義域名》。

常見問題

14 個問題

supastack 是什麼?

supastack 是用於構建 AI 驅動 SaaS 產品的模組化基礎。它把通用基礎設施整合在一起,讓你專注於產品專屬的功能。

它支援 Web 和移動端嗎?

支援。supastack 包含 Next.js 與 Expo 應用,作為 Web 與移動端體驗的起點。

包含哪些認證方式?

Better Auth 覆蓋郵箱/密碼、OTP 與社交登入。個人工作區隨賬戶一起開通,產品記錄從第一天起就有邊界。

AI 是如何支援的?

supastack 包含可配置的多供應商 AI、用量追蹤、預算,以及加密的自帶金鑰(BYOK)支援。

訂閱如何處理?

對於基於該套件構建的產品,Stripe 計費、訂閱與許可權構成付費訪問的基礎。供應商金鑰僅存於服務端。

我的產品專屬程式碼放在哪裡?

產品專屬功能保留在獨立的程式碼庫中,產品通過配置接入 supastack 的基礎模組。

supastack 如何定價?

套件為一次性購買、終身更新:單棧 249 美元(Next.js(Web)、Expo(iOS 與 Android)、Tauri(macOS 與 Windows 桌面)倉庫任選其一),雙棧 398 美元(任選兩個倉庫),或完整套裝 399 美元(全部三個倉庫與完整 monorepo),每個額外開發者席位 75 美元。套件本身沒有訂閱。本站結賬後通過郵件傳送許可證金鑰,倉庫訪問通過 GitHub 邀請授予。

工作區如何界定我的資料?

使用者記錄按 workspaceId 劃定邊界。身份、許可權、AI 用量、計費事件與審計條目都留在個人工作區邊界內。

後臺任務如何工作?

Trigger.dev 是明確的任務執行時。JobRunner 契約只承諾 enqueue、status 與 cancel——工作流語義保持 Trigger.dev 專有且顯式。

郵件與營銷觸達有何不同?

事務性郵件覆蓋產品工作流,如任務完成通知。冷觸達與營銷活動屬於產品自身的範疇,不在本套件的郵件模組內。

移動端購買如何運作?

移動端已支援 RevenueCat 原生購買和恢復購買,訪問許可權由服務端驗證。釋出前需配置商店賬戶並完成裝置測試。Web 計費保持獨立。

AI 供應商金鑰存放在哪裡?

自帶金鑰憑證經過加密且僅存於服務端。金鑰在日誌中被脫敏;用量與預算在工作區級別保持可見。

結賬支援哪些付款方式?

Stripe 託管結賬接受銀行卡,在 Stripe 賬戶啟用後還可提供支付寶與微信支付——方便中國買家。錢包授權為非同步確認,付款完成後許可證頁面會立即更新。

我能申請退款嗎?

獲得程式碼倉庫訪問許可權後,supastack 將永久歸你所有,因此無法退款。但請放心,你將獲得包含終身更新的完整原始碼,可為你自己或客戶構建併發布無限數量的產品。你只需注意不能轉賣程式碼,也不能將倉庫作為啟動模板二次分發。唯一的例外是上線返現——上線一款用 supastack 打造的真實產品並公開分享,在購買後 60 天內達到 5,000 次自然瀏覽或 50 個自然按讚,即可退還已付款項的 50%;詳見條款。

TW
主題