Google Cloud Observability incluye servicios de observabilidad que te ayudan a comprender el comportamiento, el estado y el rendimiento de tus aplicaciones. La visibilidad del comportamiento de las aplicaciones y de la conexión entre los componentes te ayuda a anticipar, identificar y responder a los cambios inesperados de forma más rápida y eficaz.
Este documento incluye la siguiente información:
- Un resumen de la observabilidad y por qué es importante para mantener la disponibilidad y la fiabilidad de tus aplicaciones.
- Cómo te ayuda Google Cloud Observability a monitorizar y mantener el estado de las aplicaciones y la infraestructura.
- Cómo empezar con la observabilidad en Google Cloud.
Acerca de la observabilidad
La observabilidad es un enfoque integral para recoger y analizar datos de telemetría con el fin de comprender el estado de tu entorno. Los datos de telemetría son métricas, registros, trazas y otros datos generados por tus aplicaciones y la infraestructura de aplicaciones que proporcionan información sobre el estado y el rendimiento de las aplicaciones. La observabilidad centrada en las aplicaciones hace referencia a las herramientas que te permiten visualizar y analizar los datos de telemetría desde la perspectiva de una aplicación.
- Métricas
- Las métricas son datos numéricos sobre el estado o el rendimiento que se miden a intervalos regulares a lo largo del tiempo, como la utilización de la CPU y la latencia de las solicitudes. Los cambios inesperados en una métrica pueden indicar un problema que debe investigarse. Con el tiempo, también puede analizar los patrones de las 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 marca de tiempo, y cada entrada describe un evento en un momento específico.
Un registro suele contener información detallada que te ayuda a entender qué ha ocurrido con una parte específica de tu aplicación. Sin embargo, los registros no proporcionan información útil sobre cómo se relaciona un cambio en un componente de tu aplicación con la actividad de otro componente. Los rastreos pueden ayudar a salvar esa distancia.
- Trazas
Las trazas representan la ruta de una solicitud a través de las partes de tu aplicación distribuida. Una métrica o una entrada de registro de un componente de una aplicación que haya activado una notificación de alerta puede ser un síntoma de un problema que se origine en otro componente. Los rastreos te permiten seguir el flujo de una solicitud y examinar los datos de latencia para ayudarte a identificar la causa principal de un problema.
- Otros datos
Puedes obtener más información valiosa analizando métricas, registros y trazas en el contexto de otros datos. Por ejemplo, una etiqueta de la gravedad de una alerta o el ID de cliente asociado a una solicitud en los registros proporcionan contexto que puede ser útil para solucionar problemas y depurar.
Monitorizar, depurar y solucionar problemas de aplicaciones distribuidas puede ser difícil porque hay muchos sistemas y componentes de software implicados, a menudo con una combinación de software comercial y de código abierto.
Las herramientas de observabilidad te ayudan a gestionar esta complejidad recogiendo datos significativos y proporcionando funciones para explorar, analizar y correlacionar los datos. Un entorno observable te permite:
- Detecta los problemas de forma proactiva antes de que afecten a tus usuarios
- Solucionar problemas conocidos y nuevos
- Depurar aplicaciones durante el desarrollo
- Planificar y comprender los efectos de los cambios en tus aplicaciones
- Explorar los datos para descubrir nuevas estadísticas
En resumen, un entorno observable te ayuda a mantener la fiabilidad de la aplicación. Una aplicación es fiable cuando cumple tus objetivos actuales de disponibilidad y resiliencia ante fallos.
Para obtener más información sobre las prácticas de fiabilidad, incluidos los principios y las prácticas relacionados con la observabilidad, consulta el libro Site Reliability Engineering: How Google Runs Production Systems (Ingeniería de fiabilidad de sitios: cómo gestiona Google los sistemas de producción). Entre los temas que tratarán se incluyen los siguientes:
- Objetivos de nivel de servicio
- Monitorizar sistemas distribuidos
- Alertas
- Solución de problemas
- Pruebas de fiabilidad
Google Cloud Observability
Los servicios de Observabilidad de Google Cloud te ayudan a recoger, analizar y correlacionar datos de telemetría, tanto de tus aplicaciones como de la infraestructura subyacente. Estos servicios también proporcionan valores predeterminados integrados para ayudarte a empezar más rápido, como paneles de control predeterminados para tus aplicaciones del centro de aplicaciones y políticas de alertas preconfiguradas.
Cloud Monitoring, Cloud Logging y Cloud Trace son algunos de los servicios habilitados de forma predeterminada cuando creas un Google Cloud proyecto.
Monitorización: usa las métricas recogidas para monitorizar el estado y el rendimiento, identificar tendencias y problemas, y enviar notificaciones sobre los cambios en el comportamiento.
- Consulta el estado de las aplicaciones de App Hub.
- Recoge métricas automáticamente de la mayoría de los Google Cloud servicios.
- Recoge métricas del sistema y de las aplicaciones de aplicaciones de terceros.
- Visualiza y analiza métricas con paneles predeterminados o personalizados.
- Usa la monitorización sintética para probar el rendimiento de tus aplicaciones.
- Define objetivos de nivel de servicio para monitorizar la fiabilidad del servicio.
- Recibe alertas cuando se produzcan problemas.
Registro: usa los registros recogidos para depurar, solucionar problemas y obtener información valiosa sobre tus aplicaciones.
- Recopila automáticamente los registros de la mayoría de los Google Cloud servicios.
- Recoger automáticamente registros de auditoría de la mayoría de los Google Cloud servicios.
- Recoger registros de software de terceros.
- Explora y analiza los registros.
- Usa Log Analytics para analizar tus registros y otros datos con BigQuery. Por ejemplo, puedes usar BigQuery para comparar las URLs de tus registros con un conjunto de datos público de URLs maliciosas conocidas.
- Crea métricas a partir de registros.
- Recibir alertas cuando aparezca un mensaje específico en un registro.
Error Reporting: consulta y analiza los errores de los servicios de Cloud en ejecución:
- Agrega los errores que Error Reporting detecta en las entradas de registro y consulta los registros asociados.
- Agrega los errores que tus aplicaciones envían a la API Error Reporting.
Trace: consulta y analiza el flujo y la latencia de las solicitudes de aplicaciones cuando depures y resuelvas problemas.
- Monitoriza cómo se propagan las solicitudes por tus aplicaciones.
- Recopila datos de latencia de tus aplicaciones y consulta gráficos de los datos.
- Consulte informes de latencia que muestren degradaciones del rendimiento.
- Recibir alertas sobre los cambios en el perfil de latencia de tus aplicaciones.
- Exporta las trazas a BigQuery para poder analizarlas junto con otros datos.
Cloud Profiler: analiza el uso de la CPU y la memoria de tus aplicaciones para que puedas identificar oportunidades de mejorar el rendimiento.
- Recoge datos sobre el uso de la CPU y la asignación de memoria de tus aplicaciones.
- Identifica las partes de una aplicación que consumen más recursos y obtén información valiosa sobre el rendimiento general de la aplicación.
Empezar
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.
Consultar los datos recogidos automáticamente
La mayoría de los Google Cloud servicios generan automáticamente métricas y registros predefinidos. Esto significa que puedes empezar a consultar algunos datos de observabilidad de los servicios deGoogle Cloud compatibles sin necesidad de realizar ninguna configuración adicional.
- Algunos Google Cloud servicios, como Google Kubernetes Engine (GKE), Compute Engine y Cloud SQL, proporcionan paneles de control predeterminados en la Google Cloud consola 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 recogida de datos adicionales.
- Cloud Run Functions y App Engine generan automáticamente métricas, registros y trazas.
También puede representar las métricas recogidas en Explorador de métricas, ver los registros en Explorador de registros o ver los rastreos en Rastreo. Para revisar los datos relacionados, crea paneles de control personalizados. Por ejemplo, puedes crear un panel de control que incluya registros, métricas de rendimiento y políticas de alertas de máquinas virtuales.
Configurar VMs de Compute Engine para recoger datos adicionales
Las VMs de Compute Engine solo recogen métricas y registros básicos del sistema de forma predeterminada sin el agente de operaciones
Instala el agente de operaciones para recoger datos de telemetría adicionales (registros, métricas y trazas) de tus instancias y aplicaciones de Compute Engine para solucionar problemas, monitorizar el rendimiento y configurar alertas.
- Recoge automáticamente métricas de host, como las de CPU, GPU, memoria y proceso.
- Recoge automáticamente los registros del sistema, como syslog de las máquinas virtuales Linux y el registro de eventos de Windows de las máquinas virtuales Windows.
- Monitoriza tus aplicaciones con:
- Integraciones de aplicaciones de terceros para software popular, como Postgres, MongoDB y Java Virtual Machine, con paneles y políticas de alertas preconfigurados
- Métricas de Prometheus
- Métricas y trazas del protocolo OpenTelemetry (OTLP)
- Registros de la aplicación
- Para ver un resumen de los datos de telemetría recogidos, consulta la descripción general del agente de Ops.
Configurar clústeres de GKE para recoger datos adicionales
De forma predeterminada, los clústeres de GKE envían registros y métricas del sistema a Logging y Monitoring. Google Cloud Managed Service para Prometheus gestiona la recogida de métricas de terceros y definidas por el usuario.
- Usa paquetes de métricas de observabilidad para comprender mejor el estado de tus aplicaciones y recursos de clúster. Por ejemplo, las métricas del plano de control son útiles para crear SLOs que monitoricen la disponibilidad y la latencia de los servicios.
- Monitoriza aplicaciones de terceros, como Postgres, MongoDB y Redis. Estas integraciones proporcionan paneles de control y políticas de alertas preconfigurados.
Configurar Cloud Run para recoger datos personalizados
Si tienes un servicio de Cloud Run que escribe métricas de Prometheus, puedes usar el complemento de Prometheus para enviar las métricas a Cloud Monitoring.
Si tu servicio de Cloud Run escribe métricas de OTLP, puedes usar un sidecar de OpenTelemetry. Para ver un ejemplo, consulta el tutorial para recoger métricas de OTLP mediante el sidecar.
Instrumentar tus aplicaciones
La instrumentación es el código que añade a una aplicación para emitir datos de telemetría. Hay varios frameworks de instrumentación de código abierto que te permiten recoger métricas, registros y trazas de tu aplicación, y enviar esos datos a cualquier proveedor, incluido Google Cloud. Sin embargo, es posible que no tengas que instrumentar tu aplicación. Por ejemplo, Cloud Run, Cloud Run Functions y App Engine proporcionan un seguimiento automático.
Para instrumentar tu aplicación, te recomendamos que uses un framework de instrumentación de código abierto independiente del proveedor, como OpenTelemetry, en lugar de APIs o bibliotecas de cliente específicas de un proveedor o un producto. Para obtener información sobre cómo instrumentar tu aplicación, consulta Instrumentación y observabilidad.
Para ver ejemplos de código que muestran cómo instrumentar tu aplicación para enviar telemetría a Google Cloud, consulta lo siguiente:
- Descripción general de la muestra
- Ejemplo de instrumentación de Go
- Ejemplo de instrumentación de Java.
- Ejemplo de instrumentación de Node.js
- Ejemplo de instrumentación de Python.
También te puede interesar consultar los siguientes temas:
- Información sobre las opciones de instrumentación de los rastreos
- Información sobre la recogida de métricas definidas por el usuario
- Información sobre cómo escribir registros de aplicaciones