Monitor del porcentaje de consultas lentas de MySQL Server

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

Monitor del porcentaje de consultas lentas del servidor MySQL

Knowledge Base article:

Resumen

El porcentaje de consultas lentas del servidor MySQL en comparación con todas las consultas. Las consultas lentas son consultas ejecutadas en bases de datos MySQL que tardan más tiempo del especificado en la variable global ‘long_query_time’. Este monitor toma el número de consultas lentas de la variable de estado global ‘Slow_queries’ y divide por el número de consultas de la variable de estado global ‘Queries’. En el caso de MySQL 5.0 y 5.1, el número de consultas equivale a la suma de las siguientes variables de estado globales: ‘Questions’, ‘Com_ping’, ‘Com_statistics’, ‘Com_stmt_prepare’, ‘Com_stmt_close’ y ‘Com_stmt_reset’. El umbral de monitor se analiza con el promedio de valores devueltos en sondeos realizados al agente, donde el parámetro de número de muestras controla el número de muestras incluidas en el cálculo del promedio.

Causas

Un estado incorrecto indica que el porcentaje de consultas con un valor superior al especificado en la variable global ‘long_query_time’ es alto.

Soluciones

Para hacer frente al porcentaje alto de consultas lentas, se puede determinar cuáles son estas activando el registro de consultas lentas en el archivo de configuración. Para ello, agregue la línea siguiente junto con la ruta del archivo de registro de destino debajo de las opciones del grupo de instancias: “log-slow-queries= ruta del archivo que se va a registrar”. Si lo prefiere, puede iniciar el servidor con la opción siguiente: “--log-slow-queries=ruta del archivo que se va a registrar”.

Configuración

Configuración predeterminada

Parámetro

Valor predeterminado

Umbral de advertencia

Superior a 15

Umbral de error

Superior a 25

Número de muestras

3

Se pueden usar invalidaciones para cambiar los valores de parámetros definidos anteriormente para todas las instancias o para instancias o grupos específicos.

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
Porcentaje de consultas lentas del servidor MySQL
El porcentaje actual ({0} \%) de consultas lentas para el servidor MySQL es alto
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>