5 votes

Comment vérifier le nombre réel d'emplacements de cache de session de récupération incrémentielle utilisés dans le cluster Kafka ?

Je lis cette question Kafka : Obtention continue de FETCH_SESSION_ID_NOT_FOUND J'essaie d'appliquer la solution suggérée par Hrishikesh Mishra, car nous sommes également confrontés au même problème. J'ai donc augmenté le paramètre du courtier max.incremental.fetch.session.cache.slots à 2000, la valeur par défaut étant 1000. Mais maintenant je me demande comment je peux surveiller le nombre réel d'emplacements de cache de session de récupération incrémentielle utilisés, dans prometheus je vois les métriques kafka_server_fetchsessioncache_numincrementalfetchpartitionscached, et la requête promql montre sur chacun des trois courtiers le nombre qui est maintenant nettement supérieur à 2000, c'est-à-dire 2703, 2655 et 2054, donc je suis confus si je regarde les métriques appropriées. Il y a aussi kafka_server_fetchsessioncache_incrementalfetchsessionevictions_total qui montre des zéros sur tous les brokers.

OK, il y a aussi kafka_server_fetchsessioncache_numincrementalfetchsessions qui montre environ 500 sur chacun des trois brokers, donc un total d'environ 1500, qui est entre 1000 et 2000, donc peut-être que cette métrique est celle qui est contrôlée par max.incremental.fetch.session.cache.slots ?

En fait, à l'heure actuelle, il y a déjà plus de 700 sessions de récupération incrémentale sur chaque courtier, soit un total de plus de 2100, donc, évidemment, la limite de 2000 s'applique à chaque courtier, de sorte que le nombre dans l'ensemble du cluster peut aller jusqu'à 6000. La raison pour laquelle le nombre est maintenant inférieur à 1000 sur chaque courtier est que les courtiers ont été redémarrés après le changement de configuration.

Et la question est de savoir comment contrôler cette répartition au niveau du consommateur individuel. Une telle requête :

count by (__name__) ({__name__=~".*fetchsession.*"})

ne renvoie que ce tableau :

Element                                                             Value
kafka_server_fetchsessioncache_incrementalfetchsessionevictions_total{} 3
kafka_server_fetchsessioncache_numincrementalfetchpartitionscached{}    3
kafka_server_fetchsessioncache_numincrementalfetchsessions{}            3

8voto

Mickael Maison Points 6089

La métrique nommée kafka.server:type=FetchSessionCache,name=NumIncrementalFetchSessions est la façon correcte de surveiller le nombre de FetchSessions.

La taille est configurable via max.incremental.fetch.session.cache.slots . Notez que ce paramètre est appliqué par courtier, de sorte que chaque courtier peut mettre en cache jusqu'à max.incremental.fetch.session.cache.slots sessions.

L'autre métrique que vous avez vue, kafka.server:type=FetchSessionCache,name=NumIncrementalFetchPartitionsCached est le nombre total de partitions utilisées dans toutes les sessions de recherche. De nombreuses sessions FetchSession utilisent plusieurs partitions, on s'attend donc à en voir un grand nombre.

Comme vous l'avez dit, le faible nombre de FetchSessions que vous avez vu était probablement dû au redémarrage.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X