文章目录一、文档编写主要目标二、性能监控基本概念服务Service实例Instance端点Endpoint链路Trace片段Span虚拟Virtual术语Terminology三、页面总体布局说明访问路径主页布局四、开发运维使用手册查看服务仪表查看实例仪表查看接口性能查看链路调用日志和慢查询监控告警查询虚拟数据监控虚拟缓存监控虚拟消息监控自我可观测性常用排查路径五、常见问题的 F A QQ-1为什么 Services 页面找不到服务Q-2为什么 Trace 查不到某次具体请求Q-3为什么业务应用日志信息无法查到适用系统Apache SkyWalking UI 10.4.0适用对象开发人员、运维人员、测试人员、值班人员集群环境安装《SkyWalking-10.4.0 Docker Nacos Elasticsearch 生产级部署手册》一、文档编写主要目标本文档主要用于指导开发、运维、测试以及值班人员快速理解SkyWalking的基本概念、使用SkyWalking进行微服务系统观测和故障排查主要覆盖以下内容查看微服务运行状态查看服务间调用关系查看低效或异常接口分析应用间调用链路查询应用间业务日志查看已配置告警信息排查中间件依赖异常例行上线发布后巡检二、性能监控基本概念服务ServiceService表示被SkyWalking Agent采集并上报到OAP Server的一个应用程序服务。一般情况下一个Spring Boot应用程序对应一个SkyWalking的Service。在当前环境中常见服务包括EC-ZUUL、EC-USER、EC-SYSTEM ... ...实例InstanceInstance表示某个服务Service具体运行的实例节点。例如一个服务部署了三个Pod或三台机器则通常会在SkyWalking中看到三个Instance。Instance常用于如下场景判断服务实例是否正常在线或者异常掉线对比相同服务的不同实例之间的响应时间快速定位某个服务的某节点是否存在异常判断发版后新实例是否被正常上报到平台端点EndpointEndpoint表示服务中的一个请求接口地址或者请求接口入口。通常对应HTTP接口、RPC接口、Feign调用、中间件调用如消息队列的生产或者消费、MySQL 数据库执行、XXL-JOB调度任务方法。Endpoint常用于如下场景查询接口的平均耗时查询接口的错误概率快速定位低性能接口接口的调用链路分析链路TraceTrace表示一次接口请求从入口到下游依赖的完整调用过程。Trace是排查慢请求、异常请求、跨服务调用问题的核心切入点。示例# 用户登录的调用链路 ---- POST/api/user/login ---- EC-ZUUL ---- EC-USER ---- EC-AUTH ---- Redis ---- MySQL ---- Kafka片段SpanSpan是Trace中的单个调用环节一次Trace通常包含多个Span每个Span会记录服务名称、实例名称、接口名称、开始时间、结束时间、调用耗时、是否异常、标签信息、日志事件等。虚拟Virtual这是一个比较抽象的概念监控不同的业务应用所展示的虚拟依赖中间件可能是不一样的这取决于被监控的业务应用本身依赖了哪些中间件。这些虚拟依赖通常由SkyWalking Java Agent根据应用调用自动推断不一定是单独部署了Agent的服务。在当前环境中自动检测到了如下虚拟依赖观测虚拟依赖实际组件环境信息Virtual DatabaseMySQL10.10.xx.xx:3306Virtual CacheRedis10.10.xx.xx:6379Virtual MQKafka10.10.xx.xx:9092术语Terminology专业术语中文解释实际含义CPM每分钟调用次数Call Per Minute是衡量系吞吐量的指标判断流量是否突增或突降RT请求的响应时间Response Time从客户端发起请求到接收完整服务器响应所耗费的总时长ART平均的响应时间Average Response Time衡量系统在稳定运行下处理请求的平均耗时常配合P90/P99分位值综合评估Percentile分位响应的时间P90/P95/P99表示P90/P95/P99的请求响应时间低于该阈值更能反映长尾延迟和真实用户体验Throughput吞吐量单位时间内系统成功处理的请求数量或数据量反映系统整体承载能力TPS每秒事务数(Transactions Per Second)每秒完成的完整业务逻辑如转账、提交订单次数强调业务原子性QPS每秒查询数Queries Per Second每条处理的特定查询请求次数常用于数据库或读操作场景HPS每秒点击数Hits Per Second服务器每秒接收的HTTP请求总数包含静态资源Error Rate错误率失败请求包含超时、异常占总请求数的比例直接关联系统可用性MTBFMean Time Between Failures平均无故障时间衡量系统可靠性MTTRMean Time To Repair/Response平均恢复时间或响应时间衡量系统故障发生后的修复效率ApdexApplication Performance Index用于将影响响应时间转化为0~1之间的量化分数以客观衡量用户对性能整体满意度三、页面总体布局说明访问路径${skywalking-ui}/General-Service/Services主页布局页面区域区域说明左侧菜单栏切换不同的观测对象例如市场、常规服务、自监控、告警、仪表盘、设置顶部筛选栏设置监控范围和时效例如自定义时间范围、OAP时区、切换自定义或实时数据、界面主题、刷新、版本信息内容区域栏根据顶部筛选栏的设置展示服务列表、端点列表、详情面板等信息详情面板栏点击服务、拓扑、链路、日志的标签页可以展示各个类型的详细信息注意左侧菜单中的常规服务或者自监控中还有其它菜单如Service Mesh、Kubernetes等可能在UI中存在但当前未启用或无数据。四、开发运维使用手册开发、运维人员在日常开发、现网排错的过程中主要关注以下几个问题的问题业务接口是否报错业务接口为什么慢业务接口慢在哪里代码、数据库、缓存、MQ、下游服务某次请求链路关系发版程序前后性能查看服务仪表仪表盘名General-Service信息入口指标说明查看实例仪表仪表盘名General-Service General-Instance信息入口指标说明查看接口性能仪表盘名General-Service General-Endpoint信息入口入口方式一入口方式二入口方式三指标说明面板中的指标在上述的内容有说明此处不在赘述。查看链路调用仪表盘名General-Service General-Endpoint信息入口:链路都基于端点故不能抛开端点谈链路所以信息入口依赖于端点信息入口指标说明日志和慢查询仪表盘名General-Service General-Service General-Instance信息入口上述存在Log和Slow Statements标签的交互均可以作为此两类模块的入口指标说明监控告警查询规则文件/skywalking/config/alarm-settings.yml信息入口alarm-settings.yml指标说明虚拟数据监控仪表盘名Virtual-Database-Root Virtual-Database-Service信息入口指标说明虚拟缓存监控仪表盘名Virtual-Cache-Root Virtual-Cache-Service信息入口指标说明虚拟消息监控仪表盘名Virtual-MQ-Root Virtual-MQ-Service信息入口指标说明自我可观测性仪表盘名Self-Observability-Java-Agent-Service Self-Observability-Java-Agent-Service信息入口指标说明常用排查路径# 接口耗时 General-Service - 目标服务 - Endpoint - 慢接口 - Trace - 最慢 Span - 代码/SQL/依赖分析 # 接口报错 General-Services - 目标服务 - Dashboard/Error Rate - Trace 异常请求 - Span Logs - Log 页面 - 代码定位 # 某次请求 用户反馈时间点/请求信息 - Trace 查询 - Trace ID - Log 查询 - 代码/依赖定位 # 接口不详 Alarm - Services - Dashboard - Topology - Trace - Log - 代码/配置/依赖 # 服务不详 Services - 目标服务 - Dashboard - Endpoint - Trace - Log五、常见问题的 F A QQ-1为什么Services页面找不到服务可能原因指定服务没有启动。指定服务没有接入SkyWalking Agent。SkyWalking Agent所在环境无法连接OAP。指定服务名称配置错误。查询的数据已经过期。Q-2为什么Trace查不到某次具体请求可能原因查询时间范围不正确。服务、实例、端点条件选择错误。请求未被采样或者采样还未呈现出来。SkyWalking Agent暂未上报 。查询的数据已经过期。Q-3为什么业务应用日志信息无法查到可能原因业务应用日志没有接入SkyWalking。查询时间范围不正确。服务选择错误。Trace ID不匹配。日志采集链路异常。