SkyWalking 应用性能监控系统

2020-12-11  本文已影响0人  金融测试民工

    随着微服务架构的流行,一些微服务架构下的问题也会越来越突出,比如一个请求会涉及多个服务,而服务本身可能也会依赖其他服务,整个请求路径就构成了一个网状的调用链,而在整个调用链中一旦某个节点发生异常,整个调用链的稳定性就会受到影响。当企业应用进入分布式微服务时代,应用服务依赖会越来越多,skywalking可以很好的解决服务调用链路追踪的问题,而且基于java探针技术,基本对应用零侵入零耦合。

skywalking是什么,有什么用?

        Skywalking是一个APM系统,即应用性能监控系统,为微服务架构和云原生架构系统设计。它通过探针自动收集所需的指标,并进行分布式追踪。通过这些调用链路以及指标,Skywalking APM会感知应用间关系和服务间关系,并进行相应的指标统计。目前支持链路追踪和监控应用组件如下,基本涵盖主流框架和容器,如国产PRC Dubbo、主流MQ、kafka等,国际化的spring boot,spring cloud都支持了。

下面展示一下skywalking的官网demo,启动程序,请求的追踪结果就会被记录下来,通过 SkyWalking UI 查看:

Overview dashboard

Discovery topological graph of application clusters automatically.

Applicationoverview

Servermetrics

Servicemetrics

Trace

Alarm

 

环境要求

1、JDK8+

2、Elasticsearch 6.x

3、8080,10800,11800,12800 端口不被占用

Elasticsearch下载安装参考官方教程, 安装完成后需要对 config/elasticsearch.yml 做如下修改:

# 修改

# 如果 cluster.name 不设置为 CollectorDBCluster ,则需要修改 SkyWalking 的配置文件

cluster.name: CollectorDBCluster 

network.host: 0.0.0.0

# 增加

thread_pool.bulk.queue_size: 1000

如果是 linux 环境,Elasticsearch 安装可能没有那么顺利,请参考Linux 环境下安装 Elasticsearch 5.x、6.x 问题汇总

在启动 SkyWalking 之前,请确保 Elasticsearch 已启动。如果一切顺利,这时候就可以通过http://localhost:8080来查看 SkyWalking UI 了(默认全是0),默认账号/密码:admin/admin。

skywalking搭建分两种模式:

        单机模式,后台使用h2内嵌数据库(不太支持使用这种方式)

        集群模式,后台使用zookeeper和elk(即Elasticsearch,Logstash 和 Kibana)

skywalking是使用jvm启动插件插入发方式启动(即java.lang.instrustment的代理),配置更加简单。

全链路性能跟踪展示页面:

下面来看下调用dubbo和db的效果:

skywalking的原理:

       skywalaking总体架构分为三部分:

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

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

   3、skywalking-agent:探针,用来收集和发送数据到归集器

skywalking的核心在于agent部分,下图展示了一次调用跨多个进程里agent的详细的运行过程:


 skywalking的限制

1.只支持已知的代理,如果使用的中间件还未被支持,需要自己写插件。

2.跨线程的场景不支持自动代理,比如任务分配,任务池,批处理的场景。

上一篇 下一篇

猜你喜欢

热点阅读