跳转到内容
开源

体验计划

加入体验计划后,Zeabur 和安装程序会发送什么、绝不发送什么;Zeabur 和 zeaburctl 如何检查新版本;以及如何分别关闭。

体验计划会发送版本和每天的使用人数,让我们知道有多少人在用、该先修哪里。用安装程序安装时默认加入,可以在确认页取消勾选;用 Helm 安装时默认不加入,需要自己开启。

每个人每天(UTC)第一次使用 Zeabur 时,Zeabur 会发送一条事件;安装程序在安装开始、完成或失败时各发送一条。每条事件只带随机的安装代码和下表的属性,没有别的。安装代码由安装程序生成一次,或由你用 uuidgen 生成,不含任何机器的信息。数据保留 13 个月。

事件由谁发送时机
zeabur_activeZeabur每个人每天(UTC)第一次使用 Zeabur 网页界面时
install_started安装程序apply 开始
install_finished安装程序apply 顺利结束
install_failed安装程序apply 中途停止
属性事件值
zeabur_versionzeabur_activeZeabur 的版本,例如 0.1.1
dayzeabur_activeUTC 日期,例如 2026-10-30
personzeabur_active32 位十六进制数字,只在同一个安装、同一天里区分不同的人
modezeabur_activein-cluster
installer_version安装程序的事件安装程序的版本
profile安装程序的事件single-node、multi-node 或 personal
distribution安装程序的事件k3s、rke2 或 kube-solo
stepinstall_failed停在哪一步:plan、preflight、node-prep、cluster、cluster-setup、components、identity、zeabur 或 record
errorinstall_failedconfig、plan、io、command、download、digest、parse 或 other,不会是错误信息
$process_person_profile全部固定为 false:不创建个人档案
$geoip_disable全部固定为 true:不查询所在位置

事件不会说明是谁。person 是用密钥算出的用户名加日期的哈希值。密钥从 Zeabur 的 plan key 派生,保存在集群的 Secret 里,从不发送,所以我们无法从哈希值反推用户名。同一个人一整天的 person 都一样,Zeabur 重启也不变;第二天就换成另一个,所以不同天无法关联起来。

事件通过 HTTPS 发送到 PostHog(经由 oss-nori.zeabur.com),只尝试一次,超时很短。发送失败时不会重试,也不影响 Zeabur 或安装。PostHog 不保存 IP 地址。

域名、主机名、IP、Git URL、镜像或服务名称、项目名称、邮箱、用户名、日志,以及集群里的内容。

以下任何一种都有效,其中 DO_NOT_TRACK 优先于其他设置。

  • 在安装程序或 Zeabur 的环境变量中设置 DO_NOT_TRACK=1。空值和 0 以外的值都算。
  • 在安装程序的确认页取消勾选,运行 zeabur-installer --no-telemetry apply(或 --no-telemetry gui),或在 /etc/zeabur-installer/config.yaml 中写 telemetry: false。
  • 用 Helm 安装时,保持默认的 telemetry.enabled=false。没有安装代码时,chart 不接受 telemetry.enabled=true。

用 Helm 加入时,传入一个新的安装代码:

helm upgrade <release> oci://ghcr.io/zeabur-oss/charts/zeabur --reuse-values \
--set telemetry.enabled=true \
--set telemetry.installationId=$(uuidgen | tr 'A-Z' 'a-z')

安装程序把安装代码保存在 /etc/zeabur-installer/installation-id(权限 0600),并交给 Zeabur 的 chart。

设置 ZEABUR_TELEMETRY=debug,Zeabur 或安装程序会打印实际的请求内容,但不会发送。用调试模式安装时,Zeabur 不会加入体验计划。Zeabur 会把内容写在日志里:

kubectl -n zeabur set env deployment/zeabur ZEABUR_TELEMETRY=debug
kubectl -n zeabur logs deployment/zeabur | grep telemetry

ZEABUR_TELEMETRY=off 的效果和 DO_NOT_TRACK 一样。

有新版本时,Zeabur 和 zeaburctl 会提醒你,并说明如何升级,但不会自动升级。检查更新和体验计划各自独立,默认开启。

检查什么。两者都读取 https://api.github.com/repos/zeabur-oss/zeabur/releases,跳过草稿。除非你正在用预发布版本,否则也会跳过预发布版本。其余版本中最新的那个比你的版本新时,会显示它的版本、发布说明链接和升级方法。只要有任何一个更新的正式版本在说明里有 ### Security 小节,就会告诉你当前版本有已知的安全问题,并附上这些版本的链接。

在哪里运行。

  • 集群页始终显示 Zeabur v<版本>。不管多少人打开 Zeabur,Zeabur 服务器每小时最多查询 GitHub 一次。页面每次打开时读取它的结果,一直开着时每小时再读一次。服务器会保留上次的结果。访问不了 GitHub 时先沿用,一分钟后再试。GitHub 拒绝时,等 GitHub 重新计数后再试。浏览器不会访问 GitHub。“设置”›“关于”也会显示版本,点击“升级方法”会按 Zeabur 的安装方式列出步骤,分为 zeabur-installer、Helm、Argo CD 和 Flux。请参阅升级 Zeabur。用 zeaburctl ui 打开时,页面显示的是 zeaburctl 自己的版本和更新方法。
  • zeaburctl 每次运行命令都会检查。检查与命令同时进行,命令结束后 zeaburctl 最多再等一秒。有新版本时,会在 stderr 输出一行。它不在磁盘上保存任何东西。stderr 不是终端,或设置了 CI 时,不会检查。
  • 没有令牌时,GitHub 每小时只响应同一个 IP 地址 60 次,共用这个地址的人一起算。用完时,zeaburctl 会输出提示。把 GitHub 令牌设在 GH_TOKEN 或 GITHUB_TOKEN(与 gh 读取的变量相同),zeaburctl 就会带上它,改用你自己的额度。不授予任何权限的 fine-grained 令牌就够了。

会发送什么。一个普通的 GitHub 请求,不带任何 ID 或 Cookie。除非你为 zeaburctl 设置了令牌,否则也不带令牌。GitHub 会看到请求来自哪个 IP 地址。Zeabur 服务器的 user agent 是 zeabur,zeaburctl 的是 zeaburctl/<版本>。

关闭。以下任意一种都有效。关闭后,Zeabur 服务器完全不会访问 GitHub。

  • 用安装程序安装时,在确认页取消勾选,或在 /etc/zeabur-installer/config.yaml 中设置 updateCheck: false。运行 apply 时设置了 DO_NOT_TRACK=1 或 NO_UPDATE_NOTIFIER 也会关闭。
  • 用 Helm 安装时,设置 updateCheck.enabled=false。集群页就只显示版本。
  • 在 Zeabur 的环境变量中设置 DO_NOT_TRACK=1。zeaburctl 则是在你自己的环境变量中设置。这也会关闭体验计划。
  • 为 zeaburctl(包括 zeaburctl ui)在你的环境变量中设置 NO_UPDATE_NOTIFIER,任意值都可以。这只关闭检查更新。