Memory enrichment table: Difference between global enrichment_tables
config vs usage as sink
#23150
-
I am trying to wrap my head around the the memory enrichment tables as highlighted in https://vector.dev/highlights/2025-02-24-memory_enrichment_table/ I pretty much understand everything written in that article, until the very last section called "Use as a sink": What is the difference between defining the enrichment table using the global configuration option
I am so confused. Kindly pinging @esensar, because I strongly assume he knows it best :) |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 8 replies
-
I think I might get it, after looking at the sources. The last section of https://vector.dev/highlights/2025-02-24-memory_enrichment_table/ is highly misleading, maybe even wrong. This is my understanding now:
Quote from the linked article:
This sentence probably tries to convey the fact that the configured enrichment table automatically generates a sink that looks roughly like that YAML snippet. (Although that is not entirely correct, since the name of the sink will be |
Beta Was this translation helpful? Give feedback.
Hey @ChristianCiach
Sorry about the confusing feature 😄
I agree, it is generally pretty confusing in its current state and I didn't do a good job of explaining it in the docs.
You are right, the sink is generated automatically (and the source too, if you use it). This whole component is a special case in
vector
codebase, which contributes to this unusual way of defining it.The reasoning for not having a separate sink, but having it be automatically generated is that it is useless if not used as a sink. The only way to populate that table is to use it as a sink. It also requires data formatted in a specific way, which means in most cases you will also need a special remap transform made j…