遥测

    注意

    • 自 2023 年 2 月 20 日起,新发布的 TiDB 和 TiDB Dashboard 版本默认关闭遥测功能,即默认不再收集使用情况信息分享给 PingCAP。如果集群在升级至这些版本前使用默认的遥测配置,则升级后遥测功能处于关闭状态。具体的版本可参考 TiDB 版本发布时间线
    • 从 v1.11.3 起,新部署的 TiUP 默认关闭遥测功能,即默认不再收集使用情况信息。如果从 v1.11.3 之前的 TiUP 版本升级至 v1.11.3 或更高 TiUP 版本,遥测保持升级前的开启或关闭状态。

    以下章节具体描述了各个组件收集并分享的使用情况信息。若收集的使用情况信息有变化,将在版本更新说明中告知。

    遥测 - 图2

    注意

    任何情况下,集群中用户存储的数据都不会被收集。另请参阅 PingCAP 隐私声明

    当 TiDB 遥测功能开启时,TiDB 集群将会以 6 小时为周期收集使用情况信息并分享给 PingCAP,包括(但不限于):

    • 随机生成的遥测标示符
    • 集群的部署情况,包括各个组件所在的硬件信息(CPU、内存、磁盘)、组件版本号、操作系统版本号等
    • 系统的查询请求状态,例如查询请求次数、持续时长等
    • 系统组件的使用情况,例如 Async Commit 功能是否有被使用
    • 去识别化处理后的产品遥测数据发送端的 IP 地址

    可以通过执行以下 SQL 语句查看 TiDB 收集的使用情况信息内容:

    TiDB Dashboard

    当 TiDB Dashboard 遥测功能开启时,用户在 TiDB Dashboard 网页界面上进行操作时会将使用情况信息分享给 PingCAP,包括(但不限于):

    • 随机生成的遥测标示符
    • 界面访问情况,如访问的 TiDB Dashboard 功能页面名称
    • 用户浏览器及操作系统信息,如浏览器名称和版本号、操作系统名称、屏幕分辨率等

    可以使用 的网络功能或 的网络监视器功能查看 TiDB Dashboard 发送的使用情况信息内容。

    TiUP

    当 TiUP 遥测功能开启时,执行 TiUP 命令时会将使用情况信息分享给 PingCAP,包括(但不限于):

    • 随机生成的遥测标示符
    • TiUP 命令的执行情况,如命令执行是否成功、命令执行耗时等
    • 使用 TiUP 进行部署的情况,如部署的目标机器硬件信息、组件版本号、修改过的部署配置名称等

    使用 TiUP 时,可通过设置 环境变量输出执行命令时收集的使用情况信息,例如:

    1. TIUP_CLUSTER_DEBUG=enable tiup cluster list

    注意

    自 TiSpark v3.3 起,默认关闭遥测功能,即 TiSpark 默认不收集使用情况信息,不将这些信息分享给 PingCAP 用于改善产品。

    当 TiSpark 遥测功能开启时,Spark 在使用 TiSpark 时会发送会将使用情况信息分享给 PingCAP,包括(但不限于):

    • 随机生成的遥测标示符
    • TiSpark 的部分配置信息,如读取引擎、是否开启流式读取等
    • 用户集群部署情况,包括 TiSpark 所在节点的机器硬件信息、操作系统信息和组件版本号等

    使用 TiSpark 时,可以通过查看 Spark 日志来了解 TiSpark 收集的使用情况,可将 Spark 日志级别调至 INFO 或更低,例如:

    1. cat {spark.log} | grep Telemetry report | tail -n 1

    开启 TiDB 遥测

    第 1 步:修改配置文件中的遥测配置

    在已有 TiDB 集群上开启遥测功能,需要为集群设置 enable-telemetry = true,但需要重启集群后才能生效。

    以下是在各个部署工具中修改遥测配置的具体步骤。

    通过二进制手工部署

    创建配置文件 tidb_config.toml 包含如下内容:

    1. enable-telemetry = true

    启动 TiDB 时指定命令行参数 --config=tidb_config.toml 使得该配置生效。

    通过 TiUP Playground 试用

    创建配置文件 tidb_config.toml 包含如下内容:

    1. enable-telemetry = true

    启动 TiUP Playground 时,指定命令行参数 --db.config tidb_config.toml 使得该配置生效,如:

    1. tiup playground --db.config tidb_config.toml

    详情参见 。

    通过 TiUP Cluster 部署

    修改部署拓扑文件 topology.yaml,新增(或在现有项中添加)以下内容:

    1. server_configs:
    2. tidb:
    3. enable-telemetry: true
    4. 在 `tidb-cluster.yaml` 中或者 TidbCluster Custom Resource 中配置 `spec.tidb.config.enable-telemetry: true`。
    5. 详情参见[在标准 Kubernetes 上部署 TiDB 集群](https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/deploy-on-general-kubernetes)。
    6. ![](/projects/tidb-6.5-zh/4855156eceb3c2feb6109a1f607bfbe0.svg)
    7. 注意
    8. 该配置需使用 TiDB Operator v1.1.3 或更高版本才能生效。
    9. #### 第 2 步:修改系统全局变量的遥测配置
    10. 在步骤 1 完成后,还需要修改系统全局变量 [tidb\_enable\_telemetry]($c7b8c83e8152b043.md#tidb_enable_telemetry-从-v402-版本开始引入),才能打开 TiDB 遥测功能:

    SET GLOBAL tidb_enable_telemetry = 1;

    [dashboard] enable-telemetry = true

    1. 启动 PD 时指定命令行参数 `--config=pd_config.toml` 使得该配置生效。
    2. 详情参见 [PD 配置参数]($ee97de5afb499e65.md#--config)、[PD 配置文件描述]($cc83b684e8bd28a3.md#enable-telemetry)。
    3. 通过 TiUP Playground 试用

    [dashboard] enable-telemetry = true

    1. 启动 TiUP Playground 时,指定命令行参数 `--pd.config pd_config.toml` 使得该配置生效,如:

    tiup playground —pd.config pd_config.toml

    1. 详情参见 [TiUP - 本地快速部署 TiDB 集群]($92a727442f39acc1.md)。
    2. 通过 TiUP Cluster 部署
    3. 修改部署拓扑文件 `topology.yaml`,新增(或在现有项中添加)以下内容:

    server_configs: pd: dashboard.enable-telemetry: true ``` 通过 TiDB Operator 在 Kubernetes 上部署

    tidb-cluster.yaml 中或者 TidbCluster Custom Resource 中配置 spec.pd.config.dashboard.enable-telemetry: true

    详情参见在标准 Kubernetes 上部署 TiDB 集群

    遥测 - 图4

    注意

    该配置需使用 TiDB Operator v1.1.3 或更高版本才能生效。

    开启 TiUP 遥测

    可通过执行以下命令开启 TiUP 遥测功能:

    1. tiup telemetry enable

    可以通过在 Spark 配置文件设置 spark.tispark.telemetry.enable = true 来开启 TiSpark 的遥测功能。

    部署 TiDB 时禁用 TiDB 遥测

    在已有 TiDB 集群上开启遥测后,可以为每个集群设置 以禁用 TiDB 遥测功能,但需要重启集群后才能生效。

    以下是在各个部署工具中修改遥测配置的具体步骤。

    通过二进制手工部署

    创建配置文件 tidb_config.toml 包含如下内容:

    1. enable-telemetry = false

    详情参见 TiDB 配置参数、。

    通过 TiUP Playground 试用

    创建配置文件 tidb_config.toml 包含如下内容:

    1. enable-telemetry = false

    启动 TiUP Playground 时,指定命令行参数 --db.config tidb_config.toml 使得该配置生效,如:

    详情参见 TiUP - 本地快速部署 TiDB 集群

    通过 TiUP Cluster 部署

    修改部署拓扑文件 topology.yaml,新增(或在现有项中添加)以下内容:

    1. server_configs:
    2. tidb:
    3. enable-telemetry: false
    4. ``` 通过 TiDB Operator 在 Kubernetes 上部署
    5. 在 `tidb-cluster.yaml` 中或者 TidbCluster Custom Resource 中配置 `spec.tidb.config.enable-telemetry: false`。
    6. ![](/projects/tidb-6.5-zh/4855156eceb3c2feb6109a1f607bfbe0.svg)
    7. 注意
    8. 该配置需使用 TiDB Operator v1.1.3 或更高版本才能生效。
    9. ### 动态禁用 TiDB 遥测
    10. 对于已部署的 TiDB 集群,还可以修改系统全局变量 [tidb\_enable\_telemetry]($c7b8c83e8152b043.md#tidb_enable_telemetry-从-v402-版本开始引入) 动态禁用 TiDB 遥测功能:

    SET GLOBAL tidb_enable_telemetry = 0;

    1. 配置文件的禁用优先级高于全局变量。若通过配置文件禁用了遥测功能,则全局变量的配置将不起作用,遥测功能总是处于关闭状态。
    2. ### 禁用 TiDB Dashboard 遥测
    3. 可以修改 PD 配置中 [dashboard.enable-telemetry = false]($cc83b684e8bd28a3.md#enable-telemetry) 禁用 TiDB Dashboard 遥测功能。对于已启动的集群,该配置需要重启后才能生效。
    4. 以下列出在各个部署工具中修改遥测配置的具体步骤。
    5. 通过二进制手工部署
    6. 创建配置文件 `pd_config.toml` 包含如下内容:

    [dashboard] enable-telemetry = false

    1. 启动 PD 时指定命令行参数 `--config=pd_config.toml` 使得该配置生效。
    2. 详情参见 [PD 配置参数]($ee97de5afb499e65.md#--config)、[PD 配置文件描述]($cc83b684e8bd28a3.md#enable-telemetry)。
    3. 通过 TiUP Playground 试用
    4. 创建配置文件 `pd_config.toml` 包含如下内容:

    [dashboard] enable-telemetry = false

    1. 启动 TiUP Playground 时,指定命令行参数 `--pd.config pd_config.toml` 使得该配置生效,如:

    tiup playground —pd.config pd_config.toml

    1. 详情参见 [TiUP - 本地快速部署 TiDB 集群]($92a727442f39acc1.md)。
    2. 通过 TiUP Cluster 部署
    3. 修改部署拓扑文件 `topology.yaml`,新增(或在现有项中添加)以下内容:

    server_configs: pd: dashboard.enable-telemetry: false ``` 通过 TiDB Operator 在 Kubernetes 上部署

    tidb-cluster.yaml 中或者 TidbCluster Custom Resource 中配置 spec.pd.config.dashboard.enable-telemetry: false

    详情参见。

    注意

    该配置需使用 TiDB Operator v1.1.3 或更高版本才能生效。

    禁用 TiUP 遥测

    可通过执行以下命令禁用 TiUP 遥测功能:

    1. tiup telemetry disable

    可以通过在 Spark 配置文件设置 spark.tispark.telemetry.enable = false 来禁用 TiSpark 的遥测功能。

    对于 TiDB 遥测,可通过执行以下 SQL 语句查看遥测状态:

    DATA_PREVIEW 列为空,说明遥测没有开启,否则说明遥测已开启。还可以从 LAST_STATUS 列了解上次分享使用情况信息的时间、是否成功等。

    对于 TiUP 遥测,可通过执行以下命令查看遥测状态:

    • 若为中国大陆以外 IP 地址,使用情况信息将会发送并存储于美国的公有云服务器。

    可参阅 PingCAP 隐私声明了解详情。