专栏名称: InfoQ
有内容的技术社区媒体。
目录
51好读  ›  专栏  ›  InfoQ

作业帮基础观测能力之二全链路追踪实践

InfoQ  · 公众号  · 科技媒体  · 2025-06-02 13:00

正文

请到「今天看啥」查看全文


Prometheus:用于存储和分析链路及拓扑数据,Prometheus 强大的监控能力结合智能告警机制,能够实现系统异常分钟级感知。

目前该体系已稳定运行超过 2 年,并成功支持多次业务大促活动。在保障系统稳定性的同时,我们也在探索追踪数据与 AIops 的结合应用,在根因分析(故障传播链挖掘)、异常预测(多维指标关联预警)等场景实现智能化突破。

作业帮追踪系统实践

作业帮的追踪系统是伴随其云原生架构的发展而逐步建立完善的,属于服务治理体系的一个重要组成部分。截至目前,作业帮已有 97%+ 的服务完成了容器化改造,统一采用了基础架构提供的服务网格及各种基础组件。此外,主流开发语言均已成功接入公司内部的应用框架,确保了底层技术栈的高度一致性和标准化。这种统一的底层架构设计,不仅促进了内部资源的有效整合,更为构建企业级的分布式链路追踪系统奠定了坚实的基础。

得益于基建能力的建设,作业帮建成了如下所示的分布式追踪系统,并作为一项关键的基础观测能力提供出来,从架构层面支持了对服务间通信和基础服务访问进行追踪,能够实现实时监控与深度分析系统的运行状态及性能指标,为作业帮的技术运维提供了强有力的支持,同时也为优化用户体验、提升服务质量创造了条件。

业务无感接入

作业帮的追踪系统依托于其他云原生基建能力:统一的服务网格和服务框架,采用边车 + 日志 + 服务的采集模式构建,业务无需关心具体实现即可自动接入使用。

基于 MESH 的追踪(MESHTracing)

mesh 边车会对服务的所有出入流量做追踪打点,  这部分对服务是完全无感的。追踪数据上报到本机上的 jaeger-agent 服务上, 之后再批量传输到 jaeger-collctor 服务上,jaeger-collctor 服务负责统一将追踪数据写到 Kafka 中。另外我们最新版本的 mesh 在追踪埋点上的开销几乎可以忽略不计,对服务的性能影响极小。

基于日志的追踪(Log-Based Tracing)

对一些业务小众或者特殊的网络调用,  我们通过约定日志规范的方式做追踪数据采集,如部分服务出流量(服务访问 ck、表存储的流量)、网关的入流量等。log-trace 服务负责做日志的追踪数据采集, 它会从日志 kafka 订阅所有业务日志, 解析后封装成标准的追踪数据直接写入到 kafka 中,这里没有先上报到 jaeger-agent 再由 jaeger-collctor 统一采集,避免了中转开销。

日志采集模式基于底层语言框架同样对服务无感,是作为 MESH 采集模式的补充,当前公司主流的语言框架均已完成支持。

基于服务的追踪(Service-Based Tracing)

以上的两类采集方式专注于对服务边界的观测,  如果服务有对内部的观测需求则通过服务自定义打点的方式上报追踪数据,按需增加追踪深度。服务通过接入追踪 SDK 方式上报追踪数据到本机上的 jaeger-agent 服务上, 再通过 jaeger-collceror=>kafka 的链路完成上报。







请到「今天看啥」查看全文