我不太明白 prometheus 中直方图函数中的 bucket 是什么意思
LATENCY = Histogram('hello_world_latency_seconds',
'Time for a request Hello World.',
buckets=[0.0001, 0.0002, 0.0005, 0.001, 0.01, 0.1])
和
@LATENCY.time()
例如,桶 0.0001 代表什么意思?
我不太明白 prometheus 中直方图函数中的 bucket 是什么意思
LATENCY = Histogram('hello_world_latency_seconds',
'Time for a request Hello World.',
buckets=[0.0001, 0.0002, 0.0005, 0.001, 0.01, 0.1])
和
@LATENCY.time()
例如,桶 0.0001 代表什么意思?
我想使用 Grafana/Prometheus 从组件收集指标。Grafana、Prometheus、node_exporter 和 Wildfly 运行良好。
我想收集来自以下方面的指标:
如何配置它prometheus.yml
?我尝试了以下方法,但是不起作用:
scrape_configs:
- job_name: "prometheus"
metrics_path: "/metrics"
static_configs:
- targets: ["localhost:9100", "localhost:9990", "localhost:9090"]
labels:
group: 'system'
- job_name: "application"
metrics_path: "/application/rest/metrics"
static_configs:
- targets: ["localhost:8080"]
labels:
group: 'application'
rate(http_requests_total[5m] @ 1609746000)
#This returns the 5-minute rate that http_requests_total had at 2021-01-04T07:40:00+00:00
你好,谁能帮我解释一下上面这句话是什么意思?我是普罗米修斯的新手,我对速率函数中的确切时间有点困惑。
假设我有一个名为的计数器requests
,代表我的服务器处理的请求数。它有一个名为customer
指示哪个客户提出请求的标签。
我想知道“每个客户在过去 24 小时内发出了多少个请求”,我发现我可以通过查询从 Prometheus 获取此信息:
sum by (customer) (sum_over_time(requests[1d]))
这给了我一个可读性中等的表格,如下所示:
{customer="Googley"} | 123
{customer="ApplesAndOranges"} | 256
当我尝试在 Grafana 中获取相同的表视图时,问题就出现了。我正在仪表板上创建一个新表,然后插入上面的相同查询。但 Grafana 为我提供了基于时间的显示而不是摘要!它在表格底部包含一个选择器,用于选择要显示时间序列数据的客户。
我如何说服 Grafana 在表格中向我显示整个时间段的摘要数字,类似于 Prometheus 的做法?
查询 Prometheus 时
process_cpu_seconds_total{instance="localhost:9090"}
我看到浏览器进行了一次调用,其中查询参数time中使用了当前时间:
curl 'http://localhost:9090/api/v1/query?query=process_cpu_seconds_total%7Binstance%3D%22localhost%3A9090%22%7D&time=1700078953.325' \
--compressed
结果
{"status":"success","data":{"resultType":"vector","result":[{"metric":{"__name__":"process_cpu_seconds_total","instance":"localhost:9090","job":"prometheus"},"
value":[1700078953.325,"0.82"]}]}}%
始终与作为查询参数给出的时间戳匹配。
当我查询范围向量时,结果接近我的预期,浏览器仍然使用当前时间作为查询参数,但在结果中通常不存在这个时间,因为指标仅每 15 秒抓取一次。
curl 'http://localhost:9090/api/v1/query?query=process_cpu_seconds_total%7Binstance%3D%22localhost%3A9090%22%7D%5B1m%5D&time=1700078953.325' \
--compressed
{"status":"success","data":{"resultType":"matrix","result":[{"metric":{"__name__":"process_cpu_seconds_total","instance":"localhost:9090","job":"prometheus"},"
values":[[1700078900.426,"0.8"],[1700078915.427,"0.8"],[1700078930.388,"0.82"],[1700078945.388,"0.82"]]}]}}%
当我们请求查询即时向量时,为什么普罗米修斯总是假装知道现在的值?
假设我有两个不同的指标,具有不同的标签名称,但具有相同的一组值:
metric1{label1="some_values_the_same_as_in_metric2"} val examples: val1 val2 val3
metric2{label2="some_values_the_same_as_in_metric1"} val examples: val2 val3
现在我想用 label1 查询 metric1 但过滤掉与 metric2 label2 中具有相同值的所有指标
我知道我可以metric1{label1!=~"val2|val3"}
但是,如果我在 metric1 中有 300 个值,在 metric2 中有 200 个值,并且这些值会随着时间的推移而改变,该怎么办?如何动态过滤掉它?
尝试了很多这样的事情:
metric_name1 unless metric_name2 on(common_label) group_left
但没有成功