在logstash中平均多个字段

发布于 2025-01-18 17:40:04 字数 220 浏览 2 评论 0原文

我有一个事件,该事件带有可变数量的字段{“ dev_1”:12,“ dev_2”:34,...}。我应该考虑哪些LogStash过滤器来产生这些字段的平均值,例如{“ device_avg”:23}

我不知道提前确切的字段名称。我需要对匹配dev _*的所有字段进行一些模式匹配,但是我不确定这是我可以简单地使用聚合过滤器

I have an event that comes through with a variable number of fields { "dev_1": 12, "dev_2": 34, ... }. What logstash filters should I look at to produce an average of those fields, something like { "device_avg": 23 }?

I don't know the exact field names ahead of time. I will need to do some pattern matching to average all fields that match dev_* but I'm not sure if that is something I can do simply with an aggregate filter

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷…雨湿花 2025-01-25 17:40:05

您必须使用红宝石过滤器。尝试

    ruby {
        code => '
            total = 0
            count = 0
            event.to_hash.each { |k, v|
                if k =~ /^dev_/
                    count += 1
                    total += v.to_f
                end
            }
            if count > 0 ; event.set("average", total/count) ; end
        '
    }

You would have to use a ruby filter. Try

    ruby {
        code => '
            total = 0
            count = 0
            event.to_hash.each { |k, v|
                if k =~ /^dev_/
                    count += 1
                    total += v.to_f
                end
            }
            if count > 0 ; event.set("average", total/count) ; end
        '
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文