栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

应用性能监控原理(应用性能监控管理)

应用性能监控原理(应用性能监控管理)

应用性能监控-- SkyWalking

文章目录

应用性能监控-- SkyWalking

APM 与 SkyWalking

SkyWalking 与 Sleuth + Zipkin 比较 SkyWalking 服务端与 Java Agent

环境要求SkyWalking 部署安装步骤安装 SkyWalking Java Agent SkyWalking 常用视图

拓扑图链路追踪图 附页

java agent

SkyWalking 是中国人吴晟开源的应用性能管理系统(APM)工具,使用 Java 语言开发,现在已属于 Apache 旗下开源项目,官网 https://skywalking.apache.org/

SkyWalking 的核心是数据分析和度量结果的存储平台,通过 HTTP 或 gRPC 方式向 SkyWalking Collecter 提交分析和度量数据,SkyWalking Collecter 对数据进行分析和聚合,存储到 Elasticsearch、H2、MySQL、TiDB 等其一即可,最后我们可以通过 SkyWalking UI 的可视化界面对最终的结果进行查看。

APM 与 SkyWalking

APM(Application Performance Management),即应用性能管理系统。对应用程序单点性能与整个分布式应用进行监控,记录每一个环节程序执行状况,通过图表与报表的西施让运维人员随时掌握系统的运行状况。

特点:

实现强大的链路跟踪相比 Zipkin,拥有更友好、更详细的监控项能自动生成可视化图表 SkyWalking 与 Sleuth + Zipkin 比较

SkyWalkingSleuth + Zipkin
链路跟踪可视化
聚合报表丰富很少
服务依赖图形象直观简单依赖图
监控埋点方式无侵入,采用 Java Agent 字节码增强侵入式
Java VM 指标监控具备不具有
支持报警有,可自定义不具有
存储机制ES、Mysql等ES、Mysql等
文档支持Apache 支持,国内文档滞后文档丰富
SkyWalking 服务端与 Java Agent 环境要求

JDK 8 SkyWalking 部署

SkyWalking 服务端用于接收来自 Java Agent 客户端发过来的链路跟踪与指标数据,汇总统计后由 SkyWalking UI 负责展示。

端口占用:

11800 端口:gPRC 默认监听的服务端口12800 端口:HTTP 默认监听的端口8080 端口:SkyWalking UI 应用默认监听的端口 安装步骤

第一步,安装 ElasticSearch 全文搜索引擎(存储推荐使用 ElasticSearch)。这里推荐查阅这里。

第二步,下载 SkyWalking 服务端

下载路径,点击 Distribution,下载 for Elasticsearch 7。下载完成后解压在不带中文字样的路径下。

第三步,配置 SkyWalking 数据源。在 application.yml 配置中,搜索 elasticsearch 的配置。

修改后的配置是

storage:
#  selector: ${SW_STORAGE:h2}
  selector: ${SW_STORAGE:elasticsearch7}

可能会遇到的问题

在bin目录下执行 startup.bat 时,startup.bat 闪退,不会启动 Skywalking-Collector 和 Skywalking-Webapp。

解决方案:将 skywalkinge 解压之后的文件夹放到 JDK 安装目录的上一级。例如 D:Program FilesJava 是 java 环境地址,放在 D:apache-skywalking-apm-bin-es7 上。

也有可能是 8080 端口被占用,这个得排查一下。

端口占用:

11800:gRPC 端口,数据收集服务。12800:HTTP 端口,数据收集服务。8080:SkyWalking UI,用于展示数据。 安装 SkyWalking Java Agent

通过 java agent 探针技术,允许应用开发的时候再通过启动增加 javaagent 参数来外挂一些额外的程序。从而完成无侵入的监控埋点。

首先我们这里先说明白服务间的调用关系,假设有三个微服务,分别是:a-service、b-service 和 c-service,他们之间的调用关系是 a->b->c。

其次,我们可以在 apache-skywalking-apm-bin-es7agent路径下找到 skywalking-agent.jar 文件,如果是在生产环境下,启动命令为

java -javaagent:./skywalking-agent.jar -Dskywalking.agent.service_name=a-service -Dskywalking.collector.backend_service=localhost:11800 -Dskywalking.logging.file_name=a-service-api.log -jar a-service.jar

如果是开发环境运行,需要在 Run/Debug Configurations 中的 Configuration->Environment->VM options 添加配置参数

// a-service
-javaagent:D:apache-skywalking-apm-bin-es7agentskywalking-agent.jar -Dskywalking.agent.service_name=a-service -Dskywalking.collector.backend_service=localhost:11800 -Dskywalking.logging.file_name=a-service-api.log
// b-service
-javaagent:D:apache-skywalking-apm-bin-es7agentskywalking-agent.jar -Dskywalking.agent.service_name=b-service -Dskywalking.collector.backend_service=localhost:11800 -Dskywalking.logging.file_name=b-service-api.log
// c-service
-javaagent:D:apache-skywalking-apm-bin-es7agentskywalking-agent.jar -Dskywalking.agent.service_name=c-service -Dskywalking.collector.backend_service=localhost:11800 -Dskywalking.logging.file_name=c-service-api.log

Dskywalking.agent.service_name:指定在 SkyWalking 上报数据时的服务名

Dskywalking.collector.backend_service:指定 SkyWalking 服务端的通信 IP 与端口

Dskywalking.logging.file_name:指定 agent 生成的上报日志文件名,日志文件保存 agent 的 logs 目录中,例如:apache-skywalking-apm-bin-es7agentlogs

SkyWalking 常用视图

使用 Apifox 进行压力测试。

打开 SkyWalking UI,默认显示全局监控,自动刷新设置 1 秒。

分别显示的是,各服务每分钟访问次数,高延迟服务列表,服务状态指数,高延迟端点列表,全局响应延迟比检测图,全局响应热力图。

服务状态指数:越接近 1 状态越好。高延迟端点列表:是高延迟服务的列出,第一个是我们主要排查的服务对象。

压力测试结果。

拓扑图

点击拓扑图可以看到服务间的依赖关系。

链路追踪图

附页 java agent

Java agent 提供了一种在加载字节码时,对字节码进行修改的方式。他共有两种方式执行,一种是在 main 方法执行之前,通过 premain 来实现,另一种是在程序运行中,通过 attach api 来实现。

定义一个简单的 Jave Agent 扩展类。

public class SimpleAgent {
    public static void premain(String agentArgs, Instrumentation inst) {
        System.out.println("==========开始执行premain==========");
    }
}

之后,在 meta-INF 目录下找到 MANIFEST.MF 文件,添加内容。

Manifest-Version:1.0
Premain-Class:info.mufeng.agent.SimpleAgent

然后,在启动服务的时候加上-javaagent:agent.jar 额外的附加参数。启动的时候会输出如下日志:

==========开始执行premain==========
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/771381.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号