Prometheus语法

https://prometheus.io/docs/prometheus/latest/querying/basics/
sum by(countryCode, appName, url) (increase(app_invoke_cost_time_seconds{env="prod", countryCode="$countryCode", appName="$appName", url =~"($url)" }[1m]))

sum by (application,instance) (jvm_memory_used_bytes{area="heap",job=~"env-prod.+"}) *100/sum by (application,instance) (jvm_memory_max_bytes{area="heap",job=~"env-prod.+"})

Prometheus 使用一种非常简单的查询语言,被称为 PromQL(Prometheus Query Language)。以下是一些基本的 PromQL 查询语法示例:

  1. 查询过去1分钟内的所有数据:
    http_requests_total{job="api-server"}[1m]
  2. 查询特定 metric 的总和:
    sum(http_requests_total{job="api-server"})
  3. 查询过去5分钟内每秒的平均请求数,并对结果进行整数向上取整:
    irate(http_requests_total{job="api-server"}[5m])
  4. 查询过去1小时内,每个用户的平均请求数,并根据用户进行分组:
    sum(rate(http_requests_total[1h])) by (user)
  5. 查询过去1小时内,每个用户的HTTP GET请求数:
    sum(rate(http_requests_total{method="get"}[1h])) by (user)
  6. 查询过去1小时内,所有服务器的5xx错误率:
    sum(rate(http_requests_total{status="5xx"}[1h])) / sum(rate(http_requests_total[1h]))
  7. 查询过去1小时内,所有服务器的平均响应时间:
    avg(http_request_duration_seconds{job="api-server"}[1h])
  8. 查询过去1小时内,每个服务的平均查询数/秒,并按服务排序:
    topk(10, sum(rate(http_requests_total[1h])) by (service))
    Prometheus 的查询语言非常强大,可以执行复杂的查询以分析时间序列数据。开发者可以使用这些查询来创建仪表板、警报和其他复杂的监控系统。
posted @ 2024-09-05 15:51  kunchengs  阅读(333)  评论(0)    收藏  举报