La traduction de l'article a été préparée avant le début du cours «DevOps Practices and Tools» .
La mĂ©thode RED (taux, erreurs, durĂ©e) est l'une des approches les plus populaires du suivi des performances. Il est souvent utilisĂ© pour surveiller les microservices , bien que rien ne vous empĂȘche de l'utiliser pour des bases de donnĂ©es telles que MySQL.
Dans Percona Monitoring and Management (PMM) v2, toutes les informations nécessaires sont collectées dans la base de données ClickHouse, puis c'est une question de technologie pour créer un tableau de bord pour visualiser les métriques à l'aide de la source de données ClickHouse intégrée .
Lors de la crĂ©ation du tableau de bord, en plus des panneaux pour RED, plusieurs panneaux supplĂ©mentaires ont Ă©tĂ© ajoutĂ©s pour montrer certaines choses intĂ©ressantes qui peuvent ĂȘtre faites avec Grafana + ClickHouse comme source de donnĂ©es et les informations que nous stockons sur les performances des requĂȘtes MySQL.
Regardons de plus prĂšs le tableau de bord.
Nous voyons les panneaux RED classiques indiquant le taux de requĂȘte (requĂȘtes par seconde), le taux d'erreur (erreurs), ainsi que la latence de requĂȘte moyenne et au 99e centile (temps d'exĂ©cution de la requĂȘte) pour tous les nĆuds du systĂšme. Les panneaux ci-dessous affichent des informations sur des nĆuds spĂ©cifiques, ce qui est trĂšs utile pour comparer leurs performances. Si l'un des nĆuds commence Ă fonctionner diffĂ©remment des autres nĆuds similaires, c'est une raison d'investigation.
Ă l'aide de filtres («Filtres» en haut du tableau de bord), vous pouvez afficher uniquement les donnĂ©es dont vous avez besoin. Par exemple, vous pouvez sĂ©lectionner uniquement les requĂȘtes de schĂ©ma "sbtest" pour les hĂŽtes situĂ©s dans la rĂ©gion "datacenter4":
Ce filtrage ad hoc est trĂšs pratique. Vous pouvez utiliser des expressions rĂ©guliĂšres dans les filtres, rechercher par un QueryID spĂ©cifique, analyser les requĂȘtes d'hĂŽtes clients spĂ©cifiques, etc. Pour une description des colonnes disponibles dans ClickHouse, voir l' article Analyse avancĂ©e des requĂȘtes dans Percona Monitoring and Management avec Direct ClickHouse Access .
Depuis la plupart des panneaux, vous pouvez accĂ©der rapidement Ă Analyse des requĂȘtes pour afficher des informations dĂ©taillĂ©es sur les performances des requĂȘtes, ou si vous remarquez quelque chose d'inhabituel sur l'un des hĂŽtes, vous pouvez afficher les requĂȘtes de cet hĂŽte via les "Liens de donnĂ©es" - cliquez sur graphique et suivez le lien dĂ©diĂ©:
Pour chacun des systĂšmes sĂ©parĂ©ment, vous pouvez regarder les mĂȘmes mĂ©triques RED que pour l'ensemble du systĂšme dans son ensemble. Par dĂ©faut, je laisserais ces panneaux rĂ©duits au minimum, surtout si vous surveillez de nombreux hĂŽtes.
Nous nous sommes familiarisĂ©s avec les panneaux de la mĂ©thode RED. Jetons maintenant un coup d'Ćil aux tableaux de bord supplĂ©mentaires de ce tableau de bord.
L'efficacitĂ© basĂ©e sur les lignes indique le nombre de lignes analysĂ©es par ligne renvoyĂ©e ou modifiĂ©e. En rĂšgle gĂ©nĂ©rale, les valeurs supĂ©rieures Ă 100 indiquent des index incorrects ou des requĂȘtes trĂšs complexes qui lisent beaucoup de donnĂ©es et ne renvoient que quelques lignes. Ces deux cas nĂ©cessitent une analyse.
EfficacitĂ© basĂ©e sur le temps(efficacitĂ© basĂ©e sur le temps) est basĂ©e sur les mĂȘmes calculs, mais examine le temps d'exĂ©cution de la requĂȘte plutĂŽt que le nombre de lignes analysĂ©es. Cela vous permet d'identifier les problĂšmes avec un disque lent ou des demandes en conflit. En rĂšgle gĂ©nĂ©rale, un systĂšme hautes performances doit s'attendre Ă ce que des fractions de milliseconde envoient ou modifient une chaĂźne au client. Les requĂȘtes qui renvoient ou mettent Ă jour de nombreuses lignes auront une valeur infĂ©rieure.
RequĂȘtes par hĂŽte(le nombre de requĂȘtes par hĂŽte) parle de lui-mĂȘme et Ă cĂŽtĂ©, il est trĂšs utile de voir la charge de requĂȘte par hĂŽte (charge par hĂŽte), qui montre le nombre de requĂȘtes actives simultanĂ©es. Ici, nous pouvons voir que malgrĂ© le fait que mysql4 n'a pas le plus grand nombre de requĂȘtes (taux de requĂȘtes), il a la charge la plus Ă©levĂ©e et le plus grand nombre moyen de requĂȘtes actives.
En rĂ©flĂ©chissant Ă quelles autres mĂ©triques pourraient ĂȘtre utiles, j'ai ajoutĂ© les panneaux supplĂ©mentaires suivants:
Ces panneaux sĂ©parent l'efficacitĂ© du traitement des requĂȘtes en requĂȘtes READ (qui renvoient des lignes) et en requĂȘtes WRITE (qui ont row_affected).
L'efficacitĂ© basĂ©e sur QueryTime est la mĂȘme que celle dĂ©crite ci-dessus, uniquement en mettant l'accent sur certains types de requĂȘtes.
EfficacitĂ© de l'analyse des donnĂ©es(efficacitĂ© du traitement des donnĂ©es) est un regard lĂ©gĂšrement diffĂ©rent sur les mĂȘmes donnĂ©es. Cela montre combien de lignes sont examinĂ©es par la requĂȘte par rapport au temps d'exĂ©cution de la requĂȘte. Ceci, d'une part, montre la puissance de traitement du systĂšme. Un systĂšme avec beaucoup de cĆurs, ayant toutes les donnĂ©es en mĂ©moire, peut traiter des millions de lignes par seconde et faire beaucoup de travail. Mais cela ne signifie pas l'efficacitĂ© des requĂȘtes. En fait, les systĂšmes qui traitent rapidement beaucoup de donnĂ©es effectuent souvent de nombreuses analyses de table complĂštes.
Enfin, il existe plusieurs listes de requĂȘtes.
RequĂȘtes frĂ©quentes, requĂȘtes les plus lentes (par durĂ©e d'exĂ©cution moyenne), requĂȘtes avec la charge la plus Ă©levĂ©e et requĂȘtes qui ont Ă©chouĂ© ou Ă©chouĂ©. Vous pouvez Ă©galement voir ces requĂȘtes dans Query Analytics, mais je voulais les montrer ici Ă titre d'exemple.
Es tu intéressé? Vous pouvez installer le tableau de bord dans Percona Monitoring and Management (PMM) v2 à partir de Grafana.com .
Du code aux kubernetes