Zed 中的遙測功能

更新至 v0.112.0

Zed 會收集匿名遙測資料,以協助團隊瞭解使用者如何使用應用程式,以及他們遇到哪些問題。

設定遙測設定

您可以完全控制 Zed 傳送哪些資料。若要啟用或停用部分或所有遙測類型,請透過命令面板中的 zed: open settings 開啟您的 settings.json 檔案。插入並調整以下內容

"telemetry": {
    "diagnostics": false,
    "metrics": false
},

您也可以透過 welcome 畫面設定遙測設定,您可以透過命令面板中的 workspace: welcome 動作叫用該畫面。

資料流

遙測資料會從應用程式傳送到我們的伺服器。資料會透過我們的伺服器進行代理,讓我們能夠輕鬆切換分析服務。我們目前使用

  • Axiom:雲端監控服務 - 儲存診斷事件
  • Clickhouse:商業智慧平台 - 儲存診斷和指標事件
  • Metabase:儀表板 - 圍繞從 Clickhouse 提取的資料建立的儀表板

遙測類型

診斷

診斷事件包含來自當機報告的除錯資訊(堆疊追蹤)。報告會在當機發生後的第一次應用程式啟動時傳送。我們建立了儀表板,讓我們可以視覺化使用者遇到的問題的頻率和嚴重程度。自動傳送這些報告讓我們能夠開始實作修復,而無需使用者在我們的問題追蹤器中提交報告。儀表板中的圖表也讓我們可以非正式地衡量 Zed 的穩定性。

發生緊急狀況時,會傳送以下資料

PanicRequest

  • panic:緊急狀況資料
  • token:用於在 zed.dev 上驗證請求的識別碼

Panic

  • thread:發生緊急狀況的執行緒的名稱
  • payload:緊急狀況訊息
  • location_data:緊急狀況的位置
    • 檔案
  • backtrace:緊急狀況的回溯
  • app_version:Zed 的應用程式版本
  • release_channel:Zed 的發佈管道
    • 穩定版
    • 預覽版
    • 開發版
  • os_name:您的作業系統的名稱
  • os_version:您的作業系統的版本
  • architecture:您的 CPU 的架構
  • panicked_on:發生緊急狀況的時間
  • installation_id:每個 Zed 安裝的唯一識別碼(穩定版、預覽版和開發版的識別碼不同)
  • session_id:每個 Zed 工作階段的唯一識別碼(每次開啟 Zed 時的識別碼不同)

指標

Zed 也會根據使用者動作收集指標資訊。指標事件透過 HTTPS 報告,並且請求會受到速率限制,以避免使用大量的網路頻寬。所有資料都保持匿名,並且無法與特定的 Zed 使用者相關聯。

會傳送以下資料

ClickhouseEventRequestBody

  • token:用於在 zed.dev 上驗證請求的識別碼
  • installation_id:每個 Zed 安裝的唯一識別碼(穩定版、預覽版和開發版的識別碼不同)
  • session_id:每個 Zed 工作階段的唯一識別碼(每次開啟 Zed 時的識別碼不同)
  • is_staff:一個布林值,表示使用者是否是 Zed 團隊的成員
  • app_version:Zed 的應用程式版本
  • os_name:您的作業系統的名稱
  • os_version:您的作業系統的版本
  • architecture:您的 CPU 的架構
  • release_channel:Zed 的發佈管道
    • 穩定版
    • 預覽版
    • 開發版
  • events:一個 ClickhouseEventWrapper 向量

ClickhouseEventWrapper

  • signed_in:一個布林值,表示使用者是否已登入
  • event:一個列舉,其中每個變數都可以是以下 ClickhouseEvent 變數之一

ClickhouseEvent

  • editor
    • operation:執行的編輯器操作
      • open
      • save
    • file_extension:開啟或儲存的檔案的副檔名
    • vim_mode:一個布林值,表示使用者是否處於 vim 模式
    • copilot_enabled:一個布林值,表示使用者是否已啟用 Copilot
    • copilot_enabled_for_language:一個布林值,表示使用者是否已為開啟或儲存的檔案的語言啟用 Copilot
    • milliseconds_since_first_event:此事件的時間戳記與目前批次中第一個事件的時間戳記之間的時間長度
  • copilot
    • suggestion_accepted:一個布林值,表示是否已接受建議
    • file_extension:開啟或儲存的檔案的檔案副檔名
    • milliseconds_since_first_event:同上
  • call
    • operation:執行的通話操作
      • 接受來電
      • 拒絕來電
      • 停用麥克風
      • 停用螢幕共享
      • 啟用麥克風
      • 啟用螢幕共享
      • 掛斷
      • 邀請
      • 加入頻道
      • 開啟頻道筆記
      • 共享專案
      • 取消共享專案
    • room_id:會議室的 ID
    • channel_id:頻道的 ID
    • milliseconds_since_first_event:同上
  • assistant
    • conversation_id:對話的 ID(僅限面板事件)
    • kind:具有以下變數的列舉
      • panel
      • inline
    • model:使用的模型
    • milliseconds_since_first_event:同上
  • cpu
    • usage_as_percentage:CPU 使用率
    • core_count:CPU 的核心數
    • milliseconds_since_first_event:同上
  • memory
    • memory_in_bytes:使用的記憶體量(以位元組為單位)
    • virtual_memory_in_bytes:使用的虛擬記憶體量(以位元組為單位)
    • milliseconds_since_first_event:同上
  • app
    • operation:執行的應用程式操作
      • 第一次開啟
      • open
      • 關閉
    • milliseconds_since_first_event:同上

您可以透過從命令面板執行 zed: open telemetry log 命令,或在應用程式選單中點擊 說明 > 檢視遙測記錄,來稽核 Zed 已報告的指標資料。

您也可以透過 welcome 畫面設定遙測設定,您可以透過命令面板中的 workspace: welcome 動作叫用該畫面。

疑慮和問題

如果您對遙測有任何疑慮,請隨時在我們的 Zed 儲存庫 中開啟議題。