• SkyWalking 分布式追踪系统


    一、背景
    随着微服务的越来越流行,我们服务之间的调用关系就显得越来越复杂,我们急需一个APM工具来分析系统中存在的各种性能指标问题以及调用关系。目前主流的APM工具有CATZipkinPinpoint以及SkyWalking,本文主要简单介绍一下SkyWalking的搭建。
     

    二、SkyWalking的组成
    SkyWalking主要的几个组成模块。
    1、Agent 主要负责从系统中采集各种指标,链路数据,发送给 oap服务。
    2、oap服务接收Agent发送过来的数据,存储,执行分析,提供查询和报警功能。
    3、Storage和UI负责存储数据以及查看数据。

    总体架构

    核心架构

     告警平台

     

    三、应用

    1、错误数量监控

    通过java agent拦截系统异常,可以方便的观察到某个时间范围内,应用内部的异常数量。skywalking自身也有服务error数量的统计,但这种统计维度是trace级的,很多时候即使服务请求内部出现了异常,也要通过一些容错方式,返回用户端请求成功,所以仅凭skywalking统计的trace error还不足够分析线上问题,所以我们开发了这个功能。

    2、服务依赖关系

    在实际的开发过程中,我们经常面临这样的一些问题:

    1. 某个服务的上下游服务是什么。
    2. 服务依赖了哪些基础设施,这些基础设施的运行状态如何。

    为了解决这些问题,我们从skywalking后端存储中,周期性同步了trace增量数据,生成了服务拓扑关系,并使用cmdb管理服务与中间件的依赖关系。当选择一个服务后,可以看到这个服务的上下游依赖关系以及所关联中间件的运行状态。

    选择一个服务,在右侧的资源信息中可以看到这个服务所使用中间件的列表,点击链接,可以跳转到prometheus+grafana建立的看板上,查看这些中间件的运行状态,通过这种方式把研发+运维的工作视角统一起来,这也是devops所强调的理念。

    3、核心链路监控

    由于系统的复杂性以及告警规则设置的差异性,线上告警是经常发生的,为了避免被告警轰炸,我们又开发了核心链路监控功能,仅关注核心链路请求响应时间、错误率两个指标,可以快速判断业务主流程是否正常。

    一个好的apm系统能够帮助开发人员快速的定位线上问题,cat的problem视图也是一个非常实用的功能,可以对problem进行分类汇总。



  • 相关阅读:
    一个6亿的表a,一个3亿的表b,通过外间tid关联,你如何最快的查询出满足条件的第50000到第50200中的这200条数据记录
    MySQL复制表的方式以及原理和流程
    Python里面如何拷贝一个对象
    python中*args,**kwargs
    Python删除list里面的重复元素的俩种方法
    Python是如何进行内存管理
    python中lambda函数
    python中filter(),reduce()函数
    python中map()函数用法
    重磅发布:阿里开源 OpenJDK 长期支持版本 Alibaba Dragonwell
  • 原文地址:https://www.cnblogs.com/edeny/p/15694988.html
Copyright © 2020-2023  润新知