OpenTSDB 日期时间说明
Posted 顧棟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenTSDB 日期时间说明相关的知识,希望对你有一定的参考价值。
Dates and Times
原文地址:http://opentsdb.net/docs/build/html/user_guide/query/dates.html
OpenTSDB 在查询数据时支持多种日期和时间格式。 通过 GUI、CliQuery 工具或 HTTP API 提交的查询支持以下格式。 每个查询都需要一个开始时间和一个可选的结束时间。 如果未指定结束时间,则将使用运行 TSD 的系统上的当前时间。
Relative
如果您不知道请求的确切时间戳,您可以提交相对于运行 TSD 的系统上时间的过去时间。 相对时间遵循格式 <amount><time unit>-ago
其中 <amount>
是时间单位的数量,<time unit>
是时间单位,例如小时、天等。 例如,如果我们提供 开始时间为 1h-ago 并省略结束时间,我们的查询将返回从 1h-ago
开始到当前时间的数据。 可能的时间单位包括:
- ms - Milliseconds
- s - Seconds
- m - Minutes
- h - Hours
- d - Days (24 hours)
- w - Weeks (7 days)
- n - Months (30 days)
- y - Years (365 days)
Note
相对时间不考虑闰秒、闰年或时区。 他们只是从当前时间计算过去的秒数。
Absolute Unix Time
在内部,所有数据都与 Unix(或 POSIX)风格的时间戳相关联。 Unix 时间定义为自 1970 年 1 月 1 日 00:00:00 UTC 时间以来经过的秒数。时间戳表示为正整数,例如 1364410924,代表ISO 8601:2013-03-27T19:02:04Z
。由于在 OpenTSDB 中存储数据的调用需要 Unix 时间戳,因此在查询中支持该格式是有意义的。因此,您可以为查询中的开始或结束时间提供一个整数。
使用 Unix 时间戳的查询也可以通过简单地附加三位数来支持毫秒精度。例如,提供 1364410924000
的开始时间和 1364410924250
的结束时间将返回 250 毫秒窗口内的数据。毫秒时间戳也可以提供一个将秒与毫秒分开的时间段,如 1364410924.250
。任何具有 13(或 14)个字符的整数都将被视为毫秒时间戳。任何 10 个字符或更少的字符都代表秒。毫秒只能以 3 位精度提供。如果您的工具输出超过 3 位数字,您必须截断或舍入该值。
Absolute Formatted Time
由于在您的脑海中计算 Unix 时间非常困难,因此 OpenTSDB 还支持人类可读的绝对日期和时间。 支持的格式包括:
- yyyy/MM/dd-HH:mm:ss
- yyyy/MM/dd HH:mm:ss
- yyyy/MM/dd-HH:mm
- yyyy/MM/dd HH:mm
- yyyy/MM/dd
yyyy
将年份表示为四位数,例如 2013
. MM
表示从一月的 01
开始到十二月的 12
的月份。 dd
表示从 01 开始的月份中的第几天。HH
表示从 00 到 23 开始的 24 小时格式中的小时。mm
表示从 00 到 59 开始的分钟,ss
表示从 00 到 59 开始的秒。所有月、日 , 作为个位数的小时、分钟和秒必须以 0 开头,例如 必须将月份的第 5 天指定为 05。当提供没有时间的数据时,系统将假定为指定日期的午夜。
示例包括 2013/01/23-12:50:42
或 2013/01/23
。 格式化时间从运行 TSD 的主机的默认时区转换为 UTC。 HTTP API 查询可以接受用户提供的时区来覆盖本地区域。
Note
使用 CliQuery 工具时,您必须使用用破折号分隔日期和时间的格式。 这是因为命令行是按空格分割的,所以如果在时间戳中加空格,将无法正确解析执行。
Time Zones
在转换人类可读的时间戳时,OpenTSDB 将从运行 TSD 的系统上配置的时区转换为 UTC。 虽然许多服务器配置为 UTC,我们建议所有运行 OpenTSDB 的系统都使用 UTC,但有时会使用本地时区。
通过查询字符串到 HTTP API 的查询可以指定一个带有时区标识字符串的 tz 参数,其格式适用于运行 TSD 的系统的本地化设置。 例如,我们可以指定tz=America/Los_Angeles
将时间戳从洛杉矶本地时间转换为 UTC。
或者,如果您无法更改系统时区,您可以通过配置文件tsd.core.timezone
属性提供覆盖。
以上是关于OpenTSDB 日期时间说明的主要内容,如果未能解决你的问题,请参考以下文章
sql 日期转换代码片段 - Dato,120,konvertere