skyworking8+mysql技术调研

skywolking8+mysql技术调研

  • 为什么要使用skywolking
    • APM介绍
      • 常见的APM系统
    • SkyWalking介绍
      • 什么是SkyWalking
      • 为什么使用 SkyWalking
      • 架构
      • SkyWalking8安装教程
      • skywalking项目使用配置

为什么要使用skywolking

APM介绍

APM全称Application Performance Management应用性能管理,目的是通过各种探针采集数据,收集关键指标,同时搭配数据呈现以实现对应用程序性能管理和故障管理的系统化解决方案

常见的APM系统

CAT: 是由国内美团点评开源的,基于Java语言开发,目前提供Java、C/C++、Node.js、Python、Go等语言的客户端,监控数据会全量统计,国内很多公司在用,例如美团点评、携程、拼多多等,CAT跟下边要介绍的Zipkin都需要在应用程序中埋点,对代码侵入性强,我们倾向于选择对代码无侵入的产品,所以淘汰了CAT

Zipkin: 由Twitter公司开发并开源,Java语言实现,侵入性相对于CAT要低一点,需要对web.xml之类的配置文件做修改,但依然对代码有侵入,也没有选择

Pinpoint: 一个韩国团队开源的产品,运用了字节码增强技术,只需要在启动时添加启动参数即可,对代码无侵入,目前支持Java和PHP语言,底层采用HBase来存储数据,探针收集的数据粒度非常细,但性能损耗大,因其出现的时间较长,完成度也很高,应用的公司较多

SkyWalking: 国人开源的产品,主要开发人员来自于华为,2019年4月17日Apache董事会批准SkyWalking成为顶级项目,支持Java、.Net、NodeJs等探针,数据存储支持Mysql、Elasticsearch等,跟Pinpoint一样采用字节码注入的方式实现代码的无侵入,探针采集数据粒度粗,但性能表现优秀,且对云原生支持,目前增长势头强劲,社区活跃,中文文档没有语言障碍

综合考虑,我们选择了SkyWalking

SkyWalking介绍

什么是SkyWalking

SkyWalking: 一个开源的可观测平台, 用于从服务和云原生基础设施收集, 分析, 聚合及可视化数据。SkyWalking 提供了一种简便的方式来清晰地观测分布式系统, 甚至横跨多个云平台。SkyWalking 更是一个现代化的应用程序性能监控(Application Performance Monitoring)系统, 尤其专为云原生、基于容器的分布式系统设计.

为什么使用 SkyWalking

在许多不同的场景下, SkyWalking 为观察和监控分布式系统提供了解决方案。首先是像传统的方式那样, SkyWalking 为服务提供了自动打点的代理, 如 Java, C# , Node.js , Go , PHP 以及 Nginx LUA(包括 Python 和 C++ 调用的 SDK 捐献)。

对于多数语言,持续部署环境,云原生基础设施正变得更加强大,但也更加复杂。

Skywalking 的服务网格接收器可以让 Skywalking 接收来自服务网格框架(例如 Istio , Linkerd)的遥测数据,以帮助用户理解整个分布式系统。

总之, SkyWalking 为 服务(service), 服务实例(service instance), 以及 端点(endpoint) 提供了可观测能力。服务(Service), 实例(Instance) 以及 端点(Endpoint) 等概念在如今随处可见, 所以让我们先了解一下他们在 SkyWalking 中都表示什么意思:

  • 服务(Service). 表示对请求提供相同行为的一组工作负载. 在使用打点代理或 SDK 的时候,你可以定义服务的名字. SkyWalking 还可以使用在 Istio 等平台中定义的名称。
  • 服务实例(Service Instance). 上述的一组工作负载中的每一个工作负载称为一个实例. 就像 Kubernetes 中的 pods 一样,服务实例未必就是操作系统上的一个进程. 但当你在使用打点代理的时候, 一个服务实例实际就是操作系统上的一个真实进程.
  • 端点(Endpoint). 对于特定服务所接收的请求路径, 如 HTTP 的 URI 路径和 gRPC 服务的类名 + 方法签名。

使用 SkyWalking 时, 用户可以看到服务与端点之间的拓扑结构, 每个服务/服务实例/端点的性能指标, 还可以设置报警规则。

除此之外, 你还可以通过以下方式集成

  1. 其他分布式追踪使用 Skywalking 原生代理和Zipkin , Jaeger 和 OpenCensus 的 SDK;
  2. 其他度量指标系统,例如 Prometheus , Sleuth(Micrometer。

架构

SkyWalking 逻辑上分为四部分: 探针, 平台后端, 存储和用户界面.

skyworking8+mysql技术调研_第1张图片

  • 探针 基于不同的来源可能是不一样的, 但作用都是收集数据, 将数据格式化为 SkyWalking 适用的格式.
  • 平台后端, 支持数据聚合, 数据分析以及驱动数据流从探针到用户界面的流程。分析包括 Skywalking 原生追踪和性能指标以及第三方来源,包括 Istio 及 Envoy telemetry , Zipkin 追踪格式化等。 你甚至可以使用 Observability Analysis Language 对原生度量指标 和 用于扩展度量的计量系统 自定义聚合分析。
  • 存储 通过开放的插件化的接口存放 SkyWalking 数据. 你可以选择一个既有的存储系统, 如 ElasticSearch, H2 或 MySQL 集群(Sharding-Sphere 管理),也可以选择自己实现一个存储系统. 当然, 我们非常欢迎你贡献新的存储系统实现。
  • UI 一个基于接口高度定制化的Web系统,用户可以可视化查看和管理 SkyWalking 数据。

SkyWalking8安装教程

1、进入官网,https://skywalking.apache.org/downloads/
2、选择红框部分,查询所有版本
skyworking8+mysql技术调研_第2张图片
3、进入版本列表、选择最新的版本8.3
skyworking8+mysql技术调研_第3张图片
4、根据skywolking的存储类型选择需要下载的版本

  • 如果使用es7存储、需要专门下载apache-skywalking-apm-es7-8.3.0.tar.gz版本
  • 如果使用其他存储方式,如选择mysql、h2、influxdb、或低版本es时,下载apache-skywalking-apm-8.3.0.tar.gz版本

skyworking8+mysql技术调研_第4张图片
5、解压文件,修改apache-skywalking-apm-bin\config\application.yml

  • 修改apache-skywalking-apm-bin\tools\profile-exporter\application.yml下的链接方式、截图看下一步

skyworking8+mysql技术调研_第5张图片
skyworking8+mysql技术调研_第6张图片

6、本次采用单节点部署,存储方式选择mysql
skyworking8+mysql技术调研_第7张图片
7、新建数据库,我选择的mysql8版本
skyworking8+mysql技术调研_第8张图片
8、选择mysql连接驱动(根据数据库版本来),将mysql-connector-java-8.0.21.jar 复制到\apache-skywalking-apm-bin\oap-libs目录下

  • mysql驱动没有的去https://mvnrepository.com/artifact/mysql/mysql-connector-java下载

skyworking8+mysql技术调研_第9张图片
skyworking8+mysql技术调研_第10张图片
9、初始化数据库脚本

  • 进入apache-skywalking-apm-bin\bin
  • 根据操作系统选择对应的脚本
  • 本次在window下,所以我们选择oapServiceInit.bat,双击即可

skyworking8+mysql技术调研_第11张图片

  • 进入\apache-skywalking-apm-bin\logs查看日志文件
    skyworking8+mysql技术调研_第12张图片
  • 日志中报对应的表不存在的时候就会在数据库里面新增相应的表,8.3版本的最终有115张表
  • 如果日志出错请检查数据库驱动和数据库版本是否对应,还需检查数据库配置是否正确,使用mysql的版本配置不对会报索引和字段超长等错误,请百度配置mysql修改

skyworking8+mysql技术调研_第13张图片
10、接下来就是查看web项目了,根据需要修改apache-skywalking-apm-bin\webapp\webapp.yml的端口号,默认是8080
skyworking8+mysql技术调研_第14张图片
11、接下来就是启动web了,进入apache-skywalking-apm-bin\bin目录下,之前startup.bat,可以通过\apache-skywalking-apm-bin\logs\webapp.log来查看项目启动的情况
skyworking8+mysql技术调研_第15张图片
skyworking8+mysql技术调研_第16张图片
12、浏览器进入http://localhost:8080(端口号看配置)可以查看到skyworing已经安装完成了。
到此,window下的skywolking已经安装完成了
skyworking8+mysql技术调研_第17张图片

skywalking项目使用配置

1、根据项目需要修改配置文件apache-skywalking-apm-bin\agent\config
skyworking8+mysql技术调研_第18张图片

2、以springboot项目为例,在vm里添加参数
-javaagent:E:\apache-skywalking-apm-8.3.0\apache-skywalking-apm-bin\agent\skywalking-agent.jar
idea启动springboot项目或使用java -jar +参数启动
skyworking8+mysql技术调研_第19张图片
3、进入skywolking系统,可以查看系统的各种信息(需要项目运行后才能看到)

  • 拓扑图、看到系统间的调用情况
    skyworking8+mysql技术调研_第20张图片
  • 仪表盘 查看应用各项指标
    skyworking8+mysql技术调研_第21张图片
  • 追踪 查看接口之间调用情况
    skyworking8+mysql技术调研_第22张图片

你可能感兴趣的:(skywolking,skywalking,mysql,apm,window)