M365SLIC.3StateThreshold.MT

M365SLIC.3StateThreshold.MT (UnitMonitorType)

3 State Monitor Type. Designed to leverage a Posh script PA for retrieving properties/metrics.

Element properties:

RunAsDefault
AccessibilityPublic
Support Monitor RecalculateTrue

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource M365SLIC.LicenseMon.DS Default
PASSTHRU ProbeAction System.PassThroughProbe Default
PROBE ProbeAction M365SLIC.LicenseMon.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_HighWarningThresholddouble$Config/CD_HighWarningThreshold$
CD_HighCriticalThresholddouble$Config/CD_HighCriticalThreshold$
CD_LowWarningThresholddouble$Config/CD_LowWarningThreshold$
CD_LowCriticalThresholddouble$Config/CD_LowCriticalThreshold$
EventIDFilterstring$Config/EventIDFilter$
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="M365SLIC.3StateThreshold.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_Category" 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_PropertyName" 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="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_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="CD_PropertyName" Selector="$Config/CD_PropertyName$" ParameterType="string" />-->
<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="M365SLIC.LicenseMon.DS">
<ApiTokenScopeURL>$Config/ApiTokenScopeURL$</ApiTokenScopeURL>
<ApiTokenURL>$Config/ApiTokenURL$</ApiTokenURL>
<ApiURL>$Config/ApiURL$</ApiURL>
<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="M365SLIC.LicenseMon.PB.PA">
<ApiTokenScopeURL>$Config/ApiTokenScopeURL$</ApiTokenScopeURL>
<ApiTokenURL>$Config/ApiTokenURL$</ApiTokenURL>
<ApiURL>$Config/ApiURL$</ApiURL>
<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_PropertyName$']</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_PropertyName$']</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_PropertyName$']</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_PropertyName$']</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_PropertyName$']</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_PropertyName$']</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_PropertyName$']</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_PropertyName$']</XPathQuery>
</ValueExpression>
<Operator>LessEqual</Operator>
<ValueExpression>
<Value Type="Double">$Config/CD_LowCriticalThreshold$</Value>
</ValueExpression>
</SimpleExpression>
</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='SkuPartNumber']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="M365SLIC.License.Sku"]/SkuPartNumber$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Category']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Config/CD_Category$</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>