7个版本 (4个稳定版)
1.0.3 | 2022年8月9日 |
---|---|
1.0.2 | 2022年8月8日 |
0.1.2 | 2022年7月20日 |
0.1.1 | 2022年7月20日 |
0.1.0 | 2022年7月20日 |
#7 in #block-height
31KB
604 代码行
ecg
是cosmos验证者的死亡开关。
只要监控器从ecg收到心跳,就不会触发警报。这种“默认失败”的方法使这种类型的监控能够抵御可能导致您无法收到任何警报的失败。
示例
- 您的整个基础设施失去连接
- 监控服务与验证者同时故障
- 监控服务无法访问验证者
- 监控服务失去对其数据源(例如:LCD)的访问权限
警告
监控至关重要。ecg和心跳式监控是其他监控工具和方法的补充。我们建议将ecg作为额外的安全措施,与更主动的工具一起使用。
有多个SaaS平台,如Better Uptime或Dead Man's Snitch,实现了心跳监控。
功能
ecg
将
- 对于每个目标,从所有客户端获取状态
- 保留最新状态(最高区块高度)
- 对其进行检查
- 如果它们都通过,则发送心跳
检查包括
- 区块高度增加
- 验证者错过区块没有增加
- 验证者没有被关押
- 验证者没有被石碑化
入门指南
此工具可以作为crate安装。
cargo install ecg
或作为Docker镜像提供。
docker pull ghcr.io/setten-io/ecg
使用
ecg
Heartbeats for cosmos validators
USAGE:
ecg [OPTIONS]
OPTIONS:
-h, --help Print help information
-p, --path <PATH> Path to yaml config [env: ECG_CONFIG_PATH=] [default: ecg.yaml]
-V, --version Print version information
可以通过ECG_LOG
环境变量或通过RUST_LOG
环境变量更改ecg日志级别。
配置
ecg
通过yaml文件配置。
默认路径为./ecg.yaml
,但可以通过-/--path
标志或ECG_CONFIG_PATH
环境变量指定。
示例
ecg.yaml
targets:
phoenix:
url: https://betteruptime.com/api/v1/heartbeat/fFKHCd3YNkayv8Fr6MJAFE3w
valcons_address: terravalcons1qqyfhs9oacvteimwdpbt77fis88mie5gx6gxf2
interval: 10
clients:
- type: lcd
url: https://phoenix-lcd.terra.dev
- type: lcd
url: https://terra-api.polkachu.com
- type: setten-lcd
project_id: ea08855653b64998bb47b2c03bf66de7
key: 02215b36969446c28b22059e63b4301b
network: phoenix
blockchain: terra
kaiyo:
url: https://betteruptime.com/api/v1/heartbeat/t6xm2P7Ujfjz3ph5TNBFti8X
valcons_address: kujiravalcons14rt55jpahf4giiupxrxivy85ecog2onb29a2ev
interval: 2
clients:
- type: lcd
url: https://lcd.kaiyo.kujira.setten.io
- type: lcd
url: https://kujira-api.polkachu.com
规范
目标.<名称>
您的目标名称;应该是自解释的。
目标.<名称>.URL
发送 GET
http 心跳请求的监控 URL。
目标.<名称>.valcons_address
验证器 valcons 地址。
可以使用 cosmos sdk 链二进制 CLI 找到它。
terrad tendermint show-address
目标.<名称>.interval
可选,默认为 30
每个周期(运行检查+发送心跳)之间的秒数间隔。
您必须根据监控器期望接收的心跳频率和链块时间来设置此参数。
目标.<名称>.clients
并行查询的冗余客户端数组。
目标.<名称>.clients[*].type
类型定义了客户端的种类以及可用的配置键。
可用的客户端类型及其配置
lcd
url
- 查询 LCD 端点(例如:https://kujira-api.polkachu.com
)
setten-lcd
project_id
- Setten 项目 ID(例如:ea08855653b64998bb47b2c03bf66de7
)key
- Setten 项目密钥(例如:02215b36969446c28b22059e63b4301b
)network
- Setten 网络别名(例如:phoenix
)blockchain
- Setten 区块链别名(例如:terra
)
有关网络和区块链别名的详细信息,请参阅 Setten 的文档
依赖关系
~13–27MB
~428K SLoC