Este producto no es compatible con el sitio Datadog seleccionado. ().
Disponible para:

Registros

Descripción general

Este procesador divide matrices anidadas en eventos distintos para que pueda consultar, filtrar, alertar y visualizar datos dentro de una matriz. Las matrices deben estar ya analizadas. Por ejemplo, el procesador puede procesar [item_1, item_2], pero no puede procesar "[item_1, item2]". Los elementos de la matriz pueden ser objetos JSON, cadenas, números enteros, números de punto flotante o valores booleanos. Todos los campos no modificados se agregan a los eventos secundarios. Por ejemplo, si está enviando los siguientes elementos al Observability Pipelines Worker:

{
    "host": "my-host",
    "env": "prod",
    "batched_items": [item_1, item_2]
}

Utilice el procesador Split Array para enviar cada elemento en batched_items como un evento independiente:

{
    "host": "my-host",
    "env": "prod",
    "batched_items": item_1
}
{
    "host": "my-host",
    "env": "prod",
    "batched_items": item_2
}

Consulte el ejemplo de matriz dividida para obtener un ejemplo más detallado.

Configuración

Para configurar este procesador:

Haga clic en Manage arrays to split para agregar una matriz a dividir o editar una matriz existente a dividir. Esto abre un panel lateral.

  • Si aún no ha creado ninguna matriz, introduzca los parámetros de la matriz como se describe en la sección Agregar una nueva matriz a continuación.
  • Si ya ha creado matrices, haga clic en la fila de la matriz en la tabla para editarla o eliminarla. Utilice la barra de búsqueda para encontrar una matriz específica y, a continuación, seleccione la matriz para editarla o eliminarla. Haga clic en Add Array to Split para agregar una nueva matriz.

Agregar una nueva matriz

  1. Defina una filter query. Consulte Sintaxis de búsqueda de registros para obtener más información.
    • Solo se procesan los registros que coinciden con el filtro.
    • Todos los registros, independientemente de si coinciden con la consulta de filtro, se envían al siguiente paso de la canalización.
  2. Introduzca la ruta al campo de la matriz. Utilice la notación de ruta <OUTER_FIELD>.<INNER_FIELD> para hacer coincidir subcampos. Consulte el ejemplo de notación de ruta a continuación.
  3. Haga clic en Save.

Ejemplo de división de matriz

Este es un ejemplo de evento:

{
    "ddtags": ["tag1", "tag2"],
    "host": "my-host",
    "env": "prod",
    "message": {
        "isMessage": true,
        "myfield" : {
            "timestamp":14500000,
            "firstarray":["one", 2]
        },
    },
    "secondarray": [
    {
        "some":"json",
        "Object":"works"
    }, 44]
}

Si el procesador está dividiendo las matrices "message.myfield.firstarray" y "secondarray", genera eventos secundarios que son idénticos al evento principal, excepto por los valores de "message.myfield.firstarray" y "secondarray",, que se convierten en un solo elemento de su respectiva matriz original. Cada evento secundario es una combinación única de elementos de las dos matrices, por lo que en este ejemplo se crean cuatro eventos secundarios (2 elementos * 2 elementos = 4 combinaciones).

{
    "ddtags": ["tag1", "tag2"],
    "host": "my-host",
    "env": "prod",
    "message": {
        "isMessage": true,
        "myfield" : {"timestamp":14500000, "firstarray":"one"},
    },
    "secondarray": {
        "some":"json",
        "Object":"works"
    }
}
{
    "ddtags": ["tag1", "tag2"],
    "host": "my-host",
    "env": "prod",
    "message": {
        "isMessage": true,
        "myfield" : {"timestamp":14500000, "firstarray":"one"},
        },
    "secondarray": 44
}
{
    "ddtags": ["tag1", "tag2"],
    "host": "my-host",
    "env": "prod",
    "message": {
        "isMessage": true,
        "myfield" : {"timestamp":14500000, "firstarray":2},
        },
    "secondarray": {
            "some":"json",
            "object":"works"
        }
}
{
    "ddtags": ["tag1", "tag2"],
    "host": "my-host",
    "env": "prod",
    "message": {
        "isMessage": true,
        "myfield" : {"timestamp":14500000, "firstarray":2},
        },
    "secondarray": 44
}

Ejemplo de notación de ruta

For this log structure example:

{
    "outer_key": {
        "inner_key": "inner_value",
        "a": {
            "double_inner_key": "double_inner_value",
            "b": "b value"
        },
        "c": "c value"
    },
    "d": "d value"
}

Follow these reference rules:

  • Use outer_key.inner_key to reference the key with the value inner_value.
  • Use outer_key.a.double_inner_key to reference the key with the value double_inner_value.

To specify a nested field with a literal . in the attribute key, wrap the key in escaped quotes in the search query. For example, the search query "service.status":disabled matches the event {"service.status": "disabled"}.