bitdrift加入ClickHouse House Mates,为ClickStack提供移动可观测性
译文 AI 逐段翻译
今天,我们很高兴地宣布,bitdrift 已正式加入 House Mates,成为 ClickHouse 的移动端可观测性合作伙伴,为 ClickStack 带来移动端原生的遥测、追踪和调试能力。
ClickStack 为工程团队提供了一个基于 ClickHouse 的开箱即用的可观测性解决方案,用于收集、存储和查询后端服务、Web 前端(包括会话重放)以及基础设施的可观测性数据。bitdrift 将该基础扩展到移动设备,而许多最棘手的生产问题实际上正是从那里开始的。
结合使用时,ClickStack 和 bitdrift 为工程团队提供了一个连续的视图,从用户在手机上的操作到处理请求的后端服务一目了然。
什么是 ClickStack?
ClickStack 是 ClickHouse 的开源可观测性栈。它有三个核心组件:
- ClickHouse —— 用于存储和查询可观测性数据的列式数据库。
- ClickStack UI (HyperDX) —— 用于搜索、可视化、关联和告警这些数据的用户界面。
- OpenTelemetry Collector,用于标准化收集日志、指标和追踪,并通过 OpenTelemetry 协议(OTLP)接收事件。
ClickStack 将可观测性信号作为丰富的、可查询的事件存储在 ClickHouse 中。列式设计和并行查询引擎适用于高基数工作负载,例如大量的分布式追踪和应用日志。团队可以在一个平台上关联信号、检查单个追踪、构建仪表板和告警,并对大型数据集进行快速搜索。
该可观测性栈可作为开源部署或在 ClickHouse Cloud 上作为托管服务提供。无论哪种方式,遥测数据都通过 OpenTelemetry Collector 使用 OTLP over HTTP 或 gRPC 接入。
什么是 bitdrift?
bitdrift 是一个专为移动应用构建的动态可观测性平台。它也有三个核心组件:
- The Capture SDK,一个用于 iOS、Android 和 React Native 的轻量级库,用 Rust 构建并带有薄薄的平台特定包装器,它将遥测数据写入设备上的固定大小环形缓冲区,而不是立即流式传输出去。
- 控制平面,它与每个客户端保持持久的双向连接,并实时推送新配置,决定收集什么和上传什么。
- bitdrift 平台,在这里,工作流、会话时间线、图表、问题和警报将移动遥测数据转化为答案,可通过 Web UI、CLI、AI 代理和公共 API 访问。
bitdrift 将移动遥测数据保留在边缘,直到被请求,独特地允许团队按需查询完整的会话数据。所有内容都在设备上捕获并无采样地存储,因此工程师可以回放导致性能问题或崩溃的完整会话,研究用户旅程和行为,或深入探究任何其他移动可观测性问题,而不是基于采样数据集工作。bitdrift 专为智能体控制而设计,允许由 AI 驱动移动端的所有仪器化、调查和修复。因此,bitdrift 客户报告了更低的移动端平均修复时间(MTTR),并能快速发现和诊断其他工具无法找到的性能和稳定性问题。
bitdrift Capture 平台可作为 bitdrift 托管的 SaaS 或作为自带云(或桶)部署在您的 AWS 账户中。
一个 bitdrift 用户旅程仪表板,显示通往 ANR 的路径
bitdrift 和 ClickStack 如何协同工作
bitdrift 和 ClickStack 的集成可以通过共享的追踪 ID 连接同一个生产事件的两个视图:
- bitdrift 显示设备上发生了什么: 用户操作、应用状态、网络请求、日志、错误、崩溃、性能信号以及周围的会话上下文。
- ClickStack 显示请求到达后端后发生了什么: 分布式追踪、服务依赖、日志、指标、数据库操作和基础设施行为。
- OpenTelemetry 追踪上下文将两者联系在一起。
调查可能始于 bitdrift 中的一次失败结账、缓慢的屏幕加载、认证错误或崩溃。从网络请求中,工程师可以跟随追踪 ID 进入由 HyperDX 驱动的 ClickStack UI,并观察请求在后端服务间的移动。
无需再在两个不相关的工具之间对齐时间戳;直接从受影响的用户体验转到产生该体验的后端路径。
bitdrift Capture 本身也大量使用 ClickHouse 进行事件存储,使其能够扩展到数十亿台设备,并使这种集成成为自然契合。
查看移动端到后端追踪的实际效果
在我们的演示中,一个移动购物应用与官方 OpenTelemetry 演示后端进行通信。
它从 bitdrift 中的移动体验开始。从会话时间线中,工程师挑选出相关的网络请求及其追踪 ID。该上下文跟随请求进入已进行 OpenTelemetry 仪器化的后端,在那里可以在 ClickStack UI 中查看完整的分布式追踪。
结果是跨越移动客户端、API、后端服务和下游依赖的连续调试路径,无需从分散的时间戳手动重建。
用于追踪的示例移动配置
设置因平台以及您是自我管理 ClickStack 还是在 ClickHouse Cloud 上运行而异,但整体过程很简单。
在 Android 上,启用 bitdrift 的 OkHttp 网络和追踪集成:
1import io.bitdrift.capture.network.okhttp.CaptureOkHttpEventListenerFactory2import io.bitdrift.capture.network.okhttp.CaptureOkHttpTracingInterceptor3import okhttp3.OkHttpClient45valclient= OkHttpClient.Builder()6 .addInterceptor(CaptureOkHttpTracingInterceptor())7 .eventListenerFactory(CaptureOkHttpEventListenerFactory())8 .build()在 iOS 上,追踪通过 bitdrift 现有的 URLSession 集成运行。
bitdrift 时间线事件和跨度显示一个 View Trace 链接,该链接将捕获的追踪 ID 带入 ClickStack。
一个链接到 ClickStack 追踪的 bitdrift 移动请求
用一个连接的视图弥合移动可观测性差距
可观测性不应从API网关开始,因为用户体验始于设备。大多数可观测性平台都是围绕服务器、容器和短期后端请求构建的,但移动端呈现出不同的问题。一个会话可能持续数小时,在网络间切换,掉线,触及设备特定的资源限制,并产生比任何应用能连续传输的更多的诊断上下文。传统移动工具通过收集一组固定的信号并对其余部分进行采样来处理这个问题。问题在于?你需要的会话通常是被丢弃的那个。
bitdrift Capture和ClickStack从两个方向弥补了这一差距。在设备端,bitdrift在本地记录丰富的遥测数据,并在发生有意义的事件时拉取完整会话,因此团队无需从每个设备发送每个事件即可获得完整的移动上下文。一旦trace ID进入后端,ClickStack的列式存储和OpenTelemetry原生设计能够承受分布式追踪所需的高基数、高容量查询。系统的任何一半都不会留下猜测,用户旅程的任何部分都不必从零散的时间戳或部分数据中重建。
bitdrift的移动原生遥测和选择性追踪,结合ClickStack的可扩展OpenTelemetry后端,让团队能够从用户设备一路调查生产问题,直到他们的分布式系统。总之,它为ClickStack用户带来了真正的移动端到后端可观测性。
有兴趣连接移动端和后端可观测性吗? 联系我们预订演示了解bitdrift和ClickStack集成。
了解更多:
- 查看 bitdrift沙箱看看使用Capture是什么体验。
- 开始 免费试用直接深入产品。
- 查看 新文档了解bitdrift和ClickHouse集成的更多细节。
常见问题
如何在ClickHouse上获得移动端可观测性?
bitdrift是移动可观测性集成合作伙伴,为ClickStack带来移动原生遥测、追踪和调试。团队将bitdrift Capture SDK添加到他们的iOS、Android或React Native应用中,移动请求通过OpenTelemetry track context与ClickStack中的后端trace关联,无论ClickStack是自管理还是在ClickHouse Cloud上运行。这为工程团队提供了从用户移动会话到处理请求的后端服务的连续视图。
bitdrift和ClickStack之间的移动端追踪是如何工作的?
bitdrift向移动网络请求添加W3C其他追踪头,并在移动用户的会话时间线中呈现生成的trace ID。工程师可以从bitdrift会话中直接跟踪trace ID到ClickStack UI(由HyperDX提供支持),其中提供了完整的后端trace。这消除了手动对齐跨移动和后端工具的多个时间戳的需要。
我需要更改我的ClickStack部署来使用bitdrift吗?
不需要。该集成无论ClickStack是自管理还是作为ClickHouse Cloud上的托管产品运行,都能正常工作。来自bitdrift的遥测数据到达ClickStack已经使用的同一个OpenTelemetry Collector。
bitdrift支持哪些移动平台进行追踪?
bitdrift的Capture SDK支持iOS、Android和React Native。在Android上,通过bitdrift的OkHttp集成启用追踪(CaptureOkHttpTracingInterceptor和CaptureOkHttpEventListenerFactory)。在iOS上,通过bitdrift现有的URLSession集成进行追踪。两个链接都通过bitdrift时间线事件和跨度上的“查看Trace”链接将trace ID捕获到ClickStack。