M365 MailFlow - ExchangeHybrid (Exchange to M365) Message Receive Duration (ms) Performance Collection Rule

M365SMAIL.MailFlow.Exchange_to_M365.Message.Receive.Duration.ms.Performance.Collection.Rule (Rule)

This rule measures the amount of time (ms) it takes to receive a test email sent through M365 to M365.

Knowledge Base article:

Summary

Will perform synthetic tests to collect mail send/receive performance (milliseconds) from Exchange (on premises) to M365. 

Additional

None.

External

https://MonitoringGuys.com

Overridable Parameters

Name

Description

Default Value

EventIDFilter

This can be used to filter which EventIDs get written by the workflow to the Operations Manager event log. This is only relevant when logging is enabled. See 'WriteToEventLog'. Typically this is for customer support engineer use only.

PoshLibraryPath

For customer support engineer use only.

ProbeActionTimeoutSeconds

If the workflow module does not exit gracefully by this time limit, the module will be forced to terminate.

300

SyncTime

This can be set to force a workflow to synchronize its Interval to a specific start time. If no SyncTime value is provided to the workflow, the workflow will be initiated at the agent's earliest opportunity after receiving a configuration change or restarting. Typically no SyncTime is preferred. Format is 00:00. Example for 5:36pm: 17:36. Example for 2:15am: 02:15.

WorkflowName

This value gets passed into the datasource script and becomes noted in logged events (if logging is enabled). The value provided for this parameter gets appended to the ProbeAction/WriteAction name used for the datasource. If the datasource is used by more than one workflow an override value for this parameter could break cookdown. This could be used to differentiate/identify a specific instance of the scripted datasource. Typically this is for customer support engineer use only.

WriteToEventLog

This will enable/disable script logging to the Operations Manager event log.

false

Element properties:

TargetM365SMAIL.MailFlow.ExchangeHybrid
CategoryPerformanceCollection
EnabledTrue
Alert GenerateFalse
RemotableTrue

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource M365SMAIL.O365MailFlow.DS Default
CD ConditionDetection System.Performance.DataGenericMapper Default
CollectToDB WriteAction Microsoft.SystemCenter.CollectPerformanceData Default
CollectToDW WriteAction Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData Default

Source Code:

<Rule ID="M365SMAIL.MailFlow.Exchange_to_M365.Message.Receive.Duration.ms.Performance.Collection.Rule" Target="M365SMAIL.MailFlow.ExchangeHybrid" Enabled="true" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>PerformanceCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="M365SMAIL.O365MailFlow.DS">
<ApiTokenScopeURL>$Target/Host/Property[Type="M365SL!M365SL.WatcherNode"]/ApiTokenScopeURL$</ApiTokenScopeURL>
<ApiTokenURL>$Target/Host/Property[Type="M365SL!M365SL.WatcherNode"]/ApiTokenURL$</ApiTokenURL>
<ApiURL>$Target/Host/Property[Type="M365SL!M365SL.WatcherNode"]/ApiURL$</ApiURL>
<ExchangeURL>$Target/Property[Type="M365SMAIL.MailFlow.ExchangeHybrid"]/ExchangeURL$</ExchangeURL>
<ExchangeWebServicesPath>$Target/Property[Type="M365SMAIL.MailFlow.ExchangeHybrid"]/ExchangeWebServicesPath$</ExchangeWebServicesPath>
<!-- Verify direction ! -->
<MailflowDirection>PtoA</MailflowDirection>
<M365_ClientID>$Target/Property[Type="M365SL!M365SL.M365ServiceComponent"]/M365_ClientID$</M365_ClientID>
<M365_ClientSecret>$Target/Property[Type="M365SL!M365SL.M365ServiceComponent"]/M365_ClientSecret$</M365_ClientSecret>
<EventIDFilter/>
<IntervalSeconds>$Target/Property[Type="M365SMAIL.MailFlow.ExchangeHybrid"]/Exch_to_M365_IntervalSeconds$</IntervalSeconds>
<PoshLibraryPath/>
<ProbeActionTimeoutSeconds>300</ProbeActionTimeoutSeconds>
<!-- Make sure Receiver is correct ! -->
<ReceiverEmailAddress>$Target/Property[Type="M365SMAIL.MailFlow"]/M365_ReceiverEmailAddress$</ReceiverEmailAddress>
<ReceiverPassword>$Target/Property[Type="M365SMAIL.MailFlow"]/M365_ReceiverPassword$</ReceiverPassword>
<ReceiveTimeoutSeconds>$Target/Property[Type="M365SMAIL.MailFlow.ExchangeHybrid"]/Exchange_ReceiveTimeoutSeconds$</ReceiveTimeoutSeconds>
<ReceiveRetry_WaitSeconds>$Target/Property[Type="M365SMAIL.MailFlow.ExchangeHybrid"]/M365_to_Exch_ReceiveRetry_WaitSeconds$</ReceiveRetry_WaitSeconds>
<!-- Make sure Sender is correct ! -->
<SenderEmailAddress>$Target/Property[Type="M365SMAIL.MailFlow.ExchangeHybrid"]/Exchange_SenderEmailAddress$</SenderEmailAddress>
<SenderPassword>$Target/Property[Type="M365SMAIL.MailFlow.ExchangeHybrid"]/Exchange_SenderPassword$</SenderPassword>
<SyncTime/>
<TenantName>$Target/Property[Type="M365SL!M365SL.M365ServiceComponent"]/TenantName$</TenantName>
<TLSVersion>$Target/Host/Property[Type="M365SL!M365SL.WatcherNode"]/TLSVersion$</TLSVersion>
<WorkflowName/>
<WriteToEventLog>false</WriteToEventLog>
</DataSource>
</DataSources>
<ConditionDetection ID="CD" TypeID="Perf!System.Performance.DataGenericMapper">
<ObjectName>Exchange_to_M365</ObjectName>
<CounterName>ReceiveDuration(ms)</CounterName>
<InstanceName>$Target/Property[Type="M365SL!M365SL.M365ServiceComponent"]/TenantName$</InstanceName>
<Value>$Data/Property[@Name='MessageReceiveDurationMS']$</Value>
</ConditionDetection>
<WriteActions>
<WriteAction ID="CollectToDB" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData"/>
<WriteAction ID="CollectToDW" TypeID="MSDL!Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData"/>
</WriteActions>
</Rule>