云服务器内容精选
-
JavaAgent更新说明 目前仅支持主流的jdk8和jdk17,jdk17环境请选用末尾带-jdk17的版本。 下载Agent请参见JavaAgent下载地址。 表1 JavaAgent更新列表 版本号 更新说明 2.4.12-profiler 1、优化Debugging诊断处理逻辑。 2.4.11-profiler 1、支持Profiler的Live Object Memory类型。 2、支持全采样设置。 2.4.10-profiler 1、支持Debugging诊断。 2.4.9-profiler 1、Profiler时延度量线程采集算法优化。 2.4.9 1、优化springbean启动时间。 2.4.8-profiler 1、Profiler支持性能优化推荐。 2.4.8 1、支持redisson支持3.17.x。 2、url接口调用支持分位数。 2.4.7-profiler 1.支持用户包数据采集。 2.4.7 1.支持sql字节数的配置。 2.支持springbean插件。 3.支持jedis2.9.3。 2.4.6-profiler 支持时延持续性能剖析。 2.4.5-profiler 支持CPU、内存持续性能剖析。 2.4.5-jdk17 新增支持httpclient5,仅支持同步场景。 2.4.5 指标采集队列增加老化机制。 2.4.4 新增支持SpringCloudGateway(2.1.x~3.1.x)。 2.4.3 1.修复异常数未清零问题。 2.修复日志过大问题。 3.新增redisson基本信息。 2.4.2-jdk17 该版本只支持jdk17。 2.4.2 支持FunctionGraph在启动时关闭agent。 2.4.1 1.支持动态修改指标采集阈值。 2.接口调用维度新增异常数,统计url中日志标记的异常。 3.新增通过代理传输数据的功能。 2.3.19 1.支持日志自动打印traceId。 2.提高线程详情上限。 2.3.17 1.AKSK可以从环境变量读取。 2.调用链增加sqlId。 3.sql增加最近调用链。 4.补齐接口调用的集群维度分析能力。 2.3.16 1.指定注册协议。 2.兼容ibm sdk不支持线程内存获取。 2.3.15 1.新增支持dubbo2.8.x版本。 2.新增支持JDKhttp子类。 2.3.13 1. CS E Provider bizcode支持多key。 2.支持hikari插件。 2.3.12 1.客户端统计时,hashmap的key数量溢出后,之前是停止采集,现在修改为继续采集。 2.Url支持自动规整能力,当在后台配置为自动规整后,url按照原始格式规整。 3.oracle插件补齐读取行数和更新行数能力。 4.CSE Provider提供显示bizCode的功能。 5.修复CSE Provider修复状态码400时调用链没有标红。 2.3.5 1.支持启动脚本配置access地址。 2.3.2 1.支持jetty-client。 2.取消对com.huawei.bsp.commonlib.roa.restclient的支持。 3.url支持采集apdex。 2.3.1 1.支持cce解密sk。 2.支持jedis拦截key和value。 3.支持cassandra3。 2.2.15 1.支持sk自定义解密。 2.支持在启动脚本中配置master地址。 3.支持apacheHttpclient的responseBody采集。 2.2.13 1.使NamedTransformer加载接口类时直接返回原字节码。 2.解决mariadb3.0.4 sql没有采集到的问题。 3.支持oracle。 2.2.10 1.支持gauss-zenith数据库。 2.支持com.huawei.bsp.commonlib.roa.restclient。 2.2.9 1.支持jetcd 5.x - 6.x。 2.支持采集netty直接内存。 表2 CCE和Servicestage界面上 JavaAgent latest版本指向说明 版本号 实际版本号 latest-x86_64 2.4.3,支持x86架构。 latest-aarch64 2.4.3,支持arm架构。 latest-noroot-x86_64 2.4.3,支持x86架构,支持非root用户身份运行容器。 latest-noroot-aarch64 2.4.3,支持arm架构,支持非root用户身份运行容器。 latest 2.1.17,兼容x86和arm架构。
-
智能采样算法 APM系统会采用智能采样算法,决定是否对请求进行调用链跟踪。 如果决定要跟踪,那么就会生成一个TraceID,拦截A下面的一些重要方法(一般具有树结构父子关系)的详细信息(称为event),同时APM会将TraceID透传到B,B也会拦截下面的重要方法,同时透传TraceID到C,C也跟B和A类似。每个节点分别上报event信息,通过TraceID形成关联,这样通过TraceID就可以查看整个请求的调用详情。 如果决定不跟踪,那么就不会生成TraceID,B服务由于没有收到TraceID,自身也会产生跟A服务一样的算法,决定是否要进行调用链跟踪。 数据上报后,APM系统除了会存储所有event详情,同时会将每个服务的根event(称为span)信息额外存储起来,用于后续调用链搜索。用户一般是先搜索到span信息,然后根据span信息上附带的TraceID获取到总体调用链详情。 调用链采样策略系统默认是智能采样,url分为错误url、慢url(默认800ms、用户自定义配置)、正常url三种url,每种url调用链数据的采样率单独计算。APM的统计数据是一分钟采集上报一次,第一个采集周期所有url调用链数据都按正常url采样。第二个采集周期时,根据上一个采集周期的统计数据,将url分类为错误url、慢url、正常url三种url。 错误url的采样率:cpu小于30%每分钟采集100条,cpu大于或等于30%小于60%每分钟采集50条,cpu大于或等于60%每分钟采集10条,每条url至少采集2条。 慢url的采样率:cpu小于30%每分钟采集100条,cpu大于或等于30%小于60%每分钟采集50条,cpu大于或等于60%每分钟采集10条,每条url至少采集2条。 正常url的采样率:cpu小于30%每分钟采集20条,cpu大于或等于30%小于60%每分钟采集10条,cpu大于或等于60%每分钟采集5条,每条url至少采集1条。 上述调用链算法优点是,一旦决定产生调用链信息,那么链路是完整的,帮用户做正确决策。对于大量调用的url,可能会采集不到异常请求,可以通过异常监控的指标采集等其他方式来定位系统中的异常。
-
查看调用链详情 根据搜索条件查询出来的调用链列表可以查看调用链的基本信息 在查询后的调用链列表中,单击待查看的调用链前的,查看该调用链基本信息,如下图所示。 图2 调用链基本信息 表中标识的具体参数所代表的含义如下: 调用链的HttpMethod。 调用链的RestURL,Rest URL为restful风格的URL,URL中带有变量名称,如/apm/get/{id};单击该URL可以跳转到调用链的详情页面。 调用链的开始时间。 调用链返回的HTTP状态码。 调用链的响应时间。 调用链的TraceID。 调用链所在组件。 调用链所在环境。 调用链所在实例的主机名。 调用链所在实例的IP。 调用链的实际URL。 调用链支持“查看日志”功能。 在LTS服务侧,配置“采集配置”,详细操作参见 云日志 服务 LTS《用户指南》的ECS接入章节。 单击“查看日志”,根据traceid跳转至LTS页面。LTS页面相关操作,请参见日志搜索。 如果未开通traceid关联日志,弹出“未关联日志服务”提示框。单击“跳转”,页面跳转至“关联日志服务”页面。“关联日志服务”详细操作,参见组件设置。 支持仅展示“请求成功”或“请求失败”调用链信息,以绿色“请求成功”按钮为例。 单击处于高亮状态的绿色“请求成功”按钮,仅展示“请求成功”的调用链信息,同时红色“请求失败”按钮置灰。 当红色“请求失败”按钮置灰时,单击处于高亮状态的绿色“请求成功”按钮,则展示所有调用链信息,同时红色“请求失败”恢复高亮。 绿色“请求成功”按钮和红色“请求失败”按钮,不支持同时置灰。 用户也可以从一些监控项视图页面,比如Url监控项的table视图,单击具体的Url跳转过来,这样就已经预先填写好搜索条件,帮助用户更快速搜索出所需要的调用链信息。 调用链详情页面可以查看调用链的完整链路信息,包含本地方法堆栈和相关远程调用的调用关系 单击调用链名称,可查看调用链详细信息,如下图所示。 上半部分为调用链完整链路的时序图,展示组件之间的完整调用关系,内部包含一次调用对应的客户端和服务器端的信息,然后线条越在下面,越晚发生调用。 下半部分为调用链详细的方法堆栈,每一行代表一个方法调用,展示了调用链内部方法的详细调用关系。默认只展示javaagent支持的组件方法,如需展示应用方法,可以在JavaMethod配置中配置需要拦截的应用方法。 图3 调用关系 表中标识的具体参数所代表的含义如下: 调用链的时序图中调用接口所属的组件和环境。 数字为接口调用的客户端响应时间,单位ms,具可将鼠标指针放置在该位置进行查看。 数字为接口调用的服务端响应时间,单位ms。 调用链方法堆栈中该方法对应的关键参数数据,如tomcat入口方法展示实际url、mysql的sql调用方法则展示具体执行sql。 调用链方法的扩展数据,一般展示该方法相关的参数信息。 调用链是“树”状结构,深度表示“树”状结构的层数。如图4所示。 图4 深度 单击“查看”,展示对应的Spans详细信息。单击“查看日志”,根据traceid跳转至LTS页面。详细介绍,参见“查看日志”章节。 时序图支持折叠,单击“收起时序图”,则时序图被折叠,不再展示。 图5 时序图折叠 单击“展开时序图”则时序图被展开,展示时序图。 调用链的时序图中,如下图。 使用不同类型探针或用户接入端接入时,图中1和2显示的内容不同,详见下表。 探针类型或用户接入的类型 显示内容 web前端 WEB 微信 WE_CHAT 百度 BAIDU 支付宝 ALIPAY 钉钉 DING_TALK 移动端App Android ANDROID 移动端App iOS IOS 其它 user
-
APM服务中调用链相关的参数说明 apm-traceid: apm服务采集到调用链的唯一标识。 图1 采集调用链的唯一标识 apm-gtraceid: apm服务中未被采样到的调用关系的唯一标识。 apm服务的调用链具有一定采样率,所以用apm-gtrace-id来表示未被采样的调用链的唯一标识。 apm-spanid:在某个调用链的微服务之间调用,表示某一个微服务的id,示例如下。 图2 调用链的微服务之间调用
-
操作步骤 编辑deployment.yaml。 在volumes中增加一个emptyDir。 volumes: - name: paas-apm2 emptyDir: {} 在containers.volumeMounts中增加moutPath。 volumeMounts: - name: paas-apm2 mountPath: /paas-apm2/javaagent/ 在env中增加JAVA_TOOL_OPTIONS环境变量。 env: - name: JAVA_TOOL_OPTIONS value: '-javaagent:/paas-apm2/javaagent/apm-javaagent/apm-javaagent.jar' 新增initContainers。 initContainers: - name: init-javaagent image: {swrAddress}/op_svc_apm/javaagent:{agentVersion} command: - /bin/sh - '-c' - cd /paas-apm2/javaagent/apm-javaagent; /bin/sh init-config.sh -master_address {masterAddress} -app_name {appName} -access_key {accessKey} -access_value {secretKey} -business {business} -env {env} resources: limits: cpu: 250m memory: 250Mi requests: cpu: 250m memory: 250Mi volumeMounts: - name: paas-apm2 mountPath: /var/init/javaagent terminationMessagePath: /dev/termination-log terminationMessagePolicy: File imagePullPolicy: Always monitorGroup: default
-
配置示例 spec: replicas: 1 selector: matchLabels: app: vmall-admin version: v1 template: metadata: creationTimestamp: null labels: app: vmall-admin version: v1 spec: volumes: - name: vol-171526714525730640 hostPath: path: /vmall/vmall-deploy/vmall-data/app/vmall-admin/logs type: '' - name: paas-apm2 emptyDir: {} initContainers: - name: init-javaagent image: swr.cn-north-4.myhuaweicloud.com/op_svc_apm/javaagent:2.4.8-x86_64 command: - /bin/sh - '-c' - cd /paas-apm2/javaagent/apm-javaagent; /bin/sh init-config.sh -master_address https://100.125.12.108:41333 -app_name vmall-admin -access_key {AK} -access_value {SK} -business vmall-demo resources: limits: cpu: 250m memory: 250Mi requests: cpu: 250m memory: 250Mi volumeMounts: - name: paas-apm2 mountPath: /var/init/javaagent terminationMessagePath: /dev/termination-log terminationMessagePolicy: File imagePullPolicy: Always monitorGroup: default containers: - name: vmall-admin image: swr.cn-north-4.myhuaweicloud.com/vmall-org/vmall-admin:1.0.0 env: - name: PAAS_APP_NAME value: vmall-admin - name: PAAS_NAMESPACE value: default - name: PAAS_PROJECT_ID value: e49731583bc54978aa7b4da1a2196e46 - name: CLOUDDEPLOY_SYS_INCREMENT value: '1719279081896' - name: JAVA_TOOL_OPTIONS value: '-javaagent:/paas-apm2/javaagent/apm-javaagent/apm-javaagent.jar' resources: limits: cpu: '1' memory: 2Gi requests: cpu: 500m memory: 1Gi volumeMounts: - name: vol-171526714525730640 mountPath: /var/logs - name: paas-apm2 mountPath: /paas-apm2/javaagent/ terminationMessagePath: /dev/termination-log terminationMessagePolicy: File imagePullPolicy: Always restartPolicy: Always terminationGracePeriodSeconds: 30 dnsPolicy: ClusterFirst securityContext: {} imagePullSecrets: - name: default-secret schedulerName: default-scheduler tolerations: - key: node.kubernetes.io/not-ready operator: Exists effect: NoExecute tolerationSeconds: 300 - key: node.kubernetes.io/unreachable operator: Exists effect: NoExecute tolerationSeconds: 300
-
操作步骤 生成一个含有解密方法的jar包,假设jar包名为demo.jar , 内置解密类为com.demo.DecryptDemo,解密方法为decrypt(注意decrypt得是静态方法)。然后将该jar打包一个镜像,上传到镜像仓,获取密钥方法参见访问密钥。 在CCE deployment yaml中添加一个initContainer属性,如下所示。 示例: 步骤1中上传的镜像地址为swr.cn-north-5.myhuaweicloud.com/hwstaff_pub_apmpaasw3/decrypt:v2 解密的类名为com.demo.DecryptDemo,解密方法为decrypt。 按如下方式添加一个initContainer,注意替换加粗部分。 initContainers: - name: init-secret image: swr.cn-north-5.myhuaweicloud.com/hwstaff_pub_apmpaasw3/decrypt:v2 command: - /bin/sh - '-c' - cp /root/com.demo.DecryptDemo.jar /var/init/secret/apm-javaagent/ext; sed -i 's%#decrypt.className=.*%decrypt.className=com.demo.DecryptDemo%g' /var/init/secret/apm-javaagent/apm.config; sed -i 's%#decrypt.methodName=.*%decrypt.methodName=decrypt%g' /var/init/secret/apm-javaagent/apm.config; resources: limits: cpu: 100m memory: 100Mi requests: cpu: 100m memory: 100Mi volumeMounts: - name: paas-apm2 mountPath: /var/init/secret 添加该initContainer可以实现将jar包复制到apm-javaagent/ext目录下,以及修改配置文件的目的。 在apm页面获取AK 和SK,然后对sk进行加密处理,将AK和加密后的SK替换yaml文件中的如下值。 保存配置对CCE实例进行升级即可。
-
背景信息 在外部请求激增、负载突变等场景下,极易出现应用性能问题,比如外部请求响应变慢、部分请求异常等。快速识别发现、定位处理应用性能问题成为越来越常见的日常运维场景。 APM作为云应用性能问题诊断服务,拥有强大的分析工具,通过拓扑图、调用链可视化地展现应用状态、调用过程、用户对应用的各种操作,快速定位问题和改善性能瓶颈。 例如,通过APM拓扑功能可视化服务间的调用关系,迅速找到有问题的实例;通过APM调用链功能下钻到服务内部,根据出现问题的方法调用链路,确认问题根因。
-
Profiler性能剖析配置 进入组件配置页,在“Profiler性能剖析配置”表单中填写相关信息。 图7 Profiler性能剖析配置 表2 Profiler性能剖析配置说明 参数 说明 Profiler启停 开启后,将对低开销的应用进行持续诊断,解决Java程序中因为CPU、内存和时延导致的瓶颈问题。 开关默认为关闭,开关置灰。总开关关闭时,所有子开关都处于关闭状态。 CPU 开启后将采集应用运行过程中CPU火焰图信息。 开关默认为关闭,开关置灰。 内存 开启后将采集应用运行过程中堆内存火焰图信息。 开关默认为关闭,开关置灰。 Live Object Memory:已分配但未被回收的堆内存,使用场景主要包括内存泄漏等。该特性需要JDK版本为JDK17。 Allocated Memory:已分配的堆内存(包括已被回收和未被回收的部分),使用场景包括频繁GC等。 时延 开启后将采集应用运行过程中时延火焰图信息。 开关默认为关闭,开关置灰。 生效范围 组件:组件级范围生效。该组件下关联的所有实例生成Profiler数据。开关默认为开启,组件按钮标记为蓝色。 实例:实例级范围生效。仅所选实例生成Profiler数据,开关默认为关闭,开关置灰。 单击实例开关,开启“实例”,实例按钮标记为蓝色。 单击“选择实例”,选择所需要的实例。 图8 选择实例 选择1个或多个实例后,单击“确定”,设置成功。 图9 选择需要的实例 注意: 如果选择了实例级范围生效,则不能复制到其他组件/环境。 “组件”和“实例”只能选择其中一项,不支持同时选择。 单击“保存”,提示保存成功。 单击“复用到其他组件”,弹出“复用到其他组件”选择框。 图10 复用到其他组件 选择一个或多个组件,单击“复用到其他组件”,则当前“Profiler性能剖析配置”信息,成功的复制到被选择的组件中。
-
全采样设置 为了减少调用链数据频繁上报给服务造成的性能影响,探针侧发送的调用链数据,默认情况下最大100TPS的速率上报。所以在服务并发量超过100TPS的情况下,调用链不会全部上报,如有需要可以通过修改配置文件的方式修改上报阈值,但请做好性能开销的评估。 全采样功能在设置100%采样率,500TPS、1000TPS、2000TPS的情况下,CPU的消耗相对于智能采样分别增加约5%、10%、20%。 进入组件配置页,在“全采样配置”中选择采样策略。 图11 全采样设置 智能采样。 全采样策略系统默认是智能采样,url分为错误url、慢url(默认800ms、用户自定义配置)、正常url三种url,每种url调用链数据的采样率单独计算。APM的统计数据是一分钟采集上报一次,第一个采集周期所有url调用链数据都按正常url采样。第二个采集周期时,根据上一个采集周期的统计数据,将url分类为错误url、慢url、正常url三种url。 错误url的采样率:cpu小于30%每分钟采集100条,cpu大于或等于30%小于60%每分钟采集50条,cpu大于或等于60%每分钟采集10条,每条url至少采集2条。 慢url的采样率:cpu小于30%每分钟采集100条,cpu大于或等于30%小于60%每分钟采集50条,cpu大于或等于60%每分钟采集10条,每条url至少采集2条。 正常url的采样率:cpu小于30%每分钟采集20条,cpu大于或等于30%小于60%每分钟采集10条,cpu大于或等于60%每分钟采集5条,每条url至少采集1条。 全局采样。 全局采样针对所有调用链的采样率设置, 默认值(%):100,取值范围(%):0~100。 自定义采样。 自定义采样可以按照用户的需求,自定义采样率。 表3 自定义采样说明 采样率名称 默认值(%) 取值范围(%) 说明 成功请求采样率 100 0~100 成功请求指请求状态码为非错误返回且无异常的请求。 URL采样率 - - URL:URL路径,例如:/apm2/health/v1/health-check。 采样率:默认值(%):0,取值范围(%):0~100 单击“删除”,删除当前行的采样率配置。 URL配置是指单独定义url的响应时间阈值,该url超过指定阈值后,该url调用链数据的采样率会提高。相关配置说明参见配置url监控项。 说明: URL采样率,仅针对成功请求生效。 错误请求采样率 100 0~100 错误请求即“错误状态码定义”。 错误状态码定义有两个可选项:状态码400以上统计为错误、为状态码500以上统计为错误。默认值为状态码500以上统计为错误。 相关配置说明参见配置url监控项。 慢请求采样率 100 0~100 慢请求是指全局请求响应时间大于阈值的请求。 慢请求阈值配置说明参见配置url监控项。 单击“保存”,完成配置。 全采样设置完成约10分钟后,该配置生效。
-
关联日志服务设置 应用性能管理 (APM)与云日志服务(LTS)关联,您可以在 LTS中关联调用链的 TraceID 信息,当应用出现故障时,可以通过调用链的 TraceID 快速关联到业务日志,及时定位分析并解决问题。 关联业务日志与TraceId开关,开启后业务日志中会自动生成调用链的TraceId。如果关闭关联业务日志与TraceId开关,则关联日志服务设置不生效。 关联业务日志支持Log4j/Log4j2/Logback日志组件。 自定义设置只支持java类型。 进入组件配置页,在“关联日志服务设置”表单中填写相关信息。 图4 关联日志服务设置 表1 关联日志服务设置参数说明 参数 说明 项目 在下拉菜单中选择项目。 日志组 日志组(LogGroup)是云日志服务进行日志管理的基本单位,可以创建日志流以及设置日志存储时间,每个账号下可以创建100个日志组。创建日志组详细操作参见日志组。 日志流 日志流(LogStream)是日志读写的基本单位,日志组中可以创建日志流,将不同类型的日志分类存储,方便对日志进一步分类管理。详细操作参见日志流。 单击“保存”,弹出“关联日志服务”提示框。 图5 关联日志服务 单击“确认”,关联成功。 单击“复用到其他组件”,弹出“复用到其他组件”选择框。 图6 复用到其他组件 选择一个或多个组件,单击“保存并复用到其他组件”,则当前“关联日志服务”的配置,成功的复制到被选择的组件中。
-
计费示例 前端监控按上报量计费,假设您在2023/03/08 15:50:04购买了企业版1600万特惠包,则:在2024/03/08 15:50:04前,支持上报量为16000万条。 第一个话单上报周期为:2024/03/09 01:00:00开始结算2023/03/08 15:50:04 ~ 2024/03/08 23:59:59之间的上报量。 第二个话单上报周期为:2024/03/10 01:00:00开始结算2024/03/08 23:59:59 ~ 2024/03/09 23:59:59之间的上报量。
-
计费说明 APM提供特惠包以及按需计费模式,计费项按照上报量计费。具体内容如表1所示。 表1 计费规则 区域 产品规格 计费方式 特惠包名称 规格 价格 有效期 华北-北京四 华北-乌兰察布一 华东-上海一 华南-广州 华南-广州-友好用户环境 西南-贵阳一 亚太-新加坡 中国-香港 企业版 特惠包 200万特惠包 200万条 ¥420 1年 1600万特惠包 1600万条 ¥2520 1年 12800万特惠包 12800万条 ¥15120 1年 按需计费 - - 0.28元/1000条 - - 免费版 不计费,限制上报量:2000条/天。
-
计费模式概述 APM目前产品规格包括免费版和企业版。当您从免费版切换到企业版后,计费方式默认为按需计费。如果购买了特惠包,将优先使用您购买的特惠包中的配额,配额使用完或者到期时间之后再按照您选择版本的按需费用,进行按使用量扣费。 特惠包购买之后,不支持退订啦。特惠包到期以后,不会影响您在APM的使用和数据安全。 支持直接开通免费版、企业版,支持由免费版更改为企业版。 前端监控按上报量计费。 父主题: 前端监控
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格