zoukankan      html  css  js  c++  java
  • SkyWalking 6.2-Docker-Compose搭建单体

     

    SkyWalking简介

      SkyWalking是一款高效的分布式链路追踪框架,对于处理分布式的调用链路的问题定位上有很大帮助

    有以下特点:

    性能好

      针对单实例5000tps的应用,在全量采集的情况下,只增加 10% 的CPU开销。

    支持自动及手动探针及多语言探针

      自动探针:Java支持的中间件、框架与类库列表
      手动探针:OpenTrackingApi、@Trace注解、trackId集成到日志中。

    本文基于Skywalking 6.2版本,使用自动探针演示效果,Elasticsearch作存储,由低版本升级到此版本需要删除ES的全部索引

    目录结构

     

    文件说明

    • docker-compose.yml Docker-compose配置文件
    • .env 环境变量配置文件

    配置文件

      docker-compose.yml

    version: '3.3'
    services:
      oap:
        image: apache/skywalking-oap-server:6.2.0
        container_name: skywalking-oap
        restart: always
        ports:
          - 11800:11800
          - 12800:12800
        environment:
          - SW_STORAGE=elasticsearch #Es的存储
          - SW_STORAGE_ES_CLUSTER_NODES=${ES_NODE} # Es的节点地址,从.env文件中取
          - TZ=Asia/Shanghai #设定东八区的城市,防止Oap记录数据时用0时区
      ui:
        image: apache/skywalking-ui:6.2.0
        container_name: skywalking-ui
        depends_on:
          - oap
        links:
          - oap
        restart: always
        ports:
          - 18080:8080 #默认8080端口,这里设置18080映射到宿主机,可修改
        environment:
          collector.ribbon.listOfServers: oap:12800

    .env

    # set default props for docker-compose.yml
    # set ES_Cluster or standalone Elasticsearch node. format is "ip:port"
    ES_NODE=10.2.7.70:9204
    准备工作
    • 进入与docker-compose.yml同级目录
    • 查看118001280018080这三个端口不能被占用,如果已占用,请自行修改docker-compose.yml的端口号
    • 修改.env
    ES_NODE=10.2.7.70:9204 #这里的ip:port应指向Elasticsearch的协调节点,请尽量不要指向主节点和数据节点

    启动服务端

    执行docker-compose up -d

    查看前端

    浏览器访问宿主机ip:18080,效果如下图

    此图为已经使用探针后的表现

    Agent自动探针采集数据设置

    这里的Agent要与OAP的版本保持一致,这里使用6.2版本

    Java只需要在VM options中追加格式为

    -javaagent:/path/to/path/skywalking-agent.jar
    -Dskywalking.agent.service_name=YOUR_APP_NAME
    -Dskywalking.collector.backend_service=OAP_SEVER_HOST:gRPC_PORT

    举例如下:

    -javaagent:D:/skywalking-agent/skywalking-agent.jar
    -Dskywalking.agent.service_name=eureka-peer2
    -Dskywalking.collector.backend_service=10.2.7.70:11800
    • 这里仅举例agent gRPC方式,Restful请求方式默认使用12800端口,请自行对应
    • /path/to/path为agent的jar包位置,启动进程中会读取config/agent.conf,我们通过-D添加了参数会覆盖这些配置,所以一个agent包是可以支持多个服务启动的

    效果图

    问题发现与解决

    Q1:

    graphql.execution.SimpleDataFetcherExceptionHandler -1061995 [qtp1609086753-159] WARN [] - Exception while fetching data (/latencyS) : IDs can't be null java.lang.RuntimeException: IDs can't be null

    A1:

    此问题为ui端的问题,无需解决,对SkyWalking后端无影响

    包括其它IDs can’t be null的问题,均为UI端的问题,影响不大,可以忽略

    Q2:

    探针已经连接成功了,UI端已经显示终端/端点有连接数,但是无论怎么请求都没有调用链和请求展示

    A2:

    请检查操作系统时区设置,SkyWalking默认会读取当前操作系统的时区设置,如果使用0时区,基于时间戳方式查询自然不会查询到结果,所以设置时区为东八区即可,如果是Docker方式,可以使用 -e TZ=Asia/Shanghai

  • 相关阅读:
    STM32时钟配置方法详解
    STM32 入门之 GPIO
    arm可以干什么
    四两拨千斤,ARM是如何运作、靠什么赚钱的
    ARM内核全解析,从ARM7,ARM9到Cortex-A7,A8,A9,A12,A15到Cortex-A53,A57
    ARM与单片机到底有啥区别
    实得打印机色带芯更换
    IE浏览器不能上传图片
    IE FANS
    win8,win10里面内置的IE浏览器网银无法输入密码
  • 原文地址:https://www.cnblogs.com/liboware/p/12388426.html
Copyright © 2011-2022 走看看