上传文件大小的普罗米修斯度量标准

问题描述 投票:0回答:1

我是Grafana和Prometheus的新手,我在显示上传文件的大小方面遇到了麻烦。

我想在Grafana中显示类似下面的东西(以便发现上传的文件大小最多)。

 |
 |   |       .
 |   |   |   |
-------------------------
1MB 2MB 3MB 4MB ..

我制作了下面这个直方图。

uploaded_file_sizes = Summary(
    'uploaded_file_sizes',
    'Uploaded file size in bytes',
    buckets=(
        10000,    #   10KB
        100000,   #   100KB
        500000,   #   500KB
        1000000,  #   1MB
        1500000,  #   1.5MB
        2000000,  #   2MB
        2500000,  #   2.5MB
        3000000,  #   3MB
        3500000,  #   3.5MB
        4000000,  #   4MB
        4500000,  #   4.5MB
        5000000,  #   5MB
        10000000,  #   10MB
        15000000,  #   15MB
        20000000,  #   20MB
        25000000,  #   25MB
        30000000,  #   30MB
        35000000,  #   35MB
        40000000,  #   40MB
        45000000,  #   45MB
        50000000,  #   50MB
    ),
)

这很好,它在指标端点给出了以下数据

# HELP uploaded_file_sizes Uploaded file size in bytes
# TYPE uploaded_file_sizes histogram
uploaded_file_sizes_bucket{le="10000.0"} 0.0
uploaded_file_sizes_bucket{le="100000.0"} 0.0
uploaded_file_sizes_bucket{le="500000.0"} 0.0
uploaded_file_sizes_bucket{le="1e+06"} 2.0
uploaded_file_sizes_bucket{le="1.5e+06"} 3.0
uploaded_file_sizes_bucket{le="2e+06"} 3.0
uploaded_file_sizes_bucket{le="2.5e+06"} 3.0
uploaded_file_sizes_bucket{le="3e+06"} 3.0
uploaded_file_sizes_bucket{le="3.5e+06"} 3.0
uploaded_file_sizes_bucket{le="4e+06"} 3.0
uploaded_file_sizes_bucket{le="4.5e+06"} 3.0
uploaded_file_sizes_bucket{le="5e+06"} 3.0
uploaded_file_sizes_bucket{le="1e+07"} 3.0
uploaded_file_sizes_bucket{le="1.5e+07"} 3.0
uploaded_file_sizes_bucket{le="2e+07"} 3.0
uploaded_file_sizes_bucket{le="2.5e+07"} 3.0
uploaded_file_sizes_bucket{le="3e+07"} 3.0
uploaded_file_sizes_bucket{le="3.5e+07"} 3.0
uploaded_file_sizes_bucket{le="4e+07"} 3.0
uploaded_file_sizes_bucket{le="4.5e+07"} 3.0
uploaded_file_sizes_bucket{le="5e+07"} 3.0
uploaded_file_sizes_bucket{le="+Inf"} 3.0
uploaded_file_sizes_count 3.0
uploaded_file_sizes_sum 2.848696e+06

在这一点上,我对如何在Grafana中显示下面这样的东西感到困惑。令人困惑的是,无论我怎么尝试,最终得到的图形都是奇怪的计数数字,所以我确信我做了一些根本性的错误。

prometheus grafana bucket promql
1个回答
0
投票

秘密是为你的桶设置范围而不是实际值。例如,在图中,1MB的条形图不需要1MB的桶,而是设置两个0.5MB和1.5MB的桶作为范围。

例子】:将0.5MB和1.5MB两个桶设置为范围,而不是1MB桶。

uploaded_file_sizes = Summary(
    'uploaded_file_sizes',
    'Uploaded file size in bytes',
    buckets=(
        500000,  # 500KB
        1500000, # 1.5MB
        2000000, # 2.5MB
    )
)

由此,我们将创建4个基于的条形图。范围;<1MB,1MB(文件在0.5-1.5MB范围内),1MB(0.5-1.5MB范围内),2MB(1.5-2.5MB范围内),3MB+(2.5-infMB范围内)。

那么为了打出直方图的累积性,我们需要在每个查询中,计算出的是 变化率 从一个桶到另一个桶。

# Query 1: <1MB
uploaded_file_sizes_bucket{le="500000.0"}

# Query 2: 1MB
uploaded_file_sizes_bucket{le="1.5e+06"} - ignoring(le)
uploaded_file_sizes_bucket{le="500000.0"}

# Query 3: 2MB
uploaded_file_sizes_bucket{le="2.5e+06"} - ignoring(le)
uploaded_file_sizes_bucket{le="1.5e+06"}

# Query 4: 3MB+
uploaded_file_sizes_bucket{le="+Inf"} - ignoring(le)
uploaded_file_sizes_bucket{le="2.5e+06"}
© www.soinside.com 2019 - 2024. All rights reserved.