美文网首页SkyWalking程序员
使用skywalking进行服务链监控

使用skywalking进行服务链监控

作者: tinylk | 来源:发表于2019-03-02 01:52 被阅读0次

    前言

    在上一篇介绍了使用pinpoint进行微服务的服务链监控(https://www.jianshu.com/p/5a6dc609acea),但由于在使用过程中pinpoint的当前版本1.8.2还不支持webflux导致项目中使用的spring cloud gateway不能监控到,所以换用能够支持webflux的skywalking。

    在skywalking 6.2中已经支持spring cloud gateway。使用spring boot 2.1.4.RELEASE + spring cloud Greenwich.SR2 版本验证通过,但使用spring boot 2.1.6.RELEASE + spring cloud Greenwich.SR2 版本验证失败。在6.2的java agent中spring cloud gateway的插件在optional-plugins目录中,需要将它放置到plugins中。

    SkyWalking一个开源可观测性平台,用于收集、分析、聚合和可视化来自服务和云原生基础设施的数据。SkyWalking提供了一种简单的方法,可以让你清晰的查看分布式系统、甚至是跨云环境中。它更像是现代化APM(Application Performance Manager),专为云原生、基于容器和分布式系统而设计的。

    SkyWalking是由国人开发,现在已经成为apache开源项目。对于SkyWalking的基本介绍可以直接参见中文文档:https://github.com/apache/incubator-skywalking/tree/master/docs/others/cn

    安装部署

    这里采用docker-compose的方式部署skywalking。部署所用的docker-compose.yml如下,skywalking-oap中挂载的配置文件volume来自于:https://github.com/apache/incubator-skywalking/tree/master/docker中的config目录。

    version: '3.3'
    services:
      elasticsearch:
        image: elasticsearch:6.6.1
        container_name: skywalking-es
        restart: always
        # ports:
        #   - 9200:9200
        #   - 9300:9300
        environment:
          discovery.type: single-node
          TZ: Asia/Shanghai
        ulimits:
          memlock:
            soft: -1
            hard: -1
      oap:
        image: apache/skywalking-oap-server:6.2.0
        container_name: skywalking-oap
        depends_on:
          - elasticsearch
        links:
          - elasticsearch
        restart: always
        ports:
          - 11800:11800
          - 12800:12800
        environment:
          TZ: Asia/Shanghai
          SW_STORAGE: elasticsearch
          SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
    #    volumes:
    #      - ./config:/skywalking/config
      ui:
        image: apache/skywalking-ui:6.2.0
        container_name: skywalking-ui
        depends_on:
          - oap
        links:
          - oap
        restart: always
        ports:
          - 18080:8080
        environment:
          SW_OAP_ADDRESS: oap:12800
          TZ: Asia/Shanghai
    

    运行容器

    运行docker-compose命令启动skywalking。启动后使用浏览器打开http://localhost:18080地址访问skywalking界面。

    docker-compose up -d
    

    使用 Agent收集调用信息

    skywalking与pinpoint一样,采用javaagent无侵入的方式实现了应用调用信息的收集,原应用程序无需做任何改动。只需要在启动时增加javaagent参数。启动时参数如下:

    java -javaagent:/opt/skywalking-agent/skywalking-agent.jar=agent.service_name=demo -jar demo.jar
    

    说明:

    1. javaagent 参数必须在 jar参数之前;
    2. agent.service_name 表示服务名称;
    3. 启动前需要修改agent.config 文件中的相应配置:
    collector.backend_service (后端服务的ip地址和端口 xxx.xxx.xxx.xxx:11800)
    
    

    其它配置项说明参见:https://github.com/apache/incubator-skywalking/blob/master/docs/en/setup/service-agent/java-agent/README.md

    skywalking的web界面

    ss_dashboard.png ss_topo.png ss_trace.png

    参考地址

    相关文章

      网友评论

        本文标题:使用skywalking进行服务链监控

        本文链接:https://www.haomeiwen.com/subject/temsuqtx.html