miércoles, 7 de marzo de 2018

Google usa OpenCensus ¿Y para que?


Hoy en google cloud español hoy hablamos de una herramienta que usa Google para medir métricas, hoy os contamos todo.



OpenCensus, es un conjunto de bibliotecas de instrumentación de open-source  que se usa dentro de Google. OpenCensus presenta una ventaja para desarrolladores  el interés de Google en herramientas de instrumentación open-source.

Obteniendo información en los sistemas a Escala de Planeta

Google adoptó o creo tecnologías, para tener trazas  y obtener procesamiento de métricas, (Dapper) con el fin de operar algunos de los servicios web más grandes del mundo. Sin embargo, la construcción de sistemas de análisis no resolvió el difícil problema de instrumentar y extraer datos de los servicios de producción. Esto es para lo que se creó Census.

El proyecto Census proporciona instrumentos uniformes en la mayoría de los servicios de Google, capturando trazas, métricas a nivel de aplicación y otros metadatos, como correlaciones de registro de aplicaciones de producción. Uno de los mayores beneficios de la instrumentación uniforme para los desarrolladores dentro de Google es que es casi completamente automática: cualquier servicio que use el sistema RPC interno de Google (que se ha abierto como gRPC) recopila y exporta automáticamente las trazas y métricas básicas.

OpenCensus ofrece estas capacidades a los desarrolladores de todo el mundo. Hoy hablamos cómo utilizan el seguimiento distribuido y las métricas dentro de Google.

Administracion de incidentes.

Cuando surgen problemas de latencia o nuevos errores en un entorno altamente distribuido, la visibilidad de lo que está sucediendo es fundamental. Por ejemplo, cuando la latencia de un servicio cruza los límites esperados, podemos ver los rastros distribuidos en Dapper para encontrar dónde se ralentizan las cosas. O cuando una solicitud devuelve un error, podemos observar la cadena de llamadas que condujeron al error y examinar los metadatos capturados durante un seguimiento (por lo general, registros o anotaciones de rastreo). Este es efectivamente un rastro de pila más grande. En casos excepcionales, se habilitan el muestreo personalizado basado en disparadores que nos permite enfocar en tipos específicos de solicitudes.

Una vez que sabemos que hay un problema de producción, podemos usar los datos del Census para determinar las regiones, los servicios y el alcance (un cliente frente a muchos) de un problema determinado. Puede usar páginas de diagnóstico específicas del servicio, denominadas "páginas z", para supervisar los problemas y los resultados de las soluciones que implementa. Estas páginas se alojan localmente en cada servicio y proporcionan una vista corta de solicitudes recientes, estadísticas y otra información relacionada con el rendimiento.

Optimización del rendimiento

En la escala de Google, se  puede instrumentar y atribuir los costos de los servicios. Usamos el Census para ayudarnos a responder preguntas como:
  • ¿Cuánto tiempo de CPU consume mi consulta?
  • ¿Mi función consume más recursos de almacenamiento que antes?
  • ¿Cuál es el costo de una operación de usuario particular en una capa particular de la pila?
  • ¿Cuál es el costo total de una operación de usuario particular en todas las capas de la pila?

Para dar con la reducción de la latencia de cola de todos los servicios, se ha creado sofisticados sistemas de análisis que procesan trazas y métricas capturadas por el Census para identificar regresiones y otras anomalías.

Calidad de servicio

Google también mejora el rendimiento dinámicamente según la fuente y el tipo de tráfico. Al usar las etiquetas del Census, el tráfico puede dirigirse a zonas más apropiados, o se puede hacer cosas como la eliminación de carga y la limitación de velocidad.