使用 ElasticSearch 数据源的每次速率指标

Rate metric per time with ElasticSearch datasource

我在 Grafana 中使用 ElasticSearch 作为数据源。 我有一个 ES 索引,其中每个文档都代表一个 HTTP 请求。我想创建一个图表来显示给定时间间隔内的请求率(每秒,每分钟)。

基本上,我希望可以使用 rate() 函数重现普罗米修斯提供的功能:https://prometheus.io/docs/prometheus/latest/querying/functions/#rate

根据我的实际研究,我认为我应该在 Grafana 中使用 "derivative" 选项,与计数指标相关联,但我不确定如何配置它以绘制正确的结果。

此外,我正在使用具有自定义间隔(例如 2m、3m)的模板化 interval 变量...是否可以使用 $__interval_ms 内置变量来计算速率。我的意思是,这个内置函数是根据我的自定义间隔自动计算的,还是仅适用于 auto 值?如果不是,我将如何使用像 5m 这样的时间间隔来执行算术计算它的速率?

谢谢

通过为我记录的每个请求添加一个虚拟字段来解决这个问题,其中的内容只是值 1。然后在 grafana 中,我可以使用 sum 聚合器和一个允许我计算的内联脚本给定时间间隔(如 5 米)的速率,其中脚本只是 *value / 60*5*.