M365 to Exchange Total Duration Performance Collection

Microsoft.SystemCenter.M365.Rules.M365ToExchange.TotalPerformanceCollectionRule (Rule)

This rule measures the total amount of time it takes to send a test email from M365 and verify receipt of a test email from M365 to Exchange and collects the time in milliseconds.

Knowledge Base article:

Summary

This rule measures the total amount of time it takes to send a test email from M365 and verify receipt of a test email from M365 to Exchange and collects the time in milliseconds.

Element properties:

TargetMicrosoft.SystemCenter.M365.WatcherNodeApplication.HybridMailFlow
CategoryPerformanceCollection
EnabledTrue
Alert GenerateFalse
RemotableTrue

Member Modules:

ID Module Type TypeId RunAs 
DataSource DataSource Microsoft.SystemCenter.M365.DataSource.M365ToExchangeMailFlow Default
System.Performance.DataGenericMapper ConditionDetection System.Performance.DataGenericMapper Default
Microsoft.SystemCenter.CollectPerformanceData WriteAction Microsoft.SystemCenter.CollectPerformanceData Default
Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData WriteAction Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData Default

Source Code:

<Rule ID="Microsoft.SystemCenter.M365.Rules.M365ToExchange.TotalPerformanceCollectionRule" Enabled="true" Target="Microsoft.SystemCenter.M365.WatcherNodeApplication.HybridMailFlow" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>PerformanceCollection</Category>
<DataSources>
<DataSource ID="DataSource" TypeID="Microsoft.SystemCenter.M365.DataSource.M365ToExchangeMailFlow">
<IntervalSeconds>900</IntervalSeconds>
<AzureADEndpoint>$Target/Host/Property[Type="Microsoft.SystemCenter.M365.WatcherNodeApplication"]/AzureADEndpoint$</AzureADEndpoint>
<GraphEndpoint>$Target/Host/Property[Type="Microsoft.SystemCenter.M365.WatcherNodeApplication"]/GraphEndpoint$</GraphEndpoint>
<TenantId>$Target/Host/Property[Type="Microsoft.SystemCenter.M365.WatcherNodeApplication"]/TenantId$</TenantId>
<ApplicationClientId>$RunAs[Name="Microsoft.SystemCenter.M365.RunAsProfile.ApplicationClient"]/UserName$</ApplicationClientId>
<ApplicationClientCredentials>$RunAs[Name="Microsoft.SystemCenter.M365.RunAsProfile.ApplicationClient"]/Password$</ApplicationClientCredentials>
<DelegatedUserId>$RunAs[Name="Microsoft.SystemCenter.M365.RunAsProfile.DelegatedMailSender"]/UserName$</DelegatedUserId>
<DelegatedUserCredentials>$RunAs[Name="Microsoft.SystemCenter.M365.RunAsProfile.DelegatedMailSender"]/Password$</DelegatedUserCredentials>
<SenderUser>$Target/Host/Property[Type="Microsoft.SystemCenter.M365.WatcherNodeApplication"]/M365EmailSender$</SenderUser>
<ReceiverUser>$RunAs[Name="Microsoft.SystemCenter.M365.RunAsProfile.Exchange.Receiver"]/UserName$</ReceiverUser>
<ReceiverPassword>$RunAs[Name="Microsoft.SystemCenter.M365.RunAsProfile.Exchange.Receiver"]/Password$</ReceiverPassword>
<ExchangeURL>$Target/Host/Property[Type="Microsoft.SystemCenter.M365.WatcherNodeApplication"]/ExchangeURL$</ExchangeURL>
<SleepInterval>5</SleepInterval>
</DataSource>
</DataSources>
<ConditionDetection ID="System.Performance.DataGenericMapper" TypeID="Performance!System.Performance.DataGenericMapper">
<ObjectName>Microsoft 365 Mail</ObjectName>
<CounterName>M365 to Exchange Total Duration (ms)</CounterName>
<InstanceName>$Target/Host/Property[Type="Microsoft.SystemCenter.M365.WatcherNodeApplication"]/LocationName$</InstanceName>
<Value>$Data/Property[@Name='Total Duration in ms']$</Value>
</ConditionDetection>
<WriteActions>
<WriteAction ID="Microsoft.SystemCenter.CollectPerformanceData" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData"/>
<WriteAction ID="Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData" TypeID="SCDW!Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData"/>
</WriteActions>
</Rule>