zoukankan      html  css  js  c++  java
  • 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
    开发者 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包。

    启动

    -javaagent:D:/agent/skywalking-agent.jar -Dskywalking.agent.service_name=anqiu -Dskywalking.collector.backend_service=localhost:11800
    

    apm-toolkit配置

    添加依赖

        compile 'org.apache.skywalking:apm-toolkit-log4j-2.x:8.6.0'
    

    修改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 服务端
      

  • 相关阅读:
    大数据学习总结(7)we should...
    大数据学习总结(6)what is our foucus
    洛谷P4632 [APIO2018] New Home 新家(动态开节点线段树 二分答案 扫描线 set)
    BZOJ5249: [2018多省省队联测]IIIDX(线段树 贪心)
    BZOJ2438: [中山市选2011]杀人游戏(tarjan)
    cf1072D. Minimum path(BFS)
    cf1072B. Curiosity Has No Limits(枚举)
    cf567E. President and Roads(最短路计数)
    六校联考考试反思
    BZOJ4010: [HNOI2015]菜肴制作(拓扑排序 贪心)
  • 原文地址:https://www.cnblogs.com/zhenghengbin/p/15122174.html
Copyright © 2011-2022 走看看