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

Beispielcode zur Implementierung einer einfachen Suchmaschine mit MySQL

Inhaltsverzeichnis Vorwort Einführung Ngram-Vollt...

Implementierung des Wasserfall-Layouts im Uni-App-Projekt

GitHub-Adresse, Sie können es mit einem Stern mar...

Eine kurze Diskussion über die häufig verwendeten APIs der VUE uni-app

Inhaltsverzeichnis 1. Routing und Seitensprung 2....

Analyse des Implementierungsprinzips von Vue-Anweisungen

Inhaltsverzeichnis 1. Grundlegende Verwendung 2. ...

Das Vue-Projekt implementiert einen grafischen Überprüfungscode

In diesem Artikelbeispiel wird der spezifische Co...

So beheben Sie den abnormalen Start von mysql5.7.21

Ein Kollege meldete, dass eine MySQL-Instanz aufg...

Detaillierte Erklärung der MySQL-Halbsynchronisierung

Inhaltsverzeichnis Vorwort MySQL Master-Slave-Rep...

Detaillierte Erläuterung der Wissenspunkte zu Linux Netfilter/Iptables

Netzfilter Netfilter ist ein Paketverarbeitungsmo...

Detaillierte Erklärung der Vue px-zu-rem-Konfiguration

Inhaltsverzeichnis Methode 1 1. Konfigurations- u...

Grundsätze und Nutzungsdetails für MySQL 8.0-Benutzer- und Rollenverwaltung

Dieser Artikel beschreibt die Benutzer- und Rolle...

Implementierung von JavaScript zum Herunterladen und Hochladen verknüpfter Bilder

Da wir Bilder hochladen möchten, müssen wir zunäc...