Enrichment Table Processor
This page is not yet available in Spanish. We are working on its translation.
If you have any questions or feedback about our current translation project,
feel free to reach out to us!Use this processor to enrich your logs with information from a reference table, which could be a local file or database.
To set up the enrichment table processor:
- Define a filter query. Only logs that match the specified filter query are processed. All logs, regardless of whether they do or do not match the filter query, are sent to the next step in the pipeline.
- Enter the source attribute of the log. The source attribute’s value is what you want to find in the reference table.
- Enter the target attribute. The target attribute’s value stores, as a JSON object, the information found in the reference table.
- Select the type of reference table you want to use, File or GeoIP.
- For the File type:
- Enter the file path.
- Enter the column name. The column name in the enrichment table is used for matching the source attribute value. See the Enrichment file example.
- For the GeoIP type, enter the GeoIP path.
Enrichment file example
For this example, merchant_id
is used as the source attribute and merchant_info
as the target attribute.
This is the example reference table that the enrichment processor uses:
merch_id | merchant_name | city | state |
---|
803 | Andy’s Ottomans | Boise | Idaho |
536 | Cindy’s Couches | Boulder | Colorado |
235 | Debra’s Benches | Las Vegas | Nevada |
merch_id
is set as the column name the processor uses to find the source attribute’s value. Note: The source attribute’s value does not have to match the column name.
If the enrichment processor receives a log with "merchant_id":"536"
:
- The processor looks for the value
536
in the reference table’s merch_id
column. - After it finds the value, it adds the entire row of information from the reference table to the
merchant_info
attribute as a JSON object:
merchant_info {
"merchant_name":"Cindy's Couches",
"city":"Boulder",
"state":"Colorado"
}
Sintaxis de las consultas de filtro
Cada procesador tiene una consulta de filtro correspondiente en sus campos. Los procesadores sólo procesan los logs que coinciden con su consulta de filtro. Y en todos los procesadores, excepto el procesador de filtro, los logs que no coinciden con la consulta se envían al siguiente paso de la cadena. Para el procesador de filtro, los logs que no coinciden con la consulta se descartan.
Para cualquier atributo, etiqueta (tag) o par key:value
que no sea un atributo reservado, la consulta debe empezar por @
. Por el contrario, para filtrar atributos reservados, no es necesario añadir @
delante de la consulta de filtro.
Por ejemplo, para filtrar y descartar logs status:info
, tu filtro puede definirse como NOT (status:info)
. Para filtrar y descartar system-status:info
, el filtro debe ser NOT (@system-status:info)
.
Ejemplos de consulta de filtro:
NOT (status:debug)
: Esto filtra sólo los logs que no tienen el estado DEBUG
.status:ok service:flask-web-app
: Esto filtra todos los logs con el estado OK
de tu servicioflask-web-app
.- Esta consulta también se puede escribir como:
status:ok AND service:flask-web-app
.
host:COMP-A9JNGYK OR host:COMP-J58KAS
: Esta consulta de filtro sólo coincide con los logs de hosts etiquetados.@user.status:inactive
: Esto filtra los logs con el estado inactive
anidado bajo el atributo user
.
Las consultas ejecutadas en el worker de Observability Pipelines distinguen entre mayúsculas y minúsculas. Obtén más información sobre cómo escribir consultas de filtro con la sintaxis de búsqueda de logs de Datadog.