![[17.0.0.3 and later]](../ng_v17003plus.gif)
API REST de métricas de MicroProfile
Las características mpMetrics-1.0 y mpMetrics-1.1 proporcionan una API REST para visualizar las métricas para que los administradores puedan acceder a ellas.
Formatos
- Formato de texto Prometheus
- Una representación de las métricas que es compatible con la herramienta de supervisión Prometheus. Se devuelve este formato para solicitudes con una cabecera de aceptación text/plain.
- Formato JSON
- Una representación JSON de las métricas. Se devuelve este formato para solicitudes con una cabecera de aceptación application/json.
Puntos finales REST
Puntos finales | Tipo de solicitud | Formatos soportados | Descripción |
---|---|---|---|
/metrics | GET | JSON, Prometheus | Devuelve todas las métricas registradas. |
/metrics/<scope> | GET | JSON, Prometheus | Devuelve métricas que se han registrado para el ámbito respectivo. |
/metrics/<ámbito>/<nombre métrica> | GET | JSON, Prometheus | Devuelve las métricas que coinciden con el nombre de la métrica para el ámbito respectivo. |
/metrics | OPTIONS | JSON | Devuelve todos los metadatos de métricas registrados. |
/metrics/<scope> | OPTIONS | JSON | Devuelve metadatos de métricas registrados para el ámbito respectivo. |
/metrics/<ámbito>/<nombre métrica> | OPTIONS | JSON | Devuelve metadatos de métricas que coinciden con el nombre de métrica para el ámbito respectivo. |
Conexión a almacenes de datos y herramientas de supervisión
Los administradores pueden conectar sus métricas de aplicación a otras herramientas y pilas que pueden analizar y supervisar la información de métrica.
De forma predeterminada, el punto final /metrics devuelve datos en un formato que es compatible con Prometheus. Para conectar el servidor Liberty a Prometheus, configure Prometheus para que utilice el punto final https://host:puerto_https/metrics.
El formato JSON puede ser utilizado por otras herramientas de recopilación de métricas que comprendan JSON. Por ejemplo, el plug-in curl_json de collectd se puede configurar para interpretar el formato JSON a partir de métricas de MicroProfile. A continuación, collectd puede enviar la información a distintas herramientas como, por ejemplo, Graphite.
Detalles de formato Prometheus
El formato de texto Prometheus se basa en el formato de exposición 0.0.4 que se describe en la documentación de Prometheus. Cuando estén disponibles, se proporcionan metadatos para cada métrica. La línea # Help contiene la descripción de la métrica. Las etiquetas presentes en los metadatos se proporcionan como etiquetas de Prometheus. La unidad de la métrica se añade al final del nombre de la métrica para indicadores e histogramas.
# TYPE application:cost_dollars gauge
# HELP application:cost_dollars El coste de ejecución del servidor en dólares.
application:cost_dollars 80
# TYPE application:visitors counter
# HELP application:visitors El número de visitantes exclusivos
application:visitors 80
# TYPE application:requests_count counter
# HELP application:requests_count Rastrea el número de solicitudes en el servidor
application:requests_count 29382
# TYPE application:requests_rate_per_second gauge
application:requests_rate_per_second 12.223
# TYPE application:requests_one_min_rate_per_second gauge
application:requests_one_min_rate_per_second 12.563
# TYPE application:requests_five_min_rate_per_second gauge
application:requests_five_min_rate_per_second 12.364
# TYPE application:requests_fifteen_min_rate_per_second gauge
application:requests_fifteen_min_rate_per_second 12.126
# TYPE application:file_sizes_mean_bytes gauge
application:file_sizes_mean_bytes 4738.231
# TYPE application:file_sizes_max_bytes gauge
application:file_sizes_max_bytes 31716
# TYPE application:file_sizes_min_bytes gauge
application:file_sizes_min_bytes 180
# TYPE application:file_sizes_stddev_bytes gauge
application:file_sizes_stddev_bytes 1054.7343037063602
# TYPE application:file_sizes_bytes summary
# HELP application:file_sizes_bytes Tamaño de archivo de usuarios
application:file_sizes_bytes_count 2037
application:file_sizes_bytes{quantile="0.5"} 4201
application:file_sizes_bytes{quantile="0.75"} 6175
application:file_sizes_bytes{quantile="0.95"} 13560
application:file_sizes_bytes{quantile="0.98"} 29643
application:file_sizes_bytes{quantile="0.99"} 31716
application:file_sizes_bytes{quantile="0.999"} 31716
# TYPE application:response_time_rate_per_second gauge
application:response_time_rate_per_second 0.004292520715985437
# TYPE application:response_time_one_min_rate_per_second gauge
application:response_time_one_min_rate_per_second 2.794076465421066E-14
# TYPE application:response_time_five_min_rate_per_second gauge
application:response_time_five_min_rate_per_second 4.800392614619373E-4
# TYPE application:response_time_fifteen_min_rate_per_second gauge
application:response_time_fifteen_min_rate_per_second 0.01063191047532505
# TYPE application:response_time_mean_seconds gauge
application:response_time_mean_seconds 0.000415041
# TYPE application:response_time_max_seconds gauge
application:response_time_max_seconds 0.0005608694
# TYPE application:response_time_min_seconds gauge
application:response_time_min_seconds 0.000169916
# TYPE application:response_time_stddev_seconds gauge
application:response_time_stddev_seconds 0.000652907
# TYPE application:response_time_seconds summary
# HELP application:response_time_seconds Tiempo de respuesta de servidor para /index.html
application:response_time_seconds_count 80
application:response_time_seconds{quantile="0.5"} 0.0002933240
application:response_time_seconds{quantile="0.75"} 0.000344914
application:response_time_seconds{quantile="0.95"} 0.000543647
application:response_time_seconds{quantile="0.98"} 0.002706543
application:response_time_seconds{quantile="0.99"} 0.005608694
application:response_time_seconds{quantile="0.999"} 0.005608694
Detalles de formato JSON - GET
El formato JSON devuelve datos que se formatean en un árbol. Cada métrica está referenciada por el nombre y el valor para indicadores y contadores o un mapa para medidores, histogramas y temporizadores.
{
"application": {
"hitCount": 45
},
"base": {
"thread.count" : 33,
"thread.max.count" : 47
},
"vendor": {...}
}
{
"hitCount": 45
}
{
"requests": {
"count": 29382,
"meanRate": 12.223,
"oneMinRate": 12.563,
"fiveMinRate": 12.364,
"fifteenMinRate": 12.126,
}
}
En el ejemplo, están presentes las claves siguientes:Clave | Valor |
---|---|
count | Un recuento del número de sucesos. |
meanRate | La velocidad media desde que se registró la métrica (sucesos/segundo). |
oneMinRate | La velocidad media durante el último minuto (sucesos/segundo). |
fiveMinRate | La velocidad media durante los últimos 5 minutos (sucesos/segundo). |
fifteenMinRate | La velocidad media durante los últimos 15 minutos (sucesos/segundo). |
{
"file_sizes": {
"count":2,
"min":-1624,
"max":26,
"mean":-799.0,
"stddev":825.0,
"p50":26.0,
"p75":26.0,
"p95":26.0,
"p98":26.0,
"p99":26.0,
"p999":26.0
}
}
En el ejemplo, están presentes las claves siguientes:Clave | Valor |
---|---|
count | Un recuento del número de sucesos. |
min | El valor mínimo registrado. |
max | El valor máximo registrado. |
mean | El valor medio. |
stddev | La desviación estándar. |
p50 | El valor en el percentil 50, igual que la mediana. |
p75 | El valor en el percentil 75. |
p95 | El valor en el percentil 95. |
p98 | El valor en el percentil 98. |
p99 | El valor en el percentil 99. |
p999 | El valor en el percentil 999. |
{
"responseTime": {
"count": 29382,
"meanRate":12.185627192860734,
"oneMinRate": 12.563,
"fiveMinRate": 12.364,
"fifteenMinRate": 12.126,
"min":169916,
"max":5608694,
"mean":415041.00024926325,
"stddev":652907.9633011606,
"p50":293324.0,
"p75":344914.0,
"p95":543647.0,
"p98":2706543.0,
"p99":5608694.0,
"p999":5608694.0
}
}
Clave | Valor |
---|---|
count | Un recuento del número de sucesos. |
meanRate | La velocidad media desde que se registró la métrica (sucesos/segundo). |
oneMinRate | La velocidad media durante el último minuto (sucesos/segundo). |
fiveMinRate | La velocidad media durante los últimos 5 minutos (sucesos/segundo). |
fifteenMinRate | La velocidad media durante los últimos quince minutos (sucesos/segundo). |
min | El valor mínimo registrado. |
max | El valor máximo registrado. |
mean | El valor medio. |
stddev | La desviación estándar. |
p50 | El valor en el percentil 50, igual que la mediana. |
p75 | El valor en el percentil 75. |
p95 | El valor en el percentil 95. |
p98 | El valor en el percentil 98. |
p99 | El valor en el percentil 99. |
p999 | El valor en el percentil 999. |
Detalles de formato JSON - OPCIONES
{
"fooVal": 12345,
"barVal": 42
}
Después, se muestra OPTIONS
/metrics/application:{
"fooVal": {
"unit": "milisegundos",
"type": "indicador",
"description": "La duración media de las solicitudes foo durante los últimos 5 minutos",
"displayName": "Duración de foo",
"tags": "app=webshop"
},
"barVal": {
"unit": "megabytes",
"type": "indicador",
"tags": "component=backend,app=webshop"
}
}