1

以下配置用于使用超级账本卡尺(0.4.2)监控位于远程机器中的 docker 容器的资源利用率。

test:
    name: sample fabric network
    description: sample Network Benchmark
    workers:
      type: local
      number: 5
    rounds:
      - label: readAsset
        description: Using Chaincode Asset Management contract
        txNumber: 10000
        rateControl: 
          type: fixed-load
          opts:
            tps: 200
        workload:
          module: workload/readAsset.js
          arguments:
            contractId: asset-management
monitors:
  resource:
  - module: docker
    options:
      interval: 5
      containers:
         - http://34.233.177.187:7051/peer0.org1.example.com
       

它给出如下错误,Error retrieving remote containers: Error: socket hang up并且不会生成任何与资源监控相关的报告。虽然,事务是使用 caliper 提交到远程网络的,我试图从那里监控容器 peer0.org1.example.com 的资源利用率。上面定义的机器 IP 和容器的名称在连接配置文件中定义。


从卡尺控制台记录


2021.02.17-03:46:22.319 info  [caliper] [worker-orchestrator]   5 workers prepared, progressing to test phase.
2021.02.17-03:46:22.945 error [caliper] [monitor-docker]    Error retrieving remote containers: Error: socket hang up
2021.02.17-03:46:22.947 info  [caliper] [round-orchestrator]    Monitors successfully started
2021.02.17-03:46:22.948 info  [caliper] [worker-message-handler]    Worker#0 is starting Round#0
2021.02.17-03:46:22.952 info  [caliper] [worker-message-handler]    Worker#1 is starting Round#0
2021.02.17-03:46:22.956 info  [caliper] [caliper-worker]    Worker #1 starting workload loop
2021.02.17-03:46:22.958 info  [caliper] [caliper-worker]    Worker #0 starting workload loop
2021.02.17-03:46:22.961 info  [caliper] [worker-message-handler]    Worker#2 is starting Round#0
2021.02.17-03:46:22.967 info  [caliper] [worker-message-handler]    Worker#3 is starting Round#0
2021.02.17-03:46:22.970 info  [caliper] [caliper-worker]    Worker #2 starting workload loop
2021.02.17-03:46:22.973 info  [caliper] [worker-message-handler]    Worker#4 is starting Round#0
2021.02.17-03:46:22.975 info  [caliper] [caliper-worker]    Worker #3 starting workload loop
2021.02.17-03:46:22.977 info  [caliper] [caliper-worker]    Worker #4 starting workload loop
2021.02.17-03:46:27.352 info  [caliper] [default-observer]  [readAsset Round 0 Transaction Info] - Submitted: 15 Succ: 10 Fail:0 Unfinished:5
2021.02.17-03:46:32.322 info  [caliper] [default-observer]  [readAsset Round 0 Transaction Info] - Submitted: 45 Succ: 30 Fail:0 Unfinished:15
2021.02.17-03:46:37.322 info  [caliper] [default-observer]  [readAsset Round 0 Transaction Info] - Submitted: 70 Succ: 60 Fail:0 Unfinished:10
2021.02.17-03:46:42.323 info  [caliper] [default-observer]  [readAsset Round 0 Transaction Info] - Submitted: 89 Succ: 79 Fail:0 Unfinished:10
2021.02.17-03:46:47.323 info  [caliper] [default-observer]  [readAsset Round 0 Transaction Info] - Submitted: 111 Succ: 103 Fail:0 Unfinished:8
2021.02.17-03:46:52.323 info  [caliper] [default-observer]  [readAsset Round 0 Transaction Info] - Submitted: 128 Succ: 120 Fail:0 Unfinished:8
2021.02.17-03:46:57.323 info  [caliper] [default-observer]  [readAsset Round 0 Transaction Info] - Submitted: 153 Succ: 148 Fail:0 Unfinished:5
2021.02.17-03:47:02.323 info  [caliper] [default-observer]  [readAsset Round 0 Transaction Info] - Submitted: 173 Succ: 165 Fail:0 Unfinished:8
2021.02.17-03:47:07.324 info  [caliper] [default-observer]  [readAsset Round 0 Transaction Info] - Submitted: 194 Succ: 189 Fail:0 Unfinished:5
2021.02.17-03:47:12.324 info  [caliper] [default-observer]  [readAsset Round 0 Transaction Info] - Submitted: 214 Succ: 205 Fail:0 Unfinished:9
2021.02.17-03:47:17.325 info  [caliper] [default-observer]  [readAsset Round 0 Transaction Info] - Submitted: 233 Succ: 223 Fail:0 Unfinished:10
2021.02.17-03:47:22.325 info  [caliper] [default-observer]  [readAsset Round 0 Transaction Info] - Submitted: 252 Succ: 239 Fail:0 Unfinished:13
2021.02.17-03:47:27.325 info  [caliper] [default-observer]  [readAsset Round 0 Transaction Info] - Submitted: 269 Succ: 267 Fail:0 Unfinished:2
20

当使用本地机器完成监控时,它就可以工作了。为此,我使用了以下配置,并且它成功地用于本地 docker 容器。配置如下图所示:

monitors:
  resource:
  - module: docker
    options:
      interval: 5
      containers:
        - all

是否有更多配置可以监控 caliper 中的远程容器资源利用率?

谢谢!

4

1 回答 1

0

Caliper 使用 dockerode@3.1.0 模块连接到容器(https://www.npmjs.com/package/dockerode),套接字挂起表示由于超时或类似原因未能创建连接。

有两种选择:

  1. 调试基于 dockerode 的连接 - 也许增加 caliper 中的日志级别会有所帮助?使用 dockerode@3.1.0 制作一个小应用程序来检查它连接到传递的容器 URL 的能力相对容易——如果你能够连接,并且相同的 URL 在 caliper 中不起作用,那么有需要修复的错误
  2. 换成基于 Prometheus 的监视器,它使用 CAdvisor 来监视容器统计信息(您也可以在这里免费获得 Grafana)
于 2021-02-17T09:21:19.443 回答