apm-skywalking
https://github.com/apache/incubator-skywalking
kyWalking: 针对分布式系统的APM(应用性能监控)系统,特别针对微服务、cloud native和容器化(Docker, Kubernetes, Mesos)架构, 其核心是个分布式追踪系统。
- Java自动探针,不需要修改应用程序源代码 * 高性能探针,针对单实例5000tps的应用,在全量采集的情况下,只增加 10% 的CPU开销。
- 手动探针
- 使用OpenTracing手动探针API
- 使用 @Trace 标注追踪业务方法
- 将 traceId 集成到 log4j, log4j2 或 logback这些日志组件中
- 纯Java后端Collector实现,提供RESTful和gRPC接口。兼容接受其他语言探针发送数据
Document
5.x Architecture
code of conduct
This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].
Live Demo
Screenshots
- 全局总揽
- 拓扑图自动发现
- 应用视图
- 应用服务器视图
- 服务视图
- 调用链
- 告警
Test reports
- 自动化集成测试报告
- 性能测试报告
============================
java分布式链路追踪&jvm应用监控-skywalking
当企业应用进入分布式微服务时代,应用服务依赖会越来越多,skywalking可以很好的解决服务调用链路追踪的问题,而且基于java探针技术,基本对应用零侵入零耦合。
skywalking是什么,有什么用?
Skywalking 是一个APM系统,即应用性能监控系统,为微服务架构和云原生架构系统设计。它通过探针自动收集所需的指标,并进行分布式追踪。通过这些调用链路以及指标,Skywalking APM会感知应用间关系和服务间关系,并进行相应的指标统计。目前支持链路追踪和监控应用组件如下,基本涵盖主流框架和容器,如国产PRC Dubbo和motan等,国际化的spring boot,spring cloud都支持了
skywalaking总体架构分为三部分
skywalking-collector:链路数据归集器,数据可以落地ElasticSearch,单机也可以落地H2,不推荐,H2仅作为临时演示用
skywalking-web:web可视化平台,用来展示落地的数据
skywalking-agent:探针,用来收集和发送数据到归集器
如何快速开始?
第一步:进入官方release地址https://github.com/OpenSkywalking/skywalking/releases,分别下载skywalking-collector,skywalking-web,skywalking-agent,解压后,归集器和web应用都会有一个bin目录,单机模式下,不需要改配置,直接执行对应的脚本即可
第二步:配置需要监控的应用的agent探针
拷贝skywalking-agent目录到所需位置,探针包含整个目录,请不要改变目录结构,可修改agent.config配置agent.application_code=xxl-job为自己的应用名
增加JVM启动参数,-javaagent:/path/to/skywalking-agent/skywalking-agent.jar。参数值为skywalking-agent.jar的绝对路径。
第三步:打开web页面,查看拓扑信息,端口默认8080,所以一般没问题,打开localhost:8080就会看到如下的系统图例了
系统使用图例
系统主页各应用的拓扑图
系统实例,一个应用一个实例
系统jvm和cpu使用率等监控信息
服务调用的span详细信息
服务依赖树
服务调用链路
其他
1.除了可以使用自动探针上报数据外,还可以使用注解,用埋点的方式手动上传业务数据
2.还可以将traceId。集成到主流的日志框架中输出,如log4j,logback等