Caliper性能测试中监视器和观察者参数设置
1.概述
Caliper监控模块用于在测试执行期间收集资源利用率和交易统计信息,并将输出整理到生成的报告中。Caliper通过以下方式监控资源和交易:
- 资源监视器。在基准测试期间收集资源利用率的统计数据,测试轮之间的监控重置。
- 交易监视器。收集工作进程交易统计信息并提供有条件的分派操作。
2.资源
在测径仪基准中使用的资源监视器的类型在benchmark configuration file
中通过规范在标签下的数组中声明一个或多个监视模块monitors.resource
。
允许的监测器包括:
- 进程:
进程
监视器支持监视主机上的命名进程,通常用于监视正在运行的客户端所消耗的资源。此监视器将检索以下- 各项的统计信息:[内存(max)、内存(avg)、CPU(max)、CPU(avg)、网络I/O、磁盘I/O] - Docker:
Docker
监视器通过使用Docker remote API检索容器统计信息,实现对主机或远程机器上指定的Docker容器的监控。此监视器将检索以下各项的统计信息:[内存(max)、内存(avg)、CPU(max)、CPU(avg)、网络I/O、磁盘I/O] - Prometheus:
Prometheus
监视器可以检索Prometheus的数据。此监视器将仅根据用户提供的显式查询报告,这些查询是发给Prometheus的。如果被定义,提供一个Prometheus服务器将导致Caliper默认使用PrometheusPushGateway。
每个声明的资源监视模块都附带配置每个命名监控器所需的选项。所有模块的一个常见选项是interval,它用于配置刷新间隔,在该时间点上,监视器测量资源利用率。
过程监控器
过程监控模块选项包括:
间隔:监视器更新间隔
进程:[command, arguments, multiOutput]
数组的键:值对。
- 命令:命名要监视的父进程
- 参数:正在监视的父进程上的筛选器
- multiOutput:允许处理多个进程的发现,并且可以是:
- avg:取在
command/name
下发现的进程值的平均值 - sum:对在
command/name
下发现的所有进程值求和
下面声明监视匹配的所有本地节点进程caliper.js
,更新频率为3秒,并且所执行的所有已发现进程的平均值。
monitors:
resource:
- module: process
options:
interval: 3
processes: [{
command: 'node', arguments: 'caliper.js', multiOutput: 'avg' }]
Docker监视器
docker监控模块选项包括:
间隔:监视器更新间隔
容器:容器名称的数组,可能与要监视的本地或远程docker容器有关。如果要监视所有本地docker容器,可以通过提供all
作为名称来实现
以下声明监视两个命名docker容器;一个本地容器,另一个远程容器,更新频率为5秒:
monitors:
resource:
- module: docker
options:
interval: 5
containers:
- peer0.org1.example.com
- http://192.168.1.100:2375/orderer.example.com
以下声明监视所有本地docker容器,更新频率为5秒:
monitors:
resource:
- module: docker
options:
interval: 5
containers:
- all
Prometheus监视器
Prometheus是一个开源系统监控和警报工具包,它可以直接或通过中介推送网关(push gateway)从检测的作业中获取指标。它将所有刮取的样本存储在本地,并对这些数据运行规则,从现有数据中聚合和记录新的时间序列,或者生成警报。Grafana或其他API使用者可以用来可视化收集的数据。
所有存储在Prometheus上的数据都可以通过Caliper使用Prometheus查询HTTP API进行查询。这至少可以用于执行聚合查询,以便报告交易统计信息,但也可以执行自定义查询,以便报告从其他连接源获取的信息。发出的查询旨在生成报告,因此预期会生成单个值ÿ