检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
ECS应用接入APM 当您的应用部署在ECS(弹性云服务器)上时,请根据操作流程了解APM服务。本章将以在ECS上的Java应用接入APM为例子来介绍如何开启Java应用监控。 前提条件 已购买ECS。 ECS满足APM支持的操作系统。 ECS满足APM支持的Java类型。 确保本地浏览器的时区、时间与ECS一致。
Time 每个方法在CPU上的运行时间。 Allocated Memory 已分配的堆内存(包括已被回收和未被回收的部分),使用场景包括频繁GC等。 Latency trace相关线程的方法执行的总耗时。包括方法在CPU上的运行时间、等待I/O的时间以及方法运行时发生的任何其他时间。 Live
通过https加密结合AKSK鉴权的方式传输 APM服务端按照Project隔离存储 资源库前台查询展示 7天,到期彻底删除 内存检测信息 内存使用率、使用量、最大使用量、剩余内存大小、内存超限时刻以及内存监测机制的配置信息 通过https加密结合AKSK鉴权的方式传输 APM服务端按照Project隔离存储
JBoss Standalone模式如何接入APM? APM支持JBoss服务器,JBoss在使用Java探针时,需要特殊的设置。 下面举例对JBoss 6.2.0、JBoss 8.1.0 和JBoss 12.0.0的Standalone模式接入APM进行说明,其他JBoss的版本类似操作。
总加载类数量 类加载器总加载类数量。 卸载类数量 类加载器卸载类数量。 内存池 可使用内存 当前可使用的内存大小。 初始化内存 初始化内存大小。 最大内存 最大内存大小。 内存池名称 内存池名称。 已使用内存 已经被使用的内存大小。 CPU cpu使用率 java进程的cpu使用率。 查看GC监控
Net类型 APM支持的.Net类型 APM支持.Net类应用,目前已支持多种主流框架、web服务器、通讯协议、数据库等,可实现应用轻松接入。 表1 skywalking探针 .Net组件和框架 探针类型 组件 支持版本 skywalking探针 ASP.NET Core 6.0
Linux系统不支持Profiler功能。因为Alpine Linux是一个轻量级的Linux系统发行版,缺少运行Profiler的必要依赖。如果需要支持Profiler功能,建议使用标准Linux操作系统。 为了应用运行稳定,强烈建议您按照要求升级JDK版本,在低版本的JDK上使用Profiler性能分析功能,存在应用崩溃的风险。
APM,即可在指标、调用链界面上查看应用情况。 前提条件 确保接入的节点与APM服务网络连通。可使用Telnet命令测试目标机器与APM服务器网络是否连通。 例如,以检查华北-北京四区域,且代码源选择“增强型探针”的连通性为例,请登录应用所部署的机器,并输入命令telnet 100
Php类型 APM支持的Php类型 APM支持Php类应用,目前已支持多种主流框架、web服务器、通讯协议、数据库等,可实现应用轻松接入。 表1 skywalking探针Php组件和框架 探针类型 组件 版本 skywalking探针 PDO 0.1.0+ skywalking探针
GO类型 APM支持的GO类型 APM支持GO类应用,目前已支持多种主流框架、web服务器、通讯协议、数据库等,可实现应用轻松接入。 表1 自研探针GO组件和框架 探针类型 组件 版本 skywalking探针 gin 1.7.0~1.9.0 skywalking探针 http Server
选择实例:在下拉列表中选择实例,当前最多可以同时选择1个实例。 表1 快照列表参数说明 参数 说明 日期 获取调试信息的时间。 CPU核数 CPU占用率。 内存分配速率 内存的速度,它代表着该内存所能达到的最高工作频率。 实例名称 实例名称。 鼠标停留在列表中的某一行单击,展示该行对应的火焰图。 图2 快照火焰图
SQL分析 分析异常SQL语句导致的数据库性能问题。拓扑展示数据库或SQL语句的关键指标。 JVM监控 实时监控JVM运行环境的内存和线程指标,快速发现内存泄漏、线程异常等问题。 拓扑展示实例的JVM指标数据。 当JVM指标异常,则上报告警。 了解更多 权限管理 创建用户并授权使用APM。
分布式系统中的执行轨迹和状态,用于性能及故障快速定界。 商用 调用链 2 优化JVM线程监控 JVM监控展示基于Java应用的JVM运行环境的内存和线程指标,您可以实时监控指标趋势进行性能分析。 商用 线程指标图表 2020年8月 序号 功能名称 功能描述 阶段 相关文档 1 支持Tomcat监控
Node.js类型 APM支持的Node.js类型 APM支持Node.js类应用,目前已支持多种主流Node框架、web服务器、通讯协议、数据库等,可实现应用轻松接入。 表1 自研探针Node.js组件信息 探针类型 组件 版本 自研探针 express 4.0.0+ 自研探针
开启后,将对低开销的应用进行持续诊断,解决Java程序中因为CPU、内存和时延导致的瓶颈问题。 开关默认为关闭,开关置灰。总开关关闭时,所有子开关都处于关闭状态。 CPU 开启后将采集应用运行过程中CPU火焰图信息。 开关默认为关闭,开关置灰。 内存 开启后将采集应用运行过程中堆内存火焰图信息。 开关默认为关闭,开关置灰。
JAVA类型 APM支持的JAVA类型 APM支持JAVA类应用,目前已支持多种主流Java框架、web服务器、通讯协议、数据库等,可实现应用轻松接入。 表1 自研探针JAVA组件和框架 探针类型 组件 JDK 1.8 JDK 17 自研探针 Dubbo 2.6.x 2.6.x 自研探针
探针通过字节码增强技术进行调用埋点,生成数据。该数据后续会被ICAgent采集,之后ICAgent会将数据上报并呈现在界面中。开启了内存检测机制后,如果检测到实例内存过大时探针会进入休眠状态,停止数据采集。APM如何采集探针数据 网格 Istio网格是以非侵入的方式获取流入、流出应用程序的
Memory”。根据右侧Self排序排查,找到分配内存最多的方法。 图10 内存火焰图 查看代码,发现LargeEnum是个枚举类,定义了大量的常量。由于枚举类的方法 values() 底层是通过数组clone实现的,即每次调用values()方法,底层会复制一个枚举数组,所以会导致频繁分配堆内存,频繁GC。 图11
部署APM Agent时,必须确保接入APM的机器与APM服务网络连通,Agent才能正常工作。 可使用Telnet命令测试目标机器与APM服务器网络是否连通。例如,以检查华北-北京四区域,且接入方式为“Skywalking”的连通性为例,请登录应用所部署的机器,并输入命令telnet
法及对象实时参数。方便开发人员从实时的远程应用程序中获取调试信息,而无需重新启动应用程序,也不会阻止它并导致服务停机。 使用限制 为了应用运行稳定,强烈建议您按照要求升级JDK版本,在低版本的JDK上使用Debugging诊断功能,存在应用崩溃的风险。 Debugging诊断仅针对白名单用户开放。