普罗米修斯query_range功能无法正常工作



我正在运行下面的查询来解析来自普罗米修斯的数据,但得到

"错误":"无法将 \"\" 解析为有效时间戳">

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]))&start=1574750639&end=1574751539&step=15s' 'localhost:9090/api/v1/query_range' | jq

结果:

{
"status": "error",
"errorType": "bad_data",
"error": "cannot parse "" to a valid timestamp"
}

另一方面,当我运行下面的查询时,我得到了正确的结果:

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": "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

来源

--data-urlencode手册页 https://curl.haxx.se/docs/manpage.html#--data-urlencode

提到它的行为类似于-d, --datahttps://curl.haxx.se/docs/manpage.html#-d

其中谈到多次使用 cli 标志。

如果在同一命令行上多次使用这些选项中的任何一个,则指定的数据片段将使用分隔的 &-符号合并在一起。因此,使用"-d name=daniel -d skill=lousy"将生成一个看起来像"name=daniel&skill=lousy"的帖子块。

最新更新