全链路监控ATS

简介

全链路监控ATS是一个对JAVA分布式应用程序集群的业务运行情况进行追踪、告警和分析的系统。

核心理论为Google Dapper论文:Dapper, a Large-Scale Distributed Systems Tracing Infrastructure 本分析系统能通过不修改或少量修改代码的模式,对现有的JAVA应用或J2EE应用进行监控和数据收集,并针对应用进场进行准实时告警。此外提供大量的调用性能分析功能,解决目前的监控系统主要监控进程、端口而非应用实际性能的问题。服务支持国内常用的dubbo以及dubbox等常见RPC框架,支持应用异常的邮件告警,通过byte-buddy,部分插件将通过动态字节码机制,避免代码侵入性,完成监控。

整体架构图

![](https://camo.githubusercontent.com/cf48db55ca4fd0e0d9b62ac69e28f86b88d57a74/687474703a2f2f77752d7368656e672e6769746875622e696f2f736b792d77616c6b696e672f73616d706c652d636f64652f696d616765732f736b7977616c6b696e67436c75737465724465706c6f792e6a706567

典型页面

实时链路追踪展现 实时链路追踪详细信息查看 实时链路追踪日志查看 实时链路异常告警邮件

特点

支持常见RPC框架 支持国内常用的dubbo以及dubbox等常见RPC框架,支持应用异常的邮件告警

低侵入性 通过byte-buddy,部分插件将通过动态字节码机制,避免代码侵入性,完成监控。

使用环境条件

JDK 1.7 安装zookeeper 3.4.6 安装apache hbase 1.1.2 安装mysql 安装tomcat 7 redis-3.0.5

常见问题

Q:如何在追踪日志中记录日志上下文?
A: 使用sky walking提供的专用API,可以将日志保存到追踪日志中。

Q:如何在代码中获取traceid?
A:通过API获取traceid。

Q:还有其他方式获取traceid么?
A:通过web应用的http调用入口,通过返回的header信息,找到此次调用的traceid。前提:此web应用的url,已经使用skywalking进行监控。

详细介绍参见https://github.com/wu-sheng/sky-walking