8. 监控说明
XuperChain 系统集成了Prometheus开源监控框架,用户可以通过Prometheus+Grafana构建自己应用的监控系统,并且用户还可以根据自己的需求定义自己的监控采集项。下面会介绍目前 XuperChain 默认采集的监控项,并指导用户如何搭建自己本地的 XuperChain 开源监控系统。
8.1. XuperChain 监控项
目前支持的监控项如下图:
每个大项说明如下:
xuperos_common_call_method_seconds:调用方法监控,可以查看到每个函数的数据;
xuperos_contract_invoke:合约调用相关监控项;
xuperos_ledger:账本相关数据监控项;
xuperos_network:网络相关监控项。
8.2. XuperChain 监控系统搭建
8.2.1. 搭建网络
搭建网络,节点 env.yaml 配置中打开 metricSwitch ,如下所示:
# Metric switch
metricSwitch: false
同时在 server.yaml 中可以设置端口,如果是多个节点,每个节点都需要设置:
metricPort: 37201
8.2.2. 使用Prometheus查看监控
在 xbench 项目中,有可以直接使用的 配置文件 ,同时也可以参考下面的示例自己搭建。
prometheus 安装教程:
配置prometheus 设置endpoint服务:
- 修改 prometheus.yml 文件,添加如下配置,每个 target 对应 xchain 节点的 server.yaml 中的 metricPort 端口:
scrape_configs:
- job_name: 'xchain'
scrape_interval: 3s
static_configs:
- targets:
- '127.0.0.1:37201'
- '127.0.0.1:37202'
- '127.0.0.1:37203'
启动prometheus:
nohup ./prometheus --config.file=prometheus.yml &
查看对应监控项,以下是三个节点监控示例:
xuperos_common_call_method_seconds_bucket,在页面下面可以看到每个节点以及方法的详细信息:
- ledger_confirmedTx_total:
- network_msg_received_total
8.2.3. 使用Grafana查看监控
因为Prometheus的界面看起来非常简单,我们还可以通过Grafana这个非常强大也是最常用的监控展示框架。
使用文档参看: https://grafana.com/grafana/download
在 xbench 项目中,同样提供了可以直接使用的 grafana 模板,要和上面的 prometheus 配置文件一起使用。
8.2.4. 使用接口查看监控
Prometheus提供了一种功能查询语言PromQL(Prometheus查询语言),它允许用户实时选择和聚合时间序列数据。同时为了方便外部系统调用,还提供了HTTP API能力。
详情请参考: https://prometheus.io/docs/prometheus/latest/querying/api/
grafana 安装教程:https://grafana.com/grafana/download?pg=get&plcmt=selfmanaged-box1-cta1 下载安装包后,解压后可直接启动
nohup ./bin/grafana-server &
之后访问 http://localhost:3000/ 即可。
导入数据源,在 grafana 页面导入数据源并选择 Prometheus:
导入 grafana 模板,在页面上创建新的 dashboard,然后导入 xbench 下的 模板
成功后便可以看到如下内容: