我每 5 分钟使用 Gmetric 向 Ganglia 发送一次指标。但是,如果发送指标的 cron 任务不起作用,我希望 Ganglia 图表上的指标值会变为零,而它会保持在上次更新的值。有没有办法改变这种行为?
2 回答
请注意,在您的 gmetric 中使用 '-d' 标志(又名 DMAX)将使 gmond/gmetad在 DMAX 秒过去而没有 gmetric 更新后完全忘记该指标。
因此,如果您直接运行 Ganglia,该指标的 .rrd 文件和 Ganglia 图将完全消失。
如果您想保留指标的 .rrd 历史记录和/或希望保留 Ganglia 图表(但将图降至零),您可以在 /path/to/webserver/ 中编辑对 rrdtool 的调用神经节/graph.d/metric.php。
查看 CDEF 和 VDEF 的 rrdtool 文档,了解如何将条件语句合并到 rrdtool 调用中。在这些语句中,我相信您可以检查 .rrd 中最后一个指标的时间戳,然后任意绘制零值(或您想要的任何其他值)。或者,您可以在您不信任的时间段内更改线条的颜色或样式等,等等。
rrdtool 相当强大,如果难以理解的话。最好阅读的手册页是 rrdgraph_data、rrdgraph_graph 和 rrdgraph。另请查看 Ganglia 提供的其他一些 PHP 脚本,以查看有关如何调用 rrdtool 的更多示例。
我相信这是 rrdtool 的一个特性。它将继续显示“上次报告的”值,直到获得新数据。如果您希望指标值变为 0,则必须有一些进程实际报告该指标的 0 值。
尝试在 gmetric 调用中设置 -d 标志。这表示您发送的指标的最大生命周期(以秒为单位)。我相信 gmond/gmetad 会在经过这段时间后放弃该指标,之后您将不会在 PHP 应用程序中看到它的图表。
这不是您所要求的,但也许这是一个可以接受的替代方案?