如何向 Prometheus 公开非实时指标
How to expose non-realtime metrics to Prometheus
我正在使用 Java 客户端对导出器进行检测,它将向 Prometheus 公开可能已经在缓冲区中放置了一段时间的指标。每个指标都有一个时间戳,所以我确切地知道收集指标的时间。但是,我在构建指标时很难使用时间戳,即使 Collector.MetricFamilySamples.Sample class 有一个 timestampMs 字段。这对于摘要或直方图等分位数指标尤其困难。我可以使用 Summary.observe() 将度量值传递给它,但我不能同时传递指示观察时间的时间戳。
请问正确的做法是什么?谢谢!
Prometheus 并非为此而设计。最好的办法是在指标进入缓冲区之前报告指标。如果做不到这一点,我建议按原样报告没有时间戳的指标,并忍受不同的滞后。
我正在使用 Java 客户端对导出器进行检测,它将向 Prometheus 公开可能已经在缓冲区中放置了一段时间的指标。每个指标都有一个时间戳,所以我确切地知道收集指标的时间。但是,我在构建指标时很难使用时间戳,即使 Collector.MetricFamilySamples.Sample class 有一个 timestampMs 字段。这对于摘要或直方图等分位数指标尤其困难。我可以使用 Summary.observe() 将度量值传递给它,但我不能同时传递指示观察时间的时间戳。
请问正确的做法是什么?谢谢!
Prometheus 并非为此而设计。最好的办法是在指标进入缓冲区之前报告指标。如果做不到这一点,我建议按原样报告没有时间戳的指标,并忍受不同的滞后。