zoukankan      html  css  js  c++  java
  • 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进行分类汇总。



  • 相关阅读:
    进入javascript的学习了
    详解CSS display:inline-block的应用(转)
    CSS学习第一天
    HTML小结~
    表单提交中的input、button、submit的区别(转来学习)
    第二天又是充实的一天
    java开班啦~步入程序员的第一步
    sql 两大类 DDL数据定义语言 和DCL数据控制语言
    单行函数(日期函数)
    单行函数
  • 原文地址:https://www.cnblogs.com/edeny/p/15694988.html
Copyright © 2011-2022 走看看