Un sistema observable proporciona las herramientas para realizar los siguientes tipos de tareas:
Registro de información sobre eventos que ocurren en el sistema
Obtener métricas sobre el rendimiento del sistema, tanto en un momento concreto como durante un periodo de tiempo
Rastrear las solicitudes a medida que fluyen por el sistema
Hacer que los operadores del sistema sean conscientes del estado del sistema
Predicción del rendimiento futuro del sistema
Descubrimiento de la causa raíz de los problemas observados en el sistema
Las soluciones de telemetría permiten capturar registros, métricas y trazados. Las soluciones de monitorización mejoran la visibilidad de los datos de telemetría al proporcionar cuadros de mando y alertar a los administradores cuando el sistema funciona fuera de los umbrales predefinidos. Un sistema totalmente observable amplía las soluciones de telemetría y monitorización para permitir la predicción y el análisis de causa raíz.
La predicción consiste en utilizar la información que tiene sobre el rendimiento pasado y actual de un sistema para determinar su probable rendimiento futuro. La predicción puede ayudarle a tomar decisiones sobre cambios en su sistema. Por ejemplo, si prevé un aumento sustancial en el número de solicitudes realizadas a los servicios de mapas, puede decidir agregar una máquina adicional a su sitio de ArcGIS Server antes de que los usuarios perciban una degradación del rendimiento debida a limitaciones de recursos.
Observar patrones o tendencias en los datos de telemetría puede ayudarle a hacer predicciones. Por ejemplo, los patrones cíclicos de las métricas te permiten predecir los momentos en que ocurrirán los picos y valles de esas métricas. Tendencias fuertes al alza o a la baja permiten predecir valores futuros bajo el supuesto de que la tendencia continuará.
El análisis predictivo puede ser realizado por los administradores, pero las capacidades cada vez más sofisticadas de inteligencia artificial (IA) abrir la posibilidad de un sistema que pueda analizarse a sí mismo y responder adecuadamente. Los agentes de IA con acceso a telemetría, permiso para modificar el sistema y un modelo de entrenamiento robusto para determinar acciones apropiadas pueden ser capaces de mantener un sistema estable con una intervención humana directa mínima. Como con cualquier tipo de IA, conviene actuar con cautela al considerar la implantación de un sistema de respuesta automatizada para garantizar que siga estando alineado con sus prioridades y valores.
Si su sistema es poco saludable, necesita conocer la causa raíz del problema para poder implementar la solución adecuada. Por ejemplo, un aumento de latencia para un servicio puede requerir una costosa actualización de infraestructura para resolverse o puede solucionarse con una simple reconfiguración del servicio.
El análisis de la causa raíz implica seis pasos:
Detecte el problema. Por ejemplo, su solución de monitorización puede alertarle de que el tiempo de respuesta de un servicio ha superado el umbral predeterminado. En el caso de problemas que su solución de monitorización no anticipó, podría recibir informes de usuarios que informan que el sistema no funciona como se espera.
Clasifique el problema. Determina si el problema está aislado en un único servicio o si se trata de un problema sistémico que afecta a varios servicios. Las herramientas de monitorización, como los paneles, los mapas de servicios y las comprobaciones de estado, son útiles en esta fase para determinar el alcance del problema.
Investigue el problema usando datos de telemetría.
Las métricas pueden ayudarle a identificar anomalías o superaciones de umbral, como un aumento repentino de errores 500 o una caída del rendimiento.
Busque en los registros error mensajes, trazados de pila y advertencias. El registro estructurado le ayuda a correlacionar las entradas del registro con identificadores de solicitud o marcas de tiempo específicos, lo que puede contribuir a acotar la búsqueda de los mensajes de registro pertinentes.
Los trazados pueden ayudarle a identificar en qué punto las solicitudes experimentaron latencia o fallos. Por ejemplo, una trazado puede mostrar una consulta lenta a la base de datos o una llamada a la API fallida.
Correlacione y contextualice los datos. Combine métricas, registros y trazados para construir una cronología de los eventos observados. Por ejemplo, es posible que una consulta lenta a la base de datos mostrada en un trazado se produjera al mismo tiempo que un pico en la métrica de uso de CPU de la máquina de base de datos. Herramientas de terceros como OpenTelemetry, Jaeger o Datadog APM pueden ser útiles para correlacionar distintas fuentes de datos.
Identifique la causa raíz. Busque cambios en su sistema que puedan explicar las correlaciones observadas. Algunas causas habituales son las siguientes:
Implementación reciente o cambios en la configuración
Agotamiento de recursos, como una fuga de memoria
Fallos en dependencias externas, como una respuesta fallida de una API de terceros
Problemas de red, como un cambio en las reglas del firewall
Resuelva el problema. Implemente la solución adecuada según la identificación de la causa raíz. Por ejemplo, puede que necesite revertir un cambio reciente de configuración, parchear su software o escalar sus servicios. Sin embargo, simplemente solucionar el problema actual no es suficiente. Documente el problema, su análisis y la solución para que otros puedan abordar más fácilmente problemas similares en el futuro. Agregue alertas, cuadros de mando o pruebas automáticas para ayudar a prevenir que se repita el problema.