微服务监控
前置条件
微服务监控指标数据的采集依赖组件中心的Prometheus组件。要使用微服务监控相关功能,请先在组件中心开启Prometheus。
业务总览
进入【微服务监控】选择【业务总览】
选择【工作空间·应用·部署组】,可以查看应用的运行数据汇总信息,包括总览数据与曲线图数据。
总览指标
- 总请求量 当前应用被访问的次数,包含正常访问与非正常访问。正常访问指应用对外提供服务的接口产生的记录。非正常访问指外界应用程序调用接口不存在的方法产生的记录、或微服务框架的内部方法(健康检查等)。
- 平均响应时间 提供服务接口的平均响应时长。
- 实例数 一个【应用-部署组】可以拥有多个实例,这里展示当前运行的实例数量。
- 异常数 应用运行期间抛出的异常数量统计。
曲线图指标
- 请求数 请求量随时间的变化的曲线。
- 平均响应时间 平均响应时间随时间变化的曲线。
- 出错率 响应状态码异常率(与监控指标中异常不一致)随时间变化的曲线。
业务拓扑
进入【微服务监控】选择【业务拓扑】
选择【工作空间·应用·部署组】,展示业务拓扑图
图中展示的信息包括
- 节点 一个应用的部署组视为一个节点。数据库、缓存等也会被视为节点。
- 连线 对于HTTP、RPC、DB、CACHE类别,会使用不同的曲线展示。每条都会显示出相应类别的汇总信息。
接口分析
进入【微服务监控】选择【接口分析】
选择【工作空间·应用·部署组】,可以查看接口相关数据。
接口列表
展示了近期接口调用列表,包括正常方法调用,与部分非正常方法(外部应用访问应用不存在的接口)。每个方法会包含汇总信息:响应时间、请求数量、错误数、异常数。异常数指运行时抛出的异常或者error,而错误数指调用接口返回的状态码不正确。
接口概览
接口概览包括如下统计项:
- 拓扑图 方法级别的拓扑图,一个方法为一个节点,根据监控数据的汇总,利用拓扑图展示方法间的上下游依赖关系。需要注意的是部分方法节点,不仅展示当前入口方法的记录,还会展示其他方法访问该节点时产生的记录。拓扑图中的连线会展示方法节点间的调用统计数据。
- 请求数时间曲线 方法级别的请求量随时间变化的曲线。
- 平均响应时间时间曲线 平均响应时间随时间变化的曲线。
- 错误数时间曲线 响应状态码不正确数量随时间访问的曲线。
SQL分析
展示了最近指定时间段内某一接口的sql调用情况。根据方法列表获取入口方法相关联的SQL调用,并展示调用的统计信息,包括调用次数、平均耗时,并绘制统计曲线。 需要注意的是,sql分析只有在发生数据库访问的应用上有对应入口。
应用诊断
进入【微服务监控】选择【应用诊断】进入诊断页面。选择【工作空间·应用·部署组·实例】,可查看对应实例的JVM监控信息或远程对该实例上的应用执行诊断。
JVM监控
展示应用的JVM统计信息。
统计项包括:
- GC累加次数\GC累加耗时 从应用启动开始累积发生的GC数据统计。
- 堆内存使用量 近期堆内存使用的时间变化曲线。
- 线程数 JVM各类线程数量的时间变化曲线。
远程应用诊断
应用诊断功能支持jvm和系统常用的诊断命令,帮忙用户进行远程问题排查。命令包括jstack、jmap、jinfo、jstat、env和lsof。
注意:
- 在推荐的镜像打包脚本中已经添加了对诊断命令的支持。如果需要自定义镜像,请确保镜像支持JVM相关诊断命令及相关系统诊断命令,否则相关的诊断命令会执行异常。
-
jmap和jinfo命令执行依赖操作系统的ptrace设置。如果CCE集群的WORKER节点虚机使用的是7.3及以前的centos版本操作系统(即创建CCE集群时手动指定的虚机操作系统),jmap和jinfo命令执行会遇到权限问题。此时需要用户手动登录相关CCE虚机节点并在虚机上执行如下命令解除限制:
echo 0 > /proc/sys/kernel/yama/ptrace_scope
监控自定义配置
针对应用监控中的配置差异化,将用户需要的功能进行定制,不需要的功能进行屏蔽,并将不同的配置内容下发至用户应用,并实现热更新。(注意:所有配置项生效均无需重启应用
)
配置的生效级别
现支持用户空间 全局 和 应用 两个配置生效级别;应用一级的配置优先于全局,将覆盖全局配置。
配置的内容
现支持三种类别的配置,具体如下:
-
插件开关:是否禁用某插件,勾选单个/多个插件已禁用;现支持的插件包括
- httpclient4-plugin
- mysql-plugin
- restemplate-plugin
- springmvc-plugin
- 采样率设置:设置监控探针采集信息的采样率,调整至适当的采样率可以减少不必要的数据传输,降低对应用性能的影响。取值范围:0%~100%。该项配置同时支持java和mesh应用。
注意:当采样率设置为0%时,将停止采集。会影响拓扑、调用链等功能的正常使用!
- SQL采集阈值设置:设置SQL采集的阈值,将只收集用户关心的、可能为慢SQL的语句,小于设置值的SQL将不被采集。