![[17.0.0.3 and later]](../ng_v17003plus.gif)
API REST MicroProfile metrics
Les fonctions mpMetrics-1.0 et mpMetrics-1.1 fournissent une API REST permettant d'afficher les métriques pour l'accès par les administrateurs.
Formats
- Format de texte Prometheus
- Représentation des métriques compatible avec l'outil de surveillance Prometheus. Ce format est renvoyés pour les demandes avec une en-tête d'acceptation text/plain.
- Format JSON
- Représentation JSON des métriques. Ce format est renvoyé pour les demandes possédant une en-tête d'acceptation application/json.
Noeuds finaux REST
Noeuds finaux | Type de demande | Formats pris en charge | Description |
---|---|---|---|
/metrics | GET | JSON, Prometheus | Renvoie toutes les métriques enregistrées. |
/metrics/<scope> | GET | JSON, Prometheus | Renvoie les métriques enregistrées pour la portée respective. |
/metrics/<scope>/<metric name> | GET | JSON, Prometheus | Renvoie la métrique correspondant au nom de métrique de la portée respective. |
/metrics | OPTIONS | JSON | Renvoie toutes les métadonnées des métriques enregistrées. |
/metrics/<scope> | OPTIONS | JSON | Renvoie les métadonnées de métriques enregistrées pour la portée respective. |
/metrics/<scope>/<metric name> | OPTIONS | JSON | Renvoie les métadonnées de métrique correspondant au nom de métrique de la portée respective. |
Connexion aux magasins de données et aux outils de surveillance
Les administrateurs peuvent connecter leurs métriques d'applications à d'autres outils et piles qui peuvent analyser et surveiller les informations des métriques.
Par défaut, le noeud final /metrics renvoie des données dans un format compatible avec Prometheus. Pour connecter votre serveur Liberty à Prometheus, configurez Prometheus pour utiliser le noeud final https://hôte:port_https/metrics.
Le format JSON peut être utilisé par d'autres outils de collecte de métriques comprenant JSON. Par exemple, le plug-in collectd curl_json peut être configuré pour interpréter le format JSON depuis MicroProfile metrics. collectd peut ensuite renvoyer les informations à différents outils, tels que Graphite.
Détails du format Prometheus
Le format de texte Prometheus est basé sur le format d'exposition 0.0.4 décrit dans la documentation de Prometheus. Lorsqu'elles sont disponibles, des métadonnées sont fournies à chaque métrique. La ligne # Help contient la description de la métrique. Toute balise présente dans les métadonnées sont fournies en tant qu'étiquettes Prometheus. L'unité de la métrique est ajoutée à la fin du nom de métrique pour les jauges et les histogrammes.
# TYPE application:cost_dollars gauge
# HELP application:cost_dollars The running cost of the server in dollars.
application:cost_dollars 80
# TYPE application:visitors counter
# HELP application:visitors The number of unique visitors
application:visitors 80
# TYPE application:requests_count counter
# HELP application:requests_count Tracks the number of requests to the server
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 Users file size
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 Server response time for /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
Détails du format JSON - GET
Le format JSON renvoie les données qui sont formatées dans un arbre. Chaque métrique est référencée par le nom et soit la valeur des jauges et des compteurs, soit une carte des mètres, des histogrammes et des temporisateurs.
{
"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,
}
}
Dans l'exemple, les clés suivantes sont présentes :Clé | Valeur |
---|---|
count | Comptage du nombre d'événements. |
meanRate | Taux moyen depuis l'enregistrement de la métrique (événements/seconde). |
oneMinRate | Taux moyen de la dernière minute (événements/seconde). |
fiveMinRate | Taux moyen au cours des 5 dernières minutes (événements/seconde). |
fifteenMinRate | Taux moyen au cours des 15 dernières minutes (événements/seconde). |
{
"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
}
}
Dans l'exemple, les clés suivantes sont présentes :Clé | Valeur |
---|---|
count | Comptage du nombre d'événements. |
min | Valeur minimale enregistrée. |
max | Valeur maximale enregistrée. |
mean | Valeur moyenne. |
stddev | Déviation standard. |
p50 | Valeur au percentile 50, égale à la médiane. |
p75 | Valeur au percentile 75. |
p95 | Valeur au percentile 95. |
p98 | Valeur au percentile 98. |
p99 | Valeur au percentile 99. |
p999 | Valeur au percentile 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
}
}
Clé | Valeur |
---|---|
count | Comptage du nombre d'événements. |
meanRate | Taux moyen depuis l'enregistrement de la métrique (événements/seconde). |
oneMinRate | Taux moyen de la dernière minute (événements/seconde). |
fiveMinRate | Taux moyen au cours des 5 dernières minutes (événements/seconde). |
fifteenMinRate | Taux moyen des quinze dernières minutes (événements/seconde). |
min | Valeur minimale enregistrée. |
max | Valeur maximale enregistrée. |
mean | Valeur moyenne. |
stddev | Déviation standard. |
p50 | Valeur au percentile 50, égale à la médiane. |
p75 | Valeur au percentile 75. |
p95 | Valeur au percentile 95. |
p98 | Valeur au percentile 98. |
p99 | Valeur au percentile 99. |
p999 | Valeur au percentile 999. |
Détails du format JSON - OPTIONS
{
"fooVal": 12345,
"barVal": 42
}
Alors, OPTIONS /metrics/application affiche :{
"fooVal": {
"unit": "milliseconds",
"type": "gauge",
"description": "The average duration of foo requests during last 5 minutes",
"displayName": "Duration of foo",
"tags": "app=webshop"
},
"barVal": {
"unit": "megabytes",
"type": "gauge",
"tags": "component=backend,app=webshop"
}
}