La observabilidad es la capacidad de medir e inferir el estado actual de un sistema basándose en los datos que genera. Estos datos suelen estar en forma de registros, métricas y trazas. A modo de ejemplo, podría observar el estado de su aplicación de microservicios examinando sus métricas.
La observabilidad ofrece a los desarrolladores una visión integral del comportamiento de un sistema complejo. Al recopilar, almacenar y analizar datos, los desarrolladores pueden identificar patrones, detectar anomalías y solucionar problemas de manera más eficiente en sus sistemas.
La observabilidad comienza con la recopilación de datos en tiempo real, que luego se almacenan en una ubicación centralizada para su análisis. Este análisis puede realizarse mediante algoritmos de aprendizaje automático, visualización de datos o una combinación de técnicas estadísticas.
El análisis de los datos genera alertas que notifican a los desarrolladores sobre cualquier anomalía en una aplicación o sistema. Estas alertas pueden automatizarse y activarse según umbrales predefinidos, niveles de gravedad u otros criterios específicos de la empresa o la aplicación. Una vez detectada y localizada la anomalía, los desarrolladores pueden utilizar los datos recopilados para depurar y resolver el problema de manera eficiente.
Como ya se ha mencionado, los principales tipos de datos de observabilidad son los registros, las métricas y las trazas.
La supervisión es la capacidad de observar y verificar el progreso de los procesos en un sistema o aplicación. Se basa principalmente en las métricas y proporciona una visualización del entorno, permitiendo realizar pruebas sobre problemas conocidos. En cambio, la observabilidad va más allá, pues ofrece datos más profundos y detallados que permiten deducir la posible existencia de un problema. A partir de allí, se puede investigar la causa subyacente para obtener información que ayude a anticipar y prevenir futuros inconvenientes.
La supervisión y la observabilidad no son conceptos distintos, sino opciones de análisis de datos y técnicas de visualización que permiten a los desarrolladores obtener información más rápidamente.
Una vez establecidas estas definiciones, en la tabla siguiente se examinan más detenidamente cuatro sutiles diferencias entre la supervisión y la observabilidad en las aplicaciones informáticas. Estas cuatro diferencias se dividen en alcance, granularidad, flexibilidad y análisis.
Supervisión | Observabilidad | |
---|---|---|
Alcance | Mide métricas (por ejemplo, tiempo de actividad del sistema, uso de la CPU, tasas de error). | Comprende el funcionamiento de los mecanismos del sistema a partir de sus resultados. |
Granularidad |
Agrega o muestrea los datos recopilados con una cadencia regular (en función de métricas predefinidas). |
Recoge y analiza datos granulares para obtener una visión y comprensión más profundas del comportamiento del sistema. |
Flexibilidad |
Implementa cuadros de mando predefinidos o umbrales de alerta difíciles de modificar una vez implementados. |
Adopta un enfoque flexible y adaptable utilizando herramientas que sean fáciles de cambiar, permitiendo que se ajusten rápidamente a situaciones y requisitos variables. |
Análisis |
Identifica sucesos o anomalías específicos y reacciona ante ellos. |
Hace hincapié en el análisis proactivo y la resolución de problemas, proporcionando a los desarrolladores las herramientas necesarias para identificar la causa raíz de los problemas y aplicar soluciones a lo largo del tiempo. |
La telemetría en la observabilidad del software se refiere a la práctica de recopilar y transmitir datos sobre el rendimiento y comportamiento de un sistema de software en tiempo real. Estos datos, como los tiempos de respuesta, las tasas de error y el consumo de recursos, se utilizan para supervisar y entender el estado actual del sistema, lo que permite a los desarrolladores identificar áreas de mejora y optimizar el rendimiento.
En las conversaciones sobre telemetría, OpenTelemetry (OTel) se convierte a menudo en un tema recurrente porque ofrece un enfoque simplificado para facilitar la observabilidad a los desarrolladores. OTel es un conjunto de herramientas y bibliotecas de código abierto que estandarizan la recopilación de datos de telemetría (registros, métricas y trazas) de los sistemas de software.
Puede obtener más información sobre OTel y las formas en que afecta al panorama nativo de la nube en How OpenTelemetry Is Changing the Way We Trace and Design Apps (Cómo OpenTelemetry está cambiando la forma de rastrear y diseñar aplicaciones).
La observabilidad proporciona a los desarrolladores una mejor comprensión de sus aplicaciones, lo que permite:
La observabilidad tiene algunos inconvenientes, entre los más comunes:
NGINX se enorgullece de ofrecer recursos educativos gratuitos adicionales sobre observabilidad y OTel: