Flume 活动修改
Flume event modification
如何在Flume的每个事件的前面添加时间戳?
说我有这个日志,但我也想添加时间戳
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326
2016-05-95 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326
假设您的意思是在事件主体字节的开头添加时间戳,那么没有预制拦截器来执行您的要求(搜索和替换拦截器无法替换为动态值,例如日期)。
然而,编写一个拦截器为每个事件主体添加当前时间戳应该是微不足道的。
以现有拦截器的源代码为例,编译代码并将 jar 部署到名为 $FLUME_HOME/plugins.d/my-plugins/lib/my-plugin.jar
的新文件夹中
这是标准 flume 拦截器的 link 当前源:
但基本上您只需要创建一个实现 Interceptor
接口的 class,并创建一个 Interceptor.Builder
实现。
您可以使用 Flume 拦截器:https://flume.apache.org/FlumeUserGuide.html#flume-interceptors
修改事件。
您可以编写自己的 类 来实现您正在寻找的功能,或者您也可以使用 Morphline 拦截器。
如果不需要更改 body,您可以只使用时间戳拦截器将时间戳添加到 headers。
我通过使用 Morphline 解决了这个问题,在下面添加了这些函数,其中时间戳被添加到 flume 的每个事件的开头。
{
addCurrentTime { 字段:时间戳 }
},<br>
{
设置值{
_result = "@{时间戳}|@{消息}"
}
},
如何在Flume的每个事件的前面添加时间戳? 说我有这个日志,但我也想添加时间戳
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 2016-05-95 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326
假设您的意思是在事件主体字节的开头添加时间戳,那么没有预制拦截器来执行您的要求(搜索和替换拦截器无法替换为动态值,例如日期)。
然而,编写一个拦截器为每个事件主体添加当前时间戳应该是微不足道的。
以现有拦截器的源代码为例,编译代码并将 jar 部署到名为 $FLUME_HOME/plugins.d/my-plugins/lib/my-plugin.jar
这是标准 flume 拦截器的 link 当前源:
但基本上您只需要创建一个实现 Interceptor
接口的 class,并创建一个 Interceptor.Builder
实现。
您可以使用 Flume 拦截器:https://flume.apache.org/FlumeUserGuide.html#flume-interceptors 修改事件。
您可以编写自己的 类 来实现您正在寻找的功能,或者您也可以使用 Morphline 拦截器。
如果不需要更改 body,您可以只使用时间戳拦截器将时间戳添加到 headers。
我通过使用 Morphline 解决了这个问题,在下面添加了这些函数,其中时间戳被添加到 flume 的每个事件的开头。
{
addCurrentTime { 字段:时间戳 }
},<br>
{
设置值{
_result = "@{时间戳}|@{消息}"
}
},