15. Resultados en tiempo real

Desde JMeter 2.13, puede obtener resultados en tiempo real enviados a un backend a través de Backend Listener usando potencialmente cualquier backend (JDBC, JMS, Webservice, …) al proporcionar una clase que implementa AbstractBackendListenerClient .
JMeter se envía con:

  • un GraphiteBackendListenerClient que le permite enviar métricas a un Graphite Backend.
    Esta característica proporciona:
    • resultados en vivo
    • Bonitos gráficos para métricas.
    • Capacidad para comparar 2 o más pruebas de carga
    • Almacenar datos de monitoreo siempre que JMeter resulte en el mismo backend
  • un InfluxDBBackendListenerClient introducido en JMeter 3.2 que le permite enviar métricas a un InfluxDB Backend utilizando los protocolos UDP o HTTP. Esta función proporciona:
    • resultados en vivo
    • Bonitos gráficos para métricas.
    • Capacidad para comparar 2 o más pruebas de carga
    • Posibilidad de agregar anotaciones a los gráficos
    • Almacenar datos de monitoreo siempre que JMeter resulte en el mismo backend
En este documento presentaremos la configuración para graficar e historizar los datos en diferentes backends:
  • Configuración de InfluxDB para InfluxDBBackendListenerClient
  • Configuración de InfluxDB para GraphiteBackendListenerClient
  • Grafana
  • Grafito

15.1 Métricas expuestas

15.1.1 Métricas de subprocesos/usuarios virtuales

Las métricas del hilo son las siguientes:

<rootMetricsPrefix>test.minAT
Subprocesos activos mínimos
<prefijo de métricas raíz> prueba.maxAT
Máximo de subprocesos activos
<rootMetricsPrefix>test.meanAT
Subprocesos activos medios
<rootMetricsPrefix>test.startedT
Temas iniciados
<rootMetricsPrefix>prueba.finalizadoT
Hilos terminados

15.1.2 Métricas de tiempos de respuesta

Las métricas relacionadas con la respuesta son las siguientes:

<prefijo de métricas raíz><nombre de muestra>.ok.count
Número de respuestas exitosas para el nombre de la muestra
<prefijo de métricas raíz><nombre de muestra>.h.count
Aciertos del servidor por segundo, esta métrica acumula resultados de muestra y subresultados (si usa Transaction Controller, "Generar muestra principal" debe estar desmarcado)
<prefijo de métricas raíz><nombre de muestra>.ok.min
Tiempo de respuesta mínimo para respuestas exitosas del nombre del muestreador
<prefijo de métricas raíz><nombre de muestra>.ok.max
Tiempo máximo de respuesta para respuestas exitosas del nombre de la muestra
<prefijo de métricas raíz><nombre de muestra>.ok.avg
Tiempo de respuesta promedio para respuestas exitosas del nombre del muestreador.
<prefijo de métricas raíz><nombre de muestra>.ok.pct<valor de percentil>
Percentil calculado para respuestas exitosas del nombre del muestreador. Habrá una métrica para cada valor calculado.
<prefijo de métricas raíz><nombre de muestra>.ko.count
Número de respuestas fallidas para el nombre del muestreador
<prefijo de métricas raíz><nombre de muestra>.ko.min
Tiempo de respuesta mínimo para respuestas fallidas del nombre del muestreador
<prefijo de métricas raíz><nombre de muestra>.ko.max
Tiempo máximo de respuesta para respuestas fallidas del nombre del muestreador
<prefijo de métricas raíz><nombre de muestra>.ko.avg
Tiempo medio de respuesta para respuestas fallidas del nombre del muestreador.
<prefijo de métricas raíz><nombre del muestreador>.ko.pct<valor del percentil>
Percentil calculado para respuestas fallidas del nombre del muestreador. Habrá una métrica para cada valor calculado.
<prefijo de métricas raíz><nombre de muestra>.a.count
Número de respuestas para el nombre de la muestra (suma de ok.count y ko.count)
<prefijo de métricas raíz><nombre de muestra>.sb.bytes
Bytes enviados
<prefijo de métricas raíz><nombre de muestra>.rb.bytes
Bytes recibidos
<prefijo de métricas raíz><nombre de muestra>.a.min
Tiempo de respuesta mínimo para las respuestas del nombre del muestreador (mínimo de ok.count y ko.count)
<prefijo de métricas raíz><nombre de muestra>.a.max
Tiempo máximo de respuesta para las respuestas del nombre del muestreador (máximo de ok.count y ko.count)
<prefijo de métricas raíz><nombre de muestra>.a.avg
Tiempo de respuesta promedio para las respuestas del nombre del muestreador (promedio de ok.count y ko.count)
<prefijo de métricas raíz><nombre de muestra>.a.pct<valorpercentil>
Percentil calculado para las respuestas del nombre del muestreador. Habrá una métrica para cada valor calculado. (calculado sobre los totales de las muestras correctas y fallidas)

La configuración predeterminada de percentiles en Backend Listener es "90;95;99", es decir, los 3 percentiles 90%, 95% y 99%.

La jerarquía de nomenclatura de Graphite usa un punto (".") para separar los elementos. Esto podría confundirse con valores percentiles decimales. JMeter convierte cualquiera de esos valores, reemplazando el punto (".") con un guión bajo ("-"). Por ejemplo, " 99.9 " se convierte en " 99_9 "

De forma predeterminada, JMeter envía métricas para todas las muestras acumuladas bajo el nombre de muestra " todos ". Si está configurado el samplersList de Backend Listener , entonces JMeter también envía las métricas para los nombres de muestra coincidentes a menos que summaryOnly=true

15.2 Configuración de JMeter

Para hacer que JMeter envíe métricas al backend, agregue un BackendListener usando InfluxDBBackendListenerClient.

Configuración de InfluxDB
Configuración de InfluxDB

15.3 Configuración de InfluxDB

Realice una de las siguientes acciones para almacenar datos enviados por Backend Listener:

  • Para la configuración de InfluxDB 2, cree un cubo jmeter
  • Para la configuración de InfluxDB 1.x, cree una base de datos jmeter usando la CLI de Influx
También puede usar la API HTTP, es decir , curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE jmeter"

15.3.1 Configuración de InfluxDB para InfluxDBBackendListenerClient

InfluxDB es una base de datos de series temporales, distribuida y de código abierto que permite almacenar métricas fácilmente. La instalación y configuración es muy fácil, lea esto para obtener más detalles . Documentación de InfluxDB .
Los datos de InfluxDB se pueden ver fácilmente en un navegador a través de Grafana .

15.3.2 Configuración de InfluxDB 2 para InfluxDBBackendListenerClient

La configuración debe especificar el parámetro influxdbToken y también especificar el depósito y la organización como parámetros de consulta en influxdbUrl . Consulte la API de InfluxDB v2 para obtener más detalles.

Cómo recuperar la información requerida en la interfaz de usuario de InfluxDB:

Configuración de InfluxDB 2
Configuración de InfluxDB 2

15.4 Configuración de Grafana

Instalación de grafana
Lea la documentación para obtener más detalles. Agregar la fuente de datos

Este es el tipo de tablero que puede obtener:
Tablero de Grafana
Tablero de Grafana

15.5 Grafito

AYUDA BIENVENIDO para esta sección, consulte Documentación de contribución

Go to top