如何在设置处理器中设置条件(摄取节点管道)
How to set a condition in set processor (ingest node pipeline)
我的文档看起来像这样,我需要访问 log.level 这是一个嵌套字段。有人可以帮我吗,因为我需要一个条件来设置一个名为 statuscode 的新字段 if log.level=error.
{
"docs": [
{
"doc": {
"_index": "filebeat-mycluster",
"_type": "_doc",
"_id": "Xdffefepodmlajddwq",
"_source": {
"messageinfo": {
"log.origin": {
"file.line": 131
},
"@timestamp": "2021-11-15T10:07:36.125Z",
"service.name": "my-server",
"ecs.version": "1.6.0",
"log.level": "error",
"message": "Failed"
}
}
}
]
}
就是这样:
{
"set": {
"if": "ctx.messageinfo['log.level'] == 'error'",
"field": "statuscode",
"value": "whatever"
}
}
请注意,如果您的 log.level
字段已正确去点化,您可以这样做:
{
"set": {
"if": "ctx.messageinfo.log.level == 'error'",
"field": "statuscode",
"value": "whatever"
}
}
我的文档看起来像这样,我需要访问 log.level 这是一个嵌套字段。有人可以帮我吗,因为我需要一个条件来设置一个名为 statuscode 的新字段 if log.level=error.
{
"docs": [
{
"doc": {
"_index": "filebeat-mycluster",
"_type": "_doc",
"_id": "Xdffefepodmlajddwq",
"_source": {
"messageinfo": {
"log.origin": {
"file.line": 131
},
"@timestamp": "2021-11-15T10:07:36.125Z",
"service.name": "my-server",
"ecs.version": "1.6.0",
"log.level": "error",
"message": "Failed"
}
}
}
]
}
就是这样:
{
"set": {
"if": "ctx.messageinfo['log.level'] == 'error'",
"field": "statuscode",
"value": "whatever"
}
}
请注意,如果您的 log.level
字段已正确去点化,您可以这样做:
{
"set": {
"if": "ctx.messageinfo.log.level == 'error'",
"field": "statuscode",
"value": "whatever"
}
}