消息大小

Microsoft.MSMQ.10.0.Monitor.QueueBytes.Baseline (UnitMonitor)

监视队列中消息的大小以了解基准。

Knowledge Base article:

摘要

此监视器可检查队列中消息的大小。

配置

默认情况下,此监视器处于禁用状态。要使其运行,必须使用替代方法来启用此监视器。

可以通过替代设置以下参数来修改此监视器的行为。

需发出警报的状态

生成警报的状态。

警报优先级

警报的优先级。

警报严重性

警报的严重性。

自动解决警报

如果阈值低于相应阈值,则自动解决警报。

已启用

此监视器是否已启用。

生成警报

达到相应阈值时,此监视器是否会生成警报。

内部敏感度

自我调整阈值的内部敏感度设置。

间隔(秒)

执行测试的间隔秒数。如果此值设置得过低,可能导致 MSMQ 服务超支。如果此值设置得过高,可能无法适时检测到错误状态。默认设置为 120 秒(每 2 分钟执行一次测试)。

外部敏感度

自我调整阈值的外部敏感度设置。

超时(秒)

操作尚未彻底执行完成随即中止,这此截点之前其可耗用的秒数。

原因

在正常操作的情况下,将消息添加到队列中时,应用程序应该会及时收到这些消息。这些消息的大小将构建一个基线。如果应用程序开始接收超出该基线的消息,则可能表示发送消息的应用程序发生了更改。

解决方法

检查正在发送该大小消息的应用程序和队列,以验证其为预期行为。

Element properties:

TargetMicrosoft.MSMQ.10.0.Queues
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.MSMQ.10.0.Queue.TwoStateBaseliningMonitorWithoutCompression
RemotableTrue
AccessibilityPublic
Alert Message
队列消息计数警报
相关详细信息,请参阅警报上下文。
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.MSMQ.10.0.Monitor.QueueBytes.Baseline" Accessibility="Public" Enabled="false" Target="Microsoft.MSMQ.10.0.Queues" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.MSMQ.10.0.Queue.TwoStateBaseliningMonitorWithoutCompression" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.MSMQ.10.0.Monitor.QueueMessageCount.Baseline.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="BelowNormal" MonitorTypeStateID="Below" HealthState="Success"/>
<OperationalState ID="AboveNormal" MonitorTypeStateID="Above" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<SignatureID>Microsoft.MSMQ.10.0.Monitor.QueueBytes.Baseline.Signature</SignatureID>
<DataSourceSettings>
<IntervalSeconds>600</IntervalSeconds>
<ComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<QueuePath>$Target/Property[Type="Microsoft.MSMQ.10.0.Queue"]/PathName$</QueuePath>
<CounterName>KBytes In Queue</CounterName>
<LogDetail>false</LogDetail>
<TimeoutSeconds>300</TimeoutSeconds>
</DataSourceSettings>
<LearningAndBaseliningSettings>
<BusinessCycleLengthUnit>Day</BusinessCycleLengthUnit>
<BusinessCycleLengthInGivenUnit>1</BusinessCycleLengthInGivenUnit>
<LearningType>Continuous</LearningType>
<Offset1>3</Offset1>
<Offset2>3</Offset2>
<Offset3>3</Offset3>
<LearningRate>2</LearningRate>
<InitialNoAlertPeriodInBizCycles>1</InitialNoAlertPeriodInBizCycles>
<OuterSensitivity>3.31</OuterSensitivity>
<InnerSensitivity>2.81</InnerSensitivity>
</LearningAndBaseliningSettings>
<SignatureCollectionSettings>
<DBUpdatePeriodInSeconds>900</DBUpdatePeriodInSeconds>
</SignatureCollectionSettings>
</Configuration>
</UnitMonitor>