Consideraciones sobre la administración de operaciones para el acelerador de zonas de aterrizaje de los Servicios AIS
En este artículo se proporcionan consideraciones y recomendaciones para la administración y supervisión de operaciones al usar las ofertas de AIS.
La mayoría de las recomendaciones de esta sección se aplican a la versión Estándar (inquilino único) de Logic Apps, que forma parte de la oferta de Azure App Service y comparte muchas de las mismas funcionalidades de administración.
Muchos recursos que componen AIS se pueden configurar para almacenar datos de registro, telemetría y métricas en Log Analytics o Application Insights, o en ubicaciones de almacenamiento personalizadas (estos recursos pueden ser cuentas de almacenamiento, Event Hubs y otros).
Podemos utilizar esta información para visualizar el estado general de nuestros recursos y realizar las acciones de administración adecuadas.
Definiciones
Los registros de Azure Monitor recopilan y organizan los datos de registro y rendimiento de los recursos supervisados. Las herramientas como Log Analytics pueden consultar o visualizar esta información de registro o permitirle emitir una alerta si se cumplen determinadas condiciones.
Los registros de métricas de Azure recopilan datos numéricos de los recursos supervisados en una base de datos de serie temporal. Las herramientas como Application Insights pueden visualizar estos datos, lo que le ayudará a identificar problemas de rendimiento y tiempo de ejecución.
Log Analytics es una oferta de supervisión de Azure que proporciona una ubicación para almacenar los datos de registro y rendimiento, proporciona un mecanismo y un lenguaje para consultar esos registros (Kusto); y proporciona la capacidad de crear alertas y paneles basados en esos registros (entre otras funcionalidades).
Application Insights es una oferta de supervisión de Azure que proporciona la capacidad de visualizar y emitir alertas sobre los datos de rendimiento emitidos por los recursos supervisados.
Lenguaje de consulta Kusto (KQL) es un lenguaje de consulta eficaz optimizado para consultar y dar formato a los datos. Por ejemplo, es el lenguaje de consulta principal de Log Analytics.
Consideraciones de diseño
Considere la solución de supervisión en su conjunto:
¿Qué recursos necesita supervisar?
¿Cómo realizará un seguimiento de los mensajes que fluyen entre los recursos?
¿A qué sistemas externos se conectará?
¿Qué tipos de alertas necesitará?
Piense en qué consultas necesita ejecutar. Por ejemplo, ¿necesitará saber si una solicitud determinada tarda más de lo esperado? ¿O si recibe un único error frente a un clúster de errores?
¿Qué nivel de seguimiento necesitará? Por ejemplo, si llega un mensaje de un tercero, ¿necesita realizar un seguimiento de ese mensaje a través de todos los recursos asociados?
¿Qué tareas de administración necesitará realizar? ¿Necesitará volver a enviar mensajes o archivos?
El historial de ejecución de la aplicación lógica se almacena en Azure Storage de manera predeterminada, pero también puede optar por exportar métricas y archivos de registro a otros orígenes (por ejemplo, Log Analytics o una cuenta de almacenamiento externa). Tenga en cuenta cómo usa la información de registro y si usa un almacén de registros centralizado.
Application Insights se usa para proporcionar supervisión del rendimiento de las aplicaciones. Para ello, recopila métricas de los recursos que componen la solución.
Log Analytics se usa para consultar registros y configurar alertas, lo que le permite ver el estado de los recursos y comprender los problemas que pueden producirse. Los datos de registro pueden incluir propiedades personalizadas (vea Propiedades de seguimiento a continuación).
Consulte el artículo de administración del acelerador de zonas de aterrizaje de App Service para obtener más consideraciones y recomendaciones específicas de App Services.
Recomendaciones de diseño
Configure Application Insights para que use un área de trabajo de Log Analytics como origen de datos (conocido como recurso basado en área de trabajo). De este modo, los datos de registro y rendimiento se mantienen en una ubicación consolidada.
Configure alertas para que todos los recursos notifiquen a los equipos adecuados de eventos relacionados con recursos individuales o a la carga de trabajo.
Vincule los recursos de la solución a Application Insights, si se admite. Por ejemplo, una aplicación lógica se puede vincular a Application Insights para que los datos en tiempo de ejecución y las métricas estén disponibles para realizar consultas. Vea aquí un ejemplo.
Use la característica clientTrackingId de Logic Apps para proporcionar un identificador de seguimiento personalizado, lo que le permite correlacionar eventos entre ejecuciones de aplicaciones lógicas. Puede usar el encabezado x-ms-client-tracking-id para lograr este resultado con los desencadenadores Request, HTTP o HTTP+WebHook.
Use la característica Propiedades de seguimiento de Logic Apps para registrar otros datos (entrada o salida) desde una acción en los archivos de registro. Estas propiedades están disponibles para su uso al consultar registros mediante KQL con Log Analytics u otra solución.
Considere la posibilidad de usar etiquetas de recursos. Las etiquetas de recursos pueden ayudarle a administrar y organizar los recursos en Azure. También se pueden usar para asignar metadatos a recursos. Puede usar estos metadatos para diversos fines, como clasificar los recursos por aplicación o unidad de negocio, realizar el seguimiento del costo de los recursos e identificar los recursos para el cumplimiento.
Ejemplos de consultas de Kusto
Las consultas siguientes muestran cómo consultar las tres tablas principales usadas para los datos de registro de AIS. Se puede acceder a cada una de estas tablas desde la opción Registros de la sección Supervisión de la aplicación lógica.
Las tablas de consulta principales son:
exceptions
Esta tabla contiene las excepciones registradas por el recurso, como las excepciones producidas por el entorno de ejecución de la aplicación lógica. Se puede usar para buscar la causa subyacente de cualquier problema que vea, ya sea en el portal o durante la ejecución del código.requests
En esta tabla se registran todas las solicitudes realizadas por el entorno de ejecución de la aplicación lógica en otro recurso O en acciones específicas dentro del flujo de trabajo.traces
Esta tabla contiene la mayor parte de los registros de tiempo de ejecución de Logic Apps, los detalles de registro sobre la ejecución del desencadenador, el inicio y la detención del flujo de trabajo y la ejecución de acciones. Si ha registrado propiedades con seguimiento de las acciones, encontrará estos datos en la sección customDimensions . A continuación, puede usar la cláusula extend en una consulta para agregar los datos como columnas en la respuesta de la consulta.
Flujos de trabajo con errores:
> traces
>
> \| where customDimensions\["Category"\] == "Host.Triggers.Workflows"
>
> \| where customDimensions.LogLevel == "Error"
Número de ejecuciones de flujo de trabajo en las últimas 24 horas en todos los flujos de trabajo:
> traces
>
> \| where customDimensions\["Category"\] == "Host.Triggers.Workflows"
>
> \| where customDimensions\["EventName"\] == "WorkflowActionStart"
>
> \| where timestamp \> ago(1d)
>
> \| count
Tasa de éxito del desencadenador, grafo con el tiempo
> traces
> \| where customDimensions\["Category"\] == "Host.Triggers.Workflows"
> \| where customDimensions\["EventName"\] == "WorkflowTriggerEnd"
> \|summarize
>
> success = countif(customDimensions\["prop\_\_status"\] ==
> "Succeeded"),
>
> failures = countif(customDimensions\["prop\_\_status"\] == "Failed")
>
> by bin(timestamp, 1m)
> \| render timechart
Paso siguiente
Revise las áreas de diseño críticas para realizar consideraciones y recomendaciones completas de la arquitectura.