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.

Este documento 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 tus 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 en intervalos regulares a lo largo del tiempo, como el uso de CPU y la latencia de las solicitudes. Los cambios inesperados en una métrica pueden indicar un problema que se debe investigar. Con el tiempo, también puedes analizar los patrones de métricas para comprender mejor los patrones de uso y anticipar las necesidades de 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 marcas 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 información buena sobre cómo se relaciona un cambio en un componente de tu aplicación con la actividad en otro componente. Los seguimientos pueden ayudar a eliminar esa brecha.

Seguimiento

Los seguimientos representan la ruta de una solicitud en las partes de tu aplicación distribuida. Una métrica o entrada de 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

Para obtener estadísticas adicionales, analiza las métricas, los registros y los 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 un contexto que puede ser útil para solucionar problemas y depurar.

Supervisar, depurar y solucionar problemas de aplicaciones distribuidas puede ser difícil 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, ya que recopilan datos significativos y proporcionan 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 tus objetivos actuales para la disponibilidad y la 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 están entre los servicios habilitados de forma predeterminada cuando creas un proyecto de Google Cloud.

Monitoring: Usa métricas recopiladas para supervisar el estado y el rendimiento, identificar tendencias y problemas, y notificar cambios de comportamiento.

  • Recopila automáticamente métricas 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.
  • Define objetivos de nivel de servicio (SLO) para supervisar la confiabilidad del servicio.
  • Recibe alertas cuando ocurran problemas.

Logging: Usa los registros recopilados para depurar y solucionar problemas de tus aplicaciones, y obtener estadísticas sobre ellas.

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

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

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

Trace: Visualiza y analiza el flujo y la latencia de las solicitudes de la aplicación cuando estés depurando y solucionando problemas.

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

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

  • Recopila 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 el rendimiento general de la aplicación.

Comenzar

En esta sección, se describen los pasos que puedes seguir para familiarizarte con las funciones de observabilidad en 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 los datos recopilados automáticamente

La mayoría de los servicios de Google Cloud generan automáticamente métricas y registros predefinidos. 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 tú configuras la recopilación de datos adicionales.
  • Cloud Functions y App Engine generan métricas, registros y seguimientos de manera 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 los datos relacionados en conjunto, crea paneles personalizados. Por ejemplo, puedes crear un panel que incluya registros, métricas de rendimiento y políticas de alertas para máquinas virtuales.

Configura las VMs de Compute Engine para recopilar datos adicionales

Las VMs de Compute Engine solo recopilan métricas y registros del sistema básicos 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 tus instancias y aplicaciones de Compute Engine para 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. Google Cloud Managed Service para Prometheus controla la recopilación de métricas definidas por el usuario y de terceros.

  • Usa los paquetes de métricas de observabilidad para comprender mejor el estado de tus aplicaciones y 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: