MySQL Server - Langsame Abfragen (\%) überwachen

Microsoft.MySQLServer.ManagedServer.Unix.SlowQueryPct.Monitor (UnitMonitor)

MySQL-Server – Langsame Abfragen (\%) überwachen

Knowledge Base article:

Zusammenfassung

Der Prozentsatz langsamer MySQL-Serverabfragen im Vergleich zu allen Abfragen. Langsame Abfragen sind in MySQL-Datenbanken ausgeführte Abfragen, die länger brauchen als durch die globale Variable "long_query_time" festgelegt. Dieser Monitor ruft die Anzahl langsamer Abfragen aus der globalen Statusvariablen "Slow_queries" ab und teilt diese durch die Anzahl von Abfragen aus der globalen Statusvariablen "Queries". Für MySQL 5.0 und 5.1 ist die Anzahl von Abfragen die Summe der folgenden globalen Statusvariablen: "Questions", "Com_ping", "Com_statistics", "Com_stmt_prepare", "Com_stmt_close" und "Com_stmt_reset". Der Schwellenwert des Monitors wird anhand eines Durchschnitts der Werte analysiert, die nach dem Abrufen vom Agent zurückgegeben werden. Dabei wird die Anzahl der Abtastungen, die in die Berechnung des Durchschnitts einfließen, über den Parameter "Anzahl der Abtastungen" gesteuert.

Ursachen

Ein fehlerhafter Status weist darauf hin, dass ein hoher Prozentsatz von Abfragen größer ist als durch die globale Variable "long_query_time" festgelegt.

Lösungen

Um einen hohen Prozentsatz langsamer Abfragen zu beheben, können langsame Abfragen ermittelt werden, indem Sie die Protokollierung langsamer Abfragen in der Konfigurationsdatei aktivieren. Fügen Sie dazu unter den Optionen der Instanzengruppe die folgende Zeile zusammen mit einem Pfad zur Zielprotokolldatei hinzu: "log-slow-queries= Dateipfad zum Protokoll". Alternativ dazu kann der Server mit der folgenden Option gestartet werden: "--log-slow-queries=Dateipfad zum Protokoll".

Konfiguration

Standardkonfiguration

Parameter

Standardwert

Warnungsschwellenwert

Größer als 15

Fehlerschwellenwert

Größer als 25

Anzahl der Stichproben

3

Die oben für alle Instanzen oder für eine bestimmte Instanz oder Gruppe definierten Parameterwerte können mithilfe von Außerkraftsetzungen geändert werden.

Element properties:

TargetMicrosoft.MySQLServer.ManagedServer.Unix
Parent MonitorMicrosoft.MySQLServer.RowOperationsPerformanceRollup
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Oss.WSManEnumeration.GreaterThanThreshold.ThreeState.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
MySQL-Server - Langsame Abfragen (\%)
Der aktuelle Prozentsatz langsamer Abfragen ({0} \%) für den MySQL-Server ist hoch
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.MySQLServer.ManagedServer.Unix.SlowQueryPct.Monitor" Accessibility="Public" Target="Microsoft.MySQLServer.ManagedServer.Unix" TypeID="Oss!Microsoft.Oss.WSManEnumeration.GreaterThanThreshold.ThreeState.MonitorType" Enabled="onStandardMonitoring" ParentMonitorID="Microsoft.MySQLServer.RowOperationsPerformanceRollup">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.MySQLServer.ManagedServer.Unix.SlowQueryPct.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Value$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState HealthState="Success" MonitorTypeStateID="StatusOK" ID="UnderThreshold"/>
<OperationalState HealthState="Warning" MonitorTypeStateID="StatusWarning" ID="OverWarningThreshold"/>
<OperationalState HealthState="Error" MonitorTypeStateID="StatusError" ID="OverErrorThreshold"/>
</OperationalStates>
<Configuration>
<Interval>300</Interval>
<TargetSystem>$Target/Host/Property[Type="Unix!Microsoft.Unix.Computer"]/NetworkName$</TargetSystem>
<Uri>http://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/MySQL_ServerStatistics?__cimnamespace=root/mysql</Uri>
<WSManFilter/>
<ObjectName>MySQL Server</ObjectName>
<CounterName>Slow Query Pct</CounterName>
<InstanceXPath>/DataItem/WsManData/*[local-name(.)='MySQL_ServerStatistics']/*[local-name(.)='InstanceID']</InstanceXPath>
<InstanceName>$Target/Property[Type="Microsoft.MySQLServer.Installation"]/InstanceID$</InstanceName>
<Value>$Data/WsManData/*[local-name(.)='MySQL_ServerStatistics']/*[local-name(.)='SlowQueryPct']$</Value>
<WarningThreshold>15</WarningThreshold>
<ErrorThreshold>25</ErrorThreshold>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>