跳转到主内容
跳转到主内容

托管版

Beta feature. Learn more.
测试版功能

此功能目前在 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 提供了最简单且性能最佳的路径。

适用场景

此部署模式在以下场景中尤其适用:

  1. 你已经在 ClickHouse Cloud 中存有可观测性数据,并希望通过 ClickStack 对其进行可视化。
  2. 你运行大规模可观测性部署,并且需要在 ClickHouse Cloud 上运行的 ClickStack 所提供的专用性能和可扩展性。
  3. 你已经在使用 ClickHouse Cloud 进行分析,并希望使用 ClickStack 的埋点库对应用进行观测,将数据发送到同一个集群。在这种情况下,我们建议使用 warehouses 为可观测性工作负载隔离计算资源。

设置步骤

本指南假设你已经创建了一个 ClickHouse Cloud 服务。如果你还没有创建服务,请按照托管 ClickStack 的快速开始指南进行操作。完成后,你将获得一个与本指南假定起点状态相同的服务,即已启用 ClickStack 并准备好接收可观测性数据。


创建新服务

在 ClickHouse Cloud 登录页面中选择 New service 来创建一个新服务。

Service Service

指定你的云厂商、区域和资源

Scale vs Enterprise

我们建议大多数 ClickStack 工作负载使用此 Scale 层级。如果您需要高级安全功能(例如 SAML、CMEK 或满足 HIPAA 合规要求),请选择 Enterprise 层级。它还为超大规模 ClickStack 部署提供自定义硬件配置。在这些情况下,我们建议联系支持团队。

选择 Cloud 提供商和区域。

资源选择器

在指定 CPU 和内存时,请根据预期的 ClickStack 摄取吞吐量进行估算。下表为这些资源的规格提供参考指导。

每月摄取量推荐计算资源
< 10 TB / month2 vCPU × 3 副本
10–50 TB / month4 vCPU × 3 副本
50–100 TB / month8 vCPU × 3 副本
100–500 TB / month30 vCPU × 3 副本
1 PB+ / month59 vCPU × 3 副本

这些推荐值基于以下假设:

  • 数据量指每月的未压缩摄取量,适用于日志和跟踪数据。
  • 查询模式对可观测性场景来说是典型的,大多数查询针对最新数据,通常为最近 24 小时。
  • 摄取在整个月内相对均匀分布。如果您预期存在突发流量或峰值,应预留额外余量。
  • 存储通过 ClickHouse Cloud 对象存储单独处理,并不是保留期的限制因素。我们假设保留时间较长的数据访问频率较低。

对于经常查询更长时间范围、执行重度聚合,或需要支持大量并发用户的访问模式,可能需要更多计算资源。

虽然两个副本即可满足给定摄取吞吐量的 CPU 和内存要求,但我们建议在可能的情况下使用三个副本,以在实现相同总容量的同时提升服务冗余度。

注意

这些数值仅为估算值,应作为初始基线使用。实际需求取决于查询复杂度、并发度、保留策略以及摄取吞吐量的波动情况。请始终监控资源使用情况,并根据需要进行扩缩容。

指定完需求后,您的托管 ClickStack 服务将需要几分钟时间完成预配。在等待预配期间,您可以随时浏览 ClickHouse Cloud 控制台 的其他部分。

一旦预配完成,左侧菜单中的 'ClickStack' 选项将被启用

配置摄取

服务创建完成后,确保已选中该服务,然后在左侧菜单中点击 "ClickStack"。

开始摄取

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

选择来源
推荐使用 OpenTelemetry

强烈建议采用 OpenTelemetry 作为摄取格式。 它提供最简单且最高效的使用体验,并且内置的 schema 专门为与 ClickStack 高效配合而设计。

要将 OpenTelemetry 数据发送到托管版 ClickStack,建议使用 OpenTelemetry Collector。该收集器作为网关,接收来自应用程序(及其他收集器)的 OpenTelemetry 数据,并将其转发至 ClickHouse Cloud。

如果您尚未运行收集器,请按照以下步骤启动。如果您已有现有收集器,同样提供了配置示例供参考。

启动 collector

以下内容假定您使用推荐的 ClickStack 发行版 OpenTelemetry Collector,该版本包含额外的处理功能,并专门针对 ClickHouse Cloud 进行了优化。如果您希望使用自己的 OpenTelemetry Collector,请参阅“配置现有收集器”

要快速开始,请复制并运行下方显示的 Docker 命令。

OTel collector 来源

该命令应包含预先填充好的连接凭据。

部署到生产环境

虽然此命令使用 default 用户连接托管 ClickStack,但在投入生产并修改配置时,您应该创建一个专用用户。

运行此命令即可启动 ClickStack 收集器,OTLP 端点将在端口 4317(gRPC)和 4318(HTTP)上暴露。如果您已配置 OpenTelemetry 插桩和代理,可立即开始向这些端点发送遥测数据。

配置现有的采集器

您也可以配置现有的 OpenTelemetry Collector,或使用自定义的 Collector 发行版。

需要 ClickHouse exporter

如果您使用的是自己的发行版,例如 contrib 镜像,请确保其中包含 ClickHouse exporter

为此,我们提供了一个示例 OpenTelemetry Collector 配置,该配置使用 ClickHouse 导出器并设置了适当的参数,同时公开 OTLP 接收器。此配置与 ClickStack 发行版所需的接口和行为相匹配。

此配置的示例如下所示(如果从 UI 复制,环境变量将会自动填充):

receivers:
  otlp/hyperdx:
    protocols:
      grpc:
        include_metadata: true
        endpoint: "0.0.0.0:4317"
      http:
        cors:
          allowed_origins: ["*"]
          allowed_headers: ["*"]
        include_metadata: true
        endpoint: "0.0.0.0:4318"
processors:
  batch:
  memory_limiter:
    # 80% of maximum memory up to 2G, adjust for low memory environments
    limit_mib: 1500
    # 25% of limit up to 2G, adjust for low memory environments
    spike_limit_mib: 512
    check_interval: 5s
connectors:
  routing/logs:
    default_pipelines: [logs/out-default]
    error_mode: ignore
    table:
      - context: log
        statement: route() where IsMatch(attributes["rr-web.event"], ".*")
        pipelines: [logs/out-rrweb]
exporters:
  debug:
    verbosity: detailed
    sampling_initial: 5
    sampling_thereafter: 200
  clickhouse/rrweb:
    database: default
    endpoint: <clickhouse_cloud_endpoint>
    password: <your_password_here>
    username: default
    ttl: 720h
    logs_table_name: hyperdx_sessions
    timeout: 5s
    retry_on_failure:
      enabled: true
      initial_interval: 5s
      max_interval: 30s
      max_elapsed_time: 300s
  clickhouse:
    database: default
    endpoint: <clickhouse_cloud_endpoint>
    password: <your_password_here>
    username: default
    ttl: 720h
    timeout: 5s
    retry_on_failure:
      enabled: true
      initial_interval: 5s
      max_interval: 30s
      max_elapsed_time: 300s

service:
  pipelines:
    traces:
      receivers: [otlp/hyperdx]
      processors: [memory_limiter, batch]
      exporters: [clickhouse]
    metrics:
      receivers: [otlp/hyperdx]
      processors: [memory_limiter, batch]
      exporters: [clickhouse]
    logs/in:
      receivers: [otlp/hyperdx]
      exporters: [routing/logs]
    logs/out-default:
      receivers: [routing/logs]
      processors: [memory_limiter, batch]
      exporters: [clickhouse]
    logs/out-rrweb:
      receivers: [routing/logs]
      processors: [memory_limiter, batch]
      exporters: [clickhouse/rrweb]

高级 OTel collector 源配置

有关配置 OpenTelemetry 采集器的更多详细信息,请参阅"使用 OpenTelemetry 进行摄取"

启动摄取(可选)

如果您有需要使用 OpenTelemetry 进行插桩的现有应用或基础设施,请在 UI 中转到链接的相关指南。

要对应用进行插桩以收集 traces 和日志,请使用受支持的语言 SDKs,这些 SDKs 会将数据发送到您的 OpenTelemetry Collector,后者作为网关将数据摄取到托管版 ClickStack。

日志可以通过使用 OpenTelemetry Collectors 收集(以 agent 模式运行)并转发到同一个 collector。对于 Kubernetes 监控,请参阅专用指南。有关其他集成,请参阅我们的快速入门指南

演示数据

或者,如果您当前没有现有数据,可以尝试我们提供的示例数据集之一。

  • 示例数据集 - 从我们的公共演示中加载示例数据集。诊断一个简单问题。
  • 本地文件和指标 - 加载本地文件,并使用本地 OTel collector 在 OSX 或 Linux 上监控系统。

进入 ClickStack UI

选择 'Launch ClickStack' 以访问 ClickStack UI(HyperDX)。系统会自动完成身份验证并进行重定向。

系统会为所有 OpenTelemetry 数据预先创建数据源。

ClickStack UI

就是这样 —— 一切就绪。🎉

现在就开始探索 ClickStack 吧:开始搜索日志和跟踪(traces),查看日志、跟踪和指标如何在实时环境中进行关联,构建仪表盘、探索服务地图、发现事件变化和模式,并设置告警以提前发现问题。


其他任务

为 Managed ClickStack 授予访问权限

  1. 在 ClickHouse Cloud 控制台中进入你的服务
  2. 前往 SettingsSQL Console Access
  3. 为每个用户设置合适的权限级别:
    • Service Admin → Full Access - 启用告警所必需
    • Service Read Only → Read Only - 可以查看可观测性数据并创建仪表板
    • No access - 无法访问 HyperDX
ClickHouse Cloud 只读
告警功能需要管理员访问权限

要启用告警,必须至少有一名具有 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:

  1. 在数据仓库中创建或选择一个配置为只读的 ClickHouse Cloud 服务。
  2. 在 ClickHouse Cloud 控制台中,选择该只读服务。
  3. 通过左侧导航菜单启动 ClickStack。

启动后,ClickStack UI 将自动绑定到此只读服务。

添加更多数据源

ClickStack 对 OpenTelemetry 提供原生支持,但并不限于 OpenTelemetry —— 如有需要,你也可以使用自己的表结构。

以下内容说明用户如何在自动配置的数据源之外添加更多数据源。

使用 OpenTelemetry schema

如果你使用 OTel collector 在 ClickHouse 中创建数据库和数据表,请在创建数据源模型时保留所有默认值,并将 Table 字段填写为 otel_logs,以创建日志数据源。其他所有设置应会被自动检测到,然后点击 Save New Source 即可。

ClickHouse Cloud HyperDX 数据源

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

ClickStack 创建新数据源

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

ClickStack 创建 trace 数据源
关联来源

请注意,ClickStack 中的不同数据源(例如 logs 和 traces)可以彼此关联。要启用此功能,需要在每个数据源上进行额外配置。例如,在日志数据源中,你可以指定对应的 trace 数据源,在 traces 数据源中也可以指定对应的日志数据源。有关更多详细信息,请参阅 "关联来源"

使用自定义 Schema

希望将 ClickStack 连接到已有数据的现有服务的用户,可以根据需要配置数据库和表。如果表符合 ClickHouse 的 OpenTelemetry Schema,这些设置将会被自动检测。

如果使用自定义 Schema,建议创建一个 Logs 数据源,并确保指定所有必需字段——详情参见“Log source settings”

JSON 类型支持

Beta feature. Learn more.
Beta 功能 - 尚未准备好用于生产环境

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 支持。