M365ST.3StateThreshold.ChatMon.MT

M365ST.3StateThreshold.ChatMon.MT (UnitMonitorType)

3 State Monitor Type. Designed to match property bag values to decide health state outcome.

Element properties:

RunAsDefault
AccessibilityPublic
Support Monitor RecalculateTrue

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource M365ST.TeamsChatMon.DS Default
PASSTHRU ProbeAction System.PassThroughProbe Default
PROBE ProbeAction M365ST.TeamsChatMon.PB.PA Default
FilterCritical ConditionDetection System.ExpressionFilter Default
FilterHealthy ConditionDetection System.ExpressionFilter Default
FilterWarning ConditionDetection System.ExpressionFilter Default
InstanceFilter ConditionDetection System.ExpressionFilter Default

Overrideable Parameters:

IDParameterTypeSelector
CD_CriticalStatusRegExstring$Config/CD_CriticalStatusRegEx$
CD_HighWarningThresholddouble$Config/CD_HighWarningThreshold$
CD_HighCriticalThresholddouble$Config/CD_HighCriticalThreshold$
CD_LowWarningThresholddouble$Config/CD_LowWarningThreshold$
CD_LowCriticalThresholddouble$Config/CD_LowCriticalThreshold$
EventIDFilterstring$Config/EventIDFilter$
IntervalSecondsstring$Config/IntervalSeconds$
MatchCountint$Config/MatchCount$
PoshLibraryPathstring$Config/PoshLibraryPath$
ProbeActionTimeoutSecondsint$Config/ProbeActionTimeoutSeconds$
SampleCountint$Config/SampleCount$
SyncTimestring$Config/SyncTime$
WorkflowNamestring$Config/WorkflowName$
WriteToEventLogbool$Config/WriteToEventLog$

Source Code:

<UnitMonitorType ID="M365ST.3StateThreshold.ChatMon.MT" Accessibility="Public">
<MonitorTypeStates>
<MonitorTypeState ID="CriteriaHealthy" NoDetection="false"/>
<MonitorTypeState ID="CriteriaWarning" NoDetection="false"/>
<MonitorTypeState ID="CriteriaError" NoDetection="false"/>
</MonitorTypeStates>
<Configuration>
<IncludeSchemaTypes>
<SchemaType>System!System.ExpressionEvaluatorSchema</SchemaType>
</IncludeSchemaTypes>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="CD_InstanceFilterCategory" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="CD_InstanceFilterPBPropertyName" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="CD_InstanceFilterPBPropertyValue" type="xsd:string"/>
<!--
Example: Trigger Critical upon script failure to decode or retrieve token
CD_HealthStatusPropertyName=Result, CD_CriticalStatusRegEx=UNKNOWN
-->
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="CD_CriticalStatusRegEx" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="CD_HealthStatusPropertyName" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="CD_HighWarningThreshold" type="xsd:double"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="CD_HighCriticalThreshold" type="xsd:double"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="CD_LowWarningThreshold" type="xsd:double"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="CD_LowCriticalThreshold" type="xsd:double"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="CD_MetricPropertyName" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="ApiTokenScopeURL" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="ApiTokenURL" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="ApiURL" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="ChatPartnerAddress" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="ChatPartnerId" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="M365_AccountId" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="M365_AccountName" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="M365_AccountPassword" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="M365_ClientID" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="M365_ClientSecret" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="EventIDFilter" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="IntervalSeconds" type="xsd:integer"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="MatchCount" type="xsd:integer"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="PoshLibraryPath" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="ProbeActionTimeoutSeconds" type="xsd:integer"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="SampleCount" type="xsd:integer"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="SyncTime" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="TenantName" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="TLSVersion" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="WorkflowName" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="WriteToEventLog" type="xsd:boolean"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="CD_CriticalStatusRegEx" Selector="$Config/CD_CriticalStatusRegEx$" ParameterType="string"/>
<OverrideableParameter ID="CD_HighWarningThreshold" Selector="$Config/CD_HighWarningThreshold$" ParameterType="double"/>
<OverrideableParameter ID="CD_HighCriticalThreshold" Selector="$Config/CD_HighCriticalThreshold$" ParameterType="double"/>
<OverrideableParameter ID="CD_LowWarningThreshold" Selector="$Config/CD_LowWarningThreshold$" ParameterType="double"/>
<OverrideableParameter ID="CD_LowCriticalThreshold" Selector="$Config/CD_LowCriticalThreshold$" ParameterType="double"/>
<OverrideableParameter ID="EventIDFilter" Selector="$Config/EventIDFilter$" ParameterType="string"/>
<OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="string"/>
<OverrideableParameter ID="MatchCount" Selector="$Config/MatchCount$" ParameterType="int"/>
<OverrideableParameter ID="PoshLibraryPath" Selector="$Config/PoshLibraryPath$" ParameterType="string"/>
<OverrideableParameter ID="ProbeActionTimeoutSeconds" Selector="$Config/ProbeActionTimeoutSeconds$" ParameterType="int"/>
<OverrideableParameter ID="SampleCount" Selector="$Config/SampleCount$" ParameterType="int"/>
<OverrideableParameter ID="SyncTime" Selector="$Config/SyncTime$" ParameterType="string"/>
<OverrideableParameter ID="WorkflowName" Selector="$Config/WorkflowName$" ParameterType="string"/>
<OverrideableParameter ID="WriteToEventLog" Selector="$Config/WriteToEventLog$" ParameterType="bool"/>
</OverrideableParameters>
<MonitorImplementation>
<MemberModules>
<DataSource ID="DS" TypeID="M365ST.TeamsChatMon.DS">
<ApiTokenScopeURL>$Config/ApiTokenScopeURL$</ApiTokenScopeURL>
<ApiTokenURL>$Config/ApiTokenURL$</ApiTokenURL>
<ApiURL>$Config/ApiURL$</ApiURL>
<ChatPartnerAddress>$Config/ChatPartnerAddress$</ChatPartnerAddress>
<ChatPartnerId>$Config/ChatPartnerId$</ChatPartnerId>
<M365_AccountId>$Config/M365_AccountId$</M365_AccountId>
<M365_AccountName>$Config/M365_AccountName$</M365_AccountName>
<M365_AccountPassword>$Config/M365_AccountPassword$</M365_AccountPassword>
<M365_ClientID>$Config/M365_ClientID$</M365_ClientID>
<M365_ClientSecret>$Config/M365_ClientSecret$</M365_ClientSecret>
<EventIDFilter>$Config/EventIDFilter$</EventIDFilter>
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<PoshLibraryPath>$Config/PoshLibraryPath$</PoshLibraryPath>
<ProbeActionTimeoutSeconds>$Config/ProbeActionTimeoutSeconds$</ProbeActionTimeoutSeconds>
<SyncTime>$Config/SyncTime$</SyncTime>
<TenantName>$Config/TenantName$</TenantName>
<TLSVersion>$Config/TLSVersion$</TLSVersion>
<WorkflowName>$Config/WorkflowName$</WorkflowName>
<WriteToEventLog>$Config/WriteToEventLog$</WriteToEventLog>
</DataSource>
<ProbeAction ID="PASSTHRU" TypeID="System!System.PassThroughProbe"/>
<ProbeAction ID="PROBE" TypeID="M365ST.TeamsChatMon.PB.PA">
<ApiTokenScopeURL>$Config/ApiTokenScopeURL$</ApiTokenScopeURL>
<ApiTokenURL>$Config/ApiTokenURL$</ApiTokenURL>
<ApiURL>$Config/ApiURL$</ApiURL>
<ChatPartnerAddress>$Config/ChatPartnerAddress$</ChatPartnerAddress>
<ChatPartnerId>$Config/ChatPartnerId$</ChatPartnerId>
<M365_AccountId>$Config/M365_AccountId$</M365_AccountId>
<M365_AccountName>$Config/M365_AccountName$</M365_AccountName>
<M365_AccountPassword>$Config/M365_AccountPassword$</M365_AccountPassword>
<M365_ClientID>$Config/M365_ClientID$</M365_ClientID>
<M365_ClientSecret>$Config/M365_ClientSecret$</M365_ClientSecret>
<EventIDFilter>$Config/EventIDFilter$</EventIDFilter>
<PoshLibraryPath>$Config/PoshLibraryPath$</PoshLibraryPath>
<ProbeActionTimeoutSeconds>$Config/ProbeActionTimeoutSeconds$</ProbeActionTimeoutSeconds>
<TenantName>$Config/TenantName$</TenantName>
<TLSVersion>$Config/TLSVersion$</TLSVersion>
<WorkflowName>$Config/WorkflowName$</WorkflowName>
<WriteToEventLog>$Config/WriteToEventLog$</WriteToEventLog>
</ProbeAction>
<!-- HEALTHY -->
<ConditionDetection ID="FilterHealthy" TypeID="System!System.ExpressionFilter">
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Double">Property[@Name='$Config/CD_MetricPropertyName$']</XPathQuery>
</ValueExpression>
<Operator>Less</Operator>
<ValueExpression>
<Value Type="Double">$Config/CD_HighWarningThreshold$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Double">Property[@Name='$Config/CD_MetricPropertyName$']</XPathQuery>
</ValueExpression>
<Operator>Greater</Operator>
<ValueExpression>
<Value Type="Double">$Config/CD_LowWarningThreshold$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
<!-- SuppressionSettings -->
</ConditionDetection>
<!-- WARNING -->
<ConditionDetection ID="FilterWarning" TypeID="System!System.ExpressionFilter">
<Expression>
<Or>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Double">Property[@Name='$Config/CD_MetricPropertyName$']</XPathQuery>
</ValueExpression>
<Operator>GreaterEqual</Operator>
<ValueExpression>
<Value Type="Double">$Config/CD_HighWarningThreshold$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Double">Property[@Name='$Config/CD_MetricPropertyName$']</XPathQuery>
</ValueExpression>
<Operator>Less</Operator>
<ValueExpression>
<Value Type="Double">$Config/CD_HighCriticalThreshold$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Double">Property[@Name='$Config/CD_MetricPropertyName$']</XPathQuery>
</ValueExpression>
<Operator>LessEqual</Operator>
<ValueExpression>
<Value Type="Double">$Config/CD_LowWarningThreshold$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Double">Property[@Name='$Config/CD_MetricPropertyName$']</XPathQuery>
</ValueExpression>
<Operator>Greater</Operator>
<ValueExpression>
<Value Type="Double">$Config/CD_LowCriticalThreshold$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</Or>
</Expression>
<!--SuppressionSettings-->
<SuppressionSettings>
<MatchCount>$Config/MatchCount$</MatchCount>
<SampleCount>$Config/SampleCount$</SampleCount>
</SuppressionSettings>
</ConditionDetection>
<ConditionDetection ID="FilterCritical" TypeID="System!System.ExpressionFilter">
<Expression>
<Or>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Double">Property[@Name='$Config/CD_MetricPropertyName$']</XPathQuery>
</ValueExpression>
<Operator>GreaterEqual</Operator>
<ValueExpression>
<Value Type="Double">$Config/CD_HighCriticalThreshold$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Double">Property[@Name='$Config/CD_MetricPropertyName$']</XPathQuery>
</ValueExpression>
<Operator>LessEqual</Operator>
<ValueExpression>
<Value Type="Double">$Config/CD_LowCriticalThreshold$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='$Config/CD_HealthStatusPropertyName$']</XPathQuery>
</ValueExpression>
<Operator>MatchesRegularExpression</Operator>
<Pattern>$Config/CD_CriticalStatusRegEx$</Pattern>
</RegExExpression>
</Expression>
</Or>
</Expression>
<!-- SuppressionSettings -->
<SuppressionSettings>
<MatchCount>$Config/MatchCount$</MatchCount>
<SampleCount>$Config/SampleCount$</SampleCount>
</SuppressionSettings>
</ConditionDetection>
<ConditionDetection ID="InstanceFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='$Config/CD_InstanceFilterPBPropertyName$']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Config/CD_InstanceFilterPBPropertyValue$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Category']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Config/CD_InstanceFilterCategory$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</ConditionDetection>
</MemberModules>
<RegularDetections>
<RegularDetection MonitorTypeStateID="CriteriaHealthy">
<Node ID="FilterHealthy">
<Node ID="InstanceFilter">
<Node ID="DS"/>
</Node>
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="CriteriaWarning">
<Node ID="FilterWarning">
<Node ID="InstanceFilter">
<Node ID="DS"/>
</Node>
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="CriteriaError">
<Node ID="FilterCritical">
<Node ID="InstanceFilter">
<Node ID="DS"/>
</Node>
</Node>
</RegularDetection>
</RegularDetections>
<OnDemandDetections>
<OnDemandDetection MonitorTypeStateID="CriteriaHealthy">
<Node ID="FilterHealthy">
<Node ID="InstanceFilter">
<Node ID="PROBE">
<Node ID="PASSTHRU"/>
</Node>
</Node>
</Node>
</OnDemandDetection>
<OnDemandDetection MonitorTypeStateID="CriteriaWarning">
<Node ID="FilterWarning">
<Node ID="InstanceFilter">
<Node ID="PROBE">
<Node ID="PASSTHRU"/>
</Node>
</Node>
</Node>
</OnDemandDetection>
<OnDemandDetection MonitorTypeStateID="CriteriaError">
<Node ID="FilterCritical">
<Node ID="InstanceFilter">
<Node ID="PROBE">
<Node ID="PASSTHRU"/>
</Node>
</Node>
</Node>
</OnDemandDetection>
</OnDemandDetections>
</MonitorImplementation>
</UnitMonitorType>