链路追踪Skywalking 10.2.0使用

Skywalking 官方地址:https://skywalking.apache.org/docs/

1、环境以及版本说明

  1. apache-skywalking-apm-10.2.0 需要jdk11 才能启动 OAP/UI,不影响Java应用

  2. apache-skywalking-java-agent-9.2.0

2、使用说明

2.1 下载必要文件

  1. apache-skywalking-apm-10.2.0

解压文件apache-skywalking-apm-10.2.0.tar.gz,得到目录apache-skywalking-apm-bin

编辑/config/application

  storage:
  selector: ${SW_STORAGE:mysql}  ## 根据具体情况选择
  
  mysql:
    properties:
      jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://127.0.0.1:43306/skywalking?rewriteBatchedStatements=true&allowMultiQueries=true"}
      dataSource.user: ${SW_DATA_SOURCE_USER:root}
      dataSource.password: ${SW_DATA_SOURCE_PASSWORD:root}
      dataSource.cachePrepStmts: ${SW_DATA_SOURCE_CACHE_PREP_STMTS:true}
      dataSource.prepStmtCacheSize: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_SIZE:250}
      dataSource.prepStmtCacheSqlLimit: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_LIMIT:2048}
      dataSource.useServerPrepStmts: ${SW_DATA_SOURCE_USE_SERVER_PREP_STMTS:true}
    metadataQueryMaxSize: ${SW_STORAGE_MYSQL_QUERY_MAX_SIZE:5000}
    maxSizeOfBatchSql: ${SW_STORAGE_MAX_SIZE_OF_BATCH_SQL:2000}
    asyncBatchPersistentPoolSize: ${SW_STORAGE_ASYNC_BATCH_PERSISTENT_POOL_SIZE:4}

下载mysql 8驱动

wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar 将数据库驱动放置/oap-libs文件夹

还需要在数据库中创建一个skywalking库

2.2 启动Skywalking OAP/UI 服务

  • windows启动 如果系统有多个jdk环境,这里需要去指定oapService.sh、webappService.sh 的jdk环境

  • Linux启动

    • nohup ./oapService.sh nohup.log 2>&1 &

    • nohup ./webappService.sh /nohupweb.log 2>&1 &

启动完成后会出现两个弹窗

访问http://localhost:8080,刚启动加载比较慢要等一会儿

2.3 配置探针 Skywalking Agent

  • 下载探针

  • 得到apache-skywalking-java-agent-9.4.0.tgz 并解压 D:\envirment\skywalking-agent

  • 配置启动命令

-javaagent:D:\envirment\skywalking-agent\skywalking-agent.jar   #探针位置
-Dskywalking.agent.service_name=cyt-manager  # 服务名称
-Dskywalking.collector.backend_service=127.0.0.1:11800  #OAP服务

2.4 IDEA 启动配置 (本地可不用配置,服务器配置就行了,可配置看效果)

  1. 为每一个服务都加上探针,随后再去刷新Skywalking 控制台就会出现服务监控了

3、部分界面

3.1 接口链路

SkyWalking是一个可观测性分析平台和应用程序性能监控工具,用于从服务端收集、分析、度量聚合成可视化的监控数据,能实现服务间链路追踪SkyWalking实现服务间链路追踪的方法是通过探针自动收集所需的指标,并进行分布式追踪,具有无代码嵌入,支持众多中间件,agent种类全面,性能消耗低等优点。SkyWalking的UI组件提供了丰富的数据可视化功能,包括服务拓扑展示各个服务实例之间的调用关系;基于Tracing数据进行调用链分析,展示单个请求的详细调用路径,以及各个环节的耗时和性能指标;提供实时和历史的性能指标图表进行指标分析;根据预设的规则对异常情况进行实时告警的告警管理;整合分布式系统中的日志信息辅助故障排查和性能优化的日志聚合 [2][3]。 其原理方面,在链路追踪时,span块内会记录一些参数,还可记录发起调用服务名称、被调服务名称、返回结果、IP、调用服务的名称等,最后把相同spanid的信息合成一个大的span块,就完成了一个完整的调用链 [5]。 ```python # 这里虽然没有直接与SkyWalking实现链路追踪原理代码相关,但简单示意一个可能用于数据处理逻辑的伪代码 # 假设存在一个函数用于收集span信息 def collect_span_info(): # 模拟收集span信息,这里可替换为真实收集逻辑 span_info = { "spanid": 1, "发起调用服务名称": "service_A", "被调服务名称": "service_B", "返回结果": "success", "IP": "192.168.1.1", "调用服务的名称": "caller" } return span_info # 模拟将相同spanid信息合成一个大的span块 span_list = [] for _ in range(3): span = collect_span_info() span_list.append(span) # 简单示例合成逻辑,实际更复杂 combined_span = {} for span in span_list: if span["spanid"] == 1: for key, value in span.items(): if key not in combined_span: combined_span[key] = value print(combined_span) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值