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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
应用实时监控服务-应用监控,每月50GB免费额度
简介: 通过案例带你轻松玩转JMeter连载(54)

3全链路监控:SkyWalking



现在微服务架构越来越风行,随之而来全链路监控(APM:Application Performance


Management)工具在性能测试分析软件中得到了越来越多的普及。全链路监控工具是一种应用性能监控工具,通过汇聚业务系统各处理环节的实时数据,分析业务系统各事务处理的交易路径和处理时间,实现对应用的全链路性能监测。目前主流的APM工具,基本都是参考了Google的Dapper(大规模分布式系统的跟踪系统)体系,通过跟踪业务请求的处理过程,完成对应用系统在前后端处理、服务端调用的性能消耗跟踪,提供可视化的界面来展示对跟踪数据的分析。


现在比较流行的全链路工具有韩国出品的Pinpoint、中国吴晟出品的SkyWalking、Twitter出品的Zipkin以及美团和携程出品的CAT,这一节我们来介绍SkyWalking。


图26为SkyWalking架构图。

image.png

图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所示。

image.png

图27 SkyWalking下载界面


2)下载后放在本地一个非中文路径下。


3)拷贝mysql-connector-java-5.1.46.jar到oap-libs目录下。


4)修改config/application.yml 文件(安装skywalking系统中必须安装MySQL)。


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。


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所示。

image.png

图28 启动SkyWalking


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


  • 监控 Tomcat应用,在tomcat/bin/catalina.bat中输入如下内容。


set"CATALINA_OPTS=-javaagent:%SKYWALKING_HOME%\agent\skywalking-agent.jar"


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


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

java -javaagent: 
%SKYWALKING_HOME%\agent\skyWalking-agent.jar=agent.service_name=Jerrygu -jar 
a.jar --httpPort=8081


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


java java -server -Xms256m -Xmx256m -Dspring.profiles.active=dev 
-Dspring.cloud.nacos.discovery.server-addr=127.0.0.1:8081    
-javaagent:C:\apache\apache-skywalking-apm-bin-es7\agent\skyWalking-agent.jar=agent.service_name=Jerrygu -jar jenkins.war --httpPort=8081


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

image.png

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


在这里。

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


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

image.png

图31 监控网络拓扑结构

如果你监控的是一个微服务,那么微服务上每一个的节点都可以以拓扑图的形式被监控到。


10)点击菜单中的DataBase,可以显示被监测软件访问到的数据库的状态,如图32所示。

image.png

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


在图的左下方,如果你的程序中存在着慢SQL,可以在这里显示。


11)点击每个监控元素左上角的hellip;,可以设置监控信息。如图33所示。

image.png

图33 设置监控信息


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

相关实践学习
通过云拨测对指定服务器进行Ping/DNS监测
本实验将通过云拨测对指定服务器进行Ping/DNS监测,评估网站服务质量和用户体验。
目录
相关文章
|
Java 测试技术 API
通过案例带你轻松玩转JMeter连载(49)
通过案例带你轻松玩转JMeter连载(49)
251 1
通过案例带你轻松玩转JMeter连载(49)
|
存储 Linux
通过案例带你轻松玩转JMeter连载(60)
通过案例带你轻松玩转JMeter连载(60)
179 0
通过案例带你轻松玩转JMeter连载(60)
|
算法
通过案例带你轻松玩转JMeter连载(59)
通过案例带你轻松玩转JMeter连载(59)
232 0
通过案例带你轻松玩转JMeter连载(59)
|
XML JavaScript Java
通过案例带你轻松玩转JMeter连载(58)
通过案例带你轻松玩转JMeter连载(58)
130 0
通过案例带你轻松玩转JMeter连载(58)
通过案例带你轻松玩转JMeter连载(57)
通过案例带你轻松玩转JMeter连载(57)
128 0
通过案例带你轻松玩转JMeter连载(57)
|
存储 索引
通过案例带你轻松玩转JMeter连载(56)
通过案例带你轻松玩转JMeter连载(56)
117 0
通过案例带你轻松玩转JMeter连载(56)
|
存储 Prometheus 监控
通过案例带你轻松玩转JMeter连载(55)
通过案例带你轻松玩转JMeter连载(55)
165 0
通过案例带你轻松玩转JMeter连载(55)
|
存储 Prometheus 监控
通过案例带你轻松玩转JMeter连载(53)
通过案例带你轻松玩转JMeter连载(53)
138 0
通过案例带你轻松玩转JMeter连载(53)
|
JSON 监控 数据可视化
通过案例带你轻松玩转JMeter连载(52)
通过案例带你轻松玩转JMeter连载(52)
200 0
通过案例带你轻松玩转JMeter连载(52)
|
存储 监控 测试技术
通过案例带你轻松玩转JMeter连载(51)
通过案例带你轻松玩转JMeter连载(51)
212 0
通过案例带你轻松玩转JMeter连载(51)