
44
|
第
3
章
Graphite
组件
与发送给
Carbon
并写入
Whisper
文件的指标不同,事件可以提交到
Graphite
事件
API
,
也可以通过
Django
管理
UI
手动输入。它们和
Web
应用程序的用户配置、图形和仪表盘
配置一起被保存到同一个关系数据库中。如果你想谨慎而明智地使用事件,我再次强烈
建议你使用
PostgreSQL
或
MySQL
作为
RDBMS
。
后端存储
在
Web
应用程序可以构建图形(或简单地将格式化数据以
JSON
格式返回给客户端)之
前,它必须首先从后端存储服务中提取时序数据。正如我们之前发现的,
Graphite
将指
标存储到
Whisper
数据库文件中,还能够通过
carbon-cache
查询端口查询尚未持久化到
磁盘的“热数据”。
事实上,网络中的每个
Carbon/Whisper
节点都必须有一个相应的运行在本地的
Graphite
Web
实例。该组件充当存储在主机上的任何
Whisper
指标的网络查询接口,响应来自
其他
Graphite Web
实例的
API
调用。从这个意义上来说,
Graphite
集群有点不同寻常 :
Carbon/Whisper
节点必须有一个
Graphite Web
进程用于读取指标,但你也可以找到专用
的
Graphite Web
“渲染节点”,它只充当前端
Web
服务,并专门为从后端中提取结果,
以及转换和渲染结果给用户进行优化。
事实证明,
Whisper
并不是
Graphite Web
可以从中读取数据的唯一存储格式。
Graphite
从一开始就包括对
Round-Robin
数据库(