Базовый монитор пороговых значений
Microsoft.JEE.ThresholdUnitMonitor (UnitMonitorType)
Базовый монитор, основанный на методе HTTP GET, который служит для получения данных и оценки диапазона значений
Element properties:
Member Modules:
Overrideable Parameters:
Source Code:
<UnitMonitorType ID="Microsoft.JEE.ThresholdUnitMonitor" Accessibility="Public">
<MonitorTypeStates>
<MonitorTypeState ID="UnderThreshold"/>
<MonitorTypeState ID="OverThreshold"/>
</MonitorTypeStates>
<Configuration>
<xsd:element name="ComputerName" type="xsd:string"/>
<xsd:element name="Protocol" type="xsd:string"/>
<xsd:element name="Port" type="xsd:string"/>
<xsd:element name="BaseURL" type="xsd:string"/>
<xsd:element name="URLSuffix" type="xsd:string"/>
<xsd:element name="IntervalSeconds" type="xsd:integer"/>
<xsd:element name="TimeoutSeconds" type="xsd:integer"/>
<xsd:element name="MetricName" type="xsd:string"/>
<xsd:element name="Threshold" type="xsd:double"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="ComputerName" ParameterType="string" Selector="$Config/ComputerName$"/>
<OverrideableParameter ID="Protocol" ParameterType="string" Selector="$Config/Protocol$"/>
<OverrideableParameter ID="Port" ParameterType="string" Selector="$Config/Port$"/>
<OverrideableParameter ID="BaseURL" ParameterType="string" Selector="$Config/BaseURL$"/>
<OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int"/>
<OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="int"/>
<OverrideableParameter ID="Threshold" Selector="$Config/Threshold$" ParameterType="int"/>
</OverrideableParameters>
<MonitorImplementation>
<MemberModules>
<!-- Note: this datasource will run on all application server where the -->
<!-- BeanSpy is running. -->
<DataSource ID="DS" TypeID="Microsoft.JEE.Monitoring.UrlProbe.Stats.DataSource">
<ComputerName>$Config/ComputerName$</ComputerName>
<Protocol>$Config/Protocol$</Protocol>
<Port>$Config/Port$</Port>
<BaseURL>$Config/BaseURL$</BaseURL>
<URLSuffix>$Config/URLSuffix$</URLSuffix>
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
</DataSource>
<ProbeAction ID="Probe" TypeID="Microsoft.JEE.Monitoring.UrlProbe.Stats.ProbeAction">
<ComputerName>$Config/ComputerName$</ComputerName>
<Protocol>$Config/Protocol$</Protocol>
<Port>$Config/Port$</Port>
<BaseURL>$Config/BaseURL$</BaseURL>
<URLSuffix>$Config/URLSuffix$</URLSuffix>
<TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
</ProbeAction>
<!-- The filter is used to filter out the relevant item from the property bags -->
<!-- returned from the DataSource, this needs to be done so the mapper does not -->
<!-- try to map invalid data and terminate the workflow -->
<ConditionDetection ID="CD_Filter" TypeID="System!System.ExpressionFilter">
<Expression>
<Exists>
<ValueExpression>
<XPathQuery Type="String">$Config/MetricName$</XPathQuery>
</ValueExpression>
</Exists>
</Expression>
</ConditionDetection>
<!-- Map the property bag item into PerfData so the ExpressionFilters can determine -->
<!-- the values of the counters -->
<ConditionDetection TypeID="Performance!System.Performance.DataGenericMapper" ID="PerfMapper">
<ObjectName>Configuration</ObjectName>
<CounterName>Temp</CounterName>
<InstanceName>Temp</InstanceName>
<Value>$Data/$Config/MetricName$$</Value>
</ConditionDetection>
<ConditionDetection TypeID="System!System.ExpressionFilter" ID="CDOverThreshold">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Double">Value</XPathQuery>
</ValueExpression>
<Operator>Greater</Operator>
<ValueExpression>
<Value Type="Double">$Config/Threshold$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<ConditionDetection TypeID="System!System.ExpressionFilter" ID="CDUnderThreshold">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Double">Value</XPathQuery>
</ValueExpression>
<Operator>LessEqual</Operator>
<ValueExpression>
<Value Type="Double">$Config/Threshold$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
</MemberModules>
<RegularDetections>
<RegularDetection MonitorTypeStateID="UnderThreshold">
<Node ID="CDUnderThreshold">
<Node ID="PerfMapper">
<Node ID="CD_Filter">
<Node ID="DS"/>
</Node>
</Node>
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="OverThreshold">
<Node ID="CDOverThreshold">
<Node ID="PerfMapper">
<Node ID="CD_Filter">
<Node ID="DS"/>
</Node>
</Node>
</Node>
</RegularDetection>
</RegularDetections>
<OnDemandDetections>
<OnDemandDetection MonitorTypeStateID="UnderThreshold">
<Node ID="CDUnderThreshold">
<Node ID="PerfMapper">
<Node ID="CD_Filter">
<Node ID="DS"/>
</Node>
</Node>
</Node>
</OnDemandDetection>
<OnDemandDetection MonitorTypeStateID="OverThreshold">
<Node ID="CDOverThreshold">
<Node ID="PerfMapper">
<Node ID="CD_Filter">
<Node ID="DS"/>
</Node>
</Node>
</Node>
</OnDemandDetection>
</OnDemandDetections>
</MonitorImplementation>
</UnitMonitorType>