Loki API query_range接口start与end参数使用及时间转换咨询
Loki API query_range 接口时间参数问题解决
一、start/end 参数的正确格式
loki/api/v1/query_range 接口的 start 和 end 参数必须传纳秒级 Unix 时间戳——也就是从1970-01-01 00:00:00 UTC开始计算的总纳秒数。你之前尝试的YYYYMMDD日期字符串、毫秒级时间戳都不符合要求,这就是请求失败的原因。
二、时间转纳秒级时间戳的方法
拿你给出的时间2023-08-14 10:09:16.035来说,转换步骤如下:
- 先将其转换为毫秒级 Unix 时间戳:
1691975356035(对应秒数是1691975356,加上末尾的035毫秒) - 再将毫秒级时间戳乘以1000000,得到纳秒级时间戳:
1691975356035000000- 你提到的
1691975356035337780是带更精确微秒/纳秒的结果,应该是原时间包含了更细的精度,比如2023-08-14 10:09:16.035337780,如果你的时间只有毫秒精度,按上面的方法计算即可。
- 你提到的
三、快速转换工具
日常可以用这些方式快速转换时间:
Python 代码片段
from datetime import datetime target_time = "2023-08-14 10:09:16.035" dt = datetime.strptime(target_time, "%Y-%m-%d %H:%M:%S.%f") ns_timestamp = int(dt.timestamp() * 10**9) print(ns_timestamp)
Linux/macOS 命令行
date -d "2023-08-14 10:09:16.035" +%s%N
这个命令会直接输出纳秒级时间戳,其中%s是秒级时间戳,%N补全纳秒部分。
四、正确的请求示例
符合要求的请求URL格式大致如下:
http://你的Loki实例地址/loki/api/v1/query_range?query={job="你的任务名"}&start=1691975356035000000&end=1691975656035000000&step=10s
内容的提问来源于stack exchange,提问作者justgooo
相关产品推荐
相关产品推荐

