Substrate 公开有关网络操作的度量。例如,您可以收集有关您的节点连接了多少个对等节点、您的节点使用了多少内存以及正在生成的块数量的信息。为了捕获和可视化Substrate节点公开的度量,您可以配置和使用Prometheus和Grafana等工具。本教程演示如何使用Prometheus获取数据样本,如何使用Grafana创建图形和仪表板,以使用数据样本可视化节点指标。
在较高的级别上,Substrate
公开了可以被Prometheus端点使用的遥测数据,并在Grafana仪表板或图形中作为可视信息显示。
下图提供了如何配置Substrate
、Prometheus和Grafana之间的交互以显示关于节点操作的信息的简化概述。
1、教程的目标
通过完成本教程,您将实现以下目标:
- 安装Prometheus 和Grafana.
- 配置Prometheus以捕获
Substrate
节点的时间序列。 - 配置Grafana以可视化使用Prometheus端点收集的节点度量。
2、安装 Prometheus 和 Grafana
出于测试和演示的目的,您应该下载Prometheus和Grafana的已编译bin程序,而不是自己构建工具或使用Docker映像。使用下面的链接下载适合您的体系结构的二进制文件。本教程假设您在工作目录中使用已编译的二进制文件。
要安装本教程的工具:
2.1 安装 Prometheus
- 在计算机上打开浏览器。
- 从Prometheus Download下载适当的预编译的Prometheus二进制文件。
wget https://github.com/prometheus/prometheus/releases/download/v2.37.6/prometheus-2.37.6.linux-amd64.tar.gz
- 在计算机上打开终端shell并导航到Downloads文件夹,然后运行适当的命令从下载的文件中提取内容。
- 以Ubuntu操作系统为例,可运行如下命令:
tar xvzf prometheus-2.37.6.linux-amd64.tar.gz
2.2 安装 Grafana OSS
Grafana Install
通过 APT repository
# Ubuntu and Debian
# 安装最新版本的OSS:
sudo apt-get install -y apt-transport-https adduser software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add
# 为稳定版本添加这个存储库
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
# 安装
sudo apt-get update
sudo apt-get install grafana
3、启动一个Substrate节点
Substrate
公开了一个端点,该端点以端口9615
上可用的Prometheus exposition format 提供度量。您可以使用--prometheus-port
命令行选项更改端口,并使用--prometheus-external
命令行选项使其可以通过本地主机以外的接口访问。为简单起见,本教程假设Substrate
节点、Prometheus实例和Grafana服务都使用默认端口在本地运行。
- 在计算机上打开一个终端
- 切换到节点模板目录的根目录。
- 以开发模式启动节点模板。
./target/release/node-template --dev
4、配置 Prometheus 端点
解压Prometheus下载时创建的目录中包含一个prometheus.yml
配置文件。您可以修改这个文件或创建一个自定义配置文件,将Prometheus配置为从默认的Prometheus端口端点9615
或使用--prometheus-port <port-number>
命令行选项指定的端口提取数据。
将Substrate
暴露端点添加到Prometheus目标列表:
- 在终端定位到Prometheus工作目录的根目录。
- 打开
prometheus.yml
配置文件 - 添加substrate_node作为scrape_config端点。
例如,添加如下所示的section:
...
# A scrape configuration containing exactly one endpoint to scrape:
scrape_configs:
- job_name: "substrate_node"
scrape_interval: 5s
static_configs:
- targets: ["localhost:9615"]
这些设置将覆盖substrate_node作业的抓取目标的全局默认值。将scrape_interval
设置为一个小于块时间的值,以确保每个块都有一个数据点,这很重要。例如,Polkadot
块时间为6秒,因此scrape_interval
设置为5秒。
- 使用修改后的Prometheus启动一个
prometheus.yml
配置文件实例。
例如,当前在Prometheus工作目录,使用默认配置文件,则启动Prometheus。
./prometheus --config.file prometheus.yml
不要关闭,继续运行。
- 打开一个新的终端shell,运行以下命令检查为Substrate节点检索到的指标:
curl localhost:9615/metrics
该命令返回类似以下截断示例的输出:
或者,您可以在浏览器中打开相同的端点以查看所有可用的度量数据。例如,如果您正在使用默认的Prometheus端口,请在浏览器中打开http://localhost:9615/metrics
。
5、配置 Grafana 数据源
运行适当的命令在体系结构上安装Grafana之后,可以在本地计算机上启动该服务并开始使用它。用于启动服务的命令取决于您的本地系统体系结构和包管理器。
有关在不同操作系统上启动Grafana的信息,请参阅相应的Grafana文档。
Ubuntu 可以通过运行以下命令启动Grafana:
# 启动方法取决于您的Linux系统使用的是 systemd 还是 init.d。
# Ubuntu
# 以 grafana 用户启动 grafana-server 进程,该用户是在包安装期间创建的
sudo service grafana-server start
# 或
sudo /etc/init.d/grafana-server start
# Verify the status:
sudo service grafana-server status
# 或
sudo /etc/init.d/grafana-server status
# 或者,你可以配置Grafana服务器在引导时启动:
sudo update-rc.d grafana-server defaults
## Ubuntu 方法二
# 开机启动
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable grafana-server
# You can start grafana-server by executing
sudo /bin/systemctl start grafana-server
启动Grafana后,可以在浏览器中导航到它。
-
打开浏览器并导航到Grafana使用的端口。
默认情况下,Grafana使用http://localhost:3000
,除非您配置了不同的主机或端口。 -
使用默认用户名
admin
和密码admin
登录,然后单击“登录”。
-
在欢迎页面上,单击数据源(
Data Sources
)。 -
单击Prometheus, 为 Substrate节点度量,将Prometheus端点配置的数据源。
在同时运行Substrate
节点和Prometheus实例的情况下,配置Grafana在其默认端口http://localhost:9090
上查找Prometheus,或者在自定义端口信息时配置Grafana使用的端口。
您不应该在prometheus.yml
文件中指定您设置的Prometheus端口。该端口是用来节点发布数据。 -
单击Save & Test以确保正确地设置了数据源。
如果数据源正在工作,就可以配置仪表板来显示节点指标。
6、导入模板仪表板
如果希望启动一个基本的仪表板,可以导入一个Substrate仪表板模板来获取关于节点的基本信息。
导入dashboard模板:
- 在Grafana Welcome页面上,单击Dashboards。
- 在左侧导航中,单击“Dashboards”并选择“Browse”。
- 对于“搜索”选项,单击“新建(New)”并选择“导入(
Import
)”。
- 复制Substrate仪表板模板并将其粘贴到Import via panel json文本框中。
- 单击
Load
- 必要时,检查并修改仪表板的名称、文件夹和唯一标识符。
- 选择Prometheus (default),然后单击Import。
Substrate仪表板模板可以与任何基于Substrate
的链一起使用,也可以从Grafana Labs仪表板库中下载。
如果您想创建自己的仪表板,请参阅Grafana的Prometheus文档。
如果您创建了自定义仪表板,请考虑将其上传到Grafana仪表板。通过在Awesome Substrate存储库中列出仪表板,可以让Substrate构建器社区知道仪表板的存在。