David O'Brien (Xirus): ¡Métricas! ¡Métrica! ¡Métrica! Parte 2

David O'Brien abrió recientemente su propia compañía, Xirus (https://xirus.com.au), enfocándose en los productos en la nube Microsoft Azure Stack. Están destinados a la creación y el lanzamiento coordinados de aplicaciones híbridas en centros de datos, en ubicaciones fronterizas, oficinas remotas y en la nube.

David enseña a individuos y empresas todo lo relacionado con Microsoft Azure y Azure DevOps (anteriormente VSTS) y todavía se dedica a la consultoría práctica y la infracodificación. Ha sido el ganador del Premio MVP de Microsoft (Microsoft Most Valuable Professional) durante 5 años, y recientemente recibió el Premio MVP Azure. Como coorganizador del Melbourne Microsoft Cloud and Datacentre Meetup, O'Brien habla regularmente en conferencias internacionales, combinando su interés en viajar por el mundo con una pasión por compartir historias de TI con la comunidad. El blog de David se encuentra en david-obrien.net , y también publica sus entrenamientos en línea de Pluralsight.

La presentación habla sobre la importancia de las métricas para comprender lo que sucede en su entorno y cómo funciona su aplicación. Microsoft Azure tiene una manera poderosa y fácil de mostrar métricas para todo tipo de cargas de trabajo, y la conferencia explica cómo puede usarlas todas.

A las 3 a.m. del domingo, durante el sueño, de repente te despiertas con un mensaje de texto: "La aplicación supercrítica no responde de nuevo". Que esta pasando? ¿Dónde y cuál es la causa de los "frenos"? En esta charla, conocerá los servicios que Microsoft Azure ofrece a los clientes para recopilar registros y, en particular, las métricas para sus cargas de trabajo en la nube. David le dirá qué métricas deberían interesarle cuando trabaje en una plataforma en la nube y cómo llegar a ellas. Aprenderá sobre las herramientas de código abierto y la creación de paneles, y como resultado, obtendrá el conocimiento suficiente para crear sus propios paneles.

Y si a las 3 en punto de la mañana vuelve a despertar un mensaje sobre el bloqueo de una aplicación crítica, puede averiguar rápidamente su causa.

David O'Brien (Xirus): ¡Métricas! ¡Métrica! ¡Métrica! Parte 1

Dado que las diapositivas serían demasiado voluminosas, preferí la demostración. Considere cómo puede visualizar el monitoreo y comience con la pestaña Monitor-Metrics. Como mencioné, esto es bastante fácil. Todo lo que necesita hacer es especificar el recurso utilizado en el menú desplegable del grupo de Recursos y el tipo de recurso en el menú Tipo de recurso. En nuestro caso, selecciono los 72 tipos de métricas.



Afortunadamente o desafortunadamente, la mayoría de los servicios en la nube se ejecutan en máquinas virtuales, y yo hago lo mismo. En esta máquina virtual, de manera predeterminada, Microsoft nos muestra las métricas del host. En particular, podemos ver la cantidad de tráfico que pasa a través de esta VM en las últimas 24 horas con un intervalo de medición de 15 minutos. Usted ve que tenemos un tablero maravilloso para esta métrica. Esta no es una métrica muy avanzada, y no podemos hacer nada con ella, excepto para ver la cantidad de tráfico saliente en megabytes. Algunas de las herramientas aquí son: la capacidad de agregar una nueva regla con respecto a las restricciones y la capacidad de adjuntar esta métrica al tablero.
Aquellos que usan la máquina virtual deben saber qué es Telegraf, que se indica en la línea RESORCE. Este es un complemento TING de código abierto escrito en Go, que está diseñado para recopilar métricas o datos del sistema en el que está instalado. Telegraf pasa las métricas recopiladas a la base de datos InfluxDB. Este complemento multiplataforma funciona en Windows y Linux.



Como dije, de forma predeterminada, Microsoft Azure Monitor usa métricas de hipervisor para la máquina virtual, esto se indica en la línea METRIC NAMESPACE. Del mismo modo sucede en AWS. No puedo decir nada sobre la plataforma en la nube GSP, ya que nunca la he usado. Por lo tanto, selecciono Telegraf como recurso y le indico que transfiera esta métrica al monitor de Suma.



Puedo ir a la lista METRIC y seleccionar más métricas mostradas. Por ejemplo, ahora selecciono la métrica use_steal (usando intercepción). ¿Alguien sabe qué es esto?



¿Cuántos de ustedes viven en un departamento con vecinos a quienes les gusta escuchar música en voz alta? Bien, entonces use_steal es una métrica que muestra cómo los vecinos de la nube pueden afectar su sistema operativo. Muchas personas olvidan que ejecutan sus aplicaciones en un entorno de nube pública. Tanto en GCP, AWS y Azure, los proveedores lo ubican en una infraestructura compartida. Compartes tu infraestructura (máquina virtual, aplicaciones, API) con otros usuarios. Esto no significa que tengan acceso a sus datos, pero pueden afectar sus aplicaciones, y usted debe saberlo. Si no conoce este efecto, su aplicación puede tener algunas dificultades para funcionar. Si no recopila métricas use_steal, no sabrá que su aplicación puede verse afectada por un impacto extraño. Suponerque inició su programa, todo funciona bien, sin errores, pero de repente algo sucede y la aplicación se bloquea. Esto sucede con bastante frecuencia y depende del tipo de máquina virtual que esté utilizando y cuántas máquinas virtuales del mismo tipo coloque su proveedor en cada host. Es probable que sus programas se vean afectados negativamente por esta infraestructura.

La única forma de evitar que esto suceda es de dos maneras: la primera es esperar hasta que todo funcione por sí sola, y la segunda es implementar su máquina virtual en el host de otro hipervisor. Sin embargo, para tomar una decisión, debe ser consciente de esto mediante la recopilación de las métricas apropiadas. Como puede ver, cuando se usa la métrica use_steal, el monitor no muestra ninguna actividad, probablemente porque no ejecuté una gran cantidad de aplicaciones.

Por lo tanto, podemos crear nuestro propio tablero colocando monitores de métricas seleccionadas en él. Este panel se puede compartir con otros usuarios, y generalmente aconsejo a mis clientes que creen paneles como este, colocándolos en una pantalla grande en la oficina para que sean visibles para todos los empleados.



Todas las mañanas, al llegar al trabajo, cualquiera puede mirar esa pantalla y descubrir qué está sucediendo con el sistema. Por ejemplo, puede ver que se han solucionado 500 errores de conexión HTTP y no esperar a que los clientes le informen al respecto, sino averiguar el motivo de su aparición y solucionar el problema con su sitio.

Un monitoreo más avanzado es recolectar percentiles. Por ejemplo, conocer el rendimiento promedio de su CPU puede no ser suficiente, porque diferentes aplicaciones cargan el procesador de manera diferente.



Los percentiles le dan una idea de lo que está sucediendo a nivel mundial. Supongamos que 99 percentiles son 200 ms. Esto significa que el 99% de todas sus solicitudes tienen un tiempo de respuesta de hasta 200 ms, y esto también significa que el 1% de sus clientes reciben una respuesta con un retraso superior a 200 ms.

Dependiendo del contenido de su SLA, recuerde lo que hablamos al principio, debe considerar este hecho. De hecho, la mayoría de las veces presta atención al valor promedio, en lugar de tener en cuenta los percentiles. Y el valor promedio "oculta" tales desviaciones en sí mismo.

Considere cómo obtenemos estos valores. El hecho es que Azure Monitor no calcula nada. Puede obtener el valor promedio, máximo o mínimo, pero si necesita métricas más avanzadas obtenidas como resultado de los cálculos, debe usar el análisis de registro. La analítica de registros utiliza el lenguaje KQL, es una característica muy útil de Azure "lista para usar".



Si observa esta métrica, puede ver que el proveedor de recursos es Microsoft.SQL, se llama "dtu_consumption_percent" y se dedica a la creación de percentiles. Esto puede no ser particularmente aplicable a sus flujos de trabajo, pero debe saber que el módulo Log Analytics proporciona esta capacidad. Por lo tanto, puede usar análisis si necesita cálculos más avanzados de sus métricas. Es cierto, tienes que pagar por ello. De forma predeterminada, esta herramienta le permite procesar hasta 5 GB de datos por mes de forma gratuita, sin embargo, conozco clientes que usan 5 GB por minuto. Por lo tanto, 5 GB por mes podrían no ser suficientes.

En la pantalla, verá una métrica que muestra que actualmente estoy usando 20 MB. Dado que este es un entorno de demostración, la cantidad de datos obtenidos es muy pequeña. Como dije, nada más sacarlo de la caja, Logs Analytic le permite procesar hasta 5 GB de datos por mes de forma gratuita, almacenándolos durante 41 días. Es necesario pagar por exceder estos volúmenes, sin embargo, en mi experiencia, este servicio sigue siendo más barato que productos de terceros similares, como Splunk o Sumo.

Pasemos a Grafana, que tiene un complemento para Azure Monitor. Fue lanzado hace unas semanas en la versión 0.2. Gracias a este complemento, puede usar Grafana para sus métricas. Prefiero implementar Grafana en App Services, ya que es posible usar contenedores aquí. Esto me permite ejecutar aplicaciones en una computadora portátil. Para hacer esto, ejecuto esta línea de comando:



después de lo cual puedo probar algo rápidamente o mostrarles algo a mis clientes.
La implementación de Grafana en un entorno Azure también requiere una línea, simplemente la dividí en 4 para poder verla en una pantalla.



Azure tiene las llamadas "estructuras de contenedor" como AWS, el equivalente de estructuras similares de Google. Esta es una imagen de contenedor que se puede distribuir en múltiples contenedores. El equipo que destaqué lanza Grafana al mismo tiempo que Azure Monitor. La implementación de Grafana en un entorno de monitor lleva aproximadamente 30 segundos.



Puedo hacer lo mismo a través del código de infraestructura: los



detalles se pueden encontrar en mi Twitter, luego daré mis contactos. Un archivo con la extensión .yaml indica cómo usar la imagen del contenedor y qué hacer con ella. Aquí hay muchas líneas de código, y necesito desplazar la ventana hacia abajo para que pueda verla. Grafana implementa este archivo en la plataforma Azure.





Entonces, voy a Grafana en mi computadora portátil y muestro el tablero que creé. Una cosa que todavía no puedo hacer es pasar las métricas de Telegraf a Grafana. Desafortunadamente, estas métricas útiles que se ejecutan en una máquina virtual aún no se muestran en Grafana. Microsoft está resolviendo este problema, y ​​probablemente veremos el resultado en nuevas versiones de Telegraf y Grafana. Por ahora, podemos usar las métricas de hipervisor que Telegraf ofrece de forma predeterminada en el menú desplegable de la línea Métrica. En la máquina virtual, es posible crear varias métricas personalizadas que le faltan a Grafana y luego pegarlas en esta aplicación. Esto se puede hacer si la métrica personalizada se puede colocar en el conjunto de métricas de Azure.





Los clientes a menudo me preguntan qué deberían usar. Grafana muestra visualmente las métricas de varios procesos, y Azure le permite realizar cálculos métricos más complejos. En el último caso, obtienes un gran conjunto de métricas "listas para usar", pero Azure solo muestra las métricas de Azure. Por lo tanto, la elección depende de las tareas que realice. Puede crear métricas para su sitio, bases de datos, aplicaciones desplegables, integrarlas en Grafana y crear un voluminoso panel informativo. Desafortunadamente, no podrá hacer esto con Azure, y no creo que Microsoft tenga la intención de ampliar la funcionalidad de Azure en tal medida.

Sin embargo, le recomiendo que comience a crear su tablero específicamente con Azure, porque hoy, trabajando con una pequeña cantidad de aplicaciones, ya puede trabajar con métricas de Azure, lo cual es mejor que no hacer nada en absoluto.

Por lo tanto, nuestro conocimiento de las métricas de Azure Monitor está llegando al final, y quiero contarles sobre mí. Mi nombre es David O'Brien, y mi estado como MVP de Microsoft dice que paso mucho tiempo hablando de Azure y entrenando para trabajar con este servicio.



Tengo mi propia empresa, organizamos cursos de capacitación en todo el mundo, hablando sobre varios productos de Microsoft, incluidos los servicios en la nube. Ves mis contactos en Twitter, donde soy muy activo al bloguear. No necesita fotografiar esta diapositiva, solo recuerde la dirección del sitio web de Xirus. ¡Puedes hacer tus preguntas!

Pregunta: Las métricas son muy importantes, pero ¿qué puede decir sobre la administración de registros?

Respuesta: en principio, administrar registros en Azure es similar a administrar métricas. También puede colocarlos en su repositorio, luego enviarlos a Log Analytics y luego usar esta aplicación para procesar registros de la misma manera que las métricas. Puede recolectar registros y almacenarlos fuera de la máquina, colocarlos en contenedores y luego colocarlos centralmente en el lugar correcto.

Pregunta: ¿se puede hacer esto automática o programáticamente?

Respuesta: de cualquier manera. Volvamos al Azure Cloud Shell: puede ver que aquí, en la sección de métricas, hay un servicio que puede presentar las métricas como registros. Por ejemplo, puedo crear una plantilla de error y decirle a este servicio: "por favor, publique estos registros aquí". Durante esta demostración, le mostré opciones simples para trabajar con Azure, sin embargo, en condiciones reales, use estas plantillas. Puede usar este método a través de la interfaz de línea de comandos de la CLI o de cualquier otra forma conveniente. Si no desea escribir plantillas y JSON, puede usar el motor abierto para escribir plantillas HTTL, Microsoft lo permite.



¿No mas preguntas? ¡Gracias por pasar este tiempo conmigo!


Un poco de publicidad :)


Gracias por estar con nosotros. ¿Te gustan nuestros artículos? ¿Quieres ver más materiales interesantes? Apóyenos haciendo un pedido o recomendando a sus amigos, VPS en la nube para desarrolladores desde $ 4.99 , un análogo único de servidores de nivel básico que inventamos para usted: toda la verdad sobre VPS (KVM) E5-2697 v3 (6 núcleos) 10GB DDR4 480GB SSD 1Gbps desde $ 19 o cómo dividir el servidor? (las opciones están disponibles con RAID1 y RAID10, hasta 24 núcleos y hasta 40GB DDR4).

Dell R730xd 2 veces más barato en el centro de datos Equinix Tier IV en Amsterdam? ¡Solo tenemos 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV desde $ 199 en los Países Bajos!Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - ¡desde $ 99! Lea sobre Cómo construir un edificio de infraestructura. clase c con servidores Dell R730xd E5-2650 v4 que cuestan 9,000 euros por un centavo?

All Articles