apm和skywalking-1

  • 什么是APM系统
    APM–Application Performance Managment(Monitor)。
    系统可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题,这就是APM系统,

  • 常见的单机产品,推荐xrebel。
    XRebel官方简明教程: http://zeroturnaround.com/software/xrebel/quick-start/
    官方下载地址:https://zeroturnaround.com/software/xrebel/download/#!/have-license

  • 分布式跟踪分布式的产品比较多
    1、Pinpoint
    github地址:GitHub - naver/pinpoint: Pinpoint is an open source APM (Application Performance Management) tool for large-scale distributed systems written in Java.
    对java领域的性能分析有兴趣的朋友都应该看看这个开源项目,这个是一个韩国团队开源出来的,通过JavaAgent的机制来做字节码代码植入,实现加入traceid和抓取性能数据的目的。
    NewRelic、Oneapm之类的工具在java平台上的性能分析也是类似的机制。
    2、SkyWalking
    github地址:wu-sheng/sky-walking
    这是国内一位叫吴晟的兄弟开源的,也是一个对JAVA分布式应用程序集群的业务运行情况进行追踪、告警和分析的系统,在github上也有400多颗星了。
    功能相对pinpoint还是稍弱一些,插件还没那么丰富,不过也很难得了。
    3、Zipkin
    官网:OpenZipkin · A distributed tracing system
    github地址:GitHub - openzipkin/zipkin: Zipkin is a distributed tracing system
    这个是twitter开源出来的,也是参考Dapper的体系来做的。
    Zipkin的java应用端是通过一个叫Brave的组件来实现对应用内部的性能分析数据采集。
    Brave的github地址:https://github.com/openzipkin/brave
    这个组件通过实现一系列的java拦截器,来做到对http/servlet请求、数据库访问的调用过程跟踪。
    然后通过在spring之类的配置文件里加入这些拦截器,完成对java应用的性能数据采集。
    4、CAT
    github地址:GitHub - dianping/cat: Central Application Tracking
    这个是大众点评开源出来的,实现的功能也还是蛮丰富的,国内也有一些公司在用了。
    不过他实现跟踪的手段,是要在代码里硬编码写一些“埋点”,也就是侵入式的。
    这样做有利有弊,好处是可以在自己需要的地方加埋点,比较有针对性;坏处是必须改动现有系统,很多开发团队不愿意。
    5、Xhprof/Xhgui
    这两个工具的组合,是针对PHP应用提供APM能力的工具,也是非侵入式的。
    Xhprof github地址:GitHub - preinheimer/xhprof: XHGUI is a GUI for the XHProf PHP extension, using a database backend, and pretty graphs to make it easy to use and interpret.
    Xhgui github地址:GitHub - perftools/xhgui: A graphical interface for XHProf data built on MongoDB

  • Apache Skywalking
    skywalaking总体架构分为三部分

skywalking-collector:链路数据归集器,数据可以落地ElasticSearch,单机也可以落地H2,不推荐,H2仅作为临时演示用

skywalking-web:web可视化平台,用来展示落地的数据

skywalking-agent:探针,用来收集和发送数据到归集器
安装部署
官方网站
http://skywalking.apache.org/
分别下载skywalking-collector.zip,skywalking-web.zip,skywalking-agent.zip

下载
http://skywalking.apache.org/downloads/

Global全局维度
Services load:服务每分钟请求数
Slow Services:慢响应服务,单位ms
Un-Health services(Apdex):Apdex性能指标,1为满分。
○ Apdex 一个由众多网络分析技术公司和测量工业组成的联盟组织,它们联合起来开发了“应用性能指数”即“Apdex”(Application Performance Index),用一句话来概括,Apdex是用户对应用性能满意度的量化值
○ http://www.apdex.org/
Slow Endpoints: 慢响应端点,单位ms
Global Response Latency:百分比响应延时,不同百分比的延时时间,单位ms
Global Heatmap:服务响应时间热力分布图,根据时间段内不同响应时间的数量显示颜色深度
Service服务维度
Service Apdex(数字):当前服务的评分
Service Avg Response Times:平均响应延时,单位ms
Successful Rate(数字):请求成功率
Servce Load(数字):每分钟请求数
Service Apdex(折线图):不同时间的Apdex评分
Service Response Time Percentile:百分比响应延时
Successful Rate(折线图):不同时间的请求成功率
Servce Load(折线图):不同时间的每分钟请求数
Servce Instances Load:每个服务实例的每分钟请求数
Slow Service Instance:每个服务实例的最大延时
Service Instance Successful Rate:每个服务实例的请求成功率
Instance
Service Instance Load:当前实例的每分钟请求数
Service Instance Successful Rate:当前实例的请求成功率
Service Instance Latency:当前实例的响应延时
JVM CPU:jvm占用CPU的百分比
JVM Memory:JVM内存占用大小,单位m
JVM GC Time:JVM垃圾回收时间,包含YGC和OGC
JVM GC Count:JVM垃圾回收次数,包含YGC和OGC
Endpoint
Endpoint Load in Current Service:每个端点的每分钟请求数
Slow Endpoints in Current Service:每个端点的最慢请求时间,单位ms
Successful Rate in Current Service:每个端点的请求成功率
Endpoint Load:当前端点每个时间段的请求数据
Endpoint Avg Response Time:当前端点每个时间段的请求行响应时间
Endpoint Response Time Percentile:当前端点每个时间段的响应时间占比
Endpoint Successful Rate:当前端点每个时间段的请求成功率

猜你喜欢

转载自blog.csdn.net/tsj11514oo/article/details/119722709
APM