GVKun编程网logo

使用 docker 构建分布式调用链跟踪框架skywalking(使用docker搭建分布式集群)

17

在这篇文章中,我们将带领您了解使用docker构建分布式调用链跟踪框架skywalking的全貌,包括使用docker搭建分布式集群的相关情况。同时,我们还将为您介绍有关Docker安装Skywalk

在这篇文章中,我们将带领您了解使用 docker 构建分布式调用链跟踪框架skywalking的全貌,包括使用docker搭建分布式集群的相关情况。同时,我们还将为您介绍有关Docker 安装 Skywalking APM 分布式追踪系统、docker 安装 skywalking 记录、Docker 部署 Skywalking、Docker-Compose搭建单体SkyWalking 6.2的知识,以帮助您更好地理解这个主题。

本文目录一览:

使用 docker 构建分布式调用链跟踪框架skywalking(使用docker搭建分布式集群)

使用 docker 构建分布式调用链跟踪框架skywalking(使用docker搭建分布式集群)

一旦你的程序docker化之后,你会遇到各种问题,比如原来采用的本地记日志的方式就不再方便了,虽然你可以挂载到宿主机,但你使用 --scale 的话,会导致记录日志异常,所以最好的方式还是要做日志中心化,另一个问题,原来一个请求在一个进程中的痉挛失败,你可以在日志中巡查出调用堆栈,但是docker化之后,原来一个进程的东西会拆成几个微服务,这时候最好就要有一个分布式的调用链跟踪,类似于wcf中的svctraceview工具。

一:搭建skywalking

gihub地址是:https://github.com/apache/incubator-skywalking 从文档中大概看的出来,大体分三个部分:存储,收集器,探针,存储这里就选用推荐的 elasticsearch。收集器准备和es部署在一起,探针就有各自语言的实现了,总之这里就有三个docker container:es,kibana,skywalking, 如果不用容器编排工具的话就比较麻烦。

下面是本次搭建的一个目录结构:

1.  elasticsearch.yml

es的配置文件,不过这里有一个坑,就是一定要将 network.publish_host:0.0.0.0 ,否则skywalking会连不上 9300端口。


network.publish_host: 0.0.0.0
transport.tcp.port: 9300
network.host: 0.0.0.0

2. elasticsearch.dockerfile

在up的时候,将这个es文件copy到 容器的config文件夹下。


FROM elasticsearch:5.6.4

EXPOSE 9200 9300

COPY elasticsearch.yml /usr/share/elasticsearch/config/

3. application.yml

skywalking的配置文件,这里也有一个坑:连接es的地址中,配置的 clustername一定要修改成和es的clustername保持一致,否则会连不上,这里容器之间用link进行互联,所以es的ip改成elasticsearch就可以了,其他的ip改成0.0.0.0 。


# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#cluster:
#  zookeeper:
#    hostPort: localhost:2181
#    sessionTimeout: 100000
naming:
  jetty:
    host: 0.0.0.0
    port: 10800
    contextPath: /
cache:
#  guava:
  caffeine:
remote:
  gRPC:
    host: 0.0.0.0
    port: 11800
agent_gRPC:
  gRPC:
    host: 0.0.0.0
    port: 11800
    #Set these two setting to open ssl
    #sslCertChainFile: $path
    #sslPrivateKeyFile: $path

    #Set your own token to active auth
    #authentication: xxxxxx
agent_jetty:
  jetty:
    host: 0.0.0.0
    port: 12800
    contextPath: /
analysis_register:
  default:
analysis_jvm:
  default:
analysis_segment_parser:
  default:
    bufferFilePath: ../buffer/
    bufferOffsetMaxFileSize: 10M
    bufferSegmentMaxFileSize: 500M
    bufferFileCleanWhenRestart: true
ui:
  jetty:
    host: 0.0.0.0
    port: 12800
    contextPath: /
storage:
  elasticsearch:
    clusterName: elasticsearch
    clusterTransportSniffer: true
    clusterNodes: elasticsearch:9300
    indexShardsNumber: 2
    indexReplicasNumber: 0
    highPerformanceMode: true
    ttl: 7
#storage:
#  h2:
#    url: jdbc:h2:~/memorydb
#    userName: sa
configuration:
  default:
#     namespace: xxxxx
# alarm threshold
    applicationApdexThreshold: 2000
    serviceErrorRateThreshold: 10.00
    serviceAverageResponseTimeThreshold: 2000
    instanceErrorRateThreshold: 10.00
    instanceAverageResponseTimeThreshold: 2000
    applicationErrorRateThreshold: 10.00
    applicationAverageResponseTimeThreshold: 2000
# thermodynamic
    thermodynamicResponseTimeStep: 50
    thermodynamicCountOfResponseTimeSteps: 40

4.  skywalking.dockerfile

接下来就是 skywalking的 下载安装,使用dockerfile流程化。


FROM centos:7

LABEL username="hxc@qq.com"

WORKDIR /app

RUN yum install -y wget && \
    yum install -y java-1.8.0-openjdk

ADD http://mirrors.hust.edu.cn/apache/incubator/skywalking/5.0.0-RC2/apache-skywalking-apm-incubating-5.0.0-RC2.tar.gz /app

RUN tar -xf apache-skywalking-apm-incubating-5.0.0-RC2.tar.gz && \
    mv apache-skywalking-apm-incubating skywalking

RUN ls /app

#copy文件
COPY application.yml /app/skywalking/config/application.yml

WORKDIR /app/skywalking/bin

USER root

RUN  echo "tail -f /dev/null" >> /app/skywalking/bin/startup.sh

CMD ["/bin/sh","-c","/app/skywalking/bin/startup.sh" ]

5. docker-compose.yml

最后就是将这三个容器进行编排,要注意的是,因为收集器会将数据放入到es中,所有一定要将es的data挂载到宿主机的大硬盘下,否则你的空间会不足的。


version: ''3.1''

services:

  #elastic 镜像
  elasticsearch:
    build:
      context: .
      dockerfile: elasticsearch.dockerfile
    # ports:
    #   - "9200:9200"
    #   - "9300:9300"
    volumes:
       - "/data/es2:/usr/share/elasticsearch/data"

  #kibana 可视化查询,暴露 5601
  kibana:
    image: kibana
    links:
      - elasticsearch
    ports:
      - 5601:5601
    depends_on:
      - "elasticsearch"
      
  #skywalking
  skywalking:
    build:
      context: .
      dockerfile: skywalking.dockerfile
    ports:
      - "10800:10800"
      - "11800:11800"
      - "12800:12800"
      - "8080:8080"
    links:
      - elasticsearch
    depends_on:
      - "elasticsearch"

二:一键部署

要部署在docker中,你还得需要安装docker-ce 和 docker-compose,大家可以参照官方安装一下。

1. Docker-ce 的安装


sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install docker-ce

然后启动一下docker 服务,可以看到版本是18.06.1


[root@localhost ~]# service docker start
Redirecting to /bin/systemctl start  docker.service
[root@localhost ~]# docker -v
Docker version 18.06.1-ce, build e68fc7a

2. docker-compose的安装


sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

3.  最后在centos上执行 docker-compopse up --build 就可以了,如果不想terminal上运行,可以加 -d 使用后台执行。


[root@localhost docker]# docker-compose up --build
Creating network "docker_default" with the default driver
Building elasticsearch
Step 1/3 : FROM elasticsearch:5.6.4
 ---> 7a047c21aa48
Step 2/3 : EXPOSE 9200 9300
 ---> Using cache
 ---> 8d66bb57b09d
Step 3/3 : COPY elasticsearch.yml /usr/share/elasticsearch/config/
 ---> Using cache
 ---> 02b516c03b95
Successfully built 02b516c03b95
Successfully tagged docker_elasticsearch:latest
Building skywalking
Step 1/12 : FROM centos:7
 ---> 5182e96772bf
Step 2/12 : LABEL username="hxc@qq.com"
 ---> Using cache
 ---> b95b96a92042
Step 3/12 : WORKDIR /app
 ---> Using cache
 ---> afdf4efe3426
Step 4/12 : RUN yum install -y wget &&     yum install -y java-1.8.0-openjdk
 ---> Using cache
 ---> 46be0ca0f7b5
Step 5/12 : ADD http://mirrors.hust.edu.cn/apache/incubator/skywalking/5.0.0-RC2/apache-skywalking-apm-incubating-5.0.0-RC2.tar.gz /app

 ---> Using cache
 ---> d5c30bcfd5ea
Step 6/12 : RUN tar -xf apache-skywalking-apm-incubating-5.0.0-RC2.tar.gz &&     mv apache-skywalking-apm-incubating skywalking
 ---> Using cache
 ---> 1438d08d18fa
Step 7/12 : RUN ls /app
 ---> Using cache
 ---> b594124672ea
Step 8/12 : COPY application.yml /app/skywalking/config/application.yml
 ---> Using cache
 ---> 10eaf0805a65
Step 9/12 : WORKDIR /app/skywalking/bin
 ---> Using cache
 ---> bc0f02291536
Step 10/12 : USER root
 ---> Using cache
 ---> 4498afca5fe6
Step 11/12 : RUN  echo "tail -f /dev/null" >> /app/skywalking/bin/startup.sh
 ---> Using cache
 ---> 1c4be7c6b32a
Step 12/12 : CMD ["/bin/sh","-c","/app/skywalking/bin/startup.sh" ]
 ---> Using cache
 ---> ecfc97e4c97d
Successfully built ecfc97e4c97d
Successfully tagged docker_skywalking:latest
Creating docker_elasticsearch_1 ... done
Creating docker_skywalking_1    ... done
Creating docker_kibana_1        ... done
Attaching to docker_elasticsearch_1, docker_kibana_1, docker_skywalking_1
elasticsearch_1  | [2018-09-17T23:51:57,886][INFO ][o.e.c.m.MetaDataCreateIndexService] [FC_bOh1] [service_metric_day] creating index, cause [api], templates [], shards [2]/[0], mappings [type]
elasticsearch_1  | [2018-09-17T23:51:57,962][INFO ][o.e.c.r.a.AllocationService] [FC_bOh1] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[service_metric_day][0]] ...]).
elasticsearch_1  | [2018-09-17T23:51:58,115][INFO ][o.e.c.m.MetaDataCreateIndexService] [FC_bOh1] [application_metric_hour] creating index, cause [api], templates [], shards [2]/[0], mappings [type]
elasticsearch_1  | [2018-09-17T23:51:58,176][INFO ][o.e.c.r.a.AllocationService] [FC_bOh1] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[application_metric_hour][1]] ...]).
elasticsearch_1  | [2018-09-17T23:51:58,356][INFO ][o.e.c.m.MetaDataCreateIndexService] [FC_bOh1] [application_metric_month] creating index, cause [api], templates [], shards [2]/[0], mappings [type]
elasticsearch_1  | [2018-09-17T23:51:58,437][INFO ][o.e.c.r.a.AllocationService] [FC_bOh1] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[application_metric_month][0]] ...]).
elasticsearch_1  | [2018-09-17T23:51:58,550][INFO ][o.e.c.m.MetaDataCreateIndexService] [FC_bOh1] [instance_mapping_month] creating index, cause [api], templates [], shards [2]/[0], mappings [type]
elasticsearch_1  | [2018-09-17T23:52:05,544][INFO ][o.e.c.m.MetaDataCreateIndexService] [FC_bOh1] [gc_metric_minute] creating index, cause [api], templates [], shards [2]/[0], mappings [type]

从上图中可以看到 es,kibana,skywalking都启动成功了,你也可以通过docker-compose ps 看一下是否都起来了,netstat 看一下宿主机开放了哪些端口。


[root@localhost docker]# docker ps
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                                                                                                  NAMES
9aa90401ca16        kibana                 "/docker-entrypoint.…"   2 minutes ago       Up 2 minutes        0.0.0.0:5601->5601/tcp                                                                                 docker_kibana_1
c551248e32af        docker_skywalking      "/bin/sh -c /app/sky…"   2 minutes ago       Up 2 minutes        0.0.0.0:8080->8080/tcp, 0.0.0.0:10800->10800/tcp, 0.0.0.0:11800->11800/tcp, 0.0.0.0:12800->12800/tcp   docker_skywalking_1
765d38469ff1        docker_elasticsearch   "/docker-entrypoint.…"   2 minutes ago       Up 2 minutes        9200/tcp, 9300/tcp                                                                                     docker_elasticsearch_1
[root@localhost docker]# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      2013/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1141/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1139/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1622/master         
tcp6       0      0 :::8080                 :::*                    LISTEN      38262/docker-proxy  
tcp6       0      0 :::10800                :::*                    LISTEN      38248/docker-proxy  
tcp6       0      0 :::22                   :::*                    LISTEN      1141/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1139/cupsd          
tcp6       0      0 :::11800                :::*                    LISTEN      38234/docker-proxy  
tcp6       0      0 ::1:25                  :::*                    LISTEN      1622/master         
tcp6       0      0 :::12800                :::*                    LISTEN      38222/docker-proxy  
tcp6       0      0 :::5601                 :::*                    LISTEN      38274/docker-proxy  
[root@localhost docker]#

然后就可以看一些8080端口的可视化UI,默认用户名密码admin,admin,一个比较耐看的UI就出来了。

三:net下的探针

从nuget上拉取一个SkyWalking.AspNetCore探针进行代码埋点,github地址:https://github.com/OpenSkywalking/skywalking-netcore

在startup类中进行注入,在页面请求中进行一次cnblogs.com的请求操作,然后仔细观察一下调用链跟踪是一个什么样子?


namespace WebApplication1
{
   public class Startup
   {
       // This method gets called by the runtime. Use this method to add services to the container.
       // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
       public void ConfigureServices(IServiceCollection services)
       {
           services.AddSkyWalking(option =>
           {
               // Application code is showed in sky-walking-ui
               option.ApplicationCode = "10001 测试站点";

               //Collector agent_gRPC/grpc service addresses.
               option.DirectServers = "192.168.23.183:11800";
           });
       }

       // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
       public void Configure(IApplicationBuilder app, IHostingEnvironment env)
       {
           if (env.IsDevelopment())
           {
               app.UseDeveloperExceptionPage();
           }

           app.Run(async (context) =>
           {
               WebClient client = new WebClient();

               var str = client.DownloadString("http://cnblogs.com");

               await context.Response.WriteAsync(str);
           });
       }
   }
}

可以看到这张图还是蛮漂亮的哈,也方便我们快速的跟踪代码,发现问题,找出问题, 还有更多的功能期待你的挖掘啦。好了,本篇就说到这里,希望对你有帮助。


本文分享自微信公众号 - dotNET跨平台(opendotnet)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

Docker 安装 Skywalking APM 分布式追踪系统

Docker 安装 Skywalking APM 分布式追踪系统

Skywalking 简单介绍

  Skywalking 是一个应用性能管理 (APM) 系统,具有服务器性能监测,应用程序间调用关系及性能监测等功能,Skywalking 分为服务端、管理界面、以及嵌入到程序中的探针部分,由程序中的探针采集各类调用数据发送给服务端保存,在管理界面上可以查看各类性能数据。本文介绍服务端及管理界面的安装。

 

环境介绍

  本文使用虚拟机 unbutu18+docker。本 unbutu18 系统 IP 地址为:192.168.150.134 大家在使用时记得将此地址换成自己的实际地址。

  docker 的安装可参考:https://www.cnblogs.com/sunyuliang/p/11422674.html

 

Skywalking 安装

  1:安装服务端:这里介绍服务端的两种存储等式,一种是默认的 H2 存储,即数据存储在内存中,一种是使用 elasticsearch 存储,大家可以任选 1.1 或 1.2 其中一种安装方式

           1.1 :默认 H2 存储

     输入以下命令,并耐心待下载。

      sudo docker run --name skywalking -d -p 1234:1234 -p 11800:11800 -p 12800:12800 --restart always apache/skywalking-oap-server 

    1.2:elasticsearch 存储

                1.21:安装 ElasticSearch,因为在安装 latest 版本时失败了,找不到版本信息 (Unable to find image ''elasticsearch:latest'' locally),所以这里指定以 ElasticSearch 6.72 版为例。 

           sudo docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 --restart always -e "discovery.type=single-node" elasticsearch:6.7.2

     1.22: 安装 ElasticSearch 管理界面 elasticsearch-hq

       sudo docker run -d --name elastic-hq -p 5000:5000 --restart always elastichq/elasticsearch-hq 

             1.23:输入以下命令,并等待下载。           

sudo docker run --name skywalking -d -p 1234:1234 -p 11800:11800 -p 12800:12800 --restart always --link elasticsearch:elasticsearch -e SW_STORAGE=elasticsearch -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 apache/skywalking-oap-server 

          出现以下界面后 Skywalking 的服务端就安装完成了。

          

   

  2:安装管理界面:

       输入以下命令,并等待下载安装。

    sudo docker run --name skywalking-ui -d -p 8080:8080 --link skywalking:skywalking -e SW_OAP_ADDRESS=skywalking:12800 --restart always apache/skywalking-ui 

    出现以下界面后就安装完成了。

            

 

       3:访问管理界验证安装结果

   在浏览器里面输入 http://192.168.150.134:8080, 出现了如下界面,到此 Skywalking 的安装就大功告成了。

            

 下编文章将介绍.net core 中如何使用 skywalking.

 

docker 安装 skywalking 记录

docker 安装 skywalking 记录

下载镜像 image

https://hub.docker.com/r/apache/skywalking-base

https://hub.docker.com/r/apache/skywalking-oap-server

https://hub.docker.com/r/apache/skywalking-ui

启动镜像

启动 SkyWalking Server :

docker run --name skywalking-oap --restart always -d -p 11800:11800 -p 12800:12800  -e SW_STORAGE=h2 apache/skywalking-oap-server

启动 UI :

docker run --name skywalking-ui --restart always -d -p 8080:8080 --link skywalking-oap:skywalking-oap -e SW_OAP_ADDRESS=skywalking-oap:12800 apache/skywalking-ui

访问 localhost:8080 

查看日志,一切正常:

 

Docker 部署 Skywalking

Docker 部署 Skywalking

概述

包括2个服务,一个是监控服务一个是UI的WEB服务。本文使用Mysql作为存储,官方建议使用ES。

下载镜像

docker pull apache/skywalking-oap-server
docker pull apache/skywalking-ui

运行

运行监控服务容器

docker run -d --name skywalking-oap --restart=always  \
-e SW_STORAGE=mysql \
-e SW_JDBC_URL=jdbc:mysql://host.docker.internal:3306/skywalking \
-e SW_DATA_SOURCE_USER=root \
-e SW_DATA_SOURCE_PASSWORD=root_123 \
-v ~/data/docker/skywalking/ext-libs:/skywalking/ext-libs \
-p 11800:11800 \
-p 12800:12800 \
apache/skywalking-oap-server

运行UI容器

docker run --name skywalking-oap -p 8080:8080 \ 
-e SW_OAP_ADDRESS=http://host.docker.internal:12800 \ 
apache/skywalking-ui

访问

http://localhost:8080

Docker-Compose搭建单体SkyWalking 6.2

Docker-Compose搭建单体SkyWalking 6.2

SkyWalking简介

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

有以下特点:

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

  • 支持多语言探针

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

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

Docker启动的环境变量可以设置很多参数,这里只演示最基本的参数,其实Docker版本只是把服务部署在容器的操作系统中,通过查看镜像的启动入口脚本,发现只是将配置文件换传入的参数是否存在输出配置文件,与一行一行echo类似。。所以想对Docker版本的SkyWalking进行调整,只需要传入对应的参数名kv对,这里把参数配置地址贴出https://github.com/apache/skywalking-docker/blob/master/6/6.2/oap/docker-entrypoint.sh

目录结构

.
├── docker-compose.yml
└── .env

文件说明

  • 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

本文系搭建笔记,拒绝转载

原文出处:https://www.cnblogs.com/hellxz/p/docker-compose_skywalking.html

关于使用 docker 构建分布式调用链跟踪框架skywalking使用docker搭建分布式集群的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Docker 安装 Skywalking APM 分布式追踪系统、docker 安装 skywalking 记录、Docker 部署 Skywalking、Docker-Compose搭建单体SkyWalking 6.2等相关内容,可以在本站寻找。

本文标签:

上一篇eShopOnContainers 知多少 [12]:Envoy gateways(eshoponcontainer讲解)

下一篇使用 C# 9 的 records 作为强类型 ID - 路由和查询参数(c#强类型和弱类型)