skywalking 搭建链路监控
一、skywalking简介
官网:https://github.com/apache/skywalking
引用官网的架构:
二、部署OAP和UI
需使用的镜像
apache/skywalking-oap-server:8.6.0-es7
apache/skywalking-ui:8.6.0
创建空间名称:
kubectl create ns skywalking
查看名称是否设置成功:kubectl get ns

应用资源文件:kubectl apply -f .
看名称空间下所有资源:kubectl get all -n skywalking

可以看日志是否正常(端口是否ok):kubectl logs pod/oap-9d459674b-8vndj -n skywalking
三、使用skywalking agent
1、下载镜像:skywalking-agent-sidecar:v1.0,推送到本地镜像仓库
2、在资源yaml文件中,添加初始化容器
initContainers:
- image: 192.168.16.156(个人IP)/skywalking/skywalking-agent-sidecar:v1.0
name: sw-agent-sidecar
imagePullPolicy: IfNotPresent
command: [
"sh"
]
args:
[
"-c"
,
"mkdir -p /skywalking/agent && cp -r /usr/skywalking/agent/* /skywalking/agent"
,
]
volumeMounts:
- mountPath: /skywalking/agent
name: sw-agent
2、在资源yaml文件中,服务容器添加环境变量和volumeMounts
env:
- name: JAVA_OPTS
value: -javaagent:/usr/skywalking/agent/skywalking-agent.jar
volumeMounts:
- mountPath: /usr/skywalking/agent
name: sw-agent
部署服务,服务启动的时候,上面的变量会生效
进入容器:kubectl exec -it product-78fcbdfd6b-mv2hl -n mm -- sh
可以看到,服务容器的目录下有skywalking-agent.jar
可以用top查看进程
四、在网页访问skywalking
1、skywalking中拓扑图

2、仪表盘
五、利用skywalking 性能剖析
下面的截图是运行网上的积分兑礼物的代码例子
1.单场景
jmeter -n -t gift.jmx -l res.jtl -e -o res/
2.多场景
3、单压查询订单场景
tps在10-20
grafana监控结果
k8s监控面板
用skywalking链路追踪
可以选择持续时间和时间范围,发现慢查询
点击进去,查看详情,可以看到SQL
也可以拆解时间,查看拓扑图
查看网关服务,侦察端,订单服务
把对应的SQL拉出来分析
执行计划:explain select o.id,o.order_number,o.order_product_name,o.order_price,o.count,o.buy_date from orders o where o.order_number = 'n305udx6jqu2pjxt';
发现是扫全表,然后建索引。(这个只是例子,可以查看代码所以排查起来比较简单,可以和研发合作)
create unique index index_order_number on orders(order_number);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下