Tutoriales

Configurar notificaciones de Dataflow en Onesait Platform

Dataflow es una herramienta que permite la definición y ejecución de flujos de datos. En esta entrada vamos a ver cómo podemos configurar alertas utilizando Webhooks. Para una descripción de las funcionalidades de Dataflow en la Plataforma, os recomendamos que reviséis la documentación que tenemos preparada en el Portal de Desarrollo.

En concreto, vamos a ver el ejemplo utilizando Microsoft Teams para enviar las notificaciones, pero se podría usar cualquier otro sistema que permita mandar mensajes mediante HTTP.

Configurar un canal en Microsoft Teams

Lo primero que hay que hacer es configurar el canal en Teams para crear un «Connector». Este paso está explicado en detalle en la documentación de Microsoft Teams, pero a modo resumen, basta decir que hay que abrir las opciones del canal en el que se quieran escribir las notificaciones, ir a la opción «Connectors», y crear un conector de tipo «Incoming Webhook».

Una vez configurado el conector, nos proporcionará un URL:

Configurar el pipeline

Esta URL es la que nos va a permitir mandar mensajes al canal en cuestión. Basta con que la copiemos y vayamos a la configuración de notificaciones del pipeline de Onesait Platform que queramos que mande notificaciones al canal de Teams.

Hay que copiar la URL en el recuadro «Webhook URL». Como se puede ver, simplemente hay que configurar la cabecera «Content-Type» con valor «application/json» y utilizar el método POST para enviar el mensaje a Teams. Dentro de las notificaciones se puede indicar el estado que queremos que genere una notificación.

El formato del mensaje debe seguir las especificaciones de Teams. El siguiente JSON es un ejemplo de mensaje válido:

{
    "@type": "MessageCard",
    "@context": "http://schema.org/extensions",
    "themeColor": "0076D7",
    "title": "Alerta entorno PRO, cambio de estado en pipeline '{{PIPELINE_TITLE}}'",
    "summary": "Pipeline '{{PIPELINE_TITLE}}' state changed to {{PIPELINE_STATE}} at {{TIME}}",
    "sections": [{
        "activityTitle": "Pipeline '{{PIPELINE_TITLE}}' state changed to {{PIPELINE_STATE}} at {{TIME}}",
        "activitySubtitle": "Cambio de estado en pipeline",
        "activityImage": "https://indra365.sharepoint.com/:i:/r/sites/Grp_T_OnesaitPlatformCloud2-TestingDataflowWebhook/Documentos%20compartidos/Testing%20Dataflow%20Webhook/warning.png?csf=1&web=1&e=6VvXZL",
        "facts": [{
            "name": "Status Message",
            "value": "{{PIPELINE_STATE_MESSAGE}}"
        }, {
            "name": "Input Records Count", 
            "value": "{{PIPELINE_INPUT_RECORDS_COUNT}}"
        }, {
            "name": "Output Records Count", 
            "value": "{{PIPELINE_OUTPUT_RECORDS_COUNT}}"
        }, {
            "name": "Error Records Count", 
            "value": "{{PIPELINE_ERROR_RECORDS_COUNT}}"
        }, {
            "name": "Error Messages Count", 
            "value": "{{PIPELINE_ERROR_MESSAGES_COUNT}}"
        }, {
            "name": "Runtime Parameters", 
            "value": "{{PIPELINE_RUNTIME_PARAMETERS}}"
        }],
        "markdown": true
    }],
    "potentialAction": [{
        "@type": "OpenUri",
        "name": "Go to ControlPanel",
        "targets": [{
            "os": "default",
            "uri": "https://development.onesaitplatform.com/controlpanel"
        }]
    }]
}

En el siguiente ejemplo se muestra un mensaje ante la parada del pipeline:

Resumen

En este caso se ha visto cómo se generan notificaciones en Teams notificaciones sobre el estado de Onesait Platform Dataflow con muy poco esfuerzo. Además, si es necesario también se pueden crear notificaciones basadas en reglas sobre métricas de los flujos de datos y sobre valores de los propios datos.

Imagen de cabecera: Microsoft

✍🏻 Author(s)

Deja una respuesta