一、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);

最新文章

  1. Google分布式构建软件之四:分发构建结果
  2. 配置OWASP的ModSecurity规则
  3. SSIS内存不足
  4. 通过SQL ID查询SQL Text
  5. linux ubuntu 浏览器 字 字体 虚 解决办法
  6. 《图解CSS3》——笔记(二)
  7. canvas阴影
  8. 14.10.1 InnoDB Disk I/O
  9. 如何在C++ Builder中使用OpenGL
  10. 【第一篇】Volley的使用之json请求
  11. saiku的安装教程
  12. Android 开发TCP协议时,报错NetworkOnMainThreadException
  13. [Swift]LeetCode633. 平方数之和 | Sum of Square Numbers
  14. forEach循环
  15. jenkins X实践系列(4) —— jenkins X 构建提速
  16. 寻求js
  17. workman项目设置开机自启动
  18. Allow Zero Length 允许空字符串 ACCESS
  19. Cordova - 解决升级NDK之后无法编译!
  20. c++——对象的构造和析构函数、构造函数的分类及调用

热门文章

  1. ACM - 动态规划 - UVA 1347 Tour
  2. Vue报错之"[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead......"
  3. CSS学习(二):背景图片如何定位?
  4. h4ck47h0n ? h4ck3r ? I"m just a coder......
  5. JS 中的日期时间操作计算实例
  6. 使用 Vuex + Vue.js 构建单页应用【新篇】
  7. 2D骨骼动画工具DragonBones的使用教程
  8. rem,px,em最大的区别;
  9. Pascal的旅行
  10. python入门-开始