SOFATracer 分布式链路追踪中间件开源项目

我要开发同款
匿名用户2018年05月31日
44阅读
开发技术Java
所属分类服务器软件、分布式应用/网格
授权协议Apache 2.0

作品详情

SOFATracer 是一个用于分布式系统调用跟踪的组件,通过统一的 traceId 将调用链路中的各种网络调用情况以日志的方式记录下来,以达到透视化网络调用的目的。这些日志可用于故障的快速发现,服务治理等。

一、背景

在目前的技术架构实施中,统一采用面向服务的分布式架构,通过服务来支撑起一个个应用,而部署在应用中的各种服务通常都是用复杂大规模分布式集群来实现的,同时,这些应用又构建在不同的软件模块上,这些软件模块,有可能是由不同的团队开发,可能使用不同的编程语言来实现、有可能部署了几千台服务器。因此,就需要一些可以帮助理解各个应用的线上调用行为,并可以分析远程调用性能的组件。

为了能够分析应用的线上调用行为以及调用性能,蚂蚁金服基于 OpenTracing规范 提供了分布式链路跟踪SOFATracer的解决方案。

二、功能简介

为了解决在实施大规模微服务架构时的链路跟踪问题,SOFATracer提供了以下的能力:

2.1基于OpenTracing规范提供分布式链路跟踪解决方案

基于 OpenTracing规范 并扩展其能力提供链路跟踪的解决方案。各个框架或者组件可以基于此实现,通过在各个组件中埋点的方式来提供链路跟踪的能力。

2.2提供异步落地磁盘的日志打印能力

基于 Disruptor 高性能无锁循环队列,提供异步打印日志到本地磁盘的能力。框架或者组件能够在接入时,在异步日志打印的前提下可以自定义日志文件的输出格式。SOFATracer提供两种类似的日志打印类型即摘要日志和统计日志,摘要日志:每一次调用均会落地磁盘的日志;统计日志:每隔一定时间间隔进行统计输出的日志。

2.3支持日志自清除和滚动能力

异步落地磁盘的SOFATracer日志支持自清除和滚动能力,支持按照按照天清除和按照小时或者天滚动的能力

2.4基于SLF4JMDC的扩展能力

SLF4J提供了MDC(MappedDiagnosticContexts)功能,可以支持用户定义和修改日志的输出格式以及内容。SOFATracer集成了SLF4JMDC功能,方便用户在只简单修改日志配置文件即可输出当前Tracer上下文的 tracerId 和 spanId。

2.5界面展示能力

SOFATracer可以将链路跟踪数据远程上报到开源产品 Zipkin 做分布式链路跟踪的展示。

2.6统一配置能力

配置文件中提供丰富的配置能力以定制化应用的个性需求。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论