Resumen de la práctica y el seguimiento de los indicadores de Prometheus

Algunas prácticas de uso de Promethues para realizar el monitoreo de aplicaciones

En este artículo presentamos cómo utilizar Prometheus para monitorear aplicaciones. En el trabajo posterior, a medida que se profundizó el seguimiento, resumimos algunas prácticas de Métricas basadas en nuestra propia experiencia y documentos oficiales. Espero que estas prácticas puedan proporcionarle una referencia.

Determinar objetos de monitoreo

Antes de diseñar métricas específicamente, primero debe aclarar qué se debe medir. Lo que se debe medir debe determinarse en función del contexto del problema específico, los requisitos y el sistema mismo que debe monitorearse.

Empezar desde las necesidades

Google ha resumido cuatro indicadores de oro de monitoreo basándose en su experiencia en una gran cantidad de monitoreo distribuido.Estos cuatro indicadores tienen una buena importancia de referencia para los objetos generales de monitoreo y medición. Estos cuatro indicadores son:

  • Latencia : el tiempo que lleva atender una solicitud.

  • Tráfico : Supervise el tráfico actual del sistema para medir los requisitos de capacidad del servicio.

  • Errores : supervise todas las solicitudes de error que ocurren en el sistema actual y mida la tasa de errores en el sistema actual.

  • Saturación : Mide la saturación del servicio actual. El énfasis principal está en los recursos restringidos que más afectan el estado del servicio. Por ejemplo, si el sistema se ve afectado principalmente por la memoria, concéntrese principalmente en el estado de la memoria del sistema.

Los cuatro indicadores anteriores en realidad están destinados a satisfacer cuatro necesidades de seguimiento:

  • Reflejar la experiencia del usuario y medir el rendimiento central del sistema . Por ejemplo: el retraso del sistema en línea, el tiempo de finalización del trabajo del sistema informático del trabajo, etc.

  • Refleja el rendimiento del sistema . Tales como: número de solicitudes, tamaño de los paquetes de red enviados y recibidos, etc.

  • Ayuda a descubrir y localizar fallas y problemas . Tales como: recuento de errores, tasa de fallos de llamadas, etc.

  • Refleja la saturación y carga del sistema . Por ejemplo: la memoria ocupada por el sistema, la longitud de la cola de trabajos, etc.

Además de los requisitos generales anteriores, los objetos de medición correspondientes también se pueden determinar de acuerdo con escenarios de problemas específicos para eliminar y descubrir problemas que han ocurrido o pueden ocurrir antes. Por ejemplo, la interfaz de una biblioteca a la que el sistema necesita llamar con frecuencia puede tardar mucho tiempo o fallar ocasionalmente. Se pueden desarrollar métricas para medir el retraso y la cantidad de fallas de esta interfaz.

Comience con el sistema que necesita ser monitoreado

Para satisfacer las necesidades correspondientes, los objetos de medición que los diferentes sistemas deben observar también son diferentes. En las mejores prácticas en documentos oficiales, las aplicaciones que necesitan ser monitoreadas se dividen en tres categorías:

  • Sistemas de servicio en línea: requieren una respuesta inmediata a las solicitudes, y el iniciador de la solicitud esperará la respuesta. Como por ejemplo un servidor web.

  • Sistema informático fuera de línea (procesamiento fuera de línea): el iniciador de la solicitud no espera una respuesta y el trabajo solicitado suele tardar mucho tiempo. Como el marco de computación por lotes Spark, etc.

  • Trabajos por lotes: este tipo de aplicación suele ser única y no se ejecutará para siempre, sino que finalizará una vez completada la operación. Como trabajos de MapReduce para análisis de datos.

Para cada tipo de aplicación, los objetos que se suelen medir son diferentes. Su resumen es el siguiente:

  • Sistema de servicio en línea: incluye principalmente la cantidad de solicitudes, errores y retrasos en las solicitudes.

  • Sistema informático fuera de línea: la hora en que se procesó el trabajo por última vez, la cantidad de trabajos que se están procesando actualmente, cuántos artículos se han emitido, la longitud de la cola de trabajos, etc.

  • Trabajo de procesamiento por lotes: el último momento de ejecución exitosa, el tiempo de ejecución de cada etapa principal, el tiempo total empleado, la cantidad de registros procesados, etc.

Además del sistema en sí, a veces es necesario monitorear subsistemas:

  • Bibliotecas utilizadas: número de llamadas, número de éxitos, número de errores, retraso de llamadas.

  • Registro: cuente cada registro escrito para encontrar la frecuencia y el tiempo de aparición de cada registro.

  • Fallos: Recuento de errores.

  • Grupo de subprocesos: número de solicitudes en cola, número de subprocesos en uso, número total de subprocesos, consumo de tiempo, número de tareas en procesamiento, etc.

  • Caché: número de solicitudes, número de visitas, retraso total, etc.

Seleccionar vector

Principios para elegir Vec:

  • Tipos de datos similares pero diferentes tipos de recursos, ubicaciones de recopilación, etc.

  • Las unidades de datos en Vec están unificadas.

ejemplo:

  • Solicitar retrasos para diferentes objetos de recursos

  • Solicitar retrasos para servidores en diferentes regiones

  • Recuento de diferentes errores de solicitud http
    ...

Además, la documentación oficial recomienda que las diferentes operaciones de un objeto de recurso, como lectura/escritura, envío/recepción, se registren utilizando diferentes métricas en lugar de colocarse en una métrica. La razón es que los dos generalmente no se agregan durante el seguimiento, sino que se observan por separado.

Sin embargo, para la medición de solicitudes, se suele utilizar Etiqueta para distinguir diferentes acciones.

Confirmar etiqueta

Las opciones de etiquetas comunes incluyen:

  • recurso

  • región

  • tipo

Un principio importante para determinar la Etiqueta es: los datos de la Etiqueta en la misma dimensión se pueden promediar y sumar, es decir, las unidades deben estar unificadas. Por ejemplo, la velocidad del viento y el voltaje de un ventilador no se pueden colocar en una etiqueta.

Además, no se recomiendan las siguientes prácticas:

 
 
my_metric{label=a} 1 my_metric{label=b} 6 my_metric{label=total} 7

Es decir, la puntuación y los datos totales se cuentan en la etiqueta al mismo tiempo. Se recomienda utilizar PromQL para agregar en el lado del servidor para obtener el resultado de la suma. O utilice otra métrica para medir los datos totales.

Nombrar métricas y etiquetas

Los buenos nombres se pueden ver y comprender, por lo que los nombres también son parte del buen diseño.

Denominación de métricas:

  • Necesita coincidir con el patrón: a-zA-Z :

  • Debe contener una palabra como prefijo, indicando el dominio al que pertenece esta Métrica.

    como:

    • prometheus_notificaciones_total

    • proceso_cpu_segundos_total

    • ipamd_request_latency

  • Debe contener una unidad como sufijo para indicar la unidad de esta métrica.

    como:

    • http_request_duration_segundos

    • nodo_memoria_uso_bytes

    • http_requests_total (para un recuento acumulado sin unidades)

  • Lógicamente el mismo significado que la variable que se está midiendo.

  • Intente utilizar unidades básicas como segundos y bytes. En lugar de milisegundos, megabytes.

Denominación de etiquetas:

Nombre según la dimensión seleccionada, como por ejemplo:

  • Región: Shenzhen/Guangzhou/Pekín

  • propietario: usuario1/usuario2/usuario3

  • etapa: extraer/transformar/cargar

Selección de cubos

Los depósitos adecuados pueden hacer que el cálculo del percentil del histograma sea más preciso.

Idealmente, los depósitos harán que la distribución de datos tenga forma de escalera, es decir, la cantidad de datos en cada intervalo de depósito sea aproximadamente la misma.
El diseño de baldes puede seguir la siguiente experiencia:

  • Necesita conocer la distribución aproximada de los datos. Si no lo sabe de antemano, puede usar el depósito predeterminado ({.005, .01, .025, .05, .1, .25, .5, 1, 2,5, 5, 10}) o 2 depósitos múltiples ({1,2,4,8...}) observe la distribución de datos y luego ajuste los depósitos.

  • Cuando la distribución de datos es más densa, el intervalo del segmento se puede establecer más estrecho y cuando la distribución de datos es escasa, se puede establecer más amplio.

  • Para la mayoría de los datos con retraso de tiempo, generalmente tienen las características de una cola larga y es más adecuado utilizar depósitos exponenciales (ExponentialBuckets).

  • El límite superior inicial del depósito generalmente cubre aproximadamente el 10% de los datos. Si no presta atención a los datos principales, puede agrandar el límite superior inicial.

  • Si desea calcular un percentil específico, como el 90 %, con mayor precisión, puede cifrar el depósito de distribución al 90 % de los datos, es decir, reducir el intervalo del depósito.

Por ejemplo, cuando superviso el consumo de tiempo de algunas de nuestras tareas, elijo estimar el valor aproximado del depósito en función de la situación real. Después de conectarme, observo los datos y el seguimiento y luego ajusto el depósito. De esta manera, después varios ajustes, debería poder ajustarlo a un valor más apropiado.

Consejos de uso de Grafana

Ver todas las dimensiones

Si quieres saber si también puedes agrupar por otras dimensiones y ver rápidamente qué otras dimensiones hay, puedes utilizar la siguiente técnica: mantener solo el nombre del indicador en la expresión de la consulta, no hacer ningún cálculo y dejar el Formato de leyenda en blanco. Esto mostrará los datos métricos originales. Como se muestra abajo

imagen

Enlace de regla

En el panel Configuración, hay un elemento de configuración de información sobre herramientas de gráficos; de forma predeterminada se utiliza Predeterminado.

imagen

A continuación, ajuste las herramientas de visualización gráfica a Punto de mira compartido y Información sobre herramientas compartida respectivamente para ver el efecto. Puede ver que las reglas se pueden mostrar en conjunto, lo que facilita la confirmación de la correlación entre los dos indicadores al solucionar problemas.

Ajuste la herramienta de visualización gráfica a Información sobre herramientas compartida:

imagen

Fuente: https://lxkaka.wang/metrics-best-practice/#grafana-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7

おすすめ

転載: blog.csdn.net/LinkSLA/article/details/132421226