Observabilidad en Google Cloud

Google Cloud Observability incluye servicios de observabilidad que te ayudan a comprender el comportamiento, el estado y el rendimiento de las aplicaciones. La visibilidad sobre cómo se comportan las aplicaciones y cómo se conectan los componentes te ayuda a anticipar, identificar y responder a los cambios inesperados con mayor rapidez y eficacia.

En este documento, se incluye la siguiente información:

Acerca de la observabilidad

La observabilidad es un enfoque integral para recopilar y analizar datos de telemetría a fin de comprender el estado de tu entorno. Los datos de telemetría son métricas, registros, seguimientos y otros datos que generan las aplicaciones y la infraestructura de la aplicación que proporcionan información sobre el estado y el rendimiento de la aplicación.

Métricas
Las métricas son datos numéricos sobre el estado o el rendimiento que mides a intervalos regulares a lo largo del tiempo, como el uso de CPU y la latencia de la solicitud. Los cambios inesperados en una métrica pueden indicar un problema para investigar. Con el tiempo, también puedes analizar patrones de métricas para comprender mejor los patrones de uso y anticipar las necesidades de los recursos.
Registros

Un registro es un registro generado de la actividad del sistema o de la aplicación a lo largo del tiempo. Cada registro es una colección de entradas de registro con marca de tiempo, y cada entrada de registro describe un evento en un momento específico.

Un registro suele contener información detallada y abundante que te ayuda a comprender lo que sucedió con una parte específica de la aplicación. Sin embargo, los registros no proporcionan buena información sobre cómo un cambio en un componente de tu aplicación se relaciona con la actividad en otro componente. Los seguimientos pueden ayudar a cerrar esa brecha.

Seguimiento

Los seguimientos representan la ruta de una solicitud en las partes de tu aplicación distribuida. Una entrada de métrica o registro en un componente de la aplicación que activó una notificación de alerta puede ser un síntoma de un problema que se origina en otro componente. Los seguimientos te permiten seguir el flujo de una solicitud y examinar los datos de latencia para ayudarte a identificar la causa raíz de un problema.

Otros datos

Puedes obtener estadísticas adicionales mediante el análisis de métricas, registros y seguimientos en el contexto de otros datos. Por ejemplo, una etiqueta para la gravedad de una alerta o el ID de cliente asociado con una solicitud en los registros proporciona contexto que puede ser útil para solucionar problemas y depurar.

La supervisión, la depuración y la solución de problemas de aplicaciones distribuidas pueden ser difíciles porque hay muchos sistemas y componentes de software involucrados, a menudo con una combinación de software de código abierto y comercial.

Las herramientas de observabilidad te ayudan a navegar por esta complejidad mediante la recopilación de datos significativos y las funciones para explorar, analizar y correlacionar los datos. Un entorno observable te ayuda a hacer lo siguiente:

  • Detectar problemas de forma proactiva antes de que afecten a los usuarios
  • Solucionar problemas conocidos y nuevos
  • Depurar aplicaciones durante el desarrollo
  • Planificar y comprender el impacto de los cambios en tus aplicaciones
  • Explorar datos para descubrir estadísticas nuevas

En resumen, un entorno observable te ayuda a mantener la confiabilidad de la aplicación. Una aplicación es confiable cuando cumple con sus objetivos actuales de disponibilidad y resiliencia ante fallas.

Para obtener más información sobre las prácticas de confiabilidad, incluidos los principios y las prácticas relacionadas con la observabilidad, lee el libro Ingeniería de confiabilidad de sitios: Cómo Google ejecuta los sistemas de producción. Se incluyen los siguientes temas:

Google Cloud Observability

Los servicios en Google Cloud Observability te ayudan a recopilar, analizar y correlacionar los datos de telemetría. También proporcionan valores predeterminados integrados para ayudarte a comenzar más rápido, como paneles predeterminados y políticas de alertas.

Cloud Monitoring, Cloud Logging y Cloud Trace se encuentran entre los servicios habilitados de forma predeterminada cuando creas un proyecto de Google Cloud.

Supervisión: Usa métricas recopiladas para supervisar el estado y el rendimiento, identificar tendencias y problemas, y notificar sobre cambios en el comportamiento.

  • Recopila métricas de forma automática para la mayoría de los servicios de Google Cloud.
  • Recopila métricas del sistema y de las aplicaciones de aplicaciones de terceros.
  • Visualiza y analiza métricas con paneles predeterminados o personalizados.
  • Usa la supervisión sintética para probar el rendimiento de tus aplicaciones.
  • Definir los objetivos de nivel de servicio (SLO) para supervisar la confiabilidad del servicio
  • Recibe alertas cuando ocurran problemas.

Registro: Usa registros recopilados para depurar, solucionar problemas y obtener estadísticas sobre tus aplicaciones.

  • Recopila automáticamente los registros de la mayoría de los servicios de Google Cloud.
  • Recopila registros de auditoría de forma automática para la mayoría de los servicios de Google Cloud.
  • Recopilar registros de software de terceros
  • Explorar y analizar registros
  • Usa Estadísticas de registros para realizar un análisis en tus registros y otros datos con BigQuery. Por ejemplo, puedes usar BigQuery para comparar las URL de tus registros con un conjunto de datos públicos de URL maliciosas conocidas.
  • Crear métricas a partir de registros
  • Recibe alertas cuando aparezca un mensaje especificado en un registro.

Error Reporting: Visualiza y analiza errores de la ejecución de servicios en la nube:

  • Agregar errores que Error Reporting detecta en las entradas de registro y ver los registros asociados.
  • Los errores agregados que envían tus aplicaciones a la API de Error Reporting.

Seguimiento: visualiza y analiza el flujo y la latencia de las solicitudes de la aplicación cuando estás depurando y solucionando problemas.

  • Realiza un seguimiento de cómo se propagan las solicitudes a través de tus aplicaciones.
  • Recopila datos de latencia de tus aplicaciones y visualiza grafos de datos.
  • Consulta los informes de latencia que muestran degradaciones de rendimiento.
  • Recibe alertas de cambios en el perfil de latencia de tus aplicaciones.
  • Anota seguimientos con atributos personalizados.
  • Exporta seguimientos a BigQuery para explorarlo con otros datos.

Cloud Profiler: Analiza el uso de CPU y memoria de tus aplicaciones a fin de que puedas identificar oportunidades para mejorar el rendimiento.

  • Recopila los datos de uso de CPU y asignación de memoria de tus aplicaciones.
  • Identifica las partes de una aplicación que consumen más recursos y obtén estadísticas sobre su rendimiento general.

Comenzar

En esta sección, se describen los pasos que puedes seguir para familiarizarte con las funciones de observabilidad de Google Cloud.

Prueba las guías de inicio rápido

Prueba las guías de inicio rápido para familiarizarte con los servicios disponibles.

Observa datos recopilados automáticamente

La mayoría de los servicios de Google Cloud generan métricas y registros predefinidos de forma automática. Esto significa que puedes comenzar a ver algunos datos de observabilidad de los servicios de Google Cloud compatibles sin configuración adicional.

  • Algunos servicios de Google Cloud, como Google Kubernetes Engine (GKE), Compute Engine y Cloud SQL, proporcionan paneles predeterminados en la consola de Google Cloud para ver los datos de observabilidad en el contexto del servicio
  • Compute Engine, GKE y Cloud Run generan métricas y registros del sistema de forma predeterminada, y debes configurar la recopilación de datos adicionales.
  • Cloud Functions y App Engine generan métricas, registros y seguimientos de forma automática.

También puedes graficar las métricas recopiladas en el Explorador de métricas, ver los registros en el Explorador de registros o ver los seguimientos en Trace. Para revisar datos relacionados, crea paneles personalizados. Por ejemplo, puedes crear un panel que incluya registros, métricas de rendimiento y políticas de alertas para las máquinas virtuales.

Configura las VM de Compute Engine para recopilar datos adicionales

Las VM de Compute Engine solo recopilan métricas y registros básicos del sistema de forma predeterminada sin el agente de operaciones.

Instala el agente de operaciones para recopilar datos de telemetría adicionales (registros, métricas y seguimientos) de las instancias y aplicaciones de Compute Engine a fin de solucionar problemas, supervisar el rendimiento y crear alertas.

Configura clústeres de GKE para recopilar datos adicionales

De forma predeterminada, los clústeres de GKE envían registros del sistema y métricas del sistema a Logging y Monitoring. El servicio administrado de Google Cloud para Prometheus controla la recopilación de métricas de terceros y definidas por el usuario.

  • Usa los paquetes de métricas de observabilidad para comprender mejor el estado de las aplicaciones y los recursos del clúster. Por ejemplo, las métricas del plano de control son útiles para crear SLO a fin de supervisar la disponibilidad y la latencia del servicio.
  • Supervisa aplicaciones de terceros, como Postgres, MongoDB y Redis. Estas integraciones proporcionan paneles preconfigurados y políticas de alertas.

Configura Cloud Run para recopilar datos personalizados

Si tienes un servicio de Cloud Run que escribe métricas de Prometheus, puedes usar el archivo adicional de Prometheus para enviar las métricas a Cloud Monitoring.

Si tu servicio de Cloud Run escribe métricas de OTLP en su lugar, puedes usar un archivo adicional de OpenTelemetry. Si deseas ver un ejemplo, consulta el instructivo para recopilar métricas de OTLP mediante el archivo adicional.

Instrumenta tus aplicaciones

La instrumentación es código que agregas a una aplicación para emitir datos de telemetría. Existen varios frameworks de instrumentación de código abierto que te permiten recopilar métricas, registros y seguimientos desde tu aplicación y enviar esos datos a cualquier proveedor, incluido Google Cloud. Sin embargo, es posible que no necesites instrumentar tu aplicación. Por ejemplo, Cloud Run, Cloud Functions y App Engine proporcionan seguimiento automático.

Para instrumentar tu aplicación, te recomendamos que uses un framework de instrumentación con proveedor neutro y que sea de código abierto, como OpenTelemetry, en lugar de las API específicas de proveedor y producto. o bibliotecas cliente. Para obtener más información sobre la instrumentación de tu aplicación, consulta Instrumentación y observabilidad.

Para ver muestras de código que ilustran cómo instrumentar tu aplicación para enviar telemetría a Google Cloud, consulta lo siguiente:

También te puede interesar explorar los temas siguientes: