从 Prometheus 到 RRDtool 图表

主要观点:长期以来想从现代时间序列数据库(如 Prometheus)数据制作 RRD 风格图表,因rrdtool graph无直接读 CSV 文件选项起初觉得难,后发现可利用libdbi从 SQLite 读取数据,实现步骤为提取 Prometheus 数据为 JSON 再转为 CSV 后导入 SQLite 表,最后让rrdtool从 SQLite 表绘图,具体如下:

  • Prometheus 有简单 HTTP API 只返回 JSON,可通过curl获取 3 天流量数据,用jq将 JSON 转换为 CSV 格式。
  • 需将数据加载到 SQLite 中,创建表时要注意类型,用'|cat -'从标准输入读取数据。
  • 要教rrdtool使用数据库,定义变量DS_BASE指定数据库等信息,可追加key=value对作为WHERE查询,如绘制多个查询数据会更复杂,注意%27用于转义'。最终可生成图表,如文中展示的网络流量图表。
阅读 14
0 条评论