当前位置: 首页 > news >正文

Substrate 基础教程(Tutorials) -- 监控节点指标

Substrate 公开有关网络操作的度量。例如,您可以收集有关您的节点连接了多少个对等节点、您的节点使用了多少内存以及正在生成的块数量的信息。为了捕获和可视化Substrate节点公开的度量,您可以配置和使用Prometheus和Grafana等工具。本教程演示如何使用Prometheus获取数据样本,如何使用Grafana创建图形和仪表板,以使用数据样本可视化节点指标。

在较高的级别上,Substrate公开了可以被Prometheus端点使用的遥测数据,并在Grafana仪表板或图形中作为可视信息显示。

下图提供了如何配置SubstratePrometheusGrafana之间的交互以显示关于节点操作的信息的简化概述。
在这里插入图片描述

1、教程的目标

通过完成本教程,您将实现以下目标:

  • 安装PrometheusGrafana.
  • 配置Prometheus以捕获Substrate节点的时间序列。
  • 配置Grafana以可视化使用Prometheus端点收集的节点度量。

2、安装 Prometheus 和 Grafana

出于测试和演示的目的,您应该下载PrometheusGrafana的已编译bin程序,而不是自己构建工具或使用Docker映像。使用下面的链接下载适合您的体系结构的二进制文件。本教程假设您在工作目录中使用已编译的二进制文件。

要安装本教程的工具:

2.1 安装 Prometheus

  1. 在计算机上打开浏览器。
  2. 从Prometheus Download下载适当的预编译的Prometheus二进制文件。
wget https://github.com/prometheus/prometheus/releases/download/v2.37.6/prometheus-2.37.6.linux-amd64.tar.gz
  1. 在计算机上打开终端shell并导航到Downloads文件夹,然后运行适当的命令从下载的文件中提取内容。
  2. 以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服务都使用默认端口在本地运行。

  1. 在计算机上打开一个终端
  2. 切换到节点模板目录的根目录。
  3. 以开发模式启动节点模板。
./target/release/node-template --dev

4、配置 Prometheus 端点

解压Prometheus下载时创建的目录中包含一个prometheus.yml配置文件。您可以修改这个文件或创建一个自定义配置文件,将Prometheus配置为从默认的Prometheus端口端点9615或使用--prometheus-port <port-number>命令行选项指定的端口提取数据。

Substrate暴露端点添加到Prometheus目标列表:

  1. 在终端定位到Prometheus工作目录的根目录。
  2. 打开prometheus.yml配置文件
  3. 添加substrate_node作为scrape_config端点。
    例如,添加如下所示的section:
...
# A scrape configuration containing exactly one endpoint to scrape:
scrape_configs:- job_name: "substrate_node"scrape_interval: 5sstatic_configs:- targets: ["localhost:9615"]

这些设置将覆盖substrate_node作业的抓取目标的全局默认值。将scrape_interval设置为一个小于块时间的值,以确保每个块都有一个数据点,这很重要。例如,Polkadot块时间为6秒,因此scrape_interval设置为5秒。

  1. 使用修改后的Prometheus启动一个prometheus.yml配置文件实例。
    例如,当前在Prometheus工作目录,使用默认配置文件,则启动Prometheus。
./prometheus --config.file prometheus.yml

不要关闭,继续运行。

  1. 打开一个新的终端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-reloadsudo /bin/systemctl enable grafana-server
# You can start grafana-server by executingsudo /bin/systemctl start grafana-server

启动Grafana后,可以在浏览器中导航到它。

  1. 打开浏览器并导航到Grafana使用的端口。
    默认情况下,Grafana使用http://localhost:3000,除非您配置了不同的主机或端口。

  2. 使用默认用户名admin和密码admin登录,然后单击“登录”。
    在这里插入图片描述

  3. 在欢迎页面上,单击数据源(Data Sources)。

  4. 单击Prometheus, 为 Substrate节点度量,将Prometheus端点配置的数据源。
    在同时运行Substrate节点和Prometheus实例的情况下,配置Grafana在其默认端口http://localhost:9090上查找Prometheus,或者在自定义端口信息时配置Grafana使用的端口。
    您不应该在prometheus.yml文件中指定您设置的Prometheus端口。该端口是用来节点发布数据。

  5. 单击Save & Test以确保正确地设置了数据源。
    如果数据源正在工作,就可以配置仪表板来显示节点指标。

6、导入模板仪表板

如果希望启动一个基本的仪表板,可以导入一个Substrate仪表板模板来获取关于节点的基本信息。

导入dashboard模板

  1. Grafana Welcome页面上,单击Dashboards
  2. 在左侧导航中,单击“Dashboards”并选择“Browse”。
  3. 对于“搜索”选项,单击“新建(New)”并选择“导入(Import)”。
    在这里插入图片描述
  4. 复制Substrate仪表板模板并将其粘贴到Import via panel json文本框中。
  5. 单击Load
  6. 必要时,检查并修改仪表板的名称、文件夹和唯一标识符。
  7. 选择Prometheus (default),然后单击Import

在这里插入图片描述
Substrate仪表板模板可以与任何基于Substrate的链一起使用,也可以从Grafana Labs仪表板库中下载。

如果您想创建自己的仪表板,请参阅Grafana的Prometheus文档。

如果您创建了自定义仪表板,请考虑将其上传到Grafana仪表板。通过在Awesome Substrate存储库中列出仪表板,可以让Substrate构建器社区知道仪表板的存在。

相关文章:

Substrate 基础教程(Tutorials) -- 监控节点指标

Substrate 公开有关网络操作的度量。例如&#xff0c;您可以收集有关您的节点连接了多少个对等节点、您的节点使用了多少内存以及正在生成的块数量的信息。为了捕获和可视化Substrate节点公开的度量&#xff0c;您可以配置和使用Prometheus和Grafana等工具。本教程演示如何使用…...

lua table 详解

文章目录1.table 声明与访问2. table 的两种遍历方式 pairs 和 ipairs2.1 pairs2.2 ipairs2.3 例3.迭代器实现 ipairs 效果4.获取 table 长度4.1 #table 获取长度4.2 自定义函数获取 table 长度注意事项1.table 声明与访问 -- 初始化表 tbl {} -- 不可以是 tbl nil-- 赋值 -…...

Element表单嵌套树形表格的校验问题

普通嵌套 表单和表格是项目中最常见的项目&#xff0c;有时候就会遇到表格嵌套表单的情况&#xff0c;比如 这种形式的其实挺好处理的&#xff0c;如下&#xff1a; <el-form:model"states"ref"tableFormRef"label-width"80px"label-posit…...

1.webpack的基本使用

webpack是做工程化用的&#xff0c;并且可以对代码进行压缩(搞成min.js那样)&#xff0c;处理浏览器端JS兼容性&#xff0c;性能优化 vue-cli与webpack作用相同 目录 1 基本使用 1.1 引入场景 1.2 安装webpack 1.3 配置webpack 1.4 使用webpack 2 webpack.config.…...

面试必看:谈谈你所了解的JVM调优,JVM性能调优总结

文章目录从面试角度来谈谈你了解的JVM调优GC调优的步骤1.确定目标&#xff1a;2.优化参数3.验收优化结果GC优化案例一、Major GC和Minor GC频繁优化Minor GC频繁问题&#xff1a;1.可以适当增大新生代的内存二、请求高峰期发生GC&#xff0c;导致服务可用性降低优化标记停顿时间…...

Pytorch优化器Optimizer

优化器Optimizer 什么是优化器 pytorch的优化器&#xff1a;管理并更新模型中可学习参数的值&#xff0c;使得模型输出更接近真实标签 导数&#xff1a;函数在指定坐标轴上的变化率 方向导数&#xff1a;指定方向上的变化率&#xff08;二元及以上函数&#xff0c;偏导数&am…...

如何在MySQL 8中实现数据迁移?这里有一个简单易用的方案

文章目录前言一. 致敬IT领域的那些女性二. 进制方式安装MySQL2.1 下载软件包2.2 配置环境&#xff1a;2.2.1 配置yum环境2.2.2 配置安全前的系统环境2.3 开始安装2.4 初始化MySQL2.5 修改配置文件2.6 将MySQL设为服务并启动测试三. MySQL数据迁移总结前言 正好赶上IT女神节&am…...

java多线程(二三)并发编程:Callable、Future和FutureTask

一、Callable 与 Runnable 先说一下java.lang.Runnable吧&#xff0c;它是一个接口&#xff0c;在它里面只声明了一个run()方法&#xff1a; public interface Runnable {public abstract void run(); }由于run()方法返回值为void类型&#xff0c;所以在执行完任务之后无法返…...

day4分支和循环作业

基础题 根据输入的成绩的范围打印及格 或者不及格。 score 58 if score > 90:print(及格) else:print(不及格)根据输入的年纪范围打印成年或者未成年&#xff0c;如果年龄不在正常范围内(0~150)打印这不是人!。 age 52 if 0 < age < 18:print(未成年) elif 18 &l…...

轮毂要怎么选?选大还是选小?

随着改装车的越来越火爆&#xff0c;汽车轮毂可选择的款式也越来越多&#xff0c;90%的人换轮毂&#xff0c;首先选的就是外观。大轮毂的款式多&#xff0c;外形大气好看&#xff0c;运动感十足&#xff0c; 那是不是选大轮毂就可以呢&#xff1f;不是的&#xff0c;汽车轮毂要…...

RabbitMq 使用说明

1. 声明交换机和队列&#xff0c;以及交换机和队列绑定 import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.*; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.spr…...

Vue(10-20)

1Vue赋值方式 Object.defineProperty <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" conten…...

C++-对四个智能指针:shared_ptr,unique_ptr,weak_ptr,auto_ptr的理解

回答如下&#xff1a; C的智能指针是一种特殊类型的“指针”&#xff0c;其主要目的是自动跟踪内存分配和释放&#xff0c;以避免程序中出现内存泄露或空悬指针等问题&#xff0c;主要采用的技术是&#xff1a;借助于类的生命周期&#xff0c;当超出了类的作用域时&#xff0c…...

uni-app中使用vue3语法详解

全局创建 app.use(createPina()).mount 全局方法 通过app.config.globalProperties.xxx可以创建 这里我们写了一个字符串翻转的全局方法 main.js里面添加一个全局方法 不要忘了加$ 否则会报错 // #ifdef VUE3 //导入创建app import { createSSRApp } from vue //导入创建ap…...

三十四、MongoDB PHP

PHP 语言可是使用 mongo.so ( Windows 下是 mongo.dll ) 扩展访问 MongoDB 数据库 MongoDB PHP 在各平台上的安装及驱动包下载请查看: PHP 安装 MongoDB 扩展驱动 如果你使用的是 PHP7&#xff0c;请移步&#xff1a; PHP7 MongoDB 安装与使用 PHP 连接 MongoDB 和 选择一个…...

浅拷贝和深拷贝的区别

浅拷贝和深拷贝 总结&#xff1a;浅拷贝对象数据共享&#xff0c;深拷贝是一个完全独立的对象&#xff0c;因此对象数据不共享。 浅拷贝&#xff08;Shallow Copy&#xff09; 浅拷贝是指创建一个新的对象&#xff0c;但是该新对象只是原始对象的一个副本。具体而言&#xf…...

6个常用Pycharm插件推荐,老手100%都用过

人生苦短 我用python 有些插件是下载后需要重启Pycharm才生效的 免费领源码、安装包&#xff1a;扣扣qun 903971231 PyCharm 本身已经足够优秀&#xff0c; 就算不使用插件&#xff0c; 也可以吊打市面上 90%的 Python 编辑器。 如果硬要我推荐几款实用的话&#xff0c; 那么…...

TCP的11种状态

CLOSED状态&#xff1a;初始状态&#xff0c;表示TCP连接是“关闭的”或者“未打开的”LISTEN状态&#xff1a;表示服务端的某个端口正处于监听状态&#xff0c;正在等待客户端连接的到来SYN_SENT状态&#xff1a;当客户端发送SYN请求建立连接之后&#xff0c;客户端处于SYN_SE…...

new 指令简单过程 / 类加载简单过程初始化

例子&#xff1a;Person p new Person(“张三”,”23”); 因为new用到person.class,所以先找到person.class文件&#xff0c;并且加载到内存中&#xff08;如果有父类先加载父类&#xff09;执行static块以及static变量的初始化&#xff08;如果有父类先初始化父类&#xff0…...

Asan基本原理及试用

概述 Asan是Google专门为C/C开发的内存错误探测工具&#xff0c;其具有如下功能 使用已释放内存&#xff08;野指针&#xff09;√堆内存越界&#xff08;读写&#xff09;√栈内存越界&#xff08;读写&#xff09;√全局变量越界&#xff08;读写&#xff09;函数返回局部变…...

深度学习应用技巧4-模型融合:投票法、加权平均法、集成模型法

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下&#xff0c;深度学习中的模型融合。它是将多个深度学习模型或其预测结果结合起来&#xff0c;以提高模型整体性能的一种技术。 深度学习中的模型融合技术&#xff0c;也叫做集成学习&#xff0c;是指同时使用多个…...

【并发编程】深入理解Java内存模型及相关面试题

文章目录优秀引用1、引入2、概述3、JMM内存模型的实现3.1、简介3.2、原子性3.3、可见性3.4、有序性4、相关面试题4.1、你知道什么是Java内存模型JMM吗&#xff1f;4.2、JMM和volatile他们两个之间的关系是什么&#xff1f;4.3、JMM有哪些特性/能说说JMM的三大特性吗&#xff1f…...

C++编程语言STL之queue介绍

本文主要介绍C编程语言的STL&#xff08;Standard Template Library&#xff09;中queue&#xff08;队列&#xff09;的相关知识&#xff0c;同时通过示例代码介绍queue的常见用法。1 概述适配器&#xff08;adaptor&#xff09;是STL中的一个通用概念。容器、迭代器和函数都有…...

ACO优化蚁群算法

%% 蚁群算法&#xff08;ant colony optimization,ACO&#xff09; %清空变量 clear close all clc [ graph ] createGraph(); figure subplot(1,3,1) drawGraph( graph); %% 初始化参数 maxIter 100; antNo 50; tau0 10 * 1 / ( graph.n * mean( graph.edges(:) …...

SwiftUI 常用组件和属性(SwiftUI初学笔记)

本文为初学SwiftUI笔记。记录SwiftUI常用的组件和属性。 组件 共有属性(View的属性) Image("toRight").resizable().background(.red) // 背景色.shadow(color: .black, radius: 2, x: 9, y: 15) //阴影.frame(width: 30, height: 30) // 宽高 可以只设置宽或者高.…...

Centos 中设置代理的两种方法

Centos 中设置代理的两种方法 在使用局域网时&#xff0c;有时在局域网内只有一台电脑可以进行上网&#xff0c;其他电脑只能通过配置代理的方式来上网&#xff0c;在Windows系统中设置代理上网相对简单&#xff0c;如果只需上网的话&#xff0c;只需在浏览器中找到网络连接&am…...

高速PCB设计指南系列(一)

第一篇 PCB布线 在PCB设计中&#xff0c;布线是完成产品设计的重要步骤&#xff0c;可以说前面的准备工作都是为它而做的&#xff0c; 在整个PCB中&#xff0c;以布线的设计过程限定最高&#xff0c;技巧最细、工作量最大。PCB布线有单面布线、 双面布线及多层布线。布线的方…...

云端IDE:TitanIDE v2.6.0 正式发布

原文作者&#xff1a;行云创新技术总监 邓冰寒 引言 云原生集成开发环境 TitanIDE v2.6.0 正式发布了&#xff0c;一起来看看都有那些全新的体验吧&#xff01; TitanIDE 是一款云IDE, 也称 CloudIDE&#xff0c;作为数字化时代研发体系不可或缺的一环&#xff0c;和企业建设…...

【Python】tqdm 模块

import mathfrom tqdm import tqdm, trange# 计算阶乘 results_1 []for i in range(6666):results_1.append(math.factorial(i))这是一个循环计算阶乘的程序&#xff0c;我们不知道程序运行的具体情况&#xff0c;如果能加上一个程序运行过程的进度条&#xff0c;那可就太有趣…...

论文阅读:Adversarial Cross-Modal Retrieval对抗式跨模式检索

Adversarial Cross-Modal Retrieval 对抗式跨模式检索 跨模态检索研究的核心是学习一个共同的子空间&#xff0c;不同模态的数据可以直接相互比较。本文提出了一种新的对抗性跨模态检索&#xff08;ACMR&#xff09;方法&#xff0c;它在对抗性学习的基础上寻求有效的共同子空间…...