Verwenden Sie Prometheus, um den verbleibenden verfügbaren Prozentsatz der MySQL-Autoinkrement-Primärschlüssel zu zählen

Verwenden Sie Prometheus, um den verbleibenden verfügbaren Prozentsatz der MySQL-Autoinkrement-Primärschlüssel zu zählen

Vor kurzem hat eine Datenbank in der Produktionsumgebung Protokolldaten wie verrückt geschrieben, was zu einem Überlauf der Primärschlüsselwerte führte. Daher muss dieser Indikator überwacht werden.

mysqld_exporter verfügt über diese Funktion. Hier sind die Startparameter, die ich verwende:

kein Befehl ./mysqld_exporter --config.my-cnf="./my.cnf" --web.listen-address=":9104" --collect.heartbeat --collect.auto_increment.columns --collect.binlog_size --collect.engine_innodb_status --collect.engine_tokudb_status --collect.slave_hosts --collect.slave_status --collect.info_schema.processlist --collect.info_schema.innodb_metrics > /dev/null 2>&1 &

Die rot hervorgehobenen Parameter werden verwendet, um die Nutzung der Auto-Increment-ID zu erfassen.

Das tatsächlich ausgeführte SQL sieht ungefähr so ​​aus:

WÄHLEN 
 Tabellenschema,
 Tabellenname,
 Spaltenname,
 AUTO_INCREMENT,
 POW(2, CASE Datentyp
   WENN 'tinyint' DANN 7
   WENN 'smallint' DANN 15
   WENN 'mediumint' DANN 23
   WENN 'int' DANN 31
   WENN 'bigint' DANN 63
   END+(Spaltentyp LIKE '% unsigned'))-1 AS max_int 
  VON information_schema.tables t
   JOIN information_schema.columns c USING (Tabellenschema, Tabellenname)
  WO
   c.extra = "auto_increment" 
  UND
   t.TABLE_SCHEMA NICHT IN ('Informationsschema', 'MySQL', 'Sys', 'Test', 'Leistungsschema') 
  UND
   t.auto_increment IST NICHT NULL; 

In der Prometheus-Weboberfläche können wir das folgende PromQL testen und schreiben, um die Bibliothek + den Tabellennamen der Instanz mit der verbleibenden Auto-Increment-ID-Rate von weniger als 40 % zu finden

(mysql_info_schema_auto_increment_column_max{schema!~'test|mysql'} - mysql_info_schema_auto_increment_column{schema!~'test|mysql'})/mysql_info_schema_auto_increment_column_max{schema!~'test|mysql'}*100 < 40

Nachdem wir die Daten erhalten haben, können wir relevante Alarme im Alertmanager konfigurieren oder wie folgt ein Diagramm auf Grafana zeichnen:

Dies ist das Ende dieses Artikels über die Verwendung von Prometheus zum Zählen des verbleibenden verfügbaren Prozentsatzes der MySQL-Autoinkrement-Primärschlüssel. Weitere relevante Prometheus-Statistiken zu MySQL-Autoinkrement-Primärschlüsseln finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Verwenden Sie Grafana+Prometheus, um die Leistung des MySQL-Dienstes zu überwachen
  • Detaillierte Erläuterung der Leistungsüberwachung des MySQL-Servers mit Prometheus und Grafana
  • SpringBoot-Beispielcode mit Prometheus-Überwachung
  • Beispiel für die Integration der Prometheus-Überwachung mit Springboot2.X
  • Detaillierte Schritte für SpringBoot+Prometheus+Grafana zur Implementierung von Anwendungsüberwachung und Alarm
  • Detailliertes Installations- und Konfigurationstutorial von Prometheus
  • Prometheus-Tutorial für die ersten Schritte: SpringBoot implementiert die Überwachung benutzerdefinierter Metriken
  • Detaillierte Erläuterung des Prozesses zur Entwicklung des Middleware-Exporters in Prometheus
  • So integrieren Sie Prometheus in Springboot
  • So schreiben Sie benutzerdefinierte Indikatoren mit der Python-Bibliothek Prometheus (vollständiger Code)
  • Detaillierte Erläuterung des Tutorials zur Überwachung von Springboot-Anwendungen mit Prometheus+Grafana
  • Prometheus überwacht MySQL mithilfe der Grafana-Anzeige

<<:  Detaillierte Erklärung der Entwurfsmuster des JavaScript-Frameworks

>>:  Modularität in Node.js, npm-Paketmanager erklärt

Artikel empfehlen

Vue realisiert den Fortschrittsbalken-Änderungseffekt

Dieser Artikel verwendet Vue, um einfach die Ände...

Detaillierte Erläuterung der CSS-Randüberlappung und Lösungssuche

Ich habe kürzlich einige CSS-bezogene Wissenspunk...

Eine kurze Erläuterung der Situationen in MySQL, die zu Indexfehlern führen

Hier einige Tipps von Ausbildungsstätten und mein...

Einführung in die neuen Funktionen von MySQL 8.0.11

MySQL 8.0 für Windows v8.0.11 offizielle kostenlo...

Umfassende Übersicht über die verschiedenen Abhörmethoden von Vue3.0

Inhaltsverzeichnis Hörer 1.Uhreneffekt 2.Uhr 1.1 ...

So verwenden Sie den Linux-Befehl whatis

01. Befehlsübersicht Der Befehl whatis sucht in e...

MySql Group By implementiert die Gruppierung mehrerer Felder

Bei täglichen Entwicklungsaufgaben verwenden wir ...

Detaillierte Zusammenfassung des JavaScript-Arrays

Inhaltsverzeichnis 1. Array-Induktion 1. Teilen S...

HTML-Grundlagen - Einfaches Beispiel zum Festlegen des Hyperlink-Stils

*** Beispiel für das Festlegen des Stils eines Hy...

Nginx leitet dynamisch an Upstream weiter, entsprechend dem Pfad in der URL

In Nginx gibt es einige erweiterte Szenarien, in ...