监控:Skywalking简介

参考文章:https://skywalking.apache.org/zh/2020-04-19-skywalking-quick-start/#
官方文档-中文版:https://github.com/SkyAPM/document-cn-translation-of-skywalking

1. 概述

  • 开源的可观测平台
    从服务和云原生基础设施收集、分析
    集合及可视化数据
  • 应用程序性能监控系统
    专为微服务、云原生、基于容器docker/k8s/mesos/podman的分布式系统设计

skywalking为服务service、服务实例service instance、断点endpoint提供了可观测能力。可看到服务于端点之间的拓扑结构,每个服务、服务实例、端点的性能指标;可设置报警规则。
服务service:对请求相同行为的一组工作负载。
服务实例service instance:服务-一组工作负载的每一个工作负载称为一个实例。服务实例未必就是操作系统上的一个进程,但在使用打点代理时,一个服务实例实际就是操作系统上的一个真实进程。
端点endpoint:对于特定服务所接收的请求路径,如HTTP的URI路径和gRPC服务的类型和方法签名。

2. 功能

  • 多种监控手段(可以通过语言探针和service mesh获得监控数据)
  • 多个语言自动探针(Java, C# , Node.js , Go , PHP 以及 Nginx LUA)
  • 轻量高效
  • 模块化(UI、存储、集群管理都有多种机制可选)
  • 支持告警
  • 优秀的可视化解决方案

3. 架构

  • 探针+平台后端+存储+UI

    探针:收集数据,将数据格式化为skywalking使用的格式,不同来源可能不同
    平台后端:数据聚合、数据分析以及驱动数据流从探针到用户界面的流程。分析包括skywalking原生追踪和性能指标以及第三方来源。
    存储:通过开放的插件化的接口存放skywalking数据。可以选择既有存储系统,也可以选择自建存储系统。
    UI:基于接口高度定制化的web系统,能可视化查看和管理skywalking数据。

  • Tracing链路:Agent+SkyWalking OAP+Storage+SkyWalking UI

    上-Agent:从应用中收集链路信息发送给skywalking OAP服务器。支持skywalking、zikpin、jaeger等提供的Tracing数据信息。
    下-Skywalking OAP:接收agent发送的Tracing数据信息、进行分析analysis core、存储到外部存储器storage、提供查询query功能。
    右-Storage:tracing数据存储。支持es、mysql、sharding sphere、TiDB、H2多种存储器。
    左-skywalking UI:提供控台、查看链路等。

4. 设计目标

  • 保持可观测性
    提供数种运行时探针来保持对目标系统的观测。
  • 拓扑结构、性能指标和追踪一体化
    分布式系统拓扑结构图:可视化展示系统结构
    链路追踪日志:记录服务、实例、端点、调用的性能指标
  • 轻量级
    两方面,
    1)探针:防止依赖库冲突以及虚拟机的负载压力
    2)后端核心服务:次要系统,采用轻量级框架,技术栈足够简单
  • 可插拔
    支持定制,以使用多种场景
  • 可移植
    可运行在多种环境下:传统的注册中心如Eureka、包含服务发现的RPC框架如spring cloud/apache dubbo、现代基础设置中使用服务网络(?)、云服务、跨云部署
  • 可互操作
    与其他运维支撑系统进行互操作,主要是探针,如zipkin、jaeger、open tracing、open census。接收并理解他们的数据格式,使用户不必更换已有的库。
posted @ 2022-01-07 14:35  快果一只  阅读(630)  评论(0编辑  收藏  举报