Zedにおけるテレメトリ

v0.112.0 最新版

Zedは、アプリケーションの使用方法やユーザーが経験する問題の種類を理解するために、匿名のテレメトリデータを収集します。

テレメトリ設定の構成

Zedから送信されるデータは完全に制御できます。テレメトリの種類の一部またはすべてを有効または無効にするには、コマンドパレットから`zed: open settings` を使用して`settings.json`ファイルを開きます。以下の内容を入力して調整してください。

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

テレメトリ設定は、コマンドパレットで`workspace: welcome`アクションを使用して呼び出すことができる`welcome`画面からも構成できます。

データフロー

テレメトリはアプリケーションからサーバーに送信されます。データはサーバーを介してプロキシされるため、分析サービスを簡単に切り替えることができます。現在、以下を使用しています。

  • Axiom:クラウドモニタリングサービス - 診断イベントを保存
  • Clickhouse:ビジネスインテリジェンスプラットフォーム - 診断イベントとメトリックイベントの両方を保存
  • Metabase:ダッシュボード - Clickhouseから取得したデータに基づいて構築されたダッシュボード

テレメトリの種類

診断情報

診断イベントには、クラッシュレポートからのデバッグ情報(スタックトレース)が含まれます。レポートは、クラッシュが発生した後の最初のアプリケーション起動時に送信されます。私たちは、ユーザーが経験する問題の頻度と深刻度を視覚化できるダッシュボードを構築しました。これらのレポートを自動的に送信することで、ユーザーが問題追跡システムにレポートを送信する必要なく、修正の実装を開始できます。ダッシュボードのグラフは、Zedの安定性の非公式な測定値も提供します。

パニックが発生した場合、次のデータが送信されます。

PanicRequest

  • panic:パニックデータ
  • token:zed.devでリクエストを認証するために使用される識別子

Panic

  • thread:パニックが発生したスレッドの名前
  • payload:パニックメッセージ
  • location_data:パニックの場所
    • ファイル
  • backtrace:パニックのバックトレース
  • app_version:Zedのアプリケーションバージョン
  • release_channel:Zedのリリースチャンネル
    • stable
    • preview
    • dev
  • os_name:オペレーティングシステムの名前
  • os_version:オペレーティングシステムのバージョン
  • architecture:CPUのアーキテクチャ
  • panicked_on:パニックが発生した時刻
  • installation_id:Zedの各インストールに固有の識別子(stable、preview、devビルドで異なります)
  • session_id:各Zedセッションに固有の識別子(Zedを起動するたびに異なります)

メトリック

Zedは、ユーザーアクションに基づいてメトリック情報を収集します。メトリックイベントはHTTPSを介して報告され、リクエストはレート制限されるため、大量のネットワーク帯域幅を使用することはありません。すべてのデータは匿名のままとなり、特定のZedユーザーに関連付けることはできません。

次のデータが送信されます。

ClickhouseEventRequestBody

  • token:zed.devでリクエストを認証するために使用される識別子
  • installation_id:Zedの各インストールに固有の識別子(stable、preview、devビルドで異なります)
  • session_id:各Zedセッションに固有の識別子(Zedを起動するたびに異なります)
  • is_staff:ユーザーがZedチームのメンバーかどうかを示すブール値
  • app_version:Zedのアプリケーションバージョン
  • os_name:オペレーティングシステムの名前
  • os_version:オペレーティングシステムのバージョン
  • architecture:CPUのアーキテクチャ
  • release_channel:Zedのリリースチャンネル
    • stable
    • preview
    • dev
  • eventsClickhouseEventWrapperのベクトル

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が報告したメトリックデータを監査できます。

テレメトリ設定は、コマンドパレットで`workspace: welcome`アクションを使用して呼び出すことができる`welcome`画面からも構成できます。

懸念事項と質問

テレメトリについて懸念事項がある場合は、Zedリポジトリで問題を自由に提起してください。