添加缓存的元数据
编辑添加缓存的元数据编辑
此功能处于技术预览阶段,可能会在未来的版本中更改或删除。 Elastic 将努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。
cache
处理器使用先前缓存事件中的信息来丰富事件。
processors: - cache: backend: memory: id: cache_id put: key_field: join_key_field value_field: source_field
processors: - cache: backend: memory: id: cache_id get: key_field: join_key_field target_field: destination_field
processors: - cache: backend: memory: id: cache_id delete: key_field: join_key_field
添加到目标字段的字段将取决于提供程序。
它具有以下设置
必须提供 backend.memory.id
或 backend.file.id
之一。
-
backend.capacity
- 可以存储在缓存中的元素数量。会导致容量超出的
put
操作将导致最早元素的逐出。零或小于零的值表示没有限制。容量不应低于处理输入时预期引用的元素数量,因为逐出的元素会丢失。默认值为0
,无限制。 -
backend.memory.id
- 基于内存的缓存的 ID。在实例之间使用相同的 ID 来引用相同的缓存。
-
backend.file.id
- 基于文件的缓存的 ID。在实例之间使用相同的 ID 来引用相同的缓存。
-
backend.file.write_interval
- 定期将缓存写入支持文件的间隔时间。有效的时间单位为 h、m、s、ms、us/µs 和 ns。仅当
backend.file.write_interval
大于零时,才会进行定期写入。当处理器关闭时,内容始终会写入支持文件。默认值为零,不进行定期写入。
必须提供 put
、get
或 delete
之一。
-
put.key_field
- 包含要放入缓存中的键的字段的名称。如果存在
put
,则为必需项。 -
put.value_field
- 包含要放入缓存中的值的字段的名称。如果存在
put
,则为必需项。 -
put.ttl
- 要与缓存的键/值关联的 TTL。有效的时间单位为 h、m、s、ms、us/µs 和 ns。如果存在
put
,则为必需项。 -
get.key_field
- 包含要获取的键的字段的名称。如果存在
get
,则为必需项。 -
get.target_field
- 要将缓存值写入的字段的名称。如果存在
get
,则为必需项。 -
delete.key_field
- 包含要删除的键的字段的名称。如果存在
delete
,则为必需项。 -
ignore_missing
- (可选)如果设置为
false
,则不包含match_keys
中任何字段的事件将被丢弃,并且会生成错误。默认情况下,此条件会被忽略。 -
overwrite_keys
- (可选)默认情况下,如果目标字段已存在,则不会被覆盖,并且会记录错误。如果
overwrite_keys
设置为true
,则此条件将被忽略。
cache
处理器可用于在 Beat 内部的事件流中的文档之间执行连接。
processors: - if: contains: log.file.path: fdrv2/aidmaster then: - cache: backend: memory: id: aidmaster capacity: 10000 put: ttl: 168h key_field: crowdstrike.aid value_field: crowdstrike.metadata else: - cache: backend: memory: id: aidmaster get: key_field: crowdstrike.aid target_field: crowdstrike.metadata
这将使用 log.file.path
等于 "fdrv2/aidmaster" 的事件中的 crowdstrike.metadata
字段来丰富 log.file.path
不等于该值的事件,其中 crowdstrike.aid
字段在源文档和目标文档之间匹配。容量允许在 put
和 get
操作之间缓存最多 10,000 个元数据对象。