通过案例带你轻松玩转JMeter连载(54)

2022-02-10 15:58:00 浏览数 (1)

3全链路监控:SkyWalking 现在微服务架构越来越风行,随之而来全链路监控(APM:Application Performance Management)工具在性能测试分析软件中得到了越来越多的普及。全链路监控工具是一种应用性能监控工具,通过汇聚业务系统各处理环节的实时数据,分析业务系统各事务处理的交易路径和处理时间,实现对应用的全链路性能监测。目前主流的APM工具,基本都是参考了Google的Dapper(大规模分布式系统的跟踪系统)体系,通过跟踪业务请求的处理过程,完成对应用系统在前后端处理、服务端调用的性能消耗跟踪,提供可视化的界面来展示对跟踪数据的分析。 现在比较流行的全链路工具有韩国出品的Pinpoint、中国吴晟出品的SkyWalking、Twitter出品的Zipkin以及美团和携程出品的CAT,这一节我们来介绍SkyWalking。 图26为SkyWalking架构图。

图26 SkyWalking架构图

SkyWalking 仅可以监控JAVA程序,其核心是数据分析和度量结果的存储平台,通过 HTTP 或 gRPC 方式向 SkyWalking Collecter 提交分析和度量数据,SkyWalking Collecter 对数据进行分析和聚合,存储到 Elasticsearch、H2、MySQL、TiDB 等其一即可,最后我们可以通过 SkyWalking UI 的可视化界面对最终的结果进行查看。SkyWalking 支持从多个来源和多种格式收集数据:多种语言的 SkyWalking Agent 、Zipkin v1/v2 、Istio 勘测、Envoy 度量等数据格式。 整体架构看似模块有点多,但在实际上还是比较清晰的,主要就是通过收集各种格式的数据进行存储,然后展示。所以搭建 SkyWalking 服务我们需要关注的是 SkyWalking Collecter、SkyWalking UI 和 存储设备,SkyWalking Collecter、SkyWalking UI 官方下载安装包内已包含,最终我们只需考虑存储设备即可。下面主要介绍SkyWalking安装预配置。 1)到http://skywalking.apache.org/downloads/下载源代码(注意:这个页面经常变化)。如图27所示。

图27 SkyWalking下载界面

2)下载后放在本地一个非中文路径下。 3)拷贝mysql-connector-java-5.1.46.jar到oap-libs目录下。 4)修改config/application.yml 文件(安装skywalking系统中必须安装MySQL)。

代码语言:javascript复制
mysql:
    properties:

      jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://localhost:3306/swtest"}

      dataSource.user: ${SW_DATA_SOURCE_USER:root}

      dataSource.password: ${SW_DATA_SOURCE_PASSWORD:root@123456}

      dataSource.cachePrepStmts: 
${SW_DATA_SOURCE_CACHE_PREP_STMTS:true}

      dataSource.prepStmtCacheSize: 
${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_SIZE:250}

      dataSource.prepStmtCacheSqlLimit: 
${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_LIMIT:2048}

      dataSource.useServerPrepStmts: 
${SW_DATA_SOURCE_USE_SERVER_PREP_STMTS:true}

      dataSource.useSSL: false

    metadataQueryMaxSize: ${SW_STORAGE_MYSQL_QUERY_MAX_SIZE:5000}

    maxSizeOfArrayColumn: 
${SW_STORAGE_MAX_SIZE_OF_ARRAY_COLUMN:20}

其中

  • 3306:为MySQL默认端口。
  • swtest:为SkyWalking所需要的数据库名称。
  • root/123456:为MySQL数据库登录名和密码。
  • dataSource.useSSL: false:为数据源不用SSL进行加密。

5)在MySQL中建立数据库swtest。 6)修改webapp/webapp.yml。

代码语言:javascript复制
server:
  port: 18080



collector:

  path: /graphql

  ribbon:

    ReadTimeout: 10000

    # Point to all backend's restHost:restPort, split by ,

    listOfServers: 127.0.0.1:12800

webapp.yml配置文件中默认端口为8080,因为这个容易与TOMCAT冲突,改为18080。 7)启动bin/startup.bat,弹出两个窗口。如图28所示。

图28 启动SkyWalking

8)打开浏览器,在地址栏中输入:http://127.0.0.1:18080/。由于没有监控任何应用,所以内容是空的。

  • 监控 Tomcat应用,在tomcat/bin/catalina.bat中输入如下内容。
代码语言:javascript复制
set"CATALINA_OPTS=-javaagent:%SKYWALKING_HOME%agentskywalking-agent.jar"

在%SKYWALKING_HOME%改为SkyWalking的安装路径,下面不再累赘。

监控任意一个jar或war文件,比如监控 a.jar文件

在这里,我加载jenkins包jenkins.war,命令如下。

代码语言:javascript复制
java java -server -Xms256m -Xmx256m -Dspring.profiles.active=dev 
-Dspring.cloud.nacos.discovery.server-addr=127.0.0.1:8081    
-javaagent:C:apacheapache-skywalking-apm-bin-es7agentskyWalking-agent.jar=agent.service_name=Jerrygu -jar jenkins.war --httpPort=8081

8)在监控系统中执行一些操作,然后在浏览中显示如图29显示被监控结果。

图29 显示被监控程序的监控结果

在这里。

  • 当前服务:其中jerryGu为jenkins服务,You_ApplicationName为Tomcat服务。
  • 当前节点:基于服务下的目录。

9)切换到拓扑菜单,就可以看到整体的网络拓扑结构。如图30所示。

图31 监控网络拓扑结构

如果你监控的是一个微服务,那么微服务上每一个的节点都可以以拓扑图的形式被监控到。 10)点击菜单中的DataBase,可以显示被监测软件访问到的数据库的状态,如图32所示。

图32 监测被监测软件访问到的数据库的状态

在图的左下方,如果你的程序中存在着慢SQL,可以在这里显示。 11)点击每个监控元素左上角的hellip;,可以设置监控信息。如图33所示。

图33 设置监控信息

SkyWalking官方网站:https://skywalking.apache.org/。

0 人点赞