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

Gemeinsame Nutzung von zwei Plug-Ins zur Übersetzung von Webseiten

Übersetzen Sie diese URL: http://translateth.is G...

Detaillierte Erklärung der Truncate-Verwendung in MySQL

Anleitung in diesem Artikel: Es gibt zwei Möglich...

Detaillierte Schritte zur schnellen Installation von Openshift

Der schnellste Weg, die neueste Version von OpenS...

Detaillierte Erläuterung der JS ES6-Codierungsstandards

Inhaltsverzeichnis 1. Umfang des Blocks 1.1. let ...

So ändern Sie den Punkt im WeChat-Applet Swiper-Dot in einen Slider

Inhaltsverzeichnis Hintergrund Zieleffekt Ideen e...

Einfache Schritte zum Erstellen eines MySQL-Containers mit Docker

Vorwort Wir haben Docker bereits installiert und ...

Zehn wichtige Fragen zum Erlernen der Grundlagen von Javascript

Inhaltsverzeichnis 1. Was ist Javascript? 2. Was ...

Webdesign-Erfahrung: Selbstgerechte Webdesigner

1. Trash oder Klassiker? Die Webtechnologie aktua...

Zusammenfassung der MySQL-Datums- und Zeitfunktionen (MySQL 5.X)

1. MySQL erhält die aktuelle Datums- und Uhrzeitf...