Prometheus 普罗米修斯查询范围函数工作不正常
我正在运行下面的查询来解析来自普罗米修斯的数据,但是 “错误”:“无法将\”“解析为有效的时间戳” 结果:Prometheus 普罗米修斯查询范围函数工作不正常,prometheus,Prometheus,我正在运行下面的查询来解析来自普罗米修斯的数据,但是 “错误”:“无法将\”“解析为有效的时间戳” 结果: { "status": "error", "errorType": "bad_data", "error": "cannot parse \"\" to a valid timestamp" } { "status": "success", "data": { "resultType": "vector", "result": [ {
{
"status": "error",
"errorType": "bad_data",
"error": "cannot parse \"\" to a valid timestamp"
}
{
"status": "success",
"data": {
"resultType": "vector",
"result": [
{
"metric": {},
"value": [
1574761076.19,
"1"
]
}
]
}
}
另一方面,当我运行下面的查询时,我得到了正确的结果:
curl -G -v --data-urlencode 'query=sum(irate(istio_requests_total{reporter="source",destination_service="$service",response_code!~"5.*"}[5m])) / sum(irate(istio_requests_total{reporter="source",destination_service=~"$service"}[5m]))' 'localhost:9090/api/v1/query' | jq
结果:
{
"status": "error",
"errorType": "bad_data",
"error": "cannot parse \"\" to a valid timestamp"
}
{
"status": "success",
"data": {
"resultType": "vector",
"result": [
{
"metric": {},
"value": [
1574761076.19,
"1"
]
}
]
}
}
有人能告诉我哪里出错了吗?您的普罗米修斯查询看起来不错,但是
curl
命令似乎不正确。建议使用--data urlencode
拆分每个查询参数
curl --data-urlencode 'query=queryValue' \
--data-urlencode 'start=startValue' \
--data-urlencode 'end=endValue' \
--data-urlencode 'step=stepValue'
因此,您的curl
调用将是:
curl -G -v --data-urlencode 'query=sum(irate(istio_requests_total{reporter="source",destination_service="$service",response_code!~"5.*"}[5m])) / sum(irate(istio_requests_total{reporter="source",destination_service=~"$service"}[5m]))' --data-urlencode 'start=1574750639' --data-urlencode 'end=1574751539' --data-urlencode 'step=15s' 'localhost:9090/api/v1/query_range' | jq
来源
--数据URL编码的手册页
提到它的行为类似于-d,--data
其中谈到多次使用cli标志
如果在同一命令行上多次使用这些选项中的任何一个,则指定的数据段将与分隔的&-符号合并在一起。因此,使用“-d name=daniel-d skill=loosy”将生成一个类似于“name=daniel&skill=loosy”的帖子块
您的Prometheus查询看起来不错,但是curl
命令似乎不正确。建议使用--data urlencode
拆分每个查询参数
curl --data-urlencode 'query=queryValue' \
--data-urlencode 'start=startValue' \
--data-urlencode 'end=endValue' \
--data-urlencode 'step=stepValue'
因此,您的curl
调用将是:
curl -G -v --data-urlencode 'query=sum(irate(istio_requests_total{reporter="source",destination_service="$service",response_code!~"5.*"}[5m])) / sum(irate(istio_requests_total{reporter="source",destination_service=~"$service"}[5m]))' --data-urlencode 'start=1574750639' --data-urlencode 'end=1574751539' --data-urlencode 'step=15s' 'localhost:9090/api/v1/query_range' | jq
来源
--数据URL编码的手册页
提到它的行为类似于-d,--data
其中谈到多次使用cli标志
如果在同一命令行上多次使用这些选项中的任何一个,则指定的数据段将与分隔的&-符号合并在一起。因此,使用“-d name=daniel-d skill=loosy”将生成一个类似于“name=daniel&skill=loosy”的帖子块