Grafana como otra herramienta para el monitoreo técnico de nuestros productos de software.

Otro artículo de la serie Logicify Monitoring Tools habla sobre Grafana. Utilizamos esta herramienta de software para la visualización y el análisis de datos de proyectos internos y externos. Este artículo puede ser útil para directores técnicos, desarrolladores, DevOps, administradores de sistemas, gerentes de proyectos, así como para todas las partes interesadas.


imagen


¿Qué es grafana?


Grafana es una plataforma de código abierto para visualizar, monitorear y analizar datos. Esta herramienta, combinada con Graylog, es parte de nuestro sistema bidireccional para monitorear el comportamiento del usuario y el rendimiento del sistema . Grafana permite a los usuarios crear paneles con paneles, cada uno de los cuales muestra ciertos indicadores durante un período de tiempo determinado. Cada panel es universal, por lo que se puede personalizar para un proyecto específico o teniendo en cuenta cualquier necesidad de desarrollo y / o negocio.


Nuestro equipo de Logicify utiliza principalmente Grafana junto con Elasticsearch e InfluxDB, pero esta herramienta de software admite muchas otras fuentes de datos (Prometheus, MySQL, Postgres, etc.). Para cada fuente de datos, Grafana proporciona un editor de consultas personalizado y una sintaxis especial.


Términos de Grafana


  • El panel es el elemento básico de visualización de los indicadores seleccionados. Grafana admite paneles con gráficos, estados individuales, tablas, mapas de calor de clic y texto libre, así como la integración con complementos oficiales y creados por la comunidad (como un mapa mundial o reloj) y aplicaciones que también se pueden visualizar. Puede personalizar el estilo y el formato de cada panel; Todos los paneles pueden ser arrastrados a una nueva ubicación, reorganizados y redimensionados.
  • Panel : un conjunto de paneles separados ubicados en una cuadrícula con un conjunto de variables (por ejemplo, nombre del servidor, aplicación y sensor). Al cambiar las variables, puede cambiar los datos que se muestran en el tablero (por ejemplo, datos de dos servidores separados). Todos los paneles se pueden personalizar, así como seccionar y fragmentar los datos presentados en ellos de acuerdo con las necesidades del usuario. El proyecto Grafana involucra a una gran comunidad de desarrolladores y usuarios de código, por lo que hay una gran selección de paneles listos para usar para diferentes tipos de datos y fuentes.
  • En los paneles, puede usar anotaciones para mostrar eventos específicos en diferentes paneles. Las anotaciones se agregan mediante consultas personalizadas en Elasticsearch; en el gráfico, la anotación se muestra con una línea roja vertical. Cuando pasa el cursor sobre la anotación, puede obtener una descripción del evento y las etiquetas, por ejemplo, para rastrear la respuesta del servidor con el código de error 5xx o reiniciar el sistema. Gracias a esto, puede comparar fácilmente el tiempo, un evento específico y sus consecuencias en la aplicación, y examinar el comportamiento del sistema.

Mejores prácticas para usar la herramienta Grafana con el equipo de Logicify


Usando Grafana en proyectos internos


Para nuestro proyecto interno "Internet de las cosas" (solución de monitoreo de clima de oficina), conectamos Grafana a InfluxDB , una base de datos de series de tiempo, para visualizar los cambios en el clima de la oficina y responder en consecuencia. Un conjunto de sensores mide la temperatura, la humedad, la presión atmosférica y el nivel de CO2 en cada zona de nuestra oficina en Kherson; Estos parámetros se recopilan y visualizan en forma de gráficos Grafana en un monitor de cocina grande y en línea.


imagen
Panel de Grafana con áreas de oficina de Logicify


Por lo tanto, controlamos constantemente los parámetros de calidad del aire y nuestro gerente de oficina reacciona a los cambios: abre ventanas, si el nivel de CO2 es demasiado alto, enciende y apaga el aire acondicionado y los humidificadores.


imagen
Tablero de Grafana con clima de oficina


Gracias a los gráficos y las anotaciones de series temporales que se muestran en Grafana, analizamos las tendencias del microclima en las oficinas durante varios meses y temporadas. También utilizamos esta herramienta para visualizar algunos widgets e información útiles (pronóstico del tiempo, tipos de cambio de divisas, calendarios internos) en un monitor de cocina grande.


Cómo usar Grafana en aplicaciones web personalizadas


Grafana + Graylog


Utilizamos la herramienta Graylog para almacenar registros de aplicaciones web, administrarlas y monitorear su rendimiento tanto en la etapa de desarrollo como en la etapa de su operación. Grafana es una herramienta que convierte las revistas almacenadas en Graylog en formas visuales para el análisis y el monitoreo del sistema. Para uno de nuestros proyectos actuales, la herramienta Grafana puede llamarse la interfaz de usuario para cargar y monitorear el rendimiento de las aplicaciones web y el flujo de clientes. Las herramientas Graylog y Grafana existen independientemente una de la otra, no creamos ninguna herramienta de integración compleja especial para conectarlas entre sí. Dado que Graylog almacena todos los datos de registro en Elasticsearch, una de las fuentes de datos de Grafana, simplemente utilizamos el índice Elasticsearch específico donde se almacenan los registros para conectar Grafana a Graylog.


¿Qué métricas se pueden visualizar en Grafana para una aplicación web?


Los registros de texto simple o las notificaciones de error no son "interesantes" para Grafana, porque su objetivo principal es visualizar los datos en forma de gráficos, tablas y tablas. Escribimos un módulo personalizado para Django para recopilar datos que nos gustaría rastrear para cada solicitud procesada y respuesta de red / empleado. Los datos incluyeron no solo el estado de éxito / fracaso, sino también un conjunto de campos estructurados (tanto generales como relacionados con el proyecto), tales como:


  • versión de la aplicación
  • identificador único de cada solicitud
  • tiempo de respuesta y estado
  • código de error (si lo hay)
  • Dirección IP desde la cual se envió la solicitud
  • información del usuario (correo electrónico, nombre de usuario para usuarios registrados, rol, permisos)
  • dispositivo, etc.

Django coloca los registros analíticos estructurados del usuario en Graylog, lo que los guarda en una secuencia separada. Aunque estos datos se pueden visualizar utilizando los paneles integrados de Graylog, no se ven tan bien como los paneles de Grafana. Por lo tanto, obligamos a Grafana a leer estos datos analíticos y visualizarlos. Por lo tanto, monitoreamos el rendimiento de la aplicación y descargamos datos tanto en tiempo real como en retrospectiva.


imagen


Grafana como herramienta de depuración


Los paneles de Grafana nos ayudan principalmente a depurar aplicaciones. Si el cliente final informa un problema, Grafana nos da la oportunidad de distinguir los errores en el lado del cliente / servidor de los errores reales o lagunas en la lógica de la aplicación. Hacemos un seguimiento de todas las solicitudes web iniciadas por el cliente (utilizando la dirección de correo electrónico), los administradores de la aplicación y la aplicación en sí durante un período de tiempo específico y, según el método de exclusión, encontramos el motivo.


También depuramos y corregimos errores si notamos una anomalía en el tablero en los gráficos de carga y rendimiento de la aplicación. El siguiente ejemplo de gráfico de Grafana muestra el tiempo de respuesta para solicitudes web durante un período de tiempo. Para cada solicitud web, hacemos un seguimiento de los tiempos de respuesta máximo, mínimo y promedio. Si vemos una solicitud que nos tomó demasiado tiempo procesar, escalamos una parte del gráfico e investigamos el problema.


imagen
Ejemplo de gráfico de Grafana que muestra el tiempo de respuesta web


Otro gráfico muestra la carga del sistema durante un período de tiempo establecido y es útil para rastrear el tráfico. Si vemos un estallido inusual de actividad, por ejemplo, después de horas o los fines de semana, lo examinaremos. Tal aumento puede ser causado, por ejemplo, por los rastreadores de Google que indexan el contenido del sitio web, o por robots maliciosos que escanean nuestro sistema en busca de vulnerabilidades. Nuevamente, cada caso se investiga y se considera en consecuencia.


imagen
Ejemplo de Grafana Gráfico que muestra la descarga de la aplicación


Grafana tiene un mecanismo de notificación incorporado (por ejemplo, por correo electrónico o notificaciones a través de Slack) de acuerdo con ciertas reglas. No utilizamos esta función de la herramienta Grafana, ya que tenemos todas las notificaciones configuradas en Graylog . Sin embargo, algunos problemas con el rendimiento del sistema solo se pueden ver después de ejecutar el programa, por ejemplo, un tiempo de respuesta inusualmente largo a una solicitud web. No recibiremos notificación Graylog de esto, pero la anomalía será claramente visible en el gráfico de Grafana. Entonces, ambas herramientas se complementan entre sí cuando descubrimos algún problema: en un nivel alto verificamos a Grafana para comprender qué sucedió y por qué, y luego profundizamos con Graylog utilizando un identificador de solicitud específico.


A diferencia de Graylog, que se usa para aplicaciones desarrolladas y usadas, Grafana se usa solo para aplicaciones usadas. La única excepción cuando se usa Grafana para una aplicación que aún se encuentra en la fase de desarrollo son las pruebas de rendimiento. Emulamos el arranque del sistema usando JMeter, luego verificamos los paneles de Grafana para ver cómo reacciona.


Grafana como herramienta de inteligencia empresarial


Además del seguimiento del rendimiento y los objetivos de depuración, los paneles de Grafana son una herramienta poderosa para tomar decisiones comerciales informadas. Cuando se configura correctamente (preferiblemente junto con el servicio Google Analytics), Grafana puede visualizar análisis personalizados del comportamiento del usuario en el sistema en forma de gráficos circulares, histogramas de tiempo y otros elementos gráficos. Con base en ellos, las partes interesadas en el producto pueden tomar decisiones sobre escalar aún más la aplicación, agregar o eliminar algunas funciones y mejorar el ciclo de interacción con los clientes.


imagen
Un ejemplo de un tablero de Grafana que muestra el comportamiento del usuario en una aplicación de comercio electrónico


Dado que el panel anterior se centra más en los negocios, los desarrolladores lo usan con fines internos, más bien, como una herramienta de seguridad para rastrear el flujo de clientes en una aplicación de comercio electrónico: registro, autorización, pedidos realizados durante un período de tiempo determinado.


Aquí hay 2 proyectos del mundo real en los que Grafana ha podido aumentar la usabilidad de una aplicación web.


  • Con la ayuda de Grafana, supervisamos regularmente el estado de los pedidos periódicos en el sistema y filtramos los pedidos fallidos. Estos pedidos se basan en una suscripción, es decir, se generan en el sistema todos los meses, y el dinero se debita automáticamente de las cuentas bancarias de los clientes. A veces, los pagos fallan (dinero insuficiente / rechazo de una institución financiera), y luego los administradores del sistema verifican la situación y se comunican con los clientes para volver a generar el pedido manualmente. Por lo tanto, ni una sola orden se pierde de vista; Tanto los clientes como los proveedores están satisfechos.
  • Utilizando informes creados con Grafana para una aplicación de comercio electrónico, descubrimos que un gran porcentaje de nuevos clientes abandonan la página de pago, aunque ya tienen artículos en sus cestas. Esta conclusión fue respaldada por los informes del servicio Google Analytics, por lo tanto, el procedimiento de pago se analizó paso a paso y mejoró: ahora los usuarios pueden realizar un pedido en 2 clics. Como resultado, la tasa de conversión de visitantes para los clientes ha aumentado; las ganancias del proveedor también han aumentado.

Grafana es un componente importante del sistema de monitoreo del equipo Logicify para proyectos internos y externos. Esta herramienta de software es de código abierto, además de una gran y activa comunidad de desarrolladores. Pero, sobre todo, nos gusta la flexibilidad: admite muchas fuentes de datos y facilita la personalización de paneles y paneles.


Artículos relacionados:


Source: https://habr.com/ru/post/es431122/


All Articles