SkyWalking Web UI 实战指南:从入门到精通

张开发
2026/4/10 21:09:11 15 分钟阅读

分享文章

SkyWalking Web UI 实战指南:从入门到精通
1. SkyWalking Web UI 初识监控系统的控制面板第一次打开SkyWalking Web UI时就像走进了一个现代化的飞机驾驶舱——各种仪表盘和数据视图让人眼花缭乱。但别担心这个驾驶舱设计得非常人性化。作为分布式系统的健康监测仪它能实时展示你的应用集群运行状态从宏观拓扑到微观调用链路一览无余。我刚开始使用时最常访问的是Dashboard仪表盘这里就像监控系统的指挥中心。最上方的时间选择器特别实用可以查看任意时间段的监控数据。记得有次线上问题排查就是通过调整时间范围定位到了凌晨3点的异常流量高峰。热力图Calls HeatMap用颜色深浅直观显示请求量和响应时间红色区域往往就是需要重点关注的性能瓶颈。左侧导航栏的六个核心模块构成了完整的监控体系Topology系统架构的鸟瞰图Application应用级别的深度体检ServiceAPI粒度的性能分析Alarm系统健康的预警哨兵Trace请求链路的显微镜2. 拓扑视图绘制你的系统地图2.1 拓扑图的三种观察视角第一次看到拓扑图时我被那些闪烁的连线和彩色节点吸引了。这就像给你的系统架构拍X光片User→Application→Middleware的调用关系一目了然。实测发现三种视图切换特别实用用户视角默认显示终端用户到应用的访问路径应用视角聚焦应用间的调用依赖服务视角展示API级别的调用链有次排查线上问题就是通过切换应用视角发现某个微服务异常导致调用链断裂。图中红色告警节点会实时闪烁点击节点可以看到具体的错误率和响应时间。2.2 拓扑图实战技巧在Filter Application输入框里可以输入应用名进行筛选。这个功能在我们有50微服务的系统中特别有用。几个实用技巧按住Ctrl鼠标滚轮可以缩放视图拖动节点可以重新布局右键点击节点可以快速跳转到对应应用的详情页# 小贴士如果拓扑图显示不全 # 检查SkyWalking agent的service_name配置是否唯一 agent.service_name${SW_AGENT_NAME:Your_ApplicationName}3. 应用监控给每个服务做全面体检3.1 应用总览的黄金指标进入Application页面就像打开服务的体检报告几个关键指标需要特别关注Throughput吞吐量CPM值反映服务处理能力Response Time响应时间超过500ms就需要警惕SLA服务可用性99.9%是常见基准线我习惯先看Slow Service榜单这里会列出响应最慢的Top10服务。有次发现一个查询接口平均响应2秒优化SQL后整体性能提升了40%。3.2 JVM监控深入Java应用内核点击More Server Details会打开宝藏功能——JVM监控面板。这里可以看到内存使用曲线堆内存/非堆内存GC次数和时间统计线程状态分布图CPU负载情况曾经通过这个面板发现内存泄漏堆内存使用曲线呈锯齿状但基线持续上升最终定位到是缓存没有设置过期时间。4. 链路追踪还原请求的完整旅程4.1 Trace查询的六种武器Trace功能是我使用最频繁的模块就像侦探的放大镜。高级查询支持多种过滤方式时间范围选择精确到分钟应用/服务筛选状态过滤成功/失败耗时区间设置TraceID精确查询标签条件过滤// 开发时建议添加的Trace标签 ActiveSpan.tag(http.method, GET); ActiveSpan.tag(db.type, mysql);4.2 Span分析的三个要点点击具体的Trace会展示完整的调用树每个Span都包含丰富信息基础信息开始时间、耗时、组件类型标签数据包含SQL语句、HTTP状态码等日志信息异常堆栈等详细信息排查问题时我通常会先看整体链路长度和深度筛选出error状态的Span检查耗时最长的Span详情5. 告警中心系统的预警雷达5.1 告警配置实战Alarm页面默认显示最近6小时的告警信息。在实际项目中我建议通过alarm-settings.yml配置自定义规则rules: service_resp_time_rule: metrics-name: service_resp_time op: threshold: 1000 period: 10 count: 3 silence-period: 5 message: 服务{name}响应时间超过1秒5.2 告警分级策略根据经验告警应该分级处理P0级页面自动刷新告警影响核心业务流程P1级邮件通知重要指标异常P2级每日汇总需要优化但不紧急6. 性能优化实战案例6.1 慢查询优化过程曾经处理过一个典型案例通过Trace发现某个订单查询接口平均耗时2.3秒。分析过程在Trace中定位到最耗时的Span查看标签发现执行了5次SQL查询检查SQL语句发现N1查询问题优化为JOIN查询后降至400ms6.2 线程池调优通过JVM监控发现某服务线程数持续增长观察Thread Count图表确认趋势结合GC日志分析内存变化定位到线程池未正确关闭改用Spring管理的线程池解决问题7. 日常运维最佳实践7.1 监控看板配置技巧对于重要服务建议创建自定义Dashboard固定关键业务指标设置合适的刷新频率生产环境建议30秒添加对比时间段如同比上周保存常用查询条件7.2 数据清理策略SkyWalking数据默认存储15天可以通过以下方式调整# 修改config/application.yml storage: elasticsearch: dayStep: 1 indexShardsNumber: 2 indexReplicasNumber: 0 ttl: 30在实际使用过程中我发现将TTL设置为7天既能满足日常排查需求又能节省50%存储空间。对于特别重要的服务可以通过Export Trace功能备份特定链路数据。

更多文章