Syncline icon

Syncline

Syncline 是開源、可自行託管的可觀測性工具,將瀏覽器工作階段回放與 OpenTelemetry 分散式追蹤及資料庫活動串於同一時間軸,協助工程團隊追查使用者問題。

Syncline

將工作階段回放與分散式追蹤連結

Syncline 是開源、可自行託管的可觀測性工具,將瀏覽器工作階段回放與後端分散式追蹤連結起來。它會將使用者工作階段記錄為回放,使用 W3C trace context 連結請求,並在共用時間軸上顯示相關的網路、服務和資料庫活動。

此產品旨在縮短必須將瀏覽器端症狀與伺服器端工作相互比對的調查流程。您可以從使用者互動,經過後端 span 樹,一路追蹤至資料庫查詢;同時,檢視器會區分時間上的不確定性,而不是依賴可能造成誤導的僅以時間戳記為基礎的連結。

核心功能

同步的工作階段與追蹤檢視

擷取瀏覽器工作階段,並在同步的檢視器時間軸上,將網路請求、後端 span 和資料庫活動置於其下方。

瀏覽器至後端的追蹤連結

瀏覽器 SDK 會針對已設定的來源修補 fetch 和 XHR、附加 W3C trace context,並將追蹤識別碼寫入 rrweb 錄製內容。

OTLP 擷取

接受標準 OpenTelemetry 資料,不要求使用 Syncline 專用的後端 SDK。現有匯出器可以直接傳送資料,或由 collector 將資料與其他追蹤供應商的資料一併分流。

請求層級調查

顯示 db.statement、HTTP 狀態、服務和 trace ID 等 span 屬性,並讓使用者點選請求,將時間軸聚焦於該請求周圍。

分離式儲存與處理

使用 Postgres 進行索引、S3 相容物件儲存區儲存錄製內容,並使用 Redis 搭配 BullMQ 處理佇列工作。API 會將承載資料串流至儲存區,worker 則負責驗證和索引。

以隱私為導向的擷取預設值

提供以隱私為導向的遮罩和受限擷取預設值,包括遮罩輸入內容、移除查詢值、移除 URL 片段,以及不擷取標頭或請求主體。

實際使用情境

  • 調查載入緩慢或失敗的結帳流程

    從使用者錄製的互動開始,找出當下觸發的請求,並檢查下游服務和資料庫 span,無需手動對齊分開使用的工具。

  • 說明使用者回報的效能問題

    利用回放了解使用者點選、輸入或放棄了什麼,再檢查相應的追蹤,以區分問題源自瀏覽器、網路、後端或資料庫。

  • 偵錯特定的正式環境請求

    在檢視器中點選請求,將焦點移至周邊時間區間,並檢查其完整的 span 屬性,包括 HTTP 狀態、提供服務的服務、trace ID 和資料庫陳述式。

  • 分享可重現的事件記錄

    匯出工作階段錄製內容並分享以供調查;嵌入 rrweb 串流中的追蹤識別碼可讓錄製內容保留其追蹤連結,而不必依賴獨立的關聯表。

  • 自行託管的可觀測性工作流程

    將堆疊部署在組織的基礎架構內,讓工作階段錄製內容保留在自有的 Postgres、Redis 和 S3 相容儲存區,而不離開網路。

Pros and Cons

Pros

  • 依據 AGPL-3.0 授權條款開源,並可自行託管。
  • 透過追蹤識別碼將回放事件連結至追蹤,而非僅依賴瀏覽器與伺服器時鐘的對齊。
  • 可搭配標準 OpenTelemetry 匯出器運作,且不需要 Syncline 後端 SDK。
  • 將錄製內容儲存在關聯式資料庫之外,並透過 worker 佇列以非同步方式處理擷取資料。
  • 提供具體的擷取防護措施,包括預設輸入遮罩,以及排除標頭和請求主體。

Cons

  • 文件所述的部署方式由使用者自行管理,並需要操作 Postgres、Redis、MinIO 或其他 S3 相容儲存區,以及多個 Node 程序。
  • 後端可見性取決於服務是否匯出 OpenTelemetry 資料,以及追蹤內容是否持續貫穿請求。
  • 提供的網站證據中未找到定價頁面,因此尚未確定商業條款。

FAQ

Syncline 的功能是什麼?

Syncline 將瀏覽器工作階段回放與後端分散式追蹤及資料庫 span 結合。瀏覽器 SDK 會記錄工作階段,並使用 W3C trace context 將請求連結至追蹤;檢視器則在同一時間軸上顯示相關的網路、後端及資料庫活動。

如何安裝 Syncline?

文件所述的自行託管設定會在 Docker 中使用 Postgres、Redis 和 MinIO,另加三個 Node 程序,分別用於 API、worker 和網頁應用程式。快速入門需要 Node 22 或更新版本及 pnpm;文件說明設定約需五分鐘,主要時間用於拉取映像檔。

Syncline 是否需要變更後端應用程式?

不需要 Syncline 後端 SDK。現有服務可以將標準 OpenTelemetry 資料匯出至 Syncline;快速入門說明後端設定只需兩個環境變數和一個 CORS 標頭。瀏覽器 SDK 必須設定專案的公開金鑰、端點和允許的追蹤來源。

Syncline 如何處理錄製內容的存取與敏感資料?

錄製內容使用公開專案金鑰和來源允許清單。OpenTelemetry 擷取使用專案的密鑰;密鑰只會顯示一次,並以雜湊值儲存。輸入內容預設會遮罩;錄製的 URL 會移除查詢值、捨棄片段,且不會擷取標頭和請求主體。

當瀏覽器與伺服器的時鐘不一致時會發生什麼情況?

瀏覽器會為錄製的工作階段選擇取樣,因此錄製中的請求會強制設定 sampled=1。這有助於確保在可供調查的工作階段存在時,保留相應的後端 span。當瀏覽器與伺服器的時間不同步時,span 的位置仍可能顯示不確定性區段。

Quick Facts

類別
開發者工具;可觀測性
部署方式
自行託管
授權條款
AGPL-3.0
主要工作流程
將工作階段回放與 OpenTelemetry 追蹤建立關聯
核心技術堆疊
瀏覽器 SDK、Node API 和 worker、網頁檢視器、Postgres、Redis 及 S3 相容物件儲存
來源網域
syncline.co.in