繁体   English   中英

如何使用带时区的 rrdfetch

[英]How to use rrdfetch with timezone

在我的应用程序中使用RRD我试图找到一种在特定时区执行“rrdtool fetch”的方法。 在我的例子中, “欧洲/索非亚”是来自 UTC 的“+02:00”夏季“+03:00”

获取此命令

rrdtool fetch test.rrd MAX -r 86400 -s -90d -e now

是否可以将它与时区Europe/Sofia一起使用,它必须在时间戳上增加 2 小时?

如果可能的话,如果我们在夏令时会发生什么,会增加 2 或 3 个小时?

在内部,rrdtool 在 Unixtime 中工作,因此它与时区无关。 如果您使用“现在”,那么它将是当前时间,无论您处于什么时区。如果您给出类似“03:00”的时间,那么它将相对于系统定义的当前时区。

显示时间时,例如在图表的 X 轴上,时区就变得很重要。

注意:有关详细信息,请参阅 rrdtool 文档 - https://oss.oetiker.ch/rrdtool/doc/rrdgraph.en.html

rrdtool 使用系统时间库,因此它们控制使用的时区以及如何解释时区。 在 Linux 下,您可以将TZ环境变量设置为 select 一个时区,库将在将时间转换为 X 轴的本地格式或您提供“13:00”等时间时使用它。 如果您没有设置任何内容,那么您将获得系统的默认设置,无论它是什么。

TLDR - 使用适合您的操作系统的方法设置您的时区,并且 rrdtool 将在您指定时间时遵守它。

请在此处查看显示 X 轴定义中可以使用哪些 strftime 符号的文档: https://oss.oetiker.ch/rrdtool/doc/rrdgraph_graph.en.html

有关可用于-s-e的 AT 样式时间规范的详细信息,请参见此处: https://oss.oetiker.ch/rrdtool/doc/rrdfetch.en.html#AT-STYLE_TIME_SPECIFICATION

需要注意的一件事是,无论您处于什么时区,RRA 桶都与午夜 UCT 对齐。 如果您在欧洲,这不会显示太多,但在新西兰,您可以看到“每日”计数在中午滚动。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM