托管版
此功能目前在 ClickHouse Cloud 处于测试阶段(Beta)。
本指南适用于已有 ClickHouse Cloud 账号的用户。如果你刚接触 ClickHouse Cloud,建议先阅读 ClickStack 托管部署的入门指南。
在此部署模式下,ClickHouse 和 ClickStack UI(HyperDX)都托管在 ClickHouse Cloud 中,从而最大程度减少用户需要自托管的组件数量。
除了降低基础设施管理开销之外,此部署模式还确保身份验证与 ClickHouse Cloud 的 SSO/SAML 集成。与自托管部署不同,你无需再准备 MongoDB 实例来存储应用状态——例如仪表盘、已保存搜索、用户设置和告警。用户还将受益于:
- 计算与存储解耦的自动扩缩容
- 基于对象存储的低成本、几乎无限的保留期
- 使用 Warehouse(仓库)独立隔离读写工作负载的能力
- 集成身份认证
- 自动化备份
- 安全与合规特性
- 无缝升级
在此模式下,数据摄取完全由用户负责。你可以使用自托管的 OpenTelemetry collector、客户端库直接摄取、ClickHouse 原生表引擎(如 Kafka 或 S3)、ETL 管道,或 ClickPipes——ClickHouse Cloud 的托管摄取服务——将数据摄取到托管型 ClickStack 中。这种方式为运行 ClickStack 提供了最简单且性能最佳的路径。
适用场景
此部署模式在以下场景中尤其适用:
- 你已经在 ClickHouse Cloud 中存有可观测性数据,并希望通过 ClickStack 对其进行可视化。
- 你运行大规模可观测性部署,并且需要在 ClickHouse Cloud 上运行的 ClickStack 所提供的专用性能和可扩展性。
- 你已经在使用 ClickHouse Cloud 进行分析,并希望使用 ClickStack 的埋点库对应用进行观测,将数据发送到同一个集群。在这种情况下,我们建议使用 warehouses 为可观测性工作负载隔离计算资源。
设置步骤
本指南假设你已经创建了一个 ClickHouse Cloud 服务。如果你还没有创建服务,请按照托管 ClickStack 的快速开始指南进行操作。完成后,你将获得一个与本指南假定起点状态相同的服务,即已启用 ClickStack 并准备好接收可观测性数据。
- 创建新服务
- 使用现有服务
指定你的云厂商、区域和资源
我们建议大多数 ClickStack 工作负载使用此 Scale 层级。如果您需要高级安全功能(例如 SAML、CMEK 或满足 HIPAA 合规要求),请选择 Enterprise 层级。它还为超大规模 ClickStack 部署提供自定义硬件配置。在这些情况下,我们建议联系支持团队。
选择 Cloud 提供商和区域。

在指定 CPU 和内存时,请根据预期的 ClickStack 摄取吞吐量进行估算。下表为这些资源的规格提供参考指导。
| 每月摄取量 | 推荐计算资源 |
|---|---|
| < 10 TB / month | 2 vCPU × 3 副本 |
| 10–50 TB / month | 4 vCPU × 3 副本 |
| 50–100 TB / month | 8 vCPU × 3 副本 |
| 100–500 TB / month | 30 vCPU × 3 副本 |
| 1 PB+ / month | 59 vCPU × 3 副本 |
这些推荐值基于以下假设:
- 数据量指每月的未压缩摄取量,适用于日志和跟踪数据。
- 查询模式对可观测性场景来说是典型的,大多数查询针对最新数据,通常为最近 24 小时。
- 摄取在整个月内相对均匀分布。如果您预期存在突发流量或峰值,应预留额外余量。
- 存储通过 ClickHouse Cloud 对象存储单独处理,并不是保留期的限制因素。我们假设保留时间较长的数据访问频率较低。
对于经常查询更长时间范围、执行重度聚合,或需要支持大量并发用户的访问模式,可能需要更多计算资源。
虽然两个副本即可满足给定摄取吞吐量的 CPU 和内存要求,但我们建议在可能的情况下使用三个副本,以在实现相同总容量的同时提升服务冗余度。
这些数值仅为估算值,应作为初始基线使用。实际需求取决于查询复杂度、并发度、保留策略以及摄取吞吐量的波动情况。请始终监控资源使用情况,并根据需要进行扩缩容。
指定完需求后,您的托管 ClickStack 服务将需要几分钟时间完成预配。在等待预配期间,您可以随时浏览 ClickHouse Cloud 控制台 的其他部分。
一旦预配完成,左侧菜单中的 'ClickStack' 选项将被启用。
配置摄取
服务创建完成后,确保已选中该服务,然后在左侧菜单中点击 "ClickStack"。

选择「Start Ingestion」后,系统会提示你选择一个摄取源。托管版 ClickStack 支持将 OpenTelemetry 和 Vector 作为其主要摄取源。不过,用户也可以使用任意 ClickHouse Cloud 支持的集成,以自定义的 schema 直接向 ClickHouse 发送数据。

强烈建议采用 OpenTelemetry 作为摄取格式。 它提供最简单且最高效的使用体验,并且内置的 schema 专门为与 ClickStack 高效配合而设计。
- OpenTelemetry
- Vector
要将 OpenTelemetry 数据发送到托管版 ClickStack,建议使用 OpenTelemetry Collector。该收集器作为网关,接收来自应用程序(及其他收集器)的 OpenTelemetry 数据,并将其转发至 ClickHouse Cloud。
如果您尚未运行收集器,请按照以下步骤启动。如果您已有现有收集器,同样提供了配置示例供参考。
启动 collector
以下内容假定您使用推荐的 ClickStack 发行版 OpenTelemetry Collector,该版本包含额外的处理功能,并专门针对 ClickHouse Cloud 进行了优化。如果您希望使用自己的 OpenTelemetry Collector,请参阅“配置现有收集器”。
要快速开始,请复制并运行下方显示的 Docker 命令。

该命令应包含预先填充好的连接凭据。
虽然此命令使用 default 用户连接托管 ClickStack,但在投入生产并修改配置时,您应该创建一个专用用户。
运行此命令即可启动 ClickStack 收集器,OTLP 端点将在端口 4317(gRPC)和 4318(HTTP)上暴露。如果您已配置 OpenTelemetry 插桩和代理,可立即开始向这些端点发送遥测数据。
配置现有的采集器
您也可以配置现有的 OpenTelemetry Collector,或使用自定义的 Collector 发行版。
如果您使用的是自己的发行版,例如 contrib 镜像,请确保其中包含 ClickHouse exporter。
为此,我们提供了一个示例 OpenTelemetry Collector 配置,该配置使用 ClickHouse 导出器并设置了适当的参数,同时公开 OTLP 接收器。此配置与 ClickStack 发行版所需的接口和行为相匹配。
此配置的示例如下所示(如果从 UI 复制,环境变量将会自动填充):

有关配置 OpenTelemetry 采集器的更多详细信息,请参阅"使用 OpenTelemetry 进行摄取"
启动摄取(可选)
如果您有需要使用 OpenTelemetry 进行插桩的现有应用或基础设施,请在 UI 中转到链接的相关指南。
要对应用进行插桩以收集 traces 和日志,请使用受支持的语言 SDKs,这些 SDKs 会将数据发送到您的 OpenTelemetry Collector,后者作为网关将数据摄取到托管版 ClickStack。
日志可以通过使用 OpenTelemetry Collectors 收集(以 agent 模式运行)并转发到同一个 collector。对于 Kubernetes 监控,请参阅专用指南。有关其他集成,请参阅我们的快速入门指南。
演示数据
或者,如果您当前没有现有数据,可以尝试我们提供的示例数据集之一。
Vector 是一款高性能、厂商无关的可观测性数据管道,因其灵活性与低资源占用,在日志摄取场景中尤为流行。
在将 Vector 与 ClickStack 一起使用时,用户需要自行定义 schema。这些 schema 可以遵循 OpenTelemetry 约定,也可以完全自定义,用于表示用户自定义的事件结构。
托管版 ClickStack 唯一严格的要求是数据必须包含一个时间戳列(或等效的时间字段),该字段可以在 ClickStack UI 中配置数据源时声明。
以下内容假定您已有一个正在运行的 Vector 实例,并已预先配置好摄取管道,用于发送数据。
创建数据库和表
在进行数据摄取之前,Vector 需要预先定义好表及其 schema。
首先创建一个数据库。这可以通过 ClickHouse Cloud 控制台 完成。
例如,为日志创建一个数据库:
然后创建一个表,其表结构需与日志数据的结构相匹配。以下示例假设采用经典的 Nginx 访问日志格式:
您的表必须与 Vector 生成的输出模式对齐。根据您的数据需要调整该模式,并遵循推荐的模式最佳实践。
我们强烈建议先了解 ClickHouse 中主键的工作机制,并根据访问模式选择合适的排序键。有关如何选择主键的 ClickStack 专用指导,请参见ClickStack 专用说明。
创建表之后,复制所展示的配置片段。根据需要调整输入,以对接并消费您现有的 pipeline,同时在必要时修改目标表和数据库。凭据应已预先填充。

有关使用 Vector 摄取数据的更多示例,请参阅"使用 Vector 进行摄取"或查看 Vector ClickHouse sink 文档以获取高级配置选项。
进入 ClickStack UI
选择 'Launch ClickStack' 以访问 ClickStack UI(HyperDX)。系统会自动完成身份验证并进行重定向。
- OpenTelemetry
- Vector
系统会为所有 OpenTelemetry 数据预先创建数据源。

如果你使用的是 Vector,则需要手动创建数据源。首次登录时系统会提示你创建一个数据源。下面展示了一个日志数据源的示例配置。

此配置假设使用 Nginx 风格的 schema,并使用 time_local 列作为时间戳。在可能的情况下,这一列应为主键中声明的时间戳列。该列是必需的。
我们同样建议更新 Default SELECT,以显式定义在日志视图中返回哪些列。如果还有其他可用字段,例如服务名称、日志级别或 body 列,也可以在此进行配置。如果用于显示的时间戳列与上述在表主键中使用的时间戳列不同,也可以在此进行覆盖配置。
在上面的示例中,数据中并不存在 Body 列。相反,它是通过一个 SQL 表达式定义的,该表达式根据可用字段重构了一条 Nginx 列表行。
有关其他可用选项,请参阅配置参考。
创建完成后,你将被引导到搜索视图,在那里可以立即开始探索你的数据。

就是这样 —— 一切就绪。🎉
现在就开始探索 ClickStack 吧:开始搜索日志和跟踪(traces),查看日志、跟踪和指标如何在实时环境中进行关联,构建仪表盘、探索服务地图、发现事件变化和模式,并设置告警以提前发现问题。
选择一个服务
在 ClickHouse Cloud 主页中,选择您要启用托管 ClickStack 的服务。
本指南假设您已配置足够的资源来处理计划通过 ClickStack 摄取和查询的可观测性数据量。要估算所需资源,请参阅生产指南。
如果您的 ClickHouse 服务已经承载现有工作负载(例如实时应用分析),我们建议使用 ClickHouse Cloud 的 warehouses 功能创建子服务,以隔离可观测性工作负载。这样可以确保现有应用程序不受影响,同时保持两个服务都能访问数据集。

导航到 ClickStack UI
从左侧导航菜单中选择 'ClickStack'。您将被重定向到 ClickStack UI,并根据您的 ClickHouse Cloud 权限自动完成身份验证。
如果您的服务中已存在 OpenTelemetry 表,系统将自动检测并创建相应的数据源。
自动检测依赖于 ClickStack 发行版 OpenTelemetry 采集器提供的标准 OpenTelemetry 表架构。系统会为包含最完整表集的数据库创建数据源。如有需要,可以将其他表添加为单独的数据源。
如果自动检测成功,您将被引导至搜索视图,即可立即开始探索数据。

如果此步骤成功,那么就大功告成了 🎉,否则请继续进行摄取设置。
配置摄取
如果自动检测失败,或者您没有现有表,系统将提示您设置数据摄取。

选择"开始摄取",系统将提示您选择摄取源。托管版 ClickStack 支持 OpenTelemetry 和 Vector 作为其主要摄取源。此外,用户也可以使用任何 ClickHouse Cloud 支持的集成,以自定义模式直接向 ClickHouse 发送数据。

强烈建议使用 OpenTelemetry 作为摄取格式。 它提供了最简单、最优化的体验,并配备了专为与 ClickStack 高效协作而设计的开箱即用架构。
- OpenTelemetry
- Vector
要将 OpenTelemetry 数据发送到托管的 ClickStack,推荐使用 OpenTelemetry Collector。Collector 充当网关,从您的应用(以及其他 Collector)接收 OpenTelemetry 数据,并将其转发到 ClickHouse Cloud。
如果当前还没有运行中的 Collector,请按照下面的步骤启动一个。如果已经有现有的 Collector,也提供了一个配置示例。
启动 Collector
下面假定您采用推荐路径:使用 ClickStack 发行版的 OpenTelemetry Collector,它包含了额外的处理流程,并且专门针对 ClickHouse Cloud 做了优化。如果您希望使用自己的 OpenTelemetry Collector,请参见 "配置现有 Collector。"
要快速开始,请复制并运行所示的 Docker 命令。

使用您在创建服务时记录的服务凭据修改此命令。
虽然此命令使用 default 用户连接到托管 ClickStack,但在进入生产环境时,您应该创建一个专用用户,并相应修改配置。
运行这一条命令即可启动 ClickStack Collector,并在 4317(gRPC)和 4318(HTTP)端口上暴露 OTLP 端点。如果您已经有 OpenTelemetry 的埋点和 Agent,可以立即开始向这些端点发送遥测数据。
配置现有 Collector
您也可以配置自己已有的 OpenTelemetry Collector,或使用您自己的 Collector 发行版。
如果您在使用自己的发行版,例如 contrib 镜像,请确保其中包含 ClickHouse exporter。
为此,我们提供了一个示例 OpenTelemetry Collector 配置,它使用 ClickHouse exporter 及相应的设置,并暴露 OTLP 接收器。该配置与 ClickStack 发行版所期望的接口和行为保持一致。
此配置的示例如下所示(如果从 UI 复制,环境变量将会自动填充):

如需了解更多配置 OpenTelemetry Collector 的细节,请参见 "使用 OpenTelemetry 进行摄取。"
启动摄取(可选)
如果您有要使用 OpenTelemetry 进行埋点的现有应用或基础设施,请转到“连接应用”中链接的相关指南。
要对应用进行埋点以收集跟踪(traces)和日志(logs),请使用受支持的语言 SDKs,它们会将数据发送到作为网关的 OpenTelemetry Collector,以将数据摄取到托管 ClickStack 中。
可以使用以 agent 模式运行的 OpenTelemetry Collectors 收集日志,并将数据转发到同一个 Collector。对于 Kubernetes 监控,请遵循专用指南。有关其他集成,请参见我们的快速入门指南。
Vector 是一个高性能、与厂商无关的可观测性数据管道,因其灵活性和低资源占用而在日志摄取场景中尤为流行。
在将 Vector 与 ClickStack 结合使用时,用户需要自行定义 schema。这些 schema 可以遵循 OpenTelemetry 约定,也可以完全自定义,用于表示用户自定义的事件结构。
对托管版 ClickStack 的唯一严格要求是,数据中必须包含一个时间戳列(或等效的时间字段),并可在 ClickStack UI 中配置数据源时进行声明。
下面的内容假定您已经有一个正在运行的 Vector 实例,且已预先配置好数据摄取管道,并在持续投递数据。
创建数据库和表
Vector 要求在进行数据摄取之前预先定义好表和 schema。
首先创建一个数据库。这可以通过 ClickHouse Cloud 控制台 完成。
例如,为日志创建一个数据库:
然后创建一个表,其 schema 与你的日志数据结构相匹配。下面的示例假定使用经典的 Nginx 访问日志格式:
你的表必须与 Vector 生成的输出 schema 对齐。根据你的数据需要调整该 schema,并遵循推荐的 schema 最佳实践。
强烈建议先了解 ClickHouse 中 主键 的工作方式,并根据访问模式选择排序键(ordering key)。关于如何选择主键,请参阅 ClickStack 专用 指南。
创建好表后,复制显示的配置片段。根据需要调整输入以对接你现有的数据管道,以及目标表和数据库。凭据应已自动填入。

有关使用 Vector 摄取数据的更多示例,请参阅"Ingesting with Vector"或 Vector ClickHouse sink 文档以获取高级选项。
导航到 ClickStack UI
完成摄取设置并开始发送数据后,选择"下一步"。
- OpenTelemetry
- Vector
如果已经按照本指南使用 OpenTelemetry 摄取了数据,则会自动创建数据源,无需进行额外配置。你可以立即开始探索 ClickStack。系统会将你引导到搜索视图,并自动为你选择一个数据源,以便你可以立刻开始查询。

就这些——一切就绪 🎉。
如果是通过 Vector 或其他来源摄取数据,你将会被提示配置数据源。

上述配置假定使用 Nginx 风格的 schema,并使用 time_local 列作为时间戳。该列在可能的情况下应为主键中声明的时间戳列。此列为必需列。
我们还建议更新 Default SELECT,以显式定义在日志视图中返回的列。如果存在其他字段,例如服务名、日志级别或正文列(body 列),也可以在这里进行配置。如果用于展示时间戳的列与表主键中使用的列不同,也可以在此进行覆盖。
在上面的示例中,数据中不存在 Body 列。相反,它是通过一个 SQL 表达式定义的,该表达式使用可用字段重建一条 Nginx 日志行。
有关其他可用选项,请参阅配置参考。
配置完成后,点击“Save”开始探索你的数据。

其他任务
为 Managed ClickStack 授予访问权限
- 在 ClickHouse Cloud 控制台中进入你的服务
- 前往 Settings → SQL Console Access
- 为每个用户设置合适的权限级别:
- Service Admin → Full Access - 启用告警所必需
- Service Read Only → Read Only - 可以查看可观测性数据并创建仪表板
- No access - 无法访问 HyperDX

要启用告警,必须至少有一名具有 Service Admin 权限(在 SQL Console Access 下拉菜单中映射为 Full Access)的用户至少登录一次 HyperDX。这样会在数据库中自动创建一个用于运行告警查询的专用用户。
在只读计算环境中使用 ClickStack
ClickStack UI 可以完全运行在只读的 ClickHouse Cloud 服务之上。当需要隔离摄取与查询工作负载时,推荐采用这种部署方式。
ClickStack 如何选择 compute
ClickStack UI 始终连接到在 ClickHouse Cloud 控制台中启动 ClickStack 的 ClickHouse service。
这意味着:
- 如果从只读 service 打开 ClickStack,所有由 ClickStack UI 发出的查询都会在该只读 compute 上运行。
- 如果从读写 service 打开 ClickStack,ClickStack 将改为使用该 compute。
在 ClickStack 内部无需任何额外配置即可实现只读行为。
推荐设置
要在只读计算环境上运行 ClickStack:
- 在数据仓库中创建或选择一个配置为只读的 ClickHouse Cloud 服务。
- 在 ClickHouse Cloud 控制台中,选择该只读服务。
- 通过左侧导航菜单启动 ClickStack。
启动后,ClickStack UI 将自动绑定到此只读服务。
添加更多数据源
ClickStack 对 OpenTelemetry 提供原生支持,但并不限于 OpenTelemetry —— 如有需要,你也可以使用自己的表结构。
以下内容说明用户如何在自动配置的数据源之外添加更多数据源。
使用 OpenTelemetry schema
如果你使用 OTel collector 在 ClickHouse 中创建数据库和数据表,请在创建数据源模型时保留所有默认值,并将 Table 字段填写为 otel_logs,以创建日志数据源。其他所有设置应会被自动检测到,然后点击 Save New Source 即可。

要为 traces 和 OTel 指标创建数据源,你可以从顶部菜单中选择 Create New Source。

从这里开始,选择所需的数据源类型,然后选择相应的数据表,例如对于 traces,选择数据表 otel_traces。所有设置应会被自动检测到。

请注意,ClickStack 中的不同数据源(例如 logs 和 traces)可以彼此关联。要启用此功能,需要在每个数据源上进行额外配置。例如,在日志数据源中,你可以指定对应的 trace 数据源,在 traces 数据源中也可以指定对应的日志数据源。有关更多详细信息,请参阅 "关联来源"。
使用自定义 Schema
希望将 ClickStack 连接到已有数据的现有服务的用户,可以根据需要配置数据库和表。如果表符合 ClickHouse 的 OpenTelemetry Schema,这些设置将会被自动检测。
如果使用自定义 Schema,建议创建一个 Logs 数据源,并确保指定所有必需字段——详情参见“Log source settings”。
JSON 类型支持
ClickStack 中的 JSON 类型支持目前为 Beta 功能。虽然 JSON 类型本身在 ClickHouse 25.3+ 中已经可以用于生产环境,但其在 ClickStack 中的集成仍在积极开发中,可能存在功能限制、未来变更或缺陷。
从 2.0.4 版本开始,ClickStack 对 JSON 类型 提供 Beta 支持。
关于此类型的优势,请参见 JSON 类型的优势。
要启用对 JSON 类型的支持,你必须设置以下环境变量:
OTEL_AGENT_FEATURE_GATE_ARG='--feature-gates=clickhouse.json'- 在 OTel collector 中启用支持,确保使用 JSON 类型创建模式(schema)。BETA_CH_OTEL_JSON_SCHEMA_ENABLED=true(仅适用于 ClickStack 开源版)- 在 ClickStack UI 应用中启用支持,允许查询 JSON 数据。
此外,您还应联系 [email protected],以确保在您的 ClickHouse Cloud 服务上已启用 JSON 支持。
