#influx-db #metrics #ckb #data-source #networking #analyzer #dashboard

app ckb-analyzer

ckb-analyzer 分析各种数据源,并将结果上传到 InfluxDB

2 个不稳定版本

0.39.2 2021年1月25日
0.37.0 2020年11月21日

#54 in #influx-db

MIT 许可证

86KB
1.5K SLoC

ckb-analyzer

ckb-analyzer 是一个收集 ckb 的指标并写入处理后的指标信息到 InfluxDB 的代理程序。我们可以在 Grafana 或其他可视化工具中可视化这些指标。

ckb-analyzer 正在快速发展中。

安装

发布版 下载或

cargo install ckb-analyzer

用法

ckb-analyzer 读取几个环境变量

  • CKB_ANALYZER_CONFIG 指定配置文件路径
  • CKB_RPC_USERNAME 指定 ckb rpc 服务的授权用户名,默认为 ""
  • CKB_RPC_PASSWORD 指定 ckb rpc 服务的授权密码,默认为 ""
  • INFLUXDB_USERNAME 指定 influxdb 用户名,默认为 ""
  • INFLUXDB_PASSWORD 指定 influxdb 密码,默认为 ""

命令示例

CKB_ANALYZER_CONFIG=config/test.toml ckb-analyzer

主题和测量

  • 规范链

    • 已提交的交易和提议的交易
    • 每秒交易数
    • 区块时间间隔
    • 纪元叔伯数量和叔伯比率
    • 纪元持续时间和长度
    • 纪元调整
  • 网络分布

    • 网络中 tip 的分布
    • 网络中版本分布
  • 规范链重组

    • 流量
    • 规模
  • 节点的规范链增长

  • 节点的叔伯块(其中一些可能不包括在规范链叔伯中)

    • 流量
  • 矿工

    • 指定区块的矿工节点(ip 或锁参数)
  • 交易转换(主要关注交易流量和状态转换延迟)

    • 挂起
    • 挂起时间过长
    • 提议
    • 提议时间过长
    • 提交
    • 移除(带有原因,拒绝,冲突等)
    • 重组
  • 节点的 tx-pool 状态

    • 挂起/提议池大小/循环
  • 处理成本(通过 ckb 内部指标服务)

    • 验证区块
    • 验证交易
  • 网络中的交易和区块传播

    • 已连接节点的数量
    • 传播耗时
    • 高延迟传播
  • 记录的事件

    • 错误和警告事件
    • 足够的事件,通过正则表达式模式识别;更好地组织这些日志

调试套件

  • 持久化最近的事务(调试套件)

  • 重现上下文

监控警报

  • 数据源问题

    • 长时间没有更新
  • 网络分叉,存在具有相同区块号的区块不同哈希值的节点

  • 矿工问题

    • 链长时间不增长
    • 节点接收过多的叔父区块
  • 链增长问题

    • 区块时间间隔比阈值短/长
    • 大的纪元调整
  • 交易过渡问题

    • 在某个状态下有太多的事务
  • 记录的问题

仪表板

请参考我们的Grafana仪表板文件,链接为:dashboards

常见问题解答

  • ckb本身暴露了指标。那么为什么创建ckb-analyzer?

    一些指标不方便从ckb暴露,例如历史链指标和复杂的分析任务。通过ckb-analyzer,我们可以通过提取历史区块来显示历史链信息,并在ckb外部执行一些复杂任务,从而避免在ckb中增加过多的复杂性。

  • 为什么使用InfluxDB?

    通过HTTP主动推送指标到InfluxDB非常有用!

许可证:MIT

依赖关系

~91MB
~1.5M SLoC