【问题标题】:400 bad request error for Prometheus queryPrometheus 查询的 400 bad request 错误
【发布时间】:2021-05-05 05:29:03
【问题描述】:

大家,我正在尝试使用 API 从 Prometheus 提取报告。但是,它会抛出 400 错误请求。我在 Prometheus 中尝试过相同的查询,它显示了正确的数据。 谁能告诉我如何解决这个问题。

基本上,我需要平均 http_request_in_latency_seconds_sum 和 http_request_in_latency_seconds_count。

root@project:/# curl 'http://localhost:9090/api/v1/query_range?query=avg(http_request_in_latency_seconds_sum / http_request_in_latency_seconds_count)&start=2021-05-01T00:00:00Z&end=2021-05-02T00:00:00Z&step=30s'
400 Bad Request

【问题讨论】:

  • 有人可以帮忙吗?

标签: curl prometheus grafana


【解决方案1】:

您需要在查询参数中正确转义特殊字符 / (本例中为两个空格和斜杠):

?query=avg(http_request_in_latency_seconds_sum%20%2F%20http_request_in_latency_seconds_count)

您还可以使用--data-urlencode 为您制作curl 转义字符:

curl 'http://localhost:9090/api/v1/query_range' \
    --data-urlencode "query=avg(http_request_in_latency_seconds_sum / http_request_in_latency_seconds_count)" \
    --data-urlencode "start=2021-05-01T00:00:00Z" \
    --data-urlencode "end=2021-05-02T00:00:00Z" \
    --data-urlencode "step=30s"

【讨论】:

  • 感谢您的快速回复!我有两个空格,然后是斜线。但我仍然收到 400 错误。如果有任何其他替代方法可以解决它,请告诉我。 -data-urlencode 显示请求成功。
  • @Vivek 向我显示带有转义字符的查询,导致错误。
  • 我试过这样 root@project:/# curl 'localhost:9090/api/v1/… / http_request_in_latency_seconds_count)&start=2021-05-01T00:00:00Z&end=2021-05-02T00:00:00Z&step=30s ' 400 错误请求
  • 我怀疑查询可能被破坏了。如您所见,前半部分突出显示,其余部分未突出显示。
  • @Vivek curl 'http://localhost:9090/api/v1/query_range?query=avg(http_request_in_latency_seconds_sum%20%2F%20http_request_in_latency_seconds_count)&start=2021-05-01T00:00:00Z&end=2021-05-02T00:00:00Z&step=30s'
猜你喜欢
  • 2013-09-26
  • 1970-01-01
  • 1970-01-01
  • 2012-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-02
相关资源
最近更新 更多