如何创建一个 lua 脚本以针对特定键为 fluentbit 进行限流

我想对每个 kubernetes 服务的日志进行限流 - 换句话说,针对特定标签或键应用限流过滤器。 Fluentd 具有 group_key 属性,可以在服务级别上启用限流,但 Fluent-bit 不具备此功能。

以下是限流过滤器的配置

[FILTER]
        Name     throttle
        Match    kube.*
        Rate     1000
        Window   300
        Interval 1s

Match 键为匹配标签 kube.* 的所有记录进行限流。我想能够在此处包括命名空间名称,并创建相同数量的限流过滤器,以根据特定命名空间进行限流。

有什么想法吗?

原文链接 https://stackoverflow.com/questions/71325507

点赞
stackoverflow用户17272331
stackoverflow用户17272331

下面的配置为每个命名空间添加了限流:

[FILTER]
    Name          throttle
    Match         kubernetes.*_my-namespace1_*
    Alias         my-namespace1
    Rate     1000
    Window   300
    Interval 1s

[FILTER]
    Name          throttle
    Match         kubernetes.*_my-namespace2_*
    Alias         my-namespace2
    Rate     1000
    Window   300
    Interval 1s
2022-03-22 17:51:11
stackoverflow用户8251531
stackoverflow用户8251531

你可以在 Fluent-bit 中使用 Lua 脚本基于 Kubernetes 服务进行速率限制。

示例脚本 - https://github.com/fluent/fluent-bit/blob/master/scripts/rate_limit.lua

2023-02-22 17:20:40