Controla la transferencia de registros de Dataflow

Los filtros de exclusión te permiten controlar el volumen de registros de Dataflow que transfiere Cloud Logging y, a la vez, hacer que el registro detallado esté disponible para la depuración. Puedes usar filtros de exclusión para evitar que Cloud Logging transfiera las entradas de registro coincidentes o que se enruten al destino del receptor. Crea filtros de exclusión mediante el lenguaje de consulta de Logging. El lenguaje de consulta de Logging te permite especificar un subconjunto de todas las entradas de registro en el recurso de Google Cloud seleccionado, como un proyecto o una carpeta.

Mediante los filtros de exclusión, puedes reducir los costos de Cloud Logging que se generan por la transferencia de registros de Dataflow. Para obtener más información sobre los precios de transferencia de registros de Cloud Logging, consulta el resumen de precios de Cloud Logging. Para obtener más detalles sobre cómo funcionan los filtros de exclusión y sus limitaciones, consulta Filtros de exclusión en la documentación de Cloud Logging.

Los trabajos de Dataflow emiten varios tipos de registro. En esta página, se muestra cómo filtrar los registros de trabajos y los registros de trabajadores de Dataflow.

Crea filtros de exclusión de registros

En este ejemplo, se crea un filtro de exclusión en el receptor de Cloud Logging _Default. El filtro excluye todos los registros de Dataflow de gravedad DEFAULT, DEBUG, INFO y NOTICE de Cloud Logging. Aún se capturan los registros de gravedad WARNING, ERROR, CRITICAL, ALERT y EMERGENCY. Para obtener más información sobre los niveles de registro compatibles, consulta LogSeverity.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  4. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  5. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

Permisos

Cuando comiences, asegúrate de que cumples con lo siguiente:

  • Tienes un proyecto de Google Cloud con registros que puedes ver en el Explorador de registros.

  • Tienes uno de los siguientes roles de IAM para el proyecto de Google Cloud de origen desde el que enrutas registros.

    • Propietario (roles/owner)
    • Administrador de Logging (roles/logging.admin)
    • Escritor de configuración de registros (roles/logging.configWriter)

    Los permisos contenidos en estos roles te permiten crear, borrar o modificar receptores. Para obtener información sobre los roles de IAM, consulta la Guía de control de acceso de Logging.

  • Tienes un recurso en un destino admitido o puedes crear uno.

    Debes crear el destino de enrutamiento antes del receptor, a través de Google Cloud CLI, la consola de Google Cloud o las APIs de Google Cloud. Puedes crear el destino en cualquier proyecto de Google Cloud en cualquier organización. Antes de crear el destino, asegúrate de que la cuenta de servicio del receptor tenga permisos para escribir en el destino.

Agrega un filtro de exclusión

En los siguientes pasos, se demuestra cómo agregar un filtro de exclusión de Cloud Logging a tus registros de Dataflow. Este filtro de exclusión selecciona todas las entradas de registro de Dataflow con la gravedad DEFAULT, DEBUG, INFO y NOTICE de los trabajos que tienen un nombre de trabajo de Dataflow que no termina en la string debug. El filtro excluye estos registros de la transferencia al bucket Default de Cloud Logging.

  1. En la consola de Google Cloud, ve a la página Enrutador de registros.

    Ir a Enrutador de registros

  2. Busca la fila con el receptor _Default, expande la opción Acciones y, luego, haz clic en Editar receptor.

  3. En Elige registros para filtrar fuera del receptor, en Crear un filtro de exclusión, haz clic en Agregar exclusión.

  4. Ingresa un nombre para tu filtro de exclusión.

  5. En la sección Crea un filtro de exclusión, pega el siguiente texto en el cuadro:

    resource.type="dataflow_step" AND
    labels."dataflow.googleapis.com/job_name"!~".*debug" AND
    severity=(DEFAULT OR DEBUG OR INFO OR NOTICE)
    
    • En la primera línea, se seleccionan todas las entradas de registro que generó el servicio de Dataflow.
    • La segunda línea selecciona todas las entradas de registro en las que el campo job_name no termina con la string debug.
    • En la tercera línea, se seleccionan todas las entradas de registro con la gravedad DEFAULT, DEBUG, INFO o NOTICE.
  6. Haz clic en Actualizar receptor.

Prueba tu filtro de exclusión

Para verificar que el filtro funcione de forma correcta, ejecuta un trabajo de Dataflow de muestra y, luego, visualiza los registros.

Una vez que tu trabajo comience a ejecutarse, para ver los registros del trabajo, completa los siguientes pasos:

  1. En la consola de Google Cloud, ve a la página Trabajos de Dataflow.

    Ir a Trabajos

    Aparecerá una lista de trabajos de Dataflow junto con su estado.

  2. Selecciona un trabajo.

  3. En la página Detalles del trabajo, en el panel Registros, haz clic en Mostrar.

  4. Verifica que no aparezcan registros en el panel Registros de trabajos y que no aparezcan registros DEFAULT, DEBUG, INFO o NOTICE en el panel Registros de trabajadores.

Omite el filtro de exclusión

El nombre del trabajo de Dataflow (job_name) se usa a fin de proporcionar un mecanismo de omisión para situaciones en las que se deben capturar los registros de Dataflow generados. Puedes usar esta omisión para volver a ejecutar un trabajo con errores y capturar toda la información del registro.

El filtro creado en esta situación conserva todas las entradas de registro cuando el campo job_name termina con la string debug. Cuando desees omitir el filtro de exclusión y mostrar todos los registros de un trabajo de Dataflow, agrega debug al nombre del trabajo. Por ejemplo, para omitir el filtro de exclusión, puedes usar el nombre del trabajo dataflow-job-debug.

Compara los recuentos de registros

Si deseas comparar el volumen de registros transferidos con y sin el filtro de exclusión, ejecuta un trabajo que incluya debug en su nombre y otro trabajo que no lo incluya. Usa los Bytes de registros de las métricas basadas en registros, definidas por el sistema, para ver y comparar los datos de transferencia. Para obtener más información sobre cómo ver los datos de transferencia, consulta Visualiza datos de transferencia en el Explorador de métricas.

Crea un destino externo

De manera opcional, después de crear el filtro de exclusión, puedes crear un receptor de Cloud Logging adicional. Usa este receptor para redireccionar el conjunto completo de registros de Dataflow a un destino externo compatible, como BigQuery, Pub/Sub o Splunk.

En este caso, los registros externos no se almacenan en el Explorador de registros, pero están disponibles en el destino externo. El uso de un destino externo te brinda más control sobre los costos que se generan por el almacenamiento de registros en el explorador de registros.

Para obtener detalles sobre cómo controlar la forma en que Cloud Logging enruta los registros, consulta Configura y administra receptores. Para capturar todos los registros de Dataflow en un destino externo, en el panel Elige registros para incluirlos en el receptor, en el campo Crear filtro de inclusión, ingresa la siguiente expresión de filtro:

resource.type="dataflow_step"

Para encontrar entradas de registro que enrutaste desde Cloud Logging a destinos compatibles, consulta Visualiza los registros en los destinos de los receptores.

Realiza un seguimiento de los mensajes de registro de Dataflow por gravedad

Los filtros de exclusión no se aplican a las métricas basadas en registros definidas por el usuario. Estas métricas cuentan la cantidad de entradas de registro que coinciden con un filtro determinado o registran valores particulares dentro de las entradas de registro coincidentes. Para realizar un seguimiento de los recuentos de mensajes de registro de Dataflow en función de la gravedad, puedes crear una métrica basada en registros para los registros de Dataflow. Se realiza un seguimiento de los registros incluso cuando los mensajes de registro se excluyen de la transferencia.

Se te facturará por las métricas basadas en registros definidas por el usuario. Para obtener información sobre los precios, consulta Métricas cobrables.

A fin de configurar las métricas basadas en registros definidas por el usuario, consulta Crea una métrica de contador. Para realizar un seguimiento de los registros de Dataflow, en la sección Selección del filtro, en el cuadro Crear compilación, ingresa el siguiente texto:

resource.type="dataflow_step"