Monitoring de latence gRPC avec des histogrammes Prometheus

imbert-julien 10/05/2026
RÉSOLU
imbert-julien
Auteur Actif
Avatar de imbert-julien
imbert-julien
Auteur Actif

Je cherche à instrumenter mes services gRPC en Go pour monitorer la latence précise. J'utilise prometheus/client_golang mais mes histogrammes ne semblent pas refléter les latences réelles (p99 très instable).

Comment configurez-vous vos Buckets pour avoir une précision correcte sans exploser la cardinalité ?

10/05/2026 à 10:34

10 commentaires

Utilise des buckets exponentiels. C'est la base pour le gRPC. Voici un exemple pour une latence en secondes :

prometheus.ExponentialBuckets(0.005, 2, 10)
11/05/2026 à 09:39
imbert-julien
Auteur Actif
Avatar de imbert-julien
imbert-julien
Auteur Actif

J'ai testé, ça donne une meilleure résolution sur les petits temps, mais ça manque de granularité au-delà d'une seconde.

12/05/2026 à 07:01
slanglois
Membre
Avatar de slanglois
slanglois
Membre

Tu peux combiner les buckets. Il n'y a pas de règle d'or, il faut adapter à ton SLA. Si ton SLA est à 200ms, tes buckets doivent être centrés autour.

12/05/2026 à 22:11
imbert-julien
Auteur Actif
Avatar de imbert-julien
imbert-julien
Auteur Actif

Je vois. Est-ce qu'il vaut mieux utiliser des Summary ou des Histogram dans ce cas ?

13/05/2026 à 16:55
xavier83
Membre
Avatar de xavier83
xavier83
Membre

Évite les Summary si tu veux agréger les données entre plusieurs instances. Les histogrammes sont indispensables pour le calcul global.

14/05/2026 à 14:47

Exactement. Pour le p99, si tu as trop de cardinalité, regarde du côté des native histograms si tu es sur une version récente de Prometheus.

15/05/2026 à 12:53
imbert-julien
Auteur Actif
Avatar de imbert-julien
imbert-julien
Auteur Actif

Je vais regarder les native histograms, ça semble être la solution pour éviter de configurer manuellement les buckets.

16/05/2026 à 09:23
slanglois
Membre
Avatar de slanglois
slanglois
Membre

Attention cependant à la consommation CPU/RAM si tu as énormément de labels (cardinalité).

17/05/2026 à 04:18
xavier83
Membre
Avatar de xavier83
xavier83
Membre

C'est vrai. Garde tes labels au strict minimum (méthode, statut).

17/05/2026 à 17:38
imbert-julien
Auteur Actif
Avatar de imbert-julien
imbert-julien
Auteur Actif

C'est noté. Je pars sur une configuration optimisée des buckets et je limite les labels. Merci pour les conseils.

18/05/2026 à 06:48

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire