使用转换将所有以 "id" 结尾的字段转换为整数?



目前我在我的logstash配置文件中做了这样的事情:

filter {
    ...
    mutate {
        ...
        convert => {
            "blahId" => "integer"
            "blahblahId" => "integer"
            ...
            ...
            "b...blahId" => "integer"
        }
        ...
    }
    ...
}

基本上我想把所有以"Id"结尾的字段转换为整数类型。有没有办法在一行中完成呢?像"*Id" => "integer"这样的东西可以做到这一点?

Edit: I tried

convert => {
    "*Id" => "integer"
}

如我所料,没有工作。

这不是一个具体的答案,但这是我最终做的:

ruby {
        code => "
            fieldArray = event['kvmess'].split('|');
            for field in fieldArray
                name = field.split('=')[0];
                value = field.split('=')[1];
                if value =~ /Ad+Z/
                    event[name] = value.to_i
                else
                    event[name] = value
                end
            end
        "
    }

我的kvmess是这样的"blahId=123|blahblahId=456|some=thing|b..blahId=789"。因此,这将所有具有数字值的键转换为整数类型。

有一个插件- kv专门用于此,但它没有将数据类型更改为int的功能,因此我最终使用了这个ruby插件。

相关内容

  • 没有找到相关文章

最新更新