skywalkingUI简介

本文介绍了一个全面的监控平台,该平台提供多种视图和服务监控功能,包括仪表盘、拓扑图、追踪、性能剖析和告警等。通过这些功能,用户能够详细了解服务的健康状况、性能指标以及实时追踪信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模块栏目

  • 仪表盘:查看被监控服务的运行状态
  • 拓扑图:以拓扑图的方式展现服务直接的关系,并以此为入口查看相关信息
  • 追踪:以接口列表的方式展现,追踪接口内部调用过程
  • 性能剖析:单独端点进行采样分析,并可查看堆栈信息
  • 告警:触发告警的告警列表,包括实例,请求超时等。
  • 自动刷新:刷新当前数据内容(我这好像没有自动刷新)

仪表盘

控制栏

  • 第一栏:不同内容主题的监控面板,应用/数据库/容器等
  • 第二栏:操作,包括编辑/导出当前数据/倒入展示数据/不同服务端点筛选展示
  • 第三栏:不同纬度展示,服务/实例/端点

展示栏

Global全局维度

  • 第一栏:Global、Server、Instance、Endpoint不同展示面板,可以调整内部内容
  • Services load:服务每分钟请求数
  • Slow Services:慢响应服务,单位ms
  • Un-Health services(Apdex):Apdex性能指标,1为满分。
  • Global Response Latency:百分比响应延时,不同百分比的延时时间,单位ms
  • Global Heatmap:服务响应时间热力分布图,根据时间段内不同响应时间的数量显示颜色深度
  • 底部栏:展示数据的时间区间,点击可以调整。

Service服务维度

  • Service Apdex(数字):当前服务的评分 
  • Service Apdex(折线图):不同时间的Apdex评分
  • Successful Rate(数字):请求成功率
  • Successful Rate(折线图):不同时间的请求成功率
  • Servce Load(数字):每分钟请求数
  • Servce Load(折线图):不同时间的每分钟请求数
  • Service Avg Response Times:平均响应延时,单位ms
  • Global Response Time Percentile:百分比响应延时
  • Servce Instances Load:每个服务实例的每分钟请求数
  • Show Service Instance:每个服务实例的最大延时
  • Service Instance Successful Rate:每个服务实例的请求成功率

Instance实例维度

  • Service Instance Load:当前实例的每分钟请求数
  • Service Instance Successful Rate:当前实例的请求成功率
  • Service Instance Latency:当前实例的响应延时
  • JVM CPU:jvm占用CPU的百分比
  • JVM Memory:JVM内存占用大小,单位m
  • JVM GC Time:JVM垃圾回收时间,包含YGC和OGC
  • JVM GC Count:JVM垃圾回收次数,包含YGC和OGC
  • CLR XX:类似JVM虚拟机,这里用不上就不做解释了

Endpoint端点(API)维度

  •  Endpoint Load in Current Service:每个端点的每分钟请求数
  • Slow Endpoints in Current Service:每个端点的最慢请求时间,单位ms
  • Successful Rate in Current Service:每个端点的请求成功率
  • Endpoint Load:当前端点每个时间段的请求数据
  • Endpoint Avg Response Time:当前端点每个时间段的请求行响应时间
  • Endpoint Response Time Percentile:当前端点每个时间段的响应时间占比
  • Endpoint Successful Rate:当前端点每个时间段的请求成功率

 

拓扑图

  • 1:选择不同的服务关联拓扑
  • 2:查看单个服务相关内容
  • 3:服务间连接情况
  • 4:分组展示服务拓扑
  • :服务告警信息
  • :服务端点追踪信息
  • :服务实例性能信息
  • :api信息面板

追踪

  •  左侧:api接口列表,红色-异常请求,蓝色-正常请求
  •  右侧:api追踪列表,api请求连接各端点的先后顺序和时间

性能剖析

  • 新建任务:新建需要分析的端点
  • 左侧列表:任务及对应的采样请求
  •  右侧:端点链路及每个端点的堆栈信息

新建任务

  • 服务:需要分析的服务
  • 端点:链路监控中端点的名称,可以再链路追踪中查看端点名称
  • 监控时间:采集数据的开始时间
  • 监控持续时间:监控采集多长时间
  • 起始监控时间:多少秒后进行采集
  • 监控间隔:多少秒采集一次
  • 最大采集数:最大采集多少样本

告警

不同维度告警列表,可分为服务、端点和实例。

<think>我们正在处理一个关于在SpringBoot3.0中集成SkyWalking的问题。根据用户的问题,我们需要提供集成步骤。参考引用内容,我们可以总结出以下关键点:1.需要下载SkyWalkingJavaAgent。2.在启动应用时通过`-javaagent`参数指定agent的路径,并配置相关参数(如服务名、后端收集地址等)。3.配置方式可以是命令行参数、bat文件或者IDEA的启动配置。由于用户使用的是SpringBoot3.0,但SkyWalking的集成方式与SpringBoot版本关系不大,主要是通过JavaAgent来实现的。因此,我们可以参考引用中的配置,并确保使用支持SpringBoot3.0的SkyWalkingAgent版本。步骤:1.下载SkyWalkingJavaAgent。用户需要从ApacheSkyWalking官网下载最新版本的JavaAgent,确保兼容性(SpringBoot3.0需要Java17,因此SkyWalkingAgent版本需要支持Java17)。2.将Agent解压到项目目录或指定位置。3.在启动应用时添加JVM参数,指定javaagent并配置相关属性。根据引用[4]中的配置示例,我们可以写出类似的配置,但需要调整路径和版本。另外,引用[3]和[4]提供了两种配置方式:通过启动脚本(bat)和通过IDEA的启动配置。因此,我们可以提供两种方式:命令行启动和IDEA中配置。注意:在引用[2]中提到了项目结构,我们可以建议用户将agent放在项目目录下,但这不是必须的。具体步骤:一、下载SkyWalkingJavaAgent访问[ApacheSkyWalking下载页面](https://skywalking.apache.org/downloads/),下载最新版本的JavaAgent(例如:apache-skywalking-java-agent-{version}.tgz),解压后得到`skywalking-agent`目录。二、配置Agent在`skywalking-agent`目录中,配置文件`config/agent.config`可以设置默认配置,但我们通常通过JVM参数覆盖。三、启动应用时添加JVM参数方式1:命令行启动(例如使用jar包启动)```java-javaagent:/path/to/skywalking-agent/skywalking-agent.jar-Dskywalking.agent.service_name=your-service-name-Dskywalking.collector.backend_service=127.0.0.1:11800-jaryour-application.jar```方式2:在IDEA中配置1.打开Run/DebugConfigurations2.在VMoptions中添加:```-javaagent:D:\path\to\skywalking-agent\skywalking-agent.jar-Dskywalking.agent.service_name=your-service-name-Dskywalking.collector.backend_service=127.0.0.1:11800```注意:路径替换为实际的skywalking-agent.jar路径。四、参数说明-`-javaagent`:指定agent的jar包路径。-`-Dskywalking.agent.service_name`:设置服务名,在SkyWalkingUI中显示。-`-Dskywalking.collector.backend_service`:设置SkyWalkingOAP服务器的地址,默认是11800端口(gRPC端口)。五、验证启动应用,访问SkyWalkingUI(默认端口8080)查看服务是否注册。注意:如果使用SkyWalking9.x及以上版本,配置项名称可能有所变化。例如,在较新的版本中,配置服务名可能使用`agent.service_name`(不带前面的skywalking?),但为了兼容性,我们通常使用带前缀的完整属性名。具体可参考官方文档。根据引用[4]中的配置,他们使用的是`-DSW_AGENT_NAME`和`-DSW_AGENT_COLLECTOR_BACKEND_SERVICES`,这是另一种配置方式(使用缩写)。实际上,SkyWalkingAgent支持多种配置方式,包括系统属性、配置文件、环境变量等。系统属性的完整名称和缩写可以查看agent.config文件中的说明。为了清晰,我们可以使用完整的配置属性名(带`skywalking.`前缀),因为缩写可能随着版本变化而变化。在最新版本(如8.9.0以上)中,推荐使用以下属性:-`skywalking.agent.service_name`或缩写`agent.service_name`(注意:在系统属性中,我们使用点分隔)-`skywalking.collector.backend_service`或缩写`collector.backend_service`但为了确保兼容性,建议查看下载的agent包中的`config/agent.config`文件,里面列出了所有配置项及其对应的系统属性名称。例如,在agent.config文件中,可以看到:```#TheservicenameinUIagent.service_name=${SW_AGENT_NAME:Your_ApplicationName}#Backendserviceaddresses.collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}```所以,我们可以使用系统属性`SW_AGENT_NAME`和`SW_AGENT_COLLECTOR_BACKEND_SERVICES`(如引用[4]),也可以使用`agent.service_name`和`collector.backend_service`(但注意,在系统属性中,我们需要加上`skywalking.`前缀?)实际上,在通过JVM参数设置时,我们可以直接使用在agent.config中使用的变量名(去掉`${}`和默认值部分)作为系统属性,但是注意,agent.config中使用的环境变量和系统属性是混合的。例如,`SW_AGENT_NAME`是环境变量,但也可以通过系统属性设置(因为SkyWalkingAgent会同时读取系统属性和环境变量)。因此,我们可以这样写:-`-Dskywalking.agent.service_name=your-service-name`或`-DSW_AGENT_NAME=your-service-name`-`-Dskywalking.collector.backend_service=127.0.0.1:11800`或`-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800`但是,为了统一和避免混淆,建议使用一种风格。引用[4]中使用了缩写系统属性(`-DSW_AGENT_NAME`),而引用[3]中使用了长格式(`agent.service_name`)但在JVM参数中需要加上`skywalking.`前缀吗?实际上,在agent.config中,我们看到的是`agent.service_name`,这个配置项对应的系统属性名就是`agent.service_name`,但通常为了区分,我们可能会加上`skywalking.`前缀?实际上,在SkyWalkingAgent中,配置项的名称就是系统属性的名称,不需要加前缀。然而,为了避免与其他组件的配置冲突,SkyWalking配置项有命名空间,但在系统属性中,直接使用配置项的名称(如`agent.service_name`)即可。所以,更准确的写法是:```-javaagent:/path/to/skywalking-agent/skywalking-agent.jar-Dagent.service_name=your-service-name-Dcollector.backend_service=127.0.0.1:11800```或者使用环境变量对应的系统属性(因为环境变量也可以被读取,但通过系统属性设置可以覆盖环境变量):```-javaagent:/path/to/skywalking-agent/skywalking-agent.jar-DSW_AGENT_NAME=your-service-name-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800```在官方文档中,通常使用环境变量的方式(在容器环境中常用),但在本地运行使用系统属性也很方便。因此,我们可以提供两种写法,但为了简单,我们使用系统属性对应的配置项(即直接使用配置项名称,如`agent.service_name`)的方式。但是,请注意,在SkyWalking8.0+的版本中,配置项已经规范化,使用点分隔的命名方式。所以,我们推荐使用:```-javaagent:/path/to/skywalking-agent/skywalking-agent.jar-Dagent.service_name=your-service-name-Dcollector.backend_service=127.0.0.1:11800```然而,在引用[3]中,他们使用的是:`agent.service_name=skywalking-demo,collector.backend_service=127.0.0.1:11800`这是通过`-javaagent`参数后面的`=`号来设置的,而不是通过`-D`系统属性。这种方式也是支持的,但不太常见。所以,总结一下,有两种方式设置配置:方式A:通过`-javaagent`参数后面的`=`附加配置```-javaagent:/path/to/skywalking-agent.jar=[option1]=[value1],[option2]=[value2]```方式B:通过独立的系统属性(`-D`)我们更推荐方式B,因为更清晰,且易于管理。因此,最终在IDEA中配置的VMoptions应该是:```-javaagent:D:\repository\skywalking-agent\skywalking-agent.jar-Dagent.service_name=your-service-name-Dcollector.backend_service=127.0.0.1:11800```注意:路径需要替换。对于SpringBoot3.0,没有特别的步骤,因为SkyWalkingAgent是JavaAgent,不依赖于SpringBoot版本。只要SkyWalkingAgent版本支持Java17即可(SpringBoot3.0要求Java17+)。因此,请确保下载的SkyWalkingJavaAgent版本是8.0.0以上(建议使用最新版本)。另外,如果使用Maven构建,可以在`pom.xml`中配置插件,以便在启动时自动加入agent,但这不是必须的。最后,我们提供完整的步骤。考虑到用户可能需要更详细的指导,我们将步骤写得更清晰。</think>### 在 Spring Boot 3.0 中集成 Apache SkyWalking 以下是完整的集成步骤,基于最新 SkyWalking 9.x 版本的实践: #### 步骤 1:下载 SkyWalking Java Agent 从 [Apache SkyWalking 官网](https://skywalking.apache.org/downloads/) 下载最新 Java Agent(如 `apache-skywalking-java-agent-9.x.x.tgz`),解压后得到 `skywalking-agent` 目录。 #### 步骤 2:配置 Agent 参数 在项目根目录创建 `skywalking-agent.config` 文件: ```properties # 服务名称(在SkyWalking UI显示) agent.service_name=springboot3-demo # OAP服务器地址(gRPC协议) collector.backend_service=127.0.0.1:11800 # 日志输出目录 logging.dir=logs ``` #### 步骤 3:Spring Boot 启动配置 ##### 方式1:IDEA 开发环境配置 1. 打开 `Run/Debug Configurations` 2. 在 `VM options` 添加: ```shell -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -Dskywalking.config=/path/to/skywalking-agent.config ``` ![IDEA配置示意图](https://skywalking.apache.org/images/demo/skywalking_idea_config.png) ##### 方式2:生产环境启动命令 ```bash java -javaagent:/opt/skywalking-agent/skywalking-agent.jar \ -Dskywalking.config=/opt/skywalking-agent/skywalking-agent.config \ -jar your-springboot3-app.jar ``` #### 步骤 4:验证集成效果 1. 访问 SkyWalking UI(默认 http://localhost:8080) 2. 创建测试接口: ```java @RestController public class MonitoringController { @GetMapping("/trace") public String traceExample() { // 模拟业务逻辑 try { Thread.sleep(150); } catch (InterruptedException e) {} return "Trace tracked by SkyWalking"; } } ``` 3. 访问接口后查看拓扑图和服务监控指标: ![拓扑图示例](https://skywalking.apache.org/images/demo/service_mesh_topology.png) #### 关键注意事项 1. **版本兼容性**: - Spring Boot 3.x 需要 SkyWalking Agent ≥ 8.12.0 - 使用 JDK 17+ 时需启用 `-Dskywalking.agent.java_version=17` 2. **日志关联**(可选配置): 在 `application.properties` 中添加: ```properties # 启用traceID注入日志 logging.pattern.level=%5p [${skywalking.context.trace_id:-}] ``` 3. **Docker 环境**: 在 Dockerfile 中添加: ```dockerfile ENV SW_AGENT_OPTS="-javaagent:/skywalking/agent/skywalking-agent.jar" CMD java ${SW_AGENT_OPTS} -jar /app.jar ``` [^1]: 示例参考自 SkyWalking 官方文档的 Java Agent 配置部分 [^2]: 配置项说明详见 [Agent 配置文档](https://skywalking.apache.org/docs/skywalking-java/latest/en/setup/service-agent/java-agent/configurations/) [^3]: 镜像构建建议参考 Docker 最佳实践指南 --- ### 相关问题 1. **如何验证 SkyWalking 数据是否成功上报到 OAP 服务器?** *(涉及日志检查、gRPC 端口监控等验证方法)* 2. **在 Kubernetes 环境中部署 Spring Boot 3.0 + SkyWalking 有哪些特殊配置?** *(需考虑 sidecar 模式、ConfigMap 配置管理等)* 3. **SkyWalking 如何监控 Spring Boot 3 的 Micrometer 指标?** *(涉及指标集成原理和 Prometheus 适配方案)* 4. **集成时出现 `ClassNotFoundException: jakarta.servlet.Filter` 错误如何解决?** *(兼容 Jakarta EE 9+ 的特殊处理方案)*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值