2025年7月 ClickStack 有哪些新变化?

Picture of ssh key 立即下载

图片

本文字数:9779;估计阅读时间:25 分钟

作者:The ClickStack team

本文在公众号【ClickHouseInc】首发

图片

本月初,我们发布了 ClickStack,这是一款基于 ClickHouse 构建的开源可观测性 (observability) 堆栈,让日志、指标、追踪和会话重放的统一变得比以往更加简单。其背后是同一款被 Netflix、eBay 等企业信赖的高性能引擎。

ClickStack 最大的优势之一在于,它将高基数、宽表事件数据的快速搜索与快速聚合结合在一个开源、低成本的解决方案中。通过采用 OpenTelemetry 进行数据采集,并以 HyperDX 作为 UI 层,ClickStack 提供了从数据摄取到强大可视化探索的完整开箱即用可观测性方案。

图片

在 ClickHouse 的世界里,一个月就能带来巨大的变化。自首次发布以来,我们持续不断地为 ClickStack 增添新功能和改进,致力于让它更强大、更易用。从本月开始,我们会定期分享最新进展,帮助你快速在 ClickStack 部署中应用这些最新改进。

贡献者

首先,我们要感谢本月的新开源贡献者。开源堆栈的构建离不开社区的共同努力,感谢每一位为 ClickStack 贡献力量的朋友——无论是通过 OpenTelemetry collector、Helm chart,还是 HyperDX。我们对你们的付出表示衷心感谢。

Huynguyen-anduin, OhJuhun, mGolestan98

ClickStack 支持 JSON 类型,查询速度更快

本月 ClickStack 的最大更新虽简单,但意义重大。我们为 ClickStack 新增了对 ClickHouse 原生 JSON 列类型的测试版支持。这一功能为基于 ClickHouse 的可观测性 (observability) 工作负载带来了全新的扩展性、性能和压缩能力——在我们的测试中,查询速度相比 Map 类型最高提升了 9 倍。

为什么需要支持 JSON?

在构建可观测性解决方案时,用户往往希望能够直接“发送事件”,而不必受限于严格的 Schema。实际情况是,可观测性数据来源复杂多样——不同的应用、团队,甚至组织,各自的结构不断演变。尽管结构化日志和 OpenTelemetry 等标准有所帮助,但团队依然需要捕获任意数量、类型和层级的标签与字段。

此前,ClickStack 中用于 OpenTelemetry 数据的 Schema 主要依赖 Map 类型,来处理如 LogAttributes、ResourceAttributes 和 SpanAttributes 这类包含动态属性的列。尽管这种方案可行,但也存在明显的不足:

  • 类型精度的损失:Map 的键和值都被存储为字符串,所有数据被强制转为单一类型。数值比较只能在查询时转换类型,既冗长又影响性能,同时占用更多内存。

  • 单列顺序扫描:使用 Map 类型时,所有 JSON 路径都存储在一个列中,查询某个键时需要加载并扫描整个 Map。当键数量众多时,导致大量不必要的 I/O,查询效率低下。用户通常通过物化列来预先提取需要的值以规避这一问题。

  • 不支持原生嵌套:Map 类型在处理原始值时尚可,但对嵌套的 Map 和数组支持较差,所有内容都被转成字符串。复杂数据需序列化成 JSON 字符串,查询繁琐且低效。例如,LogAttributes 结构中:

    {
      "service.name": "user-service",
      "service.version": "1.2.3",
      "http.status_code": "200",
      "user.preferences": "{\"theme\":\"dark\",\"notifications\":{\"email\":true,\"push\":false}}",
      "error.stack": "[\"AuthError: Invalid token\",\"  at validateToken (auth.js:45)\",\"  at middleware (app.js:23)\"]"
    }

像 service.name 和 http.status_code 这样的原始值虽然能被自然存储,但失去了类型信息,无法直接进行数值或日期计算。而类似 user.preferences 和 error.stack 的复杂嵌套数据则被转为 JSON 字符串,查询和分析十分不便。如果要从 user.preferences 中提取布尔值,必须在 Map 的字符串值上使用 JSONExtractBool。

SELECT JSONExtractBool(LogAttributes['user.preferences'], 'notifications', 'email')

通过 ClickHouse 25.3 中正式推出的 JSON 类型,ClickStack 现在可以原生摄取和存储真正的半结构化数据。每个独立的 JSON 路径都对应自己的子列,类型得以保留,I/O 显著减少,查询性能大幅提升。即使是深度嵌套或不断变化的 Schema,也能高效处理。

想了解 JSON 类型在可观测性领域的高层次应用,可以参考我们去年发布的文章[https://clickhouse.com/blog/evolution-of-sql-based-observability-with-clickhouse]。如果你对底层实现细节感兴趣,欢迎阅读我们最初发布的博客,里面有详细介绍[https://clickhouse.com/blog/a-new-powerful-json-data-type-for-clickhouse]。

图片

这意味着你可以直接将从 OpenTelemetry collectors 采集的增强型日志、追踪和指标发送至 ClickStack,无需担心严格的 Schema 或手动展开数据。ClickStack 的 UI 层 HyperDX 充分发挥了这一优势,支持更智能的过滤、JSON 路径的自动补全,以及更快速的搜索和可视化。

回到之前的示例——现在我们可以将所有数据以原始形式存储,完整保留其自然的结构与数据类型:

{
  "service": {
    "name": "user-service",
    "version": "1.2.3"
  },
  "http": {
    "status_code": 200
  },
  "user": {
    "preferences": {
      "theme": "dark",
      "notifications": {
        "email": true,
        "push": false
      }
    }
  },
  "error": {
    "stack": [
      "AuthError: Invalid token",
      "  at validateToken (auth.js:45)",
      "  at middleware (app.js:23)"
    ]
  }
}

查询也变得更加直观:

SELECT LogAttributes.user.preferences.notifications.email

返回的仍然是之前的布尔值,而且我们无需再去关心数据的嵌套层级或类型!

为 OpenTelemetry 添加支持

在支持 HyperDX 之前,我们首先需要确保 ClickStack 的每一层都能正确支持 JSON。要为 ClickHouse 的 OpenTelemetry exporter 增加支持,首先需要让 clickhouse-go 客户端支持 JSON 类型——exporter 在插入数据时使用这一客户端。客户端会将 JSON 列以序列化的 JSON 字符串插入,ClickHouse 再解析该字符串,自动识别新列及其类型。

此外,我们还对数据插入的逻辑进行了多项优化。我们更新了 Go 驱动,使其支持通过 ClickHouse 的原生 API 进行 TCP 和 HTTP 连接,这样在将 OpenTelemetry 的数据结构转换为 ClickHouse 的原生列式格式时,性能大幅提升。我们还借助 pprof 对主插入循环进行了性能分析和优化,大多数优化点集中在对 OpenTelemetry 结构中 getter 的冗余调用。

ClickHouse exporter 对 JSON 的支持最近已通过 feature flag 合并[https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/40547]。通过这一改动,所有原本使用 Map 类型的列现已全面切换为 JSON 类型。

为 HyperDX 添加支持

在 OpenTelemetry Collector 支持 JSON 类型后,我们将注意力转向了 UI 层 HyperDX 的适配。

为了在 HyperDX 中实现对 JSON 的完整支持,我们需要更新 UI 以支持嵌套对象,这在过去的 Map 类型中是难以实现的。因此,我们对前端的多个组件进行了重构,以便能够正确渲染和交互深度结构化的 JSON 数据。同时,部分查询也需要重写,采用新的 JSON 路径符号来高效访问嵌套字段。当前阶段,部分操作仍然需要将 JSON 值转换为字符串或浮点数,但未来我们计划引入更智能的元数据缓存机制,这样在字段类型始终一致的情况下,就可以完全跳过类型转换。

展望未来,我们还将继续优化 Schema,增设更多针对 JSON 工作负载的索引和性能优化,进一步提升 ClickStack 架构下的查询性能。

如何启用 JSON 支持?

目前,JSON 支持仍处于测试阶段,可以在部署任一堆栈模式时,通过 feature flag 启用[https://clickhouse.com/docs/use-cases/observability/clickstack/getting-started]。

docker run -e BETA_CH_OTEL_JSON_SCHEMA_ENABLED=true -e OTEL_AGENT_FEATURE_GATE_ARG='--feature-gates=clickhouse.json' -p 8080:8080 -p 4317:4317 -p 4318:4318 docker.hyperdx.io/hyperdx/hyperdx-all-in-one:2-nightly

启用 JSON 类型支持需要配置两个环境变量:

BETA_CH_OTEL_JSON_SCHEMA_ENABLED=true 用于在 ClickHouse 中启用 JSON 支持,OTEL_AGENT_FEATURE_GATE_ARG='--feature-gates=clickhouse.json' 用于在 OTel collector 中开启 JSON 数据摄取。

如果你想通过示例数据体验 JSON 类型,可以参考我们的入门指南[https://clickhouse.com/docs/use-cases/observability/clickstack/getting-started/sample-data],里面提供了公共数据集。我们非常期待听到你的反馈,欢迎在我们的公共仓库提交 issue 或建议[https://github.com/hyperdxio/hyperdx/tree/main]。

现在,JSON 已在整个堆栈中实现了支持,用户几乎无需感知就能立即受益。

需要注意的是,JSON 类型的引入带来了全新的 Schema,与旧的基于 Map 的 Schema 不兼容。希望使用 JSON 的用户,可以选择在 HyperDX 中为基于 JSON 的 Schema 配置单独的数据源,或通过简单的 INSERT INTO ... SELECT 操作来迁移现有数据。

整体的用户体验几乎没有变化,不过在查看如 LogAttributes 等属性列时,视觉上会有一些细微的不同。以前的层级结构会被扁平化,子层级通过点符号表示(例如 k8s.pod.name),而现在,属性结构以完整的层级形式呈现。

图片

基于 Map 类型的属性渲染

图片

基于 JSON 类型的层级属性渲染

那么 JSON 类型到底有多大提升?

得益于 HyperDX 对列自动补全和类 Lucene 查询构造的支持,用户最直观的收益就是 OTel 列(如 LogAttributes 等属性)上的查询速度大幅提升,I/O 明显减少。更重要的是,属性的真实数据类型得以保留,不再像之前那样全部转换为字符串。这意味着,当你传入数值或日期类型的属性时,类型信息不会丢失,能够直接高效地进行比较。

为了让这种优势更直观,我们以 ClickStack playground(play-clickstack.clickhouse.com,底层是 sql.clickhouse.com 的 ClickHouse 实例)中的示例日志 OTel 数据集为例,该数据集大约有 9000 万行。以下是基于 Map 类型的 Schema:

CREATE TABLE otel_v2.otel_logs
(
    `Timestamp` DateTime64(9) CODEC(Delta(8), ZSTD(1)),
    `TimestampTime` DateTime DEFAULT toDateTime(Timestamp),
    `TraceId` String CODEC(ZSTD(1)),
    `SpanId` String CODEC(ZSTD(1)),
    `TraceFlags` UInt8,
    `SeverityText` LowCardinality(String) CODEC(ZSTD(1)),
    `SeverityNumber` UInt8,
    `ServiceName` LowCardinality(String) CODEC(ZSTD(1)),
    `Body` String CODEC(ZSTD(1)),
    `ResourceSchemaUrl` LowCardinality(String) CODEC(ZSTD(1)),
    `ResourceAttributes` Map(LowCardinality(String), String) CODEC(ZSTD(1)),
    `ScopeSchemaUrl` LowCardinality(String) CODEC(ZSTD(1)),
    `ScopeName` String CODEC(ZSTD(1)),
    `ScopeVersion` LowCardinality(String) CODEC(ZSTD(1)),
    `ScopeAttributes` Map(LowCardinality(String), String) CODEC(ZSTD(1)),
    `LogAttributes` Map(LowCardinality(String), String) CODEC(ZSTD(1)),
    INDEX idx_trace_id TraceId TYPE bloom_filter(0.001) GRANULARITY 1,
    INDEX idx_res_attr_key mapKeys(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
    INDEX idx_res_attr_value mapValues(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
    INDEX idx_scope_attr_key mapKeys(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
    INDEX idx_scope_attr_value mapValues(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
    INDEX idx_log_attr_key mapKeys(LogAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
    INDEX idx_log_attr_value mapValues(LogAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
    INDEX idx_body Body TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 8
)
ENGINE = MergeTree
PARTITION BY toDate(TimestampTime)
PRIMARY KEY (ServiceName, TimestampTime)
ORDER BY (ServiceName, TimestampTime, Timestamp)

对应的基于 JSON 类型的 Schema:

CREATE TABLE otel_json.otel_logs
(
    `Timestamp` DateTime64(9) CODEC(Delta(8), ZSTD(1)),
    `TimestampTime` DateTime DEFAULT toDateTime(Timestamp),
    `TraceId` String CODEC(ZSTD(1)),
    `SpanId` String CODEC(ZSTD(1)),
    `TraceFlags` UInt8,
    `SeverityText` LowCardinality(String) CODEC(ZSTD(1)),
    `SeverityNumber` UInt8,
    `ServiceName` LowCardinality(String) CODEC(ZSTD(1)),
    `Body` String CODEC(ZSTD(1)),
    `ResourceSchemaUrl` LowCardinality(String) CODEC(ZSTD(1)),
    `ResourceAttributes` JSON CODEC(ZSTD(1)),
    `ScopeSchemaUrl` LowCardinality(String) CODEC(ZSTD(1)),
    `ScopeName` String CODEC(ZSTD(1)),
    `ScopeVersion` LowCardinality(String) CODEC(ZSTD(1)),
    `ScopeAttributes` JSON CODEC(ZSTD(1)),
    `LogAttributes` JSON CODEC(ZSTD(1)),
    INDEX idx_body Body TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 8
)
ENGINE = MergeTree
PARTITION BY toDate(TimestampTime)
PRIMARY KEY (ServiceName, TimestampTime)
ORDER BY (ServiceName, TimestampTime, Timestamp)

你会发现,新的 Schema 明显简洁了不少,主要是因为 Map 类型的键和值不再需要布隆过滤器。ResourceAttributes、ScopeAttributes 和 LogAttributes 中的各个字段现在都作为独立的子列存储,布隆过滤器因此变得不再必要。

比如我们希望查看每个 pod 的日志流量。虽然 HyperDX 会自动生成查询语句,但底层的 SQL(这里是简化版)本质上是一次聚合操作。使用 Map 类型时:

SELECT
    ResourceAttributes['k8s.pod.name'] AS pod_name,
    count() AS c
FROM otel_v2.otel_logs WHERE pod_name !=''
GROUP BY pod_name
ORDER BY c DESC
LIMIT 10

这里有几个关键点:查询耗时 2.7 秒,扫描了整个数据集,内存占用 1.6GB,读取的数据量高达 30GB!

这种巨量的数据读取正是 Map 类型的瓶颈所在。因为所有子字段都存储在同一个 LogAttributes 列中,哪怕只要 JSON 字段 'k8s.pod.name',也不得不读取整列。

相比之下,使用 JSON 类型查询同一字段时,'k8s.pod.name' 已经作为单独的列存在。

SELECT
    CAST(ResourceAttributes.k8s.pod.name, 'String') AS pod_name,
    count() AS c
FROM otel_json.otel_logs WHERE pod_name !=''
GROUP BY pod_name
ORDER BY c DESC
LIMIT 10

性能提升极其显著——查询速度快了 9 倍。虽然处理的行数一样,但实际读取的数据量减少了超过 10 倍,仅读取了所需列的对应值。

其他改进

虽然 JSON 类型是本月 ClickStack 更新的明星功能,但我们的优化远不止于此。我们在 ClickStack 的多个细节上都做了精心打磨,虽然每项改动都不算巨大,但整体体验却因此变得更加流畅和愉悦。以下是一些亮点更新。

Helm chart 的增强

本月,我们对 HyperDX 的 Helm chart 进行了多项优化,帮助用户部署更灵活、更易掌控。主要更新包括:支持接入自有的 MongoDB 服务[https://github.com/hyperdxio/helm-charts/pull/29]、配置自定义的 ClickHouse 用户凭据[https://github.com/hyperdxio/helm-charts/pull/26]、优化 PVC 配置[https://github.com/hyperdxio/helm-charts/pull/32]。此外,还增加了对 nodeSelector 和 tolerations 的支持[https://github.com/hyperdxio/helm-charts/pull/56]、服务类型及注解的配置能力[https://github.com/hyperdxio/helm-charts/pull/57]、HyperDX [https://github.com/hyperdxio/helm-charts/pull/44]及应用[https://github.com/hyperdxio/helm-charts/pull/41]的 ingress 能力增强,以及 OpenTelemetry collector 支持设置自定义环境变量[https://github.com/hyperdxio/helm-charts/pull/46]。这些改进让用户可以根据自身基础设施与工作负载的特点,更好地定制 HyperDX。

搜索结果支持 CSV 下载

针对用户呼声较高的需求,我们新增了搜索结果的导出功能。基于性能考虑,目前支持导出最多 4000 行,但这对于需要进一步分析或共享数据的用户而言,已非常实用。导出文件为 CSV 格式,方便直接在表格或其他工具中使用。

图片

Elastic 迁移指南

应社区的需求,我们发布了 Elastic Stack 迁移指南[https://clickhouse.com/docs/use-cases/observability/clickstack/migration/elastic],帮助希望从 Elastic(前称 Elastic Stack 或 ELK Stack)迁移的用户。迁移后的优势显而易见:更好的压缩率、更高的资源利用率,以及更低的总体拥有成本。尽管迁移过程中可能存在一定复杂性,但我们力求让过程尽可能平滑。指南中详细对照了两种技术的概念映射,并提供了语言 SDK 和代理迁移的清晰路径,帮助用户快速完成切换。未来几个月,我们还会陆续推出针对其他传统可观测性方案的迁移指南,敬请期待。

Docker 镜像体积优化

为了让大家的入门体验更轻松,我们也致力于缩减容器镜像的体积。最早的用户反馈之一就是 all-in-one 镜像体积太大。现在,我们已经将其从 3GB 缩减至 2.2GB,应用本身的体积也从约 2GB 减至 1.2GB,几乎瘦身一半。我们仍在不断优化,持续让镜像更轻、更快,助你几乎无障碍地快速上手。

征稿启示

面向社区长期正文,文章内容包括但不限于关于 ClickHouse 的技术研究、项目实践和创新做法等。建议行文风格干货输出&图文并茂。质量合格的文章将会发布在本公众号,优秀者也有机会推荐到 ClickHouse 官网。请将文章稿件的 WORD 版本发邮件至:Tracy.Wang@clickhouse.com

 

政府科技管理者在推动区域科技成果转化过程中,如何系统性地识别和分析创新资源的配置瓶颈?.docx 政府科技管理者在推动区域科技成果转化过程中,如何系统性地识别和分析创新资源的配置瓶颈? 立即下载

相关推荐

政府科技管理者如何提升区域科技成果转化项目的评价与筛选效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

从发布到爆发:ClickStack 半年进化史,ClickHouse 可观测性全面起飞

在所有规划之中,最重要的里程碑,是迈向 ClickHouse Cloud 中完全托管的 ClickStack 形态。

ClickHouseDB的博客 862

高校技术转移办公室人员在成果转化过程中如何快速提升技术推介效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

为可观测性注入LLM :结合 ClickStack、OpenTelemetry 与 MCP

LLM 可观测性在生产环境尤其关键,尤其是针对智能体应用以及频繁借助 MCP 工具与 LLM 交互的场景。

ClickHouseDB的博客 1237

两相交错并联Boost电路仿真模型(Simulink仿真实现)

内容概要:本文档系统性地介绍了基于Simulink平台的两相交错并联Boost电路仿真模型,属于电力电子变换器建模与仿真研究的重要组成部分。该模型采用交错并联结构,有效提升了系统效率、降低了输出电流纹波,并具备优良的动态响应与系统稳定性。文档不仅聚焦于该特定拓扑的开环与闭环控制实现,还整合了丰富的配套资源,涵盖多种主流DC-DC变换器(如Buck、Boost、LLC、CLLC)、功率因数校正(PFC)电路、PWM整流器、双向充放电系统以及新能源应用场景(如V2G、微电网)等领域的仿真模型。资源体系强调软开关技术、多相交错控制、系统级建模与参数优化设计,所有内容均提供可运行的Simulink仿真文件,部分包含详细的设计报告、计算书及参考文献,具有较强的工程实践与科研复现价值。; 适合人群:电气工程、自动化、电力电子与电力传动等相关专业的硕士博士研究生、高校科研人员,以及从事新能源发电、电动汽车、电源系统设计等领域的工程技术人员。; 使用场景及目标:①支撑高校电力电子与电力系统方向的科研项目,用于新型拓扑结构的建模与先进控制算法的验证;②服务于本科生与研究生的毕业设计、课程设计及高水平学术论文的仿真复现;③为企业在电源产品研发、新能源系统集成等环节提供成熟的仿真方案参考,缩短研发周期,降低试错成本。; 阅读建议:建议使用者首先访问文档末尾提供的完整资源目录链接,按需下载对应仿真模型;在实践过程中,应重点关注模型的参数配置、控制策略实现细节与仿真工况设置,结合配套的说明文档深入理解其工作原理与设计思路,推荐在MATLAB/Simulink环境中动手调试与二次开发,以充分掌握电力电子系统的核心技术。

基于单片机的电动工程机械高压管理单元控制器设计.docx

基于单片机的电动工程机械高压管理单元控制器设计.docx

重磅回顾:首届用户大会 Open House 精彩亮点

Open House 本次的盛大活动标志着 ClickHouse 的又一重要里程碑。

ClickHouseDB的博客 925

Qt QWebEngine实战:手把手教你将Vue3/React前端项目嵌入C++桌面程序

本文详细介绍了如何利用Qt的QWebEngine模块将Vue3/React前端项目无缝嵌入C++桌面程序,实现现代前端框架与原生C++的深度整合。通过环境准备、项目架构设计、前端适配、Qt端集成、双向通信建立及性能优化等步骤,开发者可以高效构建兼具Web灵活性和本地系统能力的混合应用。

weixin_28736355的博客 390

ClickStack 十一月更新(2025 年)

本次更新引入了 Service Maps、incident.io 集成、根 span 筛选、trace 内搜索、折线图对比,以及用于突出显示特定属性的新控件。

ClickHouseDB的博客 1221

cosi-corr操作详细步骤

cosi-corr是一个可以加载到ENVI的软件包,由加利福尼亚理工学院的François Ayoub,  Sébastien Leprince,  and Lionel Keene开发,并且提供源代码,该软件受到了NSF的资助。软件的主要功能是可以满足各种影响的正射校正和影像配准。 针对下载下来的软件包参考《cosi-corr_guide.pdf》,进行配置使用具体详细过程如下: (本机环境

u013299471的专栏 1万+

BOM 数据模型设计

字段名数据类型必填说明物料编码 (Part Number)字符串是唯一标识,主键。建议包含分类前缀(如STD-GEN-CUS-物料名称 (Part Name)字符串是版本 (Revision)字符串是如AB1.0,与编码组合构成唯一实例。状态 (Status)枚举是设计中(Draft)已发布(Released)已归档(Archived)已作废(Obsoleted)类型 (Type)枚举是专用件(Custom)借用件(Borrowed)通用件(Generic)标准件(Standard)

Davina_yu的博客 1756

实战 ClickPy(1.8 万亿行):OpenTelemetry + ClickStack 如何实现秒级排障与会话回放

本文主要聚焦于 trace 分析,日志系统尚未涉及。其它部分敬请期待。

ClickHouseDB的博客 976

制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)

实现的功能: l APP控制月球灯 l 本地月球灯控制 l APP控制“大白”颜色,实现各种颜色变身 l 门状态传感器状态APP显示 l 网络状态指示灯,连接服务器长亮,断开后闪烁 l 配网按键 l 云端定时功能 l 云端报警提示功能 l 云端历史数据查看 l 远程升级介绍 视频演示:【开源】制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)_哔哩哔哩_bilibili 一、界面展示 ...

东小东博客 7115

ClickStack 最新动态:2026 年 1 月版

我们发布了一系列具有重要影响的改进,解锁了全新的工作负载场景,同时也加入了一些虽小但非常有趣、实用的优化。

ClickHouseDB的博客 635

Windows配置L2TP/IPsec连接

Windows 系统的 L2TP/IPsec 功能,通过配置即可构建加密 VPN 通道。

m0_61806534的博客 1668

第1集:面试官视角:AIOps 核心能力模型与面试项目全局搭建【免费试读】

本文介绍了一门面向AIOps工程师的面试实战课程,针对当前运维领域薪资差距明显的痛点,帮助学员系统掌握企业级AIOps平台开发能力。课程承诺提供可直接用于面试和生产环境的代码实现,从零构建模块化AIOps平台。第一集重点讲解了面试官视角下的核心能力模型,并指导学员搭建项目基础环境,包括Python虚拟环境配置、本地大模型部署(Ollama)以及智能巡检Agent的代码实现。课程强调实战导向,通过40集系统讲解,帮助学员实现薪资40-60万的职业跃升。

qq_2937655951的博客 615

破解可观测性成本高昂的束缚:构建开放且具成本效益的系统架构

列式数据库天然就是构建可观测性平台的最佳基础。

ClickHouseDB的博客 1227

AWS SQS跨账户访问失败排查指南

在使用AWS SQS(Simple Queue Service)时,跨账户访问是常见的业务场景。例如,账户A的应用程序向队列发送消息,账户B的消费者从队列拉取消息。尽管AWS官方文档明确支持此类配置,但在实际应用中,由于权限模型的复杂性,开发者和运维人员常会遇到“策略已配置但无法接收消息”的问题。通过本文的逐步排查指南,您不仅可以解决当前问题,还能深入理解AWS跨账户访问的权限模型。接收方账户的用户或角色必须同时附加IAM策略,显式授权操作目标队列。尽管策略看似允许接收方操作,实际测试中却返回空消息或。

探索云原生与智能化驱动下的安全运维新范式。关注DevSecOps、可观测性、AIOps等前沿领域,与您共赴技术前沿。 458

ClickStack 十月更新亮点(2025 年)

结合 ClickHouse 的新特性和 HyperDX UI 的功能增强,让可观测性体验更加快速、直观和强大。

ClickHouseDB的博客 1075

3D Slicer学习记录(4)-PLUSapp连接双目相机Intel Realsense

plusapp是基于openIGTLink协议的免费的开源库和应用程序API接口,用于数据采集、预处理、校准和实时流成像、位置跟踪和其他传感器数据。这里以intel realsense双目相机为例详细的演示整个图像流导入到3D Slicer的流程。

weixin_39090239的博客 1346

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

重磅发布 ClickStack:基于 ClickHouse 的高性能开源可观测性栈

ClickStack 标志着 ClickHouse 在可观测性生态建设上的又一次重要进化:一个直观、开源、具备明确设计理念的全栈可观测性解决方案。

ClickHouseDB的博客 1202

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

用 ClickStack 追踪 OpenAI Agent 智能体执行过程

构建起一整套 AI 智能体的可观测性链路——从原始运行数据,到图形化分析界面,一应俱全。

ClickHouseDB的博客 1341

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ClickHouse 数据目录迁移翻车实录:整十分 SIGQUIT 疑云、uuid 撞车双节点互踢与 ZooKeeper 僵尸副本排查(附迁移 SOP)

ClickHouse 两节点集群做数据目录迁移,迁完节点 2 后节点 1 无故 stop,此后两节点随便启动哪个都会被自动终止——退出全部发生在整十分,日志写着 Received termination signal (Quit)。本文完整还原排查:信号溯源五步法(journalctl/strace si_pid/auditd)、整点规律与 ZK 分桶过期的辨析、system.replicas 三板斧取证,最终锁定 rsync 迁移经典坑:/var/lib/clickhouse/uuid 撞车导致双节点互踢

Sayai的专栏 224

ClickHouse走向AI数据栈的技术路线与工程边界

ClickHouse获得3.5亿美元融资,资本认可了列式分析引擎的商业价值,但工程问题更具体:一个为扫描聚合设计的引擎能否同时承载BI报表、可观测性日志与AI特征工程三类负载。文章从列存与向量化执行机制拆起,讨论稀疏索引与分区裁剪的代价模型、MergeTree家族引擎选型、副本与分片拓扑权衡、写入攒批去重与背压、物化视图增量聚合、宽表特征建模、向量检索与标量过滤协同、存算分离成本核算,并复盘六个真实失败案例,给出迁移落地五步法与运维边界建设建议。

搞定过:百亿级数据、万级QPS、零宕机、AI工业化。 367

ClickHouse 运维排障工具箱:视图创建类型报错、CPU 打满拒绝连接、合并 OOM 与 query_log 查询溯源(附速查表)

ClickHouse 一个集群的多事发日:CREATE VIEW 报 ILLEGAL_TYPE_OF_ARGUMENT(isNaN 只吃浮点,聚合状态要先 sumMerge 再 CAST Float64);CPU 打满开始拒绝连接(SERVER_OVERLOADED 是背压不是宕机,processes/merges/mutations 三表定位元凶);OOM 崩溃堆栈解读(MemoryTracker + MergeTask = 合并内存超限,16G 节点配置基线);毫秒级短查询刷屏用 query_log 三

Sayai的专栏 271

EDB 收购 Altinity,整合 Postgres 与 ClickHouse

EnterpriseDB 于11月5日收购 ClickHouse 服务商 Altinity,交易金额未披露,计划通过共享 Iceberg 目录和统一访问控制整合 Postgres 与 ClickHouse 能力。

老孙正经胡说 248
上一篇: 为可观测性注入LLM :结合 ClickStack、OpenTelemetry 与 MCP
下一篇: 特斯拉如何基于 ClickHouse 构建千万亿级别的可观测性平台
ClickHouseDB
博客等级 码龄3年 1707粉丝 320原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值