You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Fluent-Bit向Loki发日志时用K8s元数据填充OTel资源属性?

解决Fluent-Bit通过OpenTelemetry输出向Loki添加动态标签的问题

核心方案

要从Kubernetes过滤器生成的元数据中提取字段填充otel_resource_attributes,可以通过以下两种动态字段映射方式实现:


方法一:使用Lua过滤器自定义字段映射

Lua过滤器支持直接访问日志中的Kubernetes元数据,编写简单逻辑将目标字段注入到OpenTelemetry资源属性中。

配置步骤

  1. 确保Kubernetes过滤器已正确提取元数据(比如kubernetes.container_name、kubernetes.labels.app等字段,需根据你的集群标签调整)
  2. 添加Lua过滤器配置:
[FILTER]
    Name             lua
    Match            kube.*
    script           otel_attr_mapper.lua
    call             inject_otel_attributes
  1. 创建otel_attr_mapper.lua脚本:
function inject_otel_attributes(tag, timestamp, record)
    -- 初始化资源属性对象
    record['otel_resource_attributes'] = record['otel_resource_attributes'] or {}

    -- 从K8s元数据提取container.name
    if record.kubernetes and record.kubernetes.container_name then
        record['otel_resource_attributes']['container.name'] = record.kubernetes.container_name
    end

    -- 从K8s标签提取service.name(示例用app标签,替换为你实际的服务标签)
    if record.kubernetes and record.kubernetes.labels and record.kubernetes.labels.app then
        record['otel_resource_attributes']['service.name'] = record.kubernetes.labels.app
    end

    return 2, timestamp, record
end

方法二:使用modify过滤器(Fluent-Bit v1.9+支持)

modify过滤器支持直接从现有字段提取值,快速完成字段映射,适合简单场景。

配置示例

[FILTER]
    Name             modify
    Match            kube.*
    -- 将K8s容器名映射到otel资源属性
    Add              otel_resource_attributes.container.name ${kubernetes.container_name}
    -- 将K8s服务标签映射到otel资源属性(替换为你的实际标签键)
    Add              otel_resource_attributes.service.name ${kubernetes.labels.app.kubernetes.io/name}

验证与注意事项

  • 先通过stdout输出插件确认Kubernetes过滤器已生成目标元数据字段,确保kubernetes.container_name、对应服务标签等存在
  • 重启Fluent-Bit后,检查Loki中是否生成container.name和service.name标签
  • 若服务标签不是app或app.kubernetes.io/name,需替换配置中的标签路径

内容的提问来源于stack exchange,提问作者Rajesh Dutta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 13:39:59