Monitor de Percentagem de Consultas Lentas do Servidor MySQL

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

Knowledge Base article:

Resumo

A percentagem de consultas lentas do Servidor MySQL comparadas com todas as consultas. As consultas lentas são consultas executadas em Bases de Dados MySQL que demoram mais tempo do que a variável global "long_query_time". Este monitor obtém o número de consultas lentas da variável de estado global "Slow_queries" e divide-o pelo número de consultas da variável de estado global "Queries". Para o MySQL 5.0 e 5.1, o número de consultas é a soma das seguintes variáveis de estado globais: "Questions", "Com_ping" , "Com_statistics", "Com_stmt_prepare", "Com_stmt_close" e "Com_stmt_reset". O limiar do monitor é comparado com a média dos valores devolvidos nas consultas ao agente e o número de amostras incluídas no cálculo da média é controlado pelo parâmetro Número de Amostras.

Causas

Um estado de funcionamento incorreto indica que a percentagem de consultas superiores à variável global "long_query_time" é elevada.

Resoluções

Para resolver uma percentagem elevada de consultas lentas, estas podem ser determinadas ao ativar o registo de consultas lentas no ficheiro de configuração. Isto é possível ao acrescentar a seguinte linha, juntamente com o caminho do ficheiro de registo de destino por baixo das opções de grupo de instâncias: “log-slow-queries= caminho de ficheiro para registo”. Como alternativa, o servidor pode ser iniciado com a seguinte opção: “--log-slow-queries= caminho de ficheiro para registo”.

Configuração

Configuração Predefinida

Parâmetro

Valor Predefinido

Limiar de Aviso

Maior que 15

Limiar de Erros

Maior que 25

Número de Amostras

3

As substituições podem ser utilizadas para alterar os valores dos parâmetros acima definidos para todas as instâncias ou para instâncias específicas ou grupos.

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
Percentagem de Consultas Lentas do Servidor MySQL
A Percentagem de Consultas Lentas atual ({0}\%) para o Servidor MySQL está elevada
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>