EIP-2159: 客户端通用的 Prometheus 指标名称
Authors | Adrian Sutton (@ajsutton) |
---|---|
Created | 2019-07-01 |
简单总结
以太坊客户端与 Prometheus(一种被广泛使用的监控和告警解决方案)一起使用的常见指标的标准化名称。
摘要
许多以太坊客户端以与 Prometheus 兼容的格式公开了一系列指标,以便操作员可以监控客户端的行为和性能,并在链未进展或出现其他错误迹象时发出警报。 虽然大多数这些指标都高度特定于客户端,报告客户端的内部实现细节,但有些适用于所有客户端。 通过标准化这些常见指标的命名和格式,操作员能够在单个仪表板或告警配置中监控多个客户端的操作。
动机
对适用于所有客户端的指标使用通用名称和含义,允许节点运营商使用单个仪表板和告警配置来监控使用异构客户端的节点集群。 目前,没有商定的名称或含义,导致客户端开发人员发明自己的名称,这使得监控异构集群变得困难。
规范
下表定义了可能被向 Prometheus 公开指标的以太坊客户端捕获的指标。客户端可能会公开其他指标,但这些指标不应使用 ethereum_
前缀。
名称 | 指标类型 | 定义 | JSON-RPC 等效项 |
---|---|---|---|
ethereum_blockchain_height | 计数器 | 规范链的当前高度 | eth_blockNumber |
ethereum_best_known_block_number | 计数器 | 估计的可用最高区块 | eth_syncing 的 highestBlock 或如果未同步则为 eth_blockNumber |
ethereum_peer_count | 计数器 | 当前连接的对等节点数 | net_peerCount |
ethereum_peer_limit | 计数器 | 此节点允许连接的最大对等节点数 | 无等效项 |
请注意,ethereum_best_known_block_number
始终具有值。当 eth_syncing
JSON-RPC 方法返回 false
时,使用当前链高度。
理由
定义的指标独立于以太坊客户端实现,但提供足够的信息来创建概览仪表板以支持监控一组以太坊节点。
对于信标链客户端指标,有一个类似但更具规范性的规范。 如何公开指标的具体细节已被省略,因为现有实现存在差异,并且标准化这一点不会提供任何显着的好处。
向后兼容性
这 不是 影响共识的变更。
客户端可能已经使用不同的名称发布这些指标,并且更改为新形式可能会破坏现有的警报或仪表板。想要避免这种不兼容性的客户端可以在新旧名称下公开指标。
客户端可能还会使用这些名称发布具有不同含义的指标。在这种情况下,无法保留向后兼容性。
实现
Pantheon 在其 1.2 版本中切换为使用这些标准指标名称:https://github.com/PegaSysEng/pantheon/pull/1634。
参考文献
- Prometheus. https://prometheus.io
- 信标链指标规范。https://github.com/ethereum/eth2.0-metrics/blob/master/metrics.md
版权
通过 CC0 放弃版权及相关权利。
Citation
Please cite this document as:
Adrian Sutton (@ajsutton), "EIP-2159: 客户端通用的 Prometheus 指标名称," Ethereum Improvement Proposals, no. 2159, July 2019. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-2159.