监控的分类

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
开发者 Twitter 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 Server配置文件说明

SkyWalking UI指标使用说明

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简介的更多相关文章

  1. 全链路跟踪skywalking简介

    该文章主要包括以下内容: skywalking的简介 skywalking的使用,支持多种调用中间件(httpclent,springmvc,dubbo,mysql等等) skywalking的tra ...

  2. skywalking学习

    skywalking简介 SkyWalking一个开源可观测性平台,用于收集.分析.聚合和可视化来自服务和云原生基础设施的数据.SkyWalking提供了一种简单的方法,可以让你清晰的查看分布式系统. ...

  3. Docker-Compose搭建单体SkyWalking

    SkyWalking简介 SkyWalking是一款高效的分布式链路追踪框架,对于处理分布式的调用链路的问题定位上有很大帮助 有以下特点: 性能好 针对单实例5000tps的应用,在全量采集的情况下, ...

  4. Docker-Compose搭建单体SkyWalking 6.2

    SkyWalking简介 SkyWalking是一款高效的分布式链路追踪框架,对于处理分布式的调用链路的问题定位上有很大帮助 有以下特点: 性能好 针对单实例5000tps的应用,在全量采集的情况下, ...

  5. Spring Cloud Alibaba - SkyWalking

    SkyWalking 简介 分布式链路跟踪是分布式系统的应用程序性能监视工具,专为微服务.云原生架构和基于容器(Docker.K8s)架构而设计: 也就是说Skywalking是用于微服务的" ...

  6. 分布式/微服务必配APM系统,SkyWalking让你不迷路

    前言 如今分布式.微服务盛行,面对拆分服务比较多的系统,如果线上出现异常,需要快速定位到异常服务节点,假如还用传统的方式排查肯定效率是极低的,因为服务之间的各种通信会让定位更加繁琐:所以就急需一个分布 ...

  7. SkyWalking部署及.Net Core简单使用

    SkyWalking官方网站非常详细,以下只是本人学习过程的整理 一.SkyWalking简介 1.概念 SkyWalking是分布式系统的应用程序性能监视工具,专为微服务.云原生架构而设计 SkyW ...

  8. k8s搭建链路监控:skywalking

    skywalking架构及简介 官网:https://github.com/apache/skywalking 简介 Java, .NET Core, NodeJS, PHP, and Python ...

  9. skywalking 搭建链路监控

    一.skywalking简介 官网:https://github.com/apache/skywalking 引用官网的架构:  二.部署OAP和UI 需使用的镜像 apache/skywalking ...

随机推荐

  1. 一次性讲清楚spring中bean的生命周期之一:getSingleton方法

    要想讲清楚spring中bean的生命周期,真的是不容易,以AnnotationConfigApplicationContext上下文为基础来讲解bean的生命周期,AnnotationConfigA ...

  2. Unity3D学习笔记2——绘制一个带纹理的面

    目录 1. 概述 2. 详论 2.1. 网格(Mesh) 2.1.1. 顶点 2.1.2. 顶点索引 2.2. 材质(Material) 2.2.1. 创建材质 2.2.2. 使用材质 2.3. 光照 ...

  3. 7. Qt中与垃圾回收机制相关的替代方法(未完

    容器支持引用计数和写时复制 父对象和子对象 QPointer.QSharedPointer.QWeakReference 对象子类化 栈对象

  4. 浅谈最长上升子序列(O(n*logn)算法)

    今天GM讲了最长上升子序列的logn*n算法,但没讲思路... 我看了篇博客,发现-- 说的有道理!!! 首先,举例子: a[7]={1,2,4,3,6,7,5}(假设以1开头) 很明显,LIS=5: ...

  5. bson的类型

    BSON是JSON的扩展数据类型

  6. 使用命令行操作MySQL 及 语法

    在使用之前先要确保服务中的MySQL 已启动,否则会报错:ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061 ...

  7. Could not connect to 'xxx.xx.xx.xxx' (port 22): Connection failed.

    刚刚使用xshell好好的,突然注销账号,准备重新连接突然连不上了. 这就很尴尬了,对我这种linux菜鸟只能去百度了,终于解决了,赶紧记录下这个坑 1.先登陆虚拟机,输入这段命令 查看ssh服务是否 ...

  8. HCNA Routing&Switching之路由基础

    在开始聊路由之前,我们首先要明白在网络通讯里,什么是路由?什么是路由表.路由器以及网关的相关术语:路由简单讲就是指网络数据包从源头到目标的路径,主要用来为不同网络间通讯提供数据包转发依据:路由表就是多 ...

  9. WPF教程九:理解WPF中的对象资源

    在WPF中,所有继承自FrameworkElement的元素都包含一个Resources属性,这个属性就是我们这篇要讲的资源. 这一篇讲解的资源是不是上一篇的程序集资源(那个是在编译过程中打包到程序集 ...

  10. Quzrtz.net 示例

    //框架.Net Core 2.0//先用Nuget 安装最新quartz.net using System; using Quartz; using Quartz.Impl; using Syste ...