添加缓存元数据

编辑

此功能为技术预览版,可能会在未来版本中更改或删除。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.idbackend.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 大于零时,才会进行定期写入。当处理器关闭时,内容总是会写入后备文件。默认值为零,不进行定期写入。

必须提供 putgetdelete 中的一个。

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 字段匹配。容量允许在 putget 操作之间缓存最多 10,000 个元数据对象。