zoukankan      html  css  js  c++  java
  • 【翻译】PROMETHEUS 查询示例

    本文翻译自官网:https://prometheus.io/docs/prometheus/latest/querying/examples/

     简单时间序列选择

    Return all time series with the metric http_requests_total:
    返回指标 http_requests_total 的所有时间序列:

    ```sql
    http_requests_total

    ```

    Return all time series with the metric http_requests_total and the given job and handler labels:
    返回指标 http_requests_total 指定 job 和 handler 的所有时间序列

    ```sql
    http_requests_total{job="apiserver", handler="/api/comments"}

    ```

    Return a whole range of time (in this case 5 minutes) for the same vector, making it a range vector:
    返回相同向量的整个时间范围(这个示例是5分钟),使其成为范围向量

    ```sql
    http_requests_total{job="apiserver", handler="/api/comments"}[5m]

    ```

    Note that an expression resulting in a range vector cannot be graphed directly, but viewed in the tabular ("Console") view of the expression browser.

    注意范围向量的表达式结果不能直接绘成图

    Using regular expressions, you could select time series only for jobs whose name match a certain pattern, in this case, all jobs that end with server:

    使用正则表达式,你可以选择jobs 的名字匹配某些模式的时间序列,在这个示例中,是所有以 server 结尾的job


    ```sql
    http_requests_total{job=~".*server"}

    ```

    All regular expressions in Prometheus use RE2 syntax[https://github.com/google/re2/wiki/Syntax].

    在 prometheus 中所有正则表达式使用 RE2 语法

    To select all HTTP status codes except 4xx ones, you could run:

    为了选择所有http 状态码除了 4xx 的,你可以使用:

    ```sql
    http_requests_total{status!~"4.."}


    ```

     Subquery

    子查询

    Return the 5-minute rate of the http_requests_total metric for the past 30 minutes, with a resolution of 1 minute.

    返回过去 30 分钟指标 http_requests_total 的5 分钟比率,分辨率为 1 分钟
    注: 30-25:29-24:28-23:27-22...

    ```sql
    rate(http_requests_total[5m])[30m:1m]

    ```

    This is an example of a nested subquery. The subquery for the deriv function uses the default resolution. Note that using subqueries unnecessarily is unwise.

    这是一个嵌套子查询的示例。deriv函数的子查询使用默认分辨率。 注意在不必要的时候使用子查询是不明智的。

    ```sql
    max_over_time(deriv(rate(distance_covered_total[5s])[30s:5s])[10m:])

    ```

     Using functions, operators, etc.


    Return the per-second rate for all time series with the http_requests_total metric name, as measured over the last 5 minutes:

    返回过去5分钟内使用http_requests_total指标名称的所有时间序列的每秒比率

    ```sql
    rate(http_requests_total[5m])

    ```

    Assuming that the http_requests_total time series all have the labels job (fanout by job name) and instance (fanout by instance of the job), we might want to sum over the rate of all instances, so we get fewer output time series, but still preserve the job dimension:

    假设http_requests_total时间序列全部具有标签job(按 job 进行扇出)和实例(按 job实例 进行扇出),则我们可能希望对所有实例的比率求和,所有得到较少的时间序列输出,但仍然保留 job 维度:

    ```sql
    sum by (job) (
    rate(http_requests_total[5m])
    )

    ```

    If we have two different metrics with the same dimensional labels, we can apply binary operators to them and elements on both sides with the same label set will get matched and propagated to the output. For example, this expression returns the unused memory in MiB for every instance (on a fictional cluster scheduler exposing these metrics about the instances it runs):

    如果我们有两个具有相同维度标签的不同度量,则可以对它们应用二元运算符,并且具有相同标签集的两侧的元素都将被匹配并传播到输出。 例如,此表达式为每个实例中未使用的内存MiB(在虚构的群集调度程序上,公开了有关其运行的实例的这些指标):

    ```sql
    (instance_memory_limit_bytes - instance_memory_usage_bytes) / 1024 / 1024

    ```

    The same expression, but summed by application, could be written like this:
    相同的表达式,但由应用程序求和,可以这样写:

    ```sql
    sum by (app, proc) (
    instance_memory_limit_bytes - instance_memory_usage_bytes
    ) / 1024 / 1024

    ```

    If the same fictional cluster scheduler exposed CPU usage metrics like the following for every instance:

    如果相同的虚拟群集调度程序针对每个实例公开了以下CPU使用率指标:
    ```sql
    instance_cpu_time_ns{app="lion", proc="web", rev="34d0f99", env="prod", job="cluster-manager"}
    instance_cpu_time_ns{app="elephant", proc="worker", rev="34d0f99", env="prod", job="cluster-manager"}
    instance_cpu_time_ns{app="turtle", proc="api", rev="4d3a513", env="prod", job="cluster-manager"}
    instance_cpu_time_ns{app="fox", proc="widget", rev="4d3a513", env="prod", job="cluster-manager"}
    ...

    ```
    ...we could get the top 3 CPU users grouped by application (app) and process type (proc) like this:

    ...我们可以获得按应用程序(app)和进程类型(proc)分组的前3位CPU用户:

    ```sql
    topk(3, sum by (app, proc) (rate(instance_cpu_time_ns[5m])))

    ```

    Assuming this metric contains one time series per running instance, you could count the number of running instances per application like this:

    假设此指标每个运行实例包含一个时间序列,您可以像这样计算每个应用程序的运行实例数:
    ```sql


    ``
  • 相关阅读:
    css 两边是线,中间文字的多种实现方法
    vue provide/inject 父组件如何给孙子组件传值
    Mac版本的 Axure rp8 不显示菜单栏
    mac 如何卸载node和npm采坑之旅
    css3 鼠标悬停图片动画
    css3 一个六边形 和 放大旋转动画DEMO演示
    js drag drop 收藏夹拖拽移除的简单例子
    css 折角效果/切角效果
    css 给图片添加滤镜效果,透明层毛玻璃效果
    c# udp通讯实现
  • 原文地址:https://www.cnblogs.com/Springmoon-venn/p/12208434.html
Copyright © 2011-2022 走看看