应用性能管理
快速入门
文档版本 01
发布日期 2021-05-26
版权所有 © 华为技术有限公司 2021。 保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传 播。
商标声明
和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意
您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或 特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声 明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文 档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
目 录
1 开通和购买... 1
2 监控 Java 应用... 5
2.1 虚机应用...5
2.1.1 ECS 应用接入 APM... 5
2.1.2 示例:Demo 应用接入 APM... 9
2.2 容器应用... 12
2.2.1 华为云容器应用接入 APM...12
2.2.2 原生 Docker 应用接入 APM...16
2.3 Deployment 应用接入 APM...18
3 监控其他应用...23
3.1 监控网格的集群应用... 23
快速入门 目 录
1 开通和购买
首次使用,请先开通APM。开通后默认使用基础版,基础版免费但功能受限使用,适 用于体验场景。您可根据自己的业务需求切换版本及购买套餐包,包括探针型产品专 业版、企业版和铂金版,网格型产品专业版,了解更多请参见价格详情。
开通/购买流程
注册账号
请注册华为云账号并完成实名认证。
开通 APM
步骤1 登录华为云管理控制台。
步骤2 选择“服务列表 > 管理与部署 > 应用性能管理 APM”进入APM服务页面。
步骤3 单击“免费开通”即可。
● 开通后您可以单击界面“免费体验”进行体验。可参考监控Java应用将您的应用 接入至APM,完成后在界面体验基础版支持的功能。
● 开通后,基础版本若不能满足您的业务需求,您可以进行切换版本以使用更高级 的功能。
----结束
切换版本
如果您在使用APM的过程中,由于业务发生变化,当前使用的APM版本的功能不能满 足您的需求,您可以切换至其他更高级的版本。同时也支持从高版本切换至低版本,
每月限一次。
步骤1 在APM“总览”页面单击“切换版本”。
步骤2 在切换版本页面选择产品类型和产品规格。
快速入门 1 开通和购买
步骤3 了解各版本支持的功能明细后,单击“立即切换”即可。
● 若您之前已购买了套餐包,切换版本后探针个数会自动换算为新版本的探针个 数。
● 若您之前未购买套餐包,切换版本后则会按照您实际使用的探针数按需计费。
----结束
购买套餐包
若您有长期使用APM的需求,您可以购买对应版本的套餐包。使用丰富功能的同时,
还能为您节约更多的成本。
步骤1 在APM“总览”界面上单击“购买套餐”。
步骤2 在购买页面选择区域、产品类型、套餐包类型、套餐规格及购买时长。
● 产品类型:网格型适用于在Istio网格的集群上部署的应用。探针型适用于一般部 署类型(虚机部署等)的应用。
● 套餐包类型:各套餐包支持的功能不同,请参见套餐包详情。
● 套餐规格:指套餐包中包含的探针实例数。一个应用进程需要安装一个探针,您 可以根据自己业务的进程总数进行合理选择。套餐包到期后若您没有购买新的套 餐包,将自动转为按需收费。若已欠费,探针将不再上报数据,影响您对APM的 使用,详见续费说明。
步骤3 单击“立即购买”并完成支付,套餐包购买完成。
APM购买完成后可参考监控Java应用等章节将您的应用接入APM,即可开启您的应用 性能监控之旅。
----结束
快速入门 1 开通和购买
2 监控 Java 应用
2.1 虚机应用
2.1.1 ECS 应用接入 APM
当您的应用部署在ECS(弹性云服务器)上时,请根据操作流程了解APM服务。本章 将以在ECS上的Java应用接入APM的例子来介绍如何开启Java应用监控。
前提条件
● 已购买ECS。
● ECS满足APM支持的操作系统。
● ECS满足APM支持的Java类型。
● 确保本地浏览器的时区、时间与ECS一致。
操作流程
步骤一:开通 APM
请参考开通和购买。
步骤二:安装 ICAgent
1. 获取AK/SK。
2. 登录应用性能管理。
3. 在左侧导航栏中选择“采集管理 > Agent管理”。
4. 单击“安装ICAgent”,选择“主机类型”为“华为云主机”、“安装系统”为
“Linux”。
5. 选择“安装方式”为“获取AK/SK凭证”,在文本框中输入已获取的AK/SK,生成 ICAgent安装命令,单击“复制命令”,复制ICAgent安装命令。
说明
请确保输入正确的AK/SK,否则将无法安装ICAgent。
快速入门 2 监控 Java 应用
6. 使用ECS提供的远程登录功能以root用户登录ECS,执行ICAgent安装命令进行安 装。
当显示“ICAgent install success”时,表示安装成功,ICAgent已安装在了
“/opt/oss/servicemgr/”目录。
步骤三:修改权限(可选)
若您使用非root用户启动程序,则您开启应用监控前需要执行如下命令修改探针文件 与输出目录权限。
chmod -R 777 /opt/oss/servicemgr/ICAgent/pinpoint/
mkdir -p /paas-apm/collectors/pinpoint chmod -R 777 /paas-apm
步骤四:配置应用启动脚本并重启
1. 在ECS上,若不使用Tomcat容器启动服务,执行如下操作:
a. 请在您的Java应用启动脚本中的java关键字后增加如下表格中的配置项,以 确保Java应用被APM监控。
表2-1 需要增加的配置项
参数 取值说明
-javaagent 采集探针依赖的jar包。
参数值固定,均取值为:/opt/oss/servicemgr/
ICAgent/pinpoint/pinpoint-bootstrap.jar -Dapm_application 应用名称。
由小写字母、数字、中划线(-)、下划线(_)组 成,且以小写字母或下划线(_)开头,长度限制 为1~64位字符。
-Dapm_tier 组成该应用的微服务名称。
由小写字母、数字、中划线(-)、下划线(_)组 成,且以小写字母或下划线(_)开头,长度限制 为1~64位字符。
启动脚本配置示例
(以下为以vmall应用、服务名称vmall-dao-service、vmall-user-service为 例的示例启动脚本,您需要在自己的实际启动脚本中配置)
▪
配置前启动脚本如下:java -Xmx512m -jar /root/testdemo/ecommerce-persistence-service-0.0.1- SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_dao.yml
> dao.log 2>&1 &
java -Xmx512m -jar /root/testdemo/ecommerce-user-service-0.0.1- SNAPSHOT.jar --spring.config.location=file:/root/testdemo/
application_userservice.yml > user.log 2>&1 &
▪
配置后启动脚本如下(区别已加粗):java -javaagent:/opt/oss/servicemgr/ICAgent/pinpoint/pinpoint- bootstrap.jar -Dapm_application=vmall -Dapm_tier=vmall-dao-service - Xmx512m -jar /root/testdemo/ecommerce-persistence-service-0.0.1-
SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_dao.yml
> dao.log 2>&1 &
java -javaagent:/opt/oss/servicemgr/ICAgent/pinpoint/pinpoint-
bootstrap.jar -Dapm_application=vmall -Dapm_tier=vmall-user-service - Xmx512m -jar /root/testdemo/ecommerce-user-service-0.0.1-SNAPSHOT.jar -- spring.config.location=file:/root/testdemo/application_userservice.yml > user.log 2>&1 &
b. 执行配置后的应用启动脚本,开启应用性能监控。
2. 在ECS上,若使用Tomcat容器启动服务则需添加探针,执行如下操作:
a. 进入到Tomcat容器的bin路径下(根据自己Tomcat容器的路径)。
b. 请将此命令拷贝至catalina.sh文件里:
JAVA_OPTS="$JAVA_OPTS -javaagent:/opt/oss/servicemgr/ICAgent/pinpoint/pinpoint- bootstrap.jar -Dapm_application=xxx -Dapm_tier=xxx"
说明
1. 注:-Dapm_application -Dapm_tier 按照表2-1标准自行配置。
c. 执行配置后的应用启动脚本,开启应用性能监控。
快速入门 2 监控 Java 应用
步骤五:在 APM 上管理应用
应用启动后,等待3分钟应用数据就会呈现在APM界面中,此时登录APM,您可以在 APM上通过拓扑、调用链等进行应用性能优化,详细操作请参考用户指南。
2.1.2 示例:Demo 应用接入 APM
如果您暂时没有自己的应用,可以使用我们提供的示例应用进行操作,以了解APM服 务。本章从全流程角度介绍如何将示例应用接入APM。
操作流程
步骤一:准备环境
1. 开通APM。若您首次登录APM,在界面弹框中单击“免费开通”,可以免费开通 APM。
2. 购买ECS,ECS的操作系统需为APM支持的操作系统。
– 如果您不想购买ECS,请跳过下述步骤,直接了解APM功能。
– 为保证性能,建议您购买时“vCPU”请选择2核及以上,“内存”请选择 4GB及以上。
3. 使用ECS提供的远程登录功能以root用户登录ECS。
4. 创建应用目录并进入目录,以目录testdemo为例。
mkdir /root/testdemo cd /root/testdemo
5. 下载并安装JDK。
说明
由于事先已经从JDK官网将JDK下载好并放置在http://
demos.obs.myhuaweicloud.com,所以执行了如下命令进行下载并安装。
curl -l http://demos.obs.myhuaweicloud.com/jdk_install.sh > jdk_install.sh && bash jdk_install.sh
6. 下载应用至应用目录并安装。
说明
由于事先已经将应用放置在http://demos.obs.myhuaweicloud.com,所以执行了如下命 令进行下载并安装。
curl -l http://demos.obs.myhuaweicloud.com/demo_install.sh > demo_install.sh && bash demo_install.sh
步骤二:安装 ICAgent
1. 获取AK/SK。
2. 登录应用性能管理。
3. 在左侧导航栏中选择“采集管理 > Agent管理”。
4. 单击“安装ICAgent”,选择“主机类型”为“华为云主机”、“安装系统”为
“Linux”。
5. 选择“安装方式”为“获取AK/SK凭证”,在文本框中输入已获取的AK/SK,生成 ICAgent安装命令,单击“复制命令”,复制ICAgent安装命令。
说明
请确保输入正确的AK/SK,否则将无法安装ICAgent。
快速入门 2 监控 Java 应用
6. 使用ECS提供的远程登录功能以root用户登录ECS,执行ICAgent安装命令进行安 装。
当显示“ICAgent install success”时,表示安装成功,ICAgent已安装在了
“/opt/oss/servicemgr/”目录。
步骤三:开启应用监控
ICAgent安装完成后,需通过修改应用启动参数开启应用性能监控功能来加载
ICAgent,否则无法正常使用APM对应用进行监控。针对示例应用,APM已经提供了 修改后的脚本,所以您无需再进行修改,只需要在应用所在的ECS上执行如下命令启动 修改后的脚本即可。
cd /root/testdemo
chmod +x start_apminside.sh bash start_apminside.sh
步骤四:在 APM 上管理应用
1. 应用启动后,等待3分钟应用数据就会呈现在APM界面中,此时登录APM,您可 以在APM上通过拓扑、调用链等进行应用性能优化,详细操作请参考用户指南。
2. (可选)如果您想访问示例应用,可以进行如下操作:
a. 修改ECS安全组规则,配置安全组入方向80端口访问许可,以确保可以通过
浏览器访问示例应用。
b. 在浏览器中打开“http://ECS的弹性IP”,访问示例应用并进行查询商品、查 看购物车等操作。
2.2 容器应用
2.2.1 华为云容器应用接入 APM
当您的容器应用已经上了华为云,您需要应用性能管理时,本文介绍如何将容器服务 上的Java应用通过Pinpoint探针接入到APM。
前提条件
● 已拥有CCE、AOS、ServiceStage容器服务。
● CCE、AOS、ServiceStage容器服务上已部署Java应用。
快速入门 2 监控 Java 应用
操作流程
步骤一:开通 APM
请参考开通和购买。
步骤二:开启应用监控
请根据部署应用的方式来确定如何进行操作。当前,APM支持下述部署应用的方式,
请您按实际情况进行操作。
● 通过应用管理与运维平台(ServiceStage)部署应用,入门操作详见 ServiceStage方式
● 通过应用编排服务(AOS)部署应用,入门操作详见AOS方式
● 通过云容器引擎服务(CCE)部署应用,入门操作详见CCE方式
ServiceStage 方式
ServiceStage是面向企业及开发者的一站式DevOps平台服务。通过ServiceStage创建 应用时勾选探针,则APM会自动接入到应用。
图2-1 创建应用时在应用配置阶段勾选 Java 探针
图2-2 勾选 Java 探针
AOS 方式
AOS是应用编排服务,您在编写模板的时候将设计器Pinpoint添加到模板中,即表示 您已经将APM的采集探针放在堆栈中了。编排好堆栈后创建堆栈,APM已自动接入到 堆栈应用中了。
将设计器Pinpoint添加到模板中:
CCE 方式
CCE是云容器引擎,提供容器应用管理服务。在您创建或者是升级应用时勾选探针,即 表示您已经将APM的采集探针安装在应用中了。
图2-3 创建应用时在高级设置阶段勾选 Java 探针
快速入门 2 监控 Java 应用
图2-4 勾选 Java 探针
图2-5 升级应用时勾选探针
步骤三:在 APM 上管理应用
应用启动后,等待3分钟,应用数据就会呈现在APM界面中,此时登录APM,您可以 在APM上通过拓扑、调用链等进行应用性能优化,详细操作请参考用户指南。
2.2.2 原生 Docker 应用接入 APM
如果有一个已部署Java应用的镜像,可以在原生docker启动命令中添加java探针所需 参数,启动镜像即可将Java应用接入APM,即可在拓扑、事务界面上查看应用情况。
前提条件
已在Docker中部署Java应用。
操作流程
步骤一:开通 APM
请参考开通和购买。
快速入门 2 监控 Java 应用
步骤二:安装 ICAgent
1. 获取AK/SK。
2. 登录应用性能管理。
3. 在左侧导航栏中选择“采集管理 > Agent管理”。
4. 单击“安装ICAgent”,选择“主机类型”为“华为云主机”、“安装系统”为
“Linux”。
5. 选择“安装方式”为“获取AK/SK凭证”,在文本框中输入已获取的AK/SK,生成 ICAgent安装命令,单击“复制命令”,复制ICAgent安装命令。
说明
请确保输入正确的AK/SK,否则将无法安装ICAgent。
6. 使用ECS提供的远程登录功能以root用户登录ECS,执行ICAgent安装命令进行安 装。
当显示“ICAgent install success”时,表示安装成功,ICAgent已安装在了
“/opt/oss/servicemgr/”目录。
步骤三:修改权限(可选)
若您使用非root用户启动程序,则您开启应用监控前需要执行如下命令修改探针文件 与输出目录权限。
chmod -R 777 /opt/oss/servicemgr/ICAgent/pinpoint/
mkdir -p /opt/apm-container chmod -R 777 /opt/apm-container
步骤四:启动镜像
原生docker启动命令中添加java探针所需参数,其中应用名称与服务名称根据实际调 整。以vmall应用、服务名称vmall-dao-service为例。
1. 修改docker启动脚本。
示例
原始启动命令如下:
docker run -p 8080:8080 demo:latest 配置后启动命令如下:
docker run -e JAVA_TOOL_OPTIONS="-javaagent:/opt/oss/servicemgr/ICAgent/
pinpoint/pinpoint-bootstrap.jar -Dapm_application=vmall -Dapm_tier=vmall-dao- service -Dapm_container=true" -v /opt/apm-container:/paas-apm/collectors/pinpoint - v /opt/oss/servicemgr/ICAgent/pinpoint:/opt/oss/servicemgr/ICAgent/pinpoint -p 8080:8080 demo:latest
2. 运行docker run命令来启动镜像,可以将镜像的应用接入APM。
步骤五:在 APM 上管理应用
应用启动后,等待3分钟应用数据就会呈现在APM界面中,此时登录APM,您可以在 APM上通过拓扑、调用链等进行应用性能优化,详细操作请参考用户指南。
2.3 Deployment 应用接入 APM
在运行中始终不保存任何数据或状态的工作负载称为“无状态工作负载
(deployment)”。如果已使用CCE或开源Kubernetes部署Deployment应用,启动 配置脚本可以将Deployment应用接入APM,即可在拓扑、事务界面上查看应用情况。
前提条件
● 请参见通过Kubectl连接集群配置kubectl命令,使ECS连接集群。
快速入门 2 监控 Java 应用
● 已使用CCE或开源Kubernetes部署应用。
操作流程
步骤一:开通 APM
请参考开通和购买。
步骤二:安装 ICAgent
说明
如果CCE中已绑定ICAgent,则CCE无需安装ICAgent,跳过此步骤。
1. 获取AK/SK。
2. 登录应用性能管理。
3. 在左侧导航栏中选择“采集管理 > Agent管理”。
4. 单击“安装ICAgent”,选择“主机类型”为“华为云主机”、“安装系统”为
“Linux”。
5. 选择“安装方式”为“获取AK/SK凭证”,在文本框中输入已获取的AK/SK,生成 ICAgent安装命令,单击“复制命令”,复制ICAgent安装命令。
说明
请确保输入正确的AK/SK,否则将无法安装ICAgent。
6. 使用ECS提供的远程登录功能以root用户登录ECS,执行ICAgent安装命令进行安 装。
当显示“ICAgent install success”时,表示安装成功,ICAgent已安装在了
“/opt/oss/servicemgr/”目录。
步骤三:修改权限(可选)
若您使用非root用户启动程序,则您开启应用监控前需要执行如下命令修改探针文件 与输出目录权限。
chmod -R 777 /opt/oss/servicemgr/ICAgent/pinpoint/
mkdir -p /opt/apm-container chmod -R 777 /opt/apm-container
步骤四:开启应用监控
1. 在ECS或CCE上,配置Deployment应用的启动脚本:在yaml描述文件中增加如下 示例中加粗配置。
执行如下命令编辑yaml文件:
vi xxx.yaml
其中xxx为文件名称,是您在创建Deployment应用时自定义的应用描述文件。如 下为示例,Deployment的详细说明请参见kubernetes官方文档。
快速入门 2 监控 Java 应用
kind: Deployment apiVersion: apps/v1 metadata:
name: user-service namespace: default
selfLink: /apis/apps/v1/namespaces/default/deployments/user-service uid: b231788d-9abd-11e8-80a5-fa163e3a2cc7
resourceVersion: '50972062' generation: 13
creationTimestamp: '2018-08-08T03:46:56Z' labels:
app: user-service stack-name: auto-test annotations:
deployment.kubernetes.io/revision: '5' description: ''
enable: true spec:
replicas: 1 selector:
matchLabels:
app: user-service template:
metadata:
creationTimestamp: null labels:
app: user-service enable: true spec:
#容器外主机上的挂载目录,包括数据输出路径、Java探针包路径 volumes:
- name: paas-apm hostPath:
path: /opt/apm-container - name: pinpoint-pkg hostPath:
path: /opt/oss/servicemgr/ICAgent/pinpoint containers:
- name: user-service
image: '100.125.0.198:20202/zhyyy/user-service:v1' ports:
- containerPort: 8080 protocol: TCP env:
- name: PAAS_APP_NAME #工作负载名称(服务名称)
value: user-service - name: PAAS_NAMESPACE
#CCE集群namespace,如果非CCE集群则不填该环境变量 value: default
- name: PAAS_PROJECT_ID #租户项目projectId
value: d698369a975645bfb35f8437d11c5a12 - name: PAAS_CLUSTER_ID
#CCE集群ID,可以在CCE界面通过f12查看,如果非CCE集群则不填该环境变量 value: 89b49857-5433-11e8-941c-0255ac101f3e
- name: PAAS_POD_ID valueFrom:
fieldRef:
fieldPath: metadata.uid - name: PAAS_MONITORING_GROUP
#应用名称(监控组),建议完成一个功能的多个服务填写相同应用名称 value: shoppingmall
- name: JAVA_TOOL_OPTIONS
value: -javaagent:/opt/oss/servicemgr/ICAgent/pinpoint/pinpoint-bootstrap.jar - Dapm_container=true
resources: {}
#挂载进容器内数据输出路径、Java探针包路径 volumeMounts:
- name: paas-apm
mountPath: /paas-apm/collectors/pinpoint - name: pinpoint-pkg
mountPath: /opt/oss/servicemgr/ICAgent/pinpoint terminationMessagePath: /dev/termination-log terminationMessagePolicy: File
imagePullPolicy: Always restartPolicy: Always
terminationGracePeriodSeconds: 30 dnsPolicy: ClusterFirst
securityContext: {}
schedulerName: default-scheduler strategy:
type: RollingUpdate rollingUpdate:
maxUnavailable: 0 maxSurge: 1 revisionHistoryLimit: 10 progressDeadlineSeconds: 600 status:
observedGeneration: 13 replicas: 1
updatedReplicas: 1 readyReplicas: 1 availableReplicas: 1 conditions:
- type: Progressing status: 'True'
lastUpdateTime: '2018-09-02T13:25:46Z' lastTransitionTime: '2018-08-08T03:46:56Z' reason: NewReplicaSetAvailable
message: ReplicaSet "user-service-f584f46b7" has successfully progressed.
- type: Available status: 'True'
lastUpdateTime: '2018-12-21T11:01:33Z' lastTransitionTime: '2018-12-21T11:01:33Z' reason: MinimumReplicasAvailable
message: Deployment has minimum availability.
2. 使用修改后的Deployment重启应用,开启应用性能监控。
步骤五:在 APM 上管理应用
应用启动后,等待3分钟应用数据就会呈现在APM界面中,此时登录APM,您可以在 APM上通过拓扑、调用链等进行应用性能优化,详细操作请参考用户指南。
快速入门 2 监控 Java 应用
3 监控其他应用
3.1 监控网格的集群应用
APM支持在基于Istio网格的集群上部署应用,当您的集群应用已经上了华为云,您需 要应用性能管理时,可以基于本章内容快速入门。
在CCE容器引擎的虚拟机集群上创建应用时启用Istio网格,则APM会自动接入到应 用。在应用运行后,您可以登录应用服务网格查看应用的拓扑、调用链情况。
操作流程
步骤一:开通 APM
请参考开通和购买。
步骤二:创建集群
登录CCE控制台,在总览页面单击“购买Kubernetes集群”。创建集群详细步骤参见 创建虚拟机集群。
步骤三:启用 Istio 网格
Istio网格的详情请参见集群使能服务网格。
您可以通过如下两种方式启用Istio服务网格:
● 登录应用服务网格,在“总览”页单击“购买网格”,进入启用Istio服务网格页 面。
图3-1 启用 Istio 服务网格
● 登录应用服务网格,在“总览 > 资源总览”下,单击集群名称后的“启用Istio”
进行启用。
图3-2 启用 Istio
快速入门 3 监控其他应用
步骤四:部署示例应用
部署示例应用的详细步骤参见一键创建Bookinfo体验应用。
说明
如果您没有自己的应用,可以使用我们提供的示例应用进行操作,以了解APM服务。如果您已 有应用,请跳过此步骤。
集群创建完成后,可以通过“一键创建体验应用”创建一个Bookinfo应用Demo。具体 操作如下:
1. 登录应用服务网格界面,单击左侧导航栏的“应用部署”,单击“一键创建体验 应用”。
图3-3 一键创建体验应用
2. 在“选择集群”中设置Bookinfo体验应用所在的集群,在“负载均衡”选择和所 选集群处于同一VPC和Subnet的负载均衡实例,单击“立即体验”。
图3-4 选择集群和负载均衡
3. 等待体验应用创建完成。创建完成后状态栏将显示为“运行中”,Bookinfo应用 包含productpage、details、reviews、ratings四个组件。
图3-5 体验应用创建完成
步骤五:监控应用
登录应用服务网格界面,单击左侧导航栏中的“流量监控”,查看应用的拓扑、调用 链数据。详情请参见应用流量监控。
快速入门 3 监控其他应用
图3-6 拓扑图