skywalking简介
监控的分类
Logging,Metrics和Tracing
- Logging用于记录离散的事件例如,应用程序的调试信息或错误信息,Logging是我们诊断问题的依据。
- Metrics用于记录可聚合的数据例如,队列的当前深度可被定义为一个度量值,在元素入队或出队时被更新;HTTP请求个数可被定义为一个计数器,新请求到来时进行累加。
- Tracing用于记录请求范围内的信息例如,一次远程方法调用的执行过程和耗时。Tracing是我们排查系统性能问题的利器。

通过以上信息,可以对已有系统进行分类。
Zipkin,Skywalking等专注于tracing领域;
Prometheus开始专注于metrics,随着时间推移可能会集成更多的tracing功能,但不太可能深入logging领域;
ELK这样的系统开始专注于logging领域。
APM工具
现代APM(Application Performance Management/应用性能管理)体系,基本都是参考Google的Dapper(大规模分布式系统的跟踪系统)的体系来做的。
通过跟踪请求的处理过程,来对应用系统在前后端处理、服务端调用的性能消耗进行跟踪。
简介
Zipkin
由Twitter公司开源,开放源代码分布式的跟踪系统,用于收集服务的定时数据,以解决微服务架构中的延迟问题,包括:数据的收集、存储、查找和展现。
SkyWalking
国产的优秀APM组件,2015年由个人吴晟(华为开发者)开源 ,2017年加入Apache孵化器;是一个对JAVA分布式应用程序集群的业务运行情况进行追踪、告警和分析的系统。使用java探针字节码增加技术,实现对整个应用的监控 ;对应用零侵入。针对分布式系统的应用性能监控系统,特别针对微服务、cloud native和容器化(Docker, Kubernetes, Mesos)架构, 其核心是个分布式追踪系统;
CAT
CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。
Spring Cloud Sleuth
Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案,并且兼容支持了 zipkin,你只需要在pom文件中引入相应的依赖即可。
特性
|
| Zipkin+Sleuth | SkyWalking | CAT |
|---|---|---|
| 开发者 | Apache | |
| 实现方式 | 拦截请求,发送(HTTP,mq)数据至zipkin服务 | java探针,字节码增强,配置文件 |
| 接入方式 | 基于linkerd或者sleuth方式,引入配置即可 | javaagent字节码 |
| 颗粒度 | 接口级 | 方法 |
| traceid查询 | 支持 | 支持 |
选择
上面都提供了分布式服务追踪能力。但是我们业务系统之间调用使用dubbo调用。且需要TraceId. 所以我们选择skywalking.
SkyWalking介绍
架构

SkyWalking逻辑上分为四个部分:Probes(探针), Platform backend(平台后端), Storage(存储), UI
探针就是Agent负责采集数据并上报给服务端,服务端对数据进行处理和存储,UI负责展示.
安装
docker-compose 安装
version: '3.3'
services:
skywalking-oap:
image: apache/skywalking-oap-server:8.6.0-es7
container_name: skywalking-oap
ports:
- 11800:11800
- 12800:12800
environment:
JAVA_OPTS: " -Xms256M -Xmx1024M"
# es7存储
SW_STORAGE: elasticsearch7
SW_STORAGE_ES_CLUSTER_NODES: 10.0.11.61:9200
SW_ES_USER: elastic
SW_ES_PASSWORD: xxx
# 健康检查
SW_HEALTH_CHECKER: default
SW_STORAGE_ES_BULK_ACTIONS: 4000
SW_STORAGE_ES_BULK_SIZE: 40
SW_STORAGE_ES_FLUSH_INTERVAL: 30
SW_STORAGE_ES_CONCURRENT_REQUESTS: 4
SW_STORAGE_ES_QUERY_MAX_SIZE: 8000
SW_TRACE_SAMPLE_RATE: 5000
TZ: Asia/Shanghai
restart: on-failure
skywalking-ui:
image: apache/skywalking-ui:8.6.0
container_name: skywalking-ui
restart: always
depends_on:
- skywalking-oap
ports:
- 8848:8080
environment:
TZ: Asia/Shanghai
SW_OAP_ADDRESS: skywalking-oap:12800
这里es是采用的 单独安装的。因为sw的主要性能瓶颈在es
SkyWalking Server配置文件说明
SkyWalking UI指标使用说明
Agent配置及使用
将apache-skywalking-apm-bin-es7/agent文件夹拷贝到发布容器中,位置可以根据情况调整
文件说明
- config/agent.config:为客户端代理配置文件
- logs:SW agent相关运行情况日志。
- bootstrap-plugins:引导插件
- optional-plugins:可选插件
- plugins:内置插件
- skywalking-agent.jar:agent代理jar包。
[
](https://blog.csdn.net/lizz861109/article/details/107519853)
启动
-javaagent:D:/agent/skywalking-agent.jar -Dskywalking.agent.service_name=anqiu -Dskywalking.collector.backend_service=localhost:11800
apm-toolkit配置
添加依赖
apm-toolkit
修改log4j2-spring.xml
<Property name="CONSOLE_LOG_PATTERN">${APPNAME} %d{yyyy-MM-dd HH:mm:ss.SSS} [%traceId] %-5level [%t] %c - %msg%xEx%n</Property>
「ps:」 pattern 中的内容按需修改,其中的 %traceId 就是traceId,默认 TID:N/A,当有请求调用时会生成并显示 traceId
效果如下
anqiu-education 2021-08-09 16:39:56.092 [TID: c9104f52d1ad448a9972f65fd37ceed3.107.16284983960320001] INFO [qtp2021051054-107] com.anqiu.HttpAspect - 请求参数ARGS = [*]
总结
「优点」:无需编码,业务无入侵,可与 SkyWalking 的图形化界面中使用该ID快速定位各种接口的调用关系
「缺点」:强耦合 SkyWalking 才能生效
- 必须添加sk的 javaagent
- 必须部署 SkyWalking 服务端
skywalking简介的更多相关文章
- 全链路跟踪skywalking简介
该文章主要包括以下内容: skywalking的简介 skywalking的使用,支持多种调用中间件(httpclent,springmvc,dubbo,mysql等等) skywalking的tra ...
- skywalking学习
skywalking简介 SkyWalking一个开源可观测性平台,用于收集.分析.聚合和可视化来自服务和云原生基础设施的数据.SkyWalking提供了一种简单的方法,可以让你清晰的查看分布式系统. ...
- Docker-Compose搭建单体SkyWalking
SkyWalking简介 SkyWalking是一款高效的分布式链路追踪框架,对于处理分布式的调用链路的问题定位上有很大帮助 有以下特点: 性能好 针对单实例5000tps的应用,在全量采集的情况下, ...
- Docker-Compose搭建单体SkyWalking 6.2
SkyWalking简介 SkyWalking是一款高效的分布式链路追踪框架,对于处理分布式的调用链路的问题定位上有很大帮助 有以下特点: 性能好 针对单实例5000tps的应用,在全量采集的情况下, ...
- Spring Cloud Alibaba - SkyWalking
SkyWalking 简介 分布式链路跟踪是分布式系统的应用程序性能监视工具,专为微服务.云原生架构和基于容器(Docker.K8s)架构而设计: 也就是说Skywalking是用于微服务的" ...
- 分布式/微服务必配APM系统,SkyWalking让你不迷路
前言 如今分布式.微服务盛行,面对拆分服务比较多的系统,如果线上出现异常,需要快速定位到异常服务节点,假如还用传统的方式排查肯定效率是极低的,因为服务之间的各种通信会让定位更加繁琐:所以就急需一个分布 ...
- SkyWalking部署及.Net Core简单使用
SkyWalking官方网站非常详细,以下只是本人学习过程的整理 一.SkyWalking简介 1.概念 SkyWalking是分布式系统的应用程序性能监视工具,专为微服务.云原生架构而设计 SkyW ...
- k8s搭建链路监控:skywalking
skywalking架构及简介 官网:https://github.com/apache/skywalking 简介 Java, .NET Core, NodeJS, PHP, and Python ...
- skywalking 搭建链路监控
一.skywalking简介 官网:https://github.com/apache/skywalking 引用官网的架构: 二.部署OAP和UI 需使用的镜像 apache/skywalking ...
随机推荐
- 使用Dice loss实现清晰的边界检测
前言: 在深度学习和计算机视觉中,人们正在努力提取特征,为各种视觉任务输出有意义的表示.在一些任务中,我们只关注对象的几何形状,而不管颜色.纹理和照明等.这就是边界检测的作用所在. 关注公众号CV ...
- Activiti7 入门篇
1. 工作流 简单地来讲,工作流就是在计算机的协助下实现流程的自动化控制.目前,笔者熟知的主流的框架有:Camunda .Flowable .Activiti .jBPM.还有我们国产的盘古BPM. ...
- 互联网时代CRM软件帮助企业销售升级
随着信息技术的发展,互联网+的浪潮逐渐改变了我们的生活.对于企业来说,他们的管理模式和服务模式也需要作出改变,企业不再满足只进行内部业务的优化和管理,传统CRM开始不再符合企业的需求.由此可见,在网络 ...
- HTML骨架解析
在VSCode中按下"!"感叹号便可得到如下的html骨架,没有这些骨架浏览器便不能正常渲染,但是这些骨架分别代表什么含义呢?不急,我们一行一行的看. 1 <!DOCTYPE ...
- SQL查询语句中参数带有中文查询不到结果
今天写个小demo的时候发现sql语句里面的username为中文的时候就不能查到正确结果,sql语句如下: String sql = "select * from user where u ...
- shell 中()、[]、{}、(())、[[]]等各种括号的使用
11 shell中内置关键字[[]]:检查条件是否成立 1.小括号.圆括号() 1.1 单小括号() 用途 命令组 括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余 ...
- PHP经典算法之背包问题
问题:假设有一个背包的负重最多可达8公斤,而希望在背包中装入负重范围内可得之总价物品,假设是水果好了,水果的编号.单价与重量如下所示: 1 栗子 4KG $4500 2 苹果 5KG $5700 3 ...
- 用swoole实现异步任务队列
应用场景如下: 假如要发100封邮件,for循环100遍,这种方法显然是不可取的. 在一些比较繁杂的业务里,我们很可能有超过1万的邮件要群发.那我们怎么处理这个延迟的问题? 答案就是用异步.把&quo ...
- MYSQL_Join注入技巧
Join注入技巧 join无名列报错注入 约束条件 在知到表名的前提下才能操作 注入语句 and extractvalue(1,concat(0x7e,(select * from (select * ...
- 「AGC034E」 Complete Compress
「AGC034E」 Complete Compress 显然可以枚举根. 然后把某两棵棋子同时往深度浅的方向提,即对不存在祖先关系的两个棋子进行操作. 如果能到达那么就更新答案. 问题转化为如何判定能 ...