You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ab...@apache.org on 2014/04/02 16:21:40 UTC

[5/8] AMBARI-5296 - update Management Pack to support Hadoop MapReduce2 and YARN services (Anatoly Nikonorov via abaranchuk)

http://git-wip-us.apache.org/repos/asf/ambari/blob/53c40505/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/Scripts/HostComponentMetrics.ps1
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/Scripts/HostComponentMetrics.ps1 b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/Scripts/HostComponentMetrics.ps1
index 8e0341f..b0e9aa2 100644
--- a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/Scripts/HostComponentMetrics.ps1
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/Scripts/HostComponentMetrics.ps1
@@ -26,7 +26,7 @@ function Main {
 
     Add-MetricChildrenItems $propertyBag '' $response.metrics
 
-    if ('namenode', 'jobtracker' -contains $response.HostRoles.component_name) {
+    if ('namenode', 'jobtracker', 'resourcemanager' -contains $response.HostRoles.component_name) {
         if ($response.metrics['jvm'] -ne $null) {
             $memoryUsed = $response.metrics['jvm']['memHeapUsedM']
             $memoryCommitted = $response.metrics['jvm']['memHeapCommittedM']

http://git-wip-us.apache.org/repos/asf/ambari/blob/53c40505/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/Scripts/SyntheticTransaction.ps1
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/Scripts/SyntheticTransaction.ps1 b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/Scripts/SyntheticTransaction.ps1
new file mode 100644
index 0000000..7a33e9b
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/Scripts/SyntheticTransaction.ps1
@@ -0,0 +1,31 @@
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##     http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied.  See the License for the
+## specific language governing permissions and limitations
+## under the License.
+
+Param ($MonitoringAmbariUri, $Username, $Password)
+
+function Main {
+    $response = InvokeRestAPI "$MonitoringAmbariUri" $Username $Password
+
+    $propertyBag = $ScriptApi.CreatePropertyBag()
+
+
+    $propertyBag
+}
+
+function ShouldCollectMetric($metricName) {
+    return 'BlacklistedNodesInfoJson', 'GraylistedNodesInfoJson', 'QueueInfoJson', 'SummaryJson', 'AliveNodesInfoJson' -notcontains $metricName
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/53c40505/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/Scripts/YarnServiceMetrics.ps1
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/Scripts/YarnServiceMetrics.ps1 b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/Scripts/YarnServiceMetrics.ps1
new file mode 100644
index 0000000..ac64968
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/Scripts/YarnServiceMetrics.ps1
@@ -0,0 +1,93 @@
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##     http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied.  See the License for the
+## specific language governing permissions and limitations
+## under the License.
+
+Param ($MonitoringAmbariUri, $Username, $Password)
+
+function Main {
+    $response = InvokeRestAPI (JoinUri "$MonitoringAmbariUri" 'components/RESOURCEMANAGER?fields=metrics/yarn') $Username $Password
+
+    $propertyBag = $ScriptApi.CreatePropertyBag()
+
+    if ($response.metrics -eq $null) { return $propertyBag }
+
+    Add-MetricChildrenItems $propertyBag '' $response.metrics
+
+	if ($response.metrics['yarn'] -ne $null -and $response.metrics['yarn']['Queue'] -ne $null -and $response.metrics['yarn']['Queue']['root'] -ne $null) 
+	{
+		$appsSubmitted = $response.metrics['yarn']['Queue']['root']['AppsSubmitted']
+		$appsFailed = $response.metrics['yarn']['Queue']['root']['AppsFailed']
+		if ($appsSubmitted -ne $null -and $appsSubmitted -gt 0 -and $appsFailed -ne $null)
+		{
+	        $propertyBag.AddValue('appsfailed_percent', [Math]::Round($appsFailed / $appsSubmitted * 100, 2))
+		}
+		elseif ($appsFailed -eq 0) 
+		{
+	        $propertyBag.AddValue('appsfailed_percent', 0)
+		}
+	}
+
+	if ($response.metrics['yarn'] -ne $null -and $response.metrics['yarn']['ClusterMetrics'] -ne $null) 
+	{
+		$NumActiveNMs = 0
+		$NumDecommissionedNMs = 0
+		$NumLostNMs = 0
+		$NumRebootedNMs = 0
+		$NumUnhealthyNMs = 0
+		if ($response.metrics['yarn']['ClusterMetrics']['NumActiveNMs'] -ne $null) 
+		{
+			$NumActiveNMs = $response.metrics['yarn']['ClusterMetrics']['NumActiveNMs']
+		}
+		if ($response.metrics['yarn']['ClusterMetrics']['NumDecommissionedNMs'] -ne $null) 
+		{
+			$NumDecommissionedNMs = $response.metrics['yarn']['ClusterMetrics']['NumDecommissionedNMs']
+		}
+		if ($response.metrics['yarn']['ClusterMetrics']['NumLostNMs'] -ne $null) 
+		{
+			$NumLostNMs = $response.metrics['yarn']['ClusterMetrics']['NumLostNMs']
+		}
+		if ($response.metrics['yarn']['ClusterMetrics']['NumRebootedNMs'] -ne $null) 
+		{
+			$NumRebootedNMs = $response.metrics['yarn']['ClusterMetrics']['NumRebootedNMs']
+		}
+		if ($response.metrics['yarn']['ClusterMetrics']['NumUnhealthyNMs'] -ne $null) 
+		{
+			$NumUnhealthyNMs = $response.metrics['yarn']['ClusterMetrics']['NumUnhealthyNMs']
+		}
+		$NumTotalNMs = $NumActiveNMs + $NumDecommissionedNMs + $NumLostNMs
+
+		if ($NumTotalNMs -gt 0)
+		{
+	        $propertyBag.AddValue('lostnodemanagers_percent', [Math]::Round($NumLostNMs / $NumTotalNMs * 100, 2))
+	        $propertyBag.AddValue('unhealthynodemanagers_percent', [Math]::Round($NumUnhealthyNMs / $NumTotalNMs * 100, 2))
+		}
+	}
+    $propertyBag
+}
+
+function Add-MetricChildrenItems($propertyBag, $parentName, $children) {
+    $parentPrefix = $(if (!$parentName) { '' } else { "$parentName." })
+    foreach ($childName in $children.Keys) {
+        if ($children[$childName] -eq $null) { continue }
+
+        if ($children[$childName] -is [Hashtable]) {
+            Add-MetricChildrenItems $propertyBag "$parentPrefix$childName" $children[$childName]
+        } else {
+            $propertyBag.AddValue("$parentPrefix$childName".ToLower(), $children[$childName])
+        }
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/ambari/blob/53c40505/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/SyntheticTransactionDataSource.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/SyntheticTransactionDataSource.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/SyntheticTransactionDataSource.mpx
new file mode 100644
index 0000000..ecb7703
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/SyntheticTransactionDataSource.mpx
@@ -0,0 +1,124 @@
+<!--## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##     http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied.  See the License for the
+## specific language governing permissions and limitations
+## under the License.-->
+
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <ModuleTypes>
+      <DataSourceModuleType ID="Ambari.SCOM.Module.SyntheticTransactionDataSource" Accessibility="Internal" RunAs="Ambari.SCOM.Profile.Workflow">
+        <Configuration>
+          <IncludeSchemaTypes>
+            <SchemaType>Windows!Microsoft.Windows.PowerShellSchema</SchemaType>
+            <SchemaType>System!System.ExpressionEvaluatorSchema</SchemaType>
+          </IncludeSchemaTypes>
+          <xsd:element name="IntervalSeconds" type="xsd:integer" />
+          <xsd:element name="SyncTime" type="xsd:string" minOccurs="0" />
+          <xsd:element name="TimeoutSeconds" type="xsd:int" />
+
+          <xsd:element name="WorkflowName" type="xsd:string" />
+        </Configuration>
+        <ModuleImplementation>
+          <Composite>
+            <MemberModules>
+              <DataSource ID="Scheduler" TypeID="System!System.SimpleScheduler">
+                <IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
+                <SyncTime>$Config/SyncTime$</SyncTime>
+              </DataSource>
+              <ProbeAction ID="PS" TypeID="Ambari.SCOM.Module.ImpersonatedPowerShellPropertyBagProbe" >
+                <ScriptName>$Config/WorkflowName$.ps1</ScriptName>
+                <ScriptBody>
+                  Param ($MonitoringAmbariUri, $Username, $Password)
+
+                  $IncludeFileContent/Shared Scripts/Logging.ps1$
+                  $IncludeFileContent/Shared Scripts/JsonParser.ps1$
+                  $IncludeFileContent/Shared Scripts/RestApi.ps1$
+                  $IncludeFileContent/Shared Scripts/MonitoringHelpers.ps1$
+
+
+                  if (!$Username) { return }
+
+                  $ScriptApi = New-Object -ComObject "MOM.ScriptAPI"
+
+                  $propertyBag = $ScriptApi.CreatePropertyBag()
+
+
+                  try {
+                  $response = InvokeRestAPI (JoinUri "$MonitoringAmbariUri" "v1/clusters") $Username $Password
+                  $propertyBag.AddValue('result', 0)
+                  } catch [System.Net.WebException] {
+                  if ($_.Exception.Response.StatusCode -eq [System.Net.HttpStatusCode]::Forbidden)
+                  {
+                  $propertyBag.AddValue('result', 1902)
+                  }
+                  elseif ($_.Exception.Response.StatusCode -eq [System.Net.HttpStatusCode]::NotFound)
+                  {
+                  $propertyBag.AddValue('result', 1903)
+                  }
+                  elseif ($_.Exception.Status -eq [System.Net.WebExceptionStatus]::ConnConnectFailure)
+                  {
+                  $propertyBag.AddValue('result', 1903)
+                  }
+                  else
+                  {
+                  $propertyBag.AddValue('result', 1903)
+                  }
+                  } catch {
+                  $propertyBag.AddValue('result', 1903)
+                  }
+
+                  $propertyBag
+
+                </ScriptBody>
+                <Parameters>
+                  <Parameter>
+                    <Name>MonitoringAmbariUri</Name>
+                    <Value>$Target/Property[Type="Ambari.SCOM.AmbariSeed"]/AmbariUri$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>Username</Name>
+                    <Value>$RunAs[Name="Ambari.SCOM.Profile.Ambari"]/UserName$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>Password</Name>
+                    <Value>$RunAs[Name="Ambari.SCOM.Profile.Ambari"]/Password$</Value>
+                  </Parameter>
+                </Parameters>
+                <TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
+              </ProbeAction>
+            </MemberModules>
+            <Composition>
+              <Node ID="PS">
+                <Node ID="Scheduler" />
+              </Node>
+            </Composition>
+          </Composite>
+        </ModuleImplementation>
+        <OutputType>System!System.PropertyBagData</OutputType>
+      </DataSourceModuleType>
+    </ModuleTypes>
+  </TypeDefinitions>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.Module.SyntheticTransactionDataSource">
+          <Name>Synthetic Transaction Data Provider</Name>
+          <Description>This module executes Powershell scripts to check availability of Ambari REST API.</Description>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/ambari/blob/53c40505/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/YarnServiceMetricsDataSource.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/YarnServiceMetricsDataSource.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/YarnServiceMetricsDataSource.mpx
new file mode 100644
index 0000000..c3661cf
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/YarnServiceMetricsDataSource.mpx
@@ -0,0 +1,72 @@
+<!--## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##     http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied.  See the License for the
+## specific language governing permissions and limitations
+## under the License.-->
+
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <ModuleTypes>
+      <DataSourceModuleType ID="Ambari.SCOM.Module.YarnServiceMetricsDataSource" Accessibility="Internal">
+        <Configuration>
+          <xsd:element name="IntervalSeconds" type="xsd:integer" />
+          <xsd:element minOccurs="0" maxOccurs="1" name="SyncTime" type="xsd:string" />
+          <xsd:element name="TimeoutSeconds" type="xsd:int" />
+        </Configuration>
+        <OverrideableParameters>
+          <OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int" />
+          <OverrideableParameter ID="SyncTime" Selector="$Config/SyncTime$" ParameterType="string" />
+          <OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="int" />
+        </OverrideableParameters>
+        <ModuleImplementation>
+          <Composite>
+            <MemberModules>
+              <DataSource ID="DS" TypeID="Ambari.SCOM.Module.ClusterServiceMetricsDataSource">
+                <IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
+                <SyncTime>$Config/SyncTime$</SyncTime>
+                <TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
+                <CollectionScript>$IncludeFileContent/Modules/DataSources/Monitoring/Scripts/YarnServiceMetrics.ps1$</CollectionScript>
+                <ServiceName>Yarn</ServiceName>
+              </DataSource>
+            </MemberModules>
+            <Composition>
+              <Node ID="DS" />
+            </Composition>
+          </Composite>
+        </ModuleImplementation>
+        <OutputType>System!System.PropertyBagData</OutputType>
+      </DataSourceModuleType>
+    </ModuleTypes>
+  </TypeDefinitions>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.Module.YarnServiceMetricsDataSource">
+          <Name>Hadoop Yarn Cluster Service Metrics Property Bag Provider</Name>
+          <Description>This module collects all metrics available for target Yarn Cluster Service into property bag.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.YarnServiceMetricsDataSource" SubElementID="IntervalSeconds">
+          <Name>Interval (sec)</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.YarnServiceMetricsDataSource" SubElementID="SyncTime">
+          <Name>Sync Time</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.YarnServiceMetricsDataSource" SubElementID="TimeoutSeconds">
+          <Name>Timeout (sec)</Name>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/ambari/blob/53c40505/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/YarnServiceMetricsPerformanceDataSource.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/YarnServiceMetricsPerformanceDataSource.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/YarnServiceMetricsPerformanceDataSource.mpx
new file mode 100644
index 0000000..1fdfce8
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/YarnServiceMetricsPerformanceDataSource.mpx
@@ -0,0 +1,81 @@
+<!--## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##     http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied.  See the License for the
+## specific language governing permissions and limitations
+## under the License.-->
+
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <ModuleTypes>
+      <DataSourceModuleType ID="Ambari.SCOM.Module.YarnServiceMetricsPerformanceDataSource" Accessibility="Internal">
+        <Configuration>
+          <xsd:element name="IntervalSeconds" type="xsd:integer" />
+          <xsd:element minOccurs="0" maxOccurs="1" name="SyncTime" type="xsd:string" />
+          <xsd:element name="TimeoutSeconds" type="xsd:int" />
+
+          <xsd:element name="PropertyName" type="xsd:string" />
+          <xsd:element name="CounterName" type="xsd:string" />
+        </Configuration>
+        <OverrideableParameters>
+          <OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int" />
+          <OverrideableParameter ID="SyncTime" Selector="$Config/SyncTime$" ParameterType="string" />
+          <OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="int" />
+        </OverrideableParameters>
+        <ModuleImplementation>
+          <Composite>
+            <MemberModules>
+              <DataSource ID="DS" TypeID="Ambari.SCOM.Module.YarnServiceMetricsDataSource">
+                <IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
+                <SyncTime>$Config/SyncTime$</SyncTime>
+                <TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
+              </DataSource>
+              <ConditionDetection ID="Mapper" TypeID="Ambari.SCOM.Module.PropertyBagPerformanceDataMapper">
+                <PropertyName>$Config/PropertyName$</PropertyName>
+                <ObjectName>Hadoop : Cluster Service</ObjectName>
+                <CounterName>$Config/CounterName$</CounterName>
+                <InstanceName>$Target/Host/Property[Type="Ambari.SCOM.ClusterService.Private"]/ClusterName$ : $Target/Host/Property[Type="Ambari.SCOM.ClusterService.Private"]/ServiceName$</InstanceName>
+              </ConditionDetection>
+            </MemberModules>
+            <Composition>
+              <Node ID="Mapper">
+                <Node ID="DS" />
+              </Node>
+            </Composition>
+          </Composite>
+        </ModuleImplementation>
+        <OutputType>Perf!System.Performance.Data</OutputType>
+      </DataSourceModuleType>
+    </ModuleTypes>
+  </TypeDefinitions>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.Module.YarnServiceMetricsPerformanceDataSource">
+          <Name>Hadoop Yarn Cluster Service Metrics Performance Data Provider</Name>
+          <Description>This module collects specified metric for Yarn Cluster Service as performance data point.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.YarnServiceMetricsPerformanceDataSource" SubElementID="IntervalSeconds">
+          <Name>Interval (sec)</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.YarnServiceMetricsPerformanceDataSource" SubElementID="SyncTime">
+          <Name>Sync Time</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.YarnServiceMetricsPerformanceDataSource" SubElementID="TimeoutSeconds">
+          <Name>Timeout (sec)</Name>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/ambari/blob/53c40505/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/MonitorTypes/RepeatedEventLogManualReset2StateMonitorType.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/MonitorTypes/RepeatedEventLogManualReset2StateMonitorType.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/MonitorTypes/RepeatedEventLogManualReset2StateMonitorType.mpx
new file mode 100644
index 0000000..038cc8a
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/MonitorTypes/RepeatedEventLogManualReset2StateMonitorType.mpx
@@ -0,0 +1,129 @@
+<!--## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##     http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied.  See the License for the
+## specific language governing permissions and limitations
+## under the License.-->
+
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <MonitorTypes>
+      <UnitMonitorType ID="Ambari.SCOM.RepeatedEventLogTimer2StateMonitorType" Accessibility="Public">
+        <MonitorTypeStates>
+          <MonitorTypeState ID="RepeatedEventRaised" />
+          <MonitorTypeState ID="TimerEventRaised" />
+        </MonitorTypeStates>
+        <Configuration>
+          <IncludeSchemaTypes>
+            <SchemaType>System!System.ExpressionEvaluatorSchema</SchemaType>
+          </IncludeSchemaTypes>
+          <xsd:element name="ComputerName" type="xsd:string" />
+          <xsd:element name="LogName" type="xsd:string" />
+          <xsd:element name="EventNumber" type="xsd:int" />
+          <xsd:element name="TimeInterval" type="xsd:int" />
+          <xsd:element name="Count" type="xsd:int" />
+        </Configuration>
+        <OverrideableParameters>
+          <OverrideableParameter ID="TimeInterval" Selector="$Config/TimeInterval$" ParameterType="int" />
+          <OverrideableParameter ID="Count" Selector="$Config/Count$" ParameterType="int" />
+        </OverrideableParameters>
+        <MonitorImplementation>
+          <MemberModules>
+            <DataSource TypeID="Windows!Microsoft.Windows.BaseEventProvider" ID="RepeatedDataSource">
+              <ComputerName>$Config/ComputerName$</ComputerName>
+              <LogName>$Config/LogName$</LogName>
+            </DataSource>
+            <ProbeAction TypeID="System!System.PassThroughProbe" ID="OnDemandReset" />
+            <ConditionDetection TypeID="System!System.ExpressionFilter" ID="RepeatedFilterCondition">
+              <Expression>
+                <SimpleExpression>
+                  <ValueExpression>
+                    <XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
+                  </ValueExpression>
+                  <Operator>Equal</Operator>
+                  <ValueExpression>
+                    <Value Type="UnsignedInteger">$Config/EventNumber$</Value>
+                  </ValueExpression>
+                </SimpleExpression>
+              </Expression>
+            </ConditionDetection>
+            <ConditionDetection TypeID="System!System.ConsolidatorCondition" ID="RepeatedDataCondition">
+              <Consolidator>
+                <ConsolidationProperties />
+                <TimeControl>
+                  <WithinTimeSchedule>
+                    <Interval>$Config/TimeInterval$</Interval>
+                  </WithinTimeSchedule>
+                </TimeControl>
+                <CountingCondition>
+                  <Count>$Config/Count$</Count>
+                  <CountMode>OnNewItemTestOutputRestart_OnTimerRestart</CountMode>
+                </CountingCondition>
+              </Consolidator>
+            </ConditionDetection>
+            <ConditionDetection TypeID="System!System.TimerCondition" ID="TimerCondition">
+              <TimerWaitInSeconds>$Config/TimeInterval$</TimerWaitInSeconds>
+            </ConditionDetection>
+          </MemberModules>
+          <RegularDetections>
+            <RegularDetection MonitorTypeStateID="RepeatedEventRaised">
+              <Node ID="RepeatedDataCondition">
+                <Node ID="RepeatedFilterCondition">
+                  <Node ID="RepeatedDataSource" />
+                </Node>
+              </Node>
+            </RegularDetection>
+            <RegularDetection MonitorTypeStateID="TimerEventRaised">
+              <Node ID="TimerCondition">
+                <Node ID="RepeatedDataCondition">
+                  <Node ID="RepeatedFilterCondition">
+                    <Node ID="RepeatedDataSource" />
+                  </Node>
+                </Node>
+              </Node>
+            </RegularDetection>
+          </RegularDetections>
+          <OnDemandDetections>
+            <OnDemandDetection MonitorTypeStateID="TimerEventRaised">
+              <Node ID="OnDemandReset" />
+            </OnDemandDetection>
+          </OnDemandDetections>
+      </MonitorImplementation>
+      </UnitMonitorType>
+    </MonitorTypes>
+  </TypeDefinitions>
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.RepeatedEventLogTimer2StateMonitorType">
+          <Name>Repeated event log timer two state unit monitor type</Name>
+          <Description>This two-state unit monitor type looks for repeated event in the event log.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.RepeatedEventLogTimer2StateMonitorType" SubElementID="RepeatedEventRaised">
+          <Name>Repeated Event Raised</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.RepeatedEventLogTimer2StateMonitorType" SubElementID="TimerEventRaised">
+          <Name>Timer Event Raised</Name>
+        </DisplayString>
+
+        <DisplayString ElementID="Ambari.SCOM.RepeatedEventLogTimer2StateMonitorType" SubElementID="TimeInterval">
+          <Name>Time Interval (sec)</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.RepeatedEventLogTimer2StateMonitorType" SubElementID="Count">
+          <Name>Count (>=2)</Name>
+          <Description>Please note that count should be greater or equal to 2.</Description>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/ambari/blob/53c40505/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/MonitorTypes/SyntheticTransactionMonitorType.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/MonitorTypes/SyntheticTransactionMonitorType.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/MonitorTypes/SyntheticTransactionMonitorType.mpx
new file mode 100644
index 0000000..533f6af
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/MonitorTypes/SyntheticTransactionMonitorType.mpx
@@ -0,0 +1,102 @@
+<!--## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##     http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied.  See the License for the
+## specific language governing permissions and limitations
+## under the License.-->
+
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <MonitorTypes>
+      <UnitMonitorType ID="Ambari.SCOM.SyntheticTransactionMonitorType" Accessibility="Public">
+        <MonitorTypeStates>
+          <MonitorTypeState ID="Healthy" />
+          <MonitorTypeState ID="Error" />
+        </MonitorTypeStates>
+        <Configuration>
+          <xsd:element name="ErrorCode" type="xsd:int" />
+          <xsd:element name="TimeInterval" type="xsd:int" />
+        </Configuration>
+        <OverrideableParameters>
+          <OverrideableParameter ID="TimeInterval" Selector="$Config/TimeInterval$" ParameterType="int" />
+        </OverrideableParameters>
+        <MonitorImplementation>
+          <MemberModules>
+            <DataSource TypeID="Ambari.SCOM.Module.SyntheticTransactionDataSource" ID="DS">
+              <IntervalSeconds>$Config/TimeInterval$</IntervalSeconds>
+              <TimeoutSeconds>300</TimeoutSeconds>
+              <WorkflowName>SyntheticTransactionMonitorType</WorkflowName>
+            </DataSource>
+            <ConditionDetection TypeID="System!System.ExpressionFilter" ID="ErrorFC">
+              <Expression>
+                <SimpleExpression>
+                  <ValueExpression>
+                    <XPathQuery Type="UnsignedInteger">Property[@Name='result']</XPathQuery>
+                  </ValueExpression>
+                  <Operator>Equal</Operator>
+                  <ValueExpression>
+                    <Value Type="UnsignedInteger">$Config/ErrorCode$</Value>
+                  </ValueExpression>
+                </SimpleExpression>
+              </Expression>
+            </ConditionDetection>
+            <ConditionDetection TypeID="System!System.ExpressionFilter" ID="OkFC">
+              <Expression>
+                <SimpleExpression>
+                  <ValueExpression>
+                    <XPathQuery Type="UnsignedInteger">Property[@Name='result']</XPathQuery>
+                  </ValueExpression>
+                  <Operator>NotEqual</Operator>
+                  <ValueExpression>
+                    <Value Type="UnsignedInteger">$Config/ErrorCode$</Value>
+                  </ValueExpression>
+                </SimpleExpression>
+              </Expression>
+            </ConditionDetection>
+          </MemberModules>
+          <RegularDetections>
+            <RegularDetection MonitorTypeStateID="Healthy">
+              <Node ID="OkFC">
+                <Node ID="DS" />
+              </Node>
+            </RegularDetection>
+            <RegularDetection MonitorTypeStateID="Error">
+              <Node ID="ErrorFC">
+                <Node ID="DS" />
+              </Node>
+            </RegularDetection>
+          </RegularDetections>
+        </MonitorImplementation>
+      </UnitMonitorType>
+    </MonitorTypes>
+  </TypeDefinitions>
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.SyntheticTransactionMonitorType">
+          <Name>Synthetic Transaction two state Monitor Type</Name>
+          <Description>This two-state unit monitor type repeatedly executes synthetic transaction.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.SyntheticTransactionMonitorType" SubElementID="Healthy">
+          <Name>Healthy</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.SyntheticTransactionMonitorType" SubElementID="Error">
+          <Name>Error</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.SyntheticTransactionMonitorType" SubElementID="TimeInterval">
+          <Name>Time Interval (sec)</Name>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/ambari/blob/53c40505/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/MonitorTypes/YarnServiceThreeStateThresholdMonitorType.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/MonitorTypes/YarnServiceThreeStateThresholdMonitorType.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/MonitorTypes/YarnServiceThreeStateThresholdMonitorType.mpx
new file mode 100644
index 0000000..dc7c8c4
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/MonitorTypes/YarnServiceThreeStateThresholdMonitorType.mpx
@@ -0,0 +1,332 @@
+<!--## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##     http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied.  See the License for the
+## specific language governing permissions and limitations
+## under the License.-->
+
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <MonitorTypes>
+      <UnitMonitorType ID="Ambari.SCOM.UnitMonitorType.YarnServiceThreeStateThreshold" Accessibility="Internal">
+        <MonitorTypeStates>
+          <MonitorTypeState ID="Healthy" NoDetection="false" />
+          <MonitorTypeState ID="Warning" NoDetection="false" />
+          <MonitorTypeState ID="Critical" NoDetection="false" />
+        </MonitorTypeStates>
+        <Configuration>
+          <xsd:element name="IntervalSeconds" type="xsd:integer" />
+          <xsd:element minOccurs="0" maxOccurs="1" name="SyncTime" type="xsd:string" />
+          <xsd:element name="TimeoutSeconds" type="xsd:integer" />
+
+          <xsd:element name="PropertyName" type="xsd:string" />
+
+          <xsd:element name="TheGreaterTheBetter" type="xsd:boolean" />
+          <xsd:element name="WarningThreshold" type="xsd:double" />
+          <xsd:element name="CriticalThreshold" type="xsd:double" />
+        </Configuration>
+        <OverrideableParameters>
+          <OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int" />
+          <OverrideableParameter ID="SyncTime" Selector="$Config/SyncTime$" ParameterType="string" />
+          <OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="int" />
+
+          <OverrideableParameter ID="WarningThreshold" Selector="$Config/WarningThreshold$" ParameterType="double" />
+          <OverrideableParameter ID="CriticalThreshold" Selector="$Config/CriticalThreshold$" ParameterType="double" />
+        </OverrideableParameters>
+        <MonitorImplementation>
+          <MemberModules>
+            <DataSource ID="DS" TypeID="Ambari.SCOM.Module.YarnServiceMetricsDataSource">
+              <IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
+              <SyncTime>$Config/SyncTime$</SyncTime>
+              <TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
+            </DataSource>
+
+            <ConditionDetection ID="HealthyCondition" TypeID="System!System.ExpressionFilter">
+              <Expression>
+                <Or>
+                  <Expression>
+                    <And>
+                      <Expression>
+                        <SimpleExpression>
+                          <ValueExpression>
+                            <Value Type="Boolean">$Config/TheGreaterTheBetter$</Value>
+                          </ValueExpression>
+                          <Operator>Equal</Operator>
+                          <ValueExpression>
+                            <Value Type="Boolean">false</Value>
+                          </ValueExpression>
+                        </SimpleExpression>
+                      </Expression>
+                      <Expression>
+                        <SimpleExpression>
+                          <ValueExpression>
+                            <XPathQuery Type="Double">Property[@Name='$Config/PropertyName$']</XPathQuery>
+                          </ValueExpression>
+                          <Operator>Less</Operator>
+                          <ValueExpression>
+                            <Value Type="Double">$Config/WarningThreshold$</Value>
+                          </ValueExpression>
+                        </SimpleExpression>
+                      </Expression>
+                      <Expression>
+                        <SimpleExpression>
+                          <ValueExpression>
+                            <XPathQuery Type="Double">Property[@Name='$Config/PropertyName$']</XPathQuery>
+                          </ValueExpression>
+                          <Operator>Less</Operator>
+                          <ValueExpression>
+                            <Value Type="Double">$Config/CriticalThreshold$</Value>
+                          </ValueExpression>
+                        </SimpleExpression>
+                      </Expression>
+                    </And>
+                  </Expression>
+                  <Expression>
+                    <And>
+                      <Expression>
+                        <SimpleExpression>
+                          <ValueExpression>
+                            <Value Type="Boolean">$Config/TheGreaterTheBetter$</Value>
+                          </ValueExpression>
+                          <Operator>Equal</Operator>
+                          <ValueExpression>
+                            <Value Type="Boolean">true</Value>
+                          </ValueExpression>
+                        </SimpleExpression>
+                      </Expression>
+                      <Expression>
+                        <SimpleExpression>
+                          <ValueExpression>
+                            <XPathQuery Type="Double">Property[@Name='$Config/PropertyName$']</XPathQuery>
+                          </ValueExpression>
+                          <Operator>Greater</Operator>
+                          <ValueExpression>
+                            <Value Type="Double">$Config/WarningThreshold$</Value>
+                          </ValueExpression>
+                        </SimpleExpression>
+                      </Expression>
+                      <Expression>
+                        <SimpleExpression>
+                          <ValueExpression>
+                            <XPathQuery Type="Double">Property[@Name='$Config/PropertyName$']</XPathQuery>
+                          </ValueExpression>
+                          <Operator>Greater</Operator>
+                          <ValueExpression>
+                            <Value Type="Double">$Config/CriticalThreshold$</Value>
+                          </ValueExpression>
+                        </SimpleExpression>
+                      </Expression>
+                    </And>
+                  </Expression>
+                </Or>
+              </Expression>
+            </ConditionDetection>
+
+            <ConditionDetection ID="WarningCondition" TypeID="System!System.ExpressionFilter">
+              <Expression>
+                <Or>
+                  <Expression>
+                    <And>
+                      <Expression>
+                        <SimpleExpression>
+                          <ValueExpression>
+                            <Value Type="Boolean">$Config/TheGreaterTheBetter$</Value>
+                          </ValueExpression>
+                          <Operator>Equal</Operator>
+                          <ValueExpression>
+                            <Value Type="Boolean">false</Value>
+                          </ValueExpression>
+                        </SimpleExpression>
+                      </Expression>
+                      <Expression>
+                        <SimpleExpression>
+                          <ValueExpression>
+                            <XPathQuery Type="Double">Property[@Name='$Config/PropertyName$']</XPathQuery>
+                          </ValueExpression>
+                          <Operator>GreaterEqual</Operator>
+                          <ValueExpression>
+                            <Value Type="Double">$Config/WarningThreshold$</Value>
+                          </ValueExpression>
+                        </SimpleExpression>
+                      </Expression>
+                      <Expression>
+                        <SimpleExpression>
+                          <ValueExpression>
+                            <XPathQuery Type="Double">Property[@Name='$Config/PropertyName$']</XPathQuery>
+                          </ValueExpression>
+                          <Operator>Less</Operator>
+                          <ValueExpression>
+                            <Value Type="Double">$Config/CriticalThreshold$</Value>
+                          </ValueExpression>
+                        </SimpleExpression>
+                      </Expression>
+                    </And>
+                  </Expression>
+                  <Expression>
+                    <And>
+                      <Expression>
+                        <SimpleExpression>
+                          <ValueExpression>
+                            <Value Type="Boolean">$Config/TheGreaterTheBetter$</Value>
+                          </ValueExpression>
+                          <Operator>Equal</Operator>
+                          <ValueExpression>
+                            <Value Type="Boolean">true</Value>
+                          </ValueExpression>
+                        </SimpleExpression>
+                      </Expression>
+                      <Expression>
+                        <SimpleExpression>
+                          <ValueExpression>
+                            <XPathQuery Type="Double">Property[@Name='$Config/PropertyName$']</XPathQuery>
+                          </ValueExpression>
+                          <Operator>LessEqual</Operator>
+                          <ValueExpression>
+                            <Value Type="Double">$Config/WarningThreshold$</Value>
+                          </ValueExpression>
+                        </SimpleExpression>
+                      </Expression>
+                      <Expression>
+                        <SimpleExpression>
+                          <ValueExpression>
+                            <XPathQuery Type="Double">Property[@Name='$Config/PropertyName$']</XPathQuery>
+                          </ValueExpression>
+                          <Operator>Greater</Operator>
+                          <ValueExpression>
+                            <Value Type="Double">$Config/CriticalThreshold$</Value>
+                          </ValueExpression>
+                        </SimpleExpression>
+                      </Expression>
+                    </And>
+                  </Expression>
+                </Or>
+              </Expression>
+            </ConditionDetection>
+
+            <ConditionDetection ID="CriticalCondition" TypeID="System!System.ExpressionFilter">
+              <Expression>
+                <Or>
+                  <Expression>
+                    <And>
+                      <Expression>
+                        <SimpleExpression>
+                          <ValueExpression>
+                            <Value Type="Boolean">$Config/TheGreaterTheBetter$</Value>
+                          </ValueExpression>
+                          <Operator>Equal</Operator>
+                          <ValueExpression>
+                            <Value Type="Boolean">false</Value>
+                          </ValueExpression>
+                        </SimpleExpression>
+                      </Expression>
+                      <Expression>
+                        <SimpleExpression>
+                          <ValueExpression>
+                            <XPathQuery Type="Double">Property[@Name='$Config/PropertyName$']</XPathQuery>
+                          </ValueExpression>
+                          <Operator>GreaterEqual</Operator>
+                          <ValueExpression>
+                            <Value Type="Double">$Config/CriticalThreshold$</Value>
+                          </ValueExpression>
+                        </SimpleExpression>
+                      </Expression>
+                    </And>
+                  </Expression>
+                  <Expression>
+                    <And>
+                      <Expression>
+                        <SimpleExpression>
+                          <ValueExpression>
+                            <Value Type="Boolean">$Config/TheGreaterTheBetter$</Value>
+                          </ValueExpression>
+                          <Operator>Equal</Operator>
+                          <ValueExpression>
+                            <Value Type="Boolean">true</Value>
+                          </ValueExpression>
+                        </SimpleExpression>
+                      </Expression>
+                      <Expression>
+                        <SimpleExpression>
+                          <ValueExpression>
+                            <XPathQuery Type="Double">Property[@Name='$Config/PropertyName$']</XPathQuery>
+                          </ValueExpression>
+                          <Operator>LessEqual</Operator>
+                          <ValueExpression>
+                            <Value Type="Double">$Config/CriticalThreshold$</Value>
+                          </ValueExpression>
+                        </SimpleExpression>
+                      </Expression>
+                    </And>
+                  </Expression>
+                </Or>
+              </Expression>
+            </ConditionDetection>
+          </MemberModules>
+          <RegularDetections>
+            <RegularDetection MonitorTypeStateID="Healthy">
+              <Node ID="HealthyCondition">
+                <Node ID="DS" />
+              </Node>
+            </RegularDetection>
+            <RegularDetection MonitorTypeStateID="Warning">
+              <Node ID="WarningCondition">
+                <Node ID="DS" />
+              </Node>
+            </RegularDetection>
+            <RegularDetection MonitorTypeStateID="Critical">
+              <Node ID="CriticalCondition">
+                <Node ID="DS" />
+              </Node>
+            </RegularDetection>
+          </RegularDetections>
+        </MonitorImplementation>
+      </UnitMonitorType>
+    </MonitorTypes>
+  </TypeDefinitions>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitorType.YarnServiceThreeStateThreshold">
+          <Name>Hadoop Yarn Cluster Service Three-State Threshold Unit Monitor Type</Name>
+          <Description>This three-state unit monitor type compares specified Yarn Cluster Service metric against defined thresholds.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitorType.YarnServiceThreeStateThreshold" SubElementID="Healthy">
+          <Name>Healthy</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitorType.YarnServiceThreeStateThreshold" SubElementID="Warning">
+          <Name>Warning</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitorType.YarnServiceThreeStateThreshold" SubElementID="Critical">
+          <Name>Critical</Name>
+        </DisplayString>
+
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitorType.YarnServiceThreeStateThreshold" SubElementID="IntervalSeconds">
+          <Name>Interval (sec)</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitorType.YarnServiceThreeStateThreshold" SubElementID="SyncTime">
+          <Name>Sync Time</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitorType.YarnServiceThreeStateThreshold" SubElementID="TimeoutSeconds">
+          <Name>Timeout (sec)</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitorType.YarnServiceThreeStateThreshold" SubElementID="WarningThreshold">
+          <Name>Warning Threshold</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitorType.YarnServiceThreeStateThreshold" SubElementID="CriticalThreshold">
+          <Name>Critical Threshold</Name>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/ambari/blob/53c40505/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/ErrorHandling/APIAuthenticationMonitor.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/ErrorHandling/APIAuthenticationMonitor.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/ErrorHandling/APIAuthenticationMonitor.mpx
new file mode 100644
index 0000000..f94635f
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/ErrorHandling/APIAuthenticationMonitor.mpx
@@ -0,0 +1,89 @@
+<!--## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##     http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied.  See the License for the
+## specific language governing permissions and limitations
+## under the License.-->
+
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Monitoring>
+    <Monitors>
+      <UnitMonitor ID="Ambari.SCOM.APIAuthenticationMonitor" Accessibility="Public" Enabled="true" Target="Ambari.SCOM.AmbariSeed" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Ambari.SCOM.SyntheticTransactionMonitorType" ConfirmDelivery="true">
+        <Category>Custom</Category>
+        <AlertSettings AlertMessage="Ambari.SCOM.APIAuthenticationMonitor.AlertMessage">
+          <AlertOnState>Error</AlertOnState>
+          <AutoResolve>true</AutoResolve>
+          <AlertPriority>Normal</AlertPriority>
+          <AlertSeverity>Error</AlertSeverity>
+          <AlertParameters>
+            <AlertParameter1>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter1>
+            <AlertParameter2>$Target/Property[Type="Ambari.SCOM.AmbariSeed"]/AmbariUri$</AlertParameter2>
+          </AlertParameters>
+        </AlertSettings>
+        <OperationalStates>
+          <OperationalState ID="HealthyState" MonitorTypeStateID="Healthy" HealthState="Success" />
+          <OperationalState ID="ErrorState" MonitorTypeStateID="Error" HealthState="Error" />
+        </OperationalStates>
+        <Configuration>
+          <ErrorCode>1902</ErrorCode>
+          <TimeInterval>900</TimeInterval>
+        </Configuration>
+      </UnitMonitor>
+    </Monitors>
+  </Monitoring>
+  <Presentation>
+    <StringResources>
+      <StringResource ID="Ambari.SCOM.APIAuthenticationMonitor.AlertMessage" />
+    </StringResources>
+  </Presentation>
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.APIAuthenticationMonitor">
+          <Name>Ambari Authentication monitor</Name>
+          <Description>This monitor detects authentication error for Ambari API.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.APIAuthenticationMonitor" SubElementID="HealthyState">
+          <Name>Healthy state</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.APIAuthenticationMonitor" SubElementID="ErrorState">
+          <Name>Error state</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.APIAuthenticationMonitor.AlertMessage">
+          <Name>Authentication failed while connecting to Hadoop Ambari server {1} from watcher {0}.</Name>
+          <Description>Authentication failed while connecting to Hadoop Ambari server {1} from watcher {0}.</Description>
+        </DisplayString>
+      </DisplayStrings>
+      <KnowledgeArticles>
+        <KnowledgeArticle ElementID="Ambari.SCOM.APIAuthenticationMonitor" Visible="true">
+          <MamlContent>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Summary</title>
+              <para>This monitor detects authentication error for Ambari API.</para>
+            </section>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Causes</title>
+              <para>This monitor turns to Critical state if Ambari Management Pack is unable to pass authentication on Ambari server.</para>
+            </section>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Resolutions</title>
+              <para>Management Pack uses “Hadoop Ambari Credentials” run-as profile for access to Ambari REST API.</para>
+              <para>Check that login and password are correct on associated run as account.</para>
+            </section>
+          </MamlContent>
+        </KnowledgeArticle>
+      </KnowledgeArticles>
+
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/ambari/blob/53c40505/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/ErrorHandling/APIAvailabilityMonitor.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/ErrorHandling/APIAvailabilityMonitor.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/ErrorHandling/APIAvailabilityMonitor.mpx
new file mode 100644
index 0000000..ec8c460
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/ErrorHandling/APIAvailabilityMonitor.mpx
@@ -0,0 +1,92 @@
+<!--## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##     http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied.  See the License for the
+## specific language governing permissions and limitations
+## under the License.-->
+
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Monitoring>
+    <Monitors>
+      <UnitMonitor ID="Ambari.SCOM.APIAvailabilityMonitor" Accessibility="Public" Enabled="true" Target="Ambari.SCOM.AmbariSeed" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Ambari.SCOM.SyntheticTransactionMonitorType" ConfirmDelivery="true">
+        <Category>Custom</Category>
+        <AlertSettings AlertMessage="Ambari.SCOM.APIAvailabilityMonitor.AlertMessage">
+          <AlertOnState>Error</AlertOnState>
+          <AutoResolve>true</AutoResolve>
+          <AlertPriority>Normal</AlertPriority>
+          <AlertSeverity>Error</AlertSeverity>
+          <AlertParameters>
+            <AlertParameter1>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter1>
+            <AlertParameter2>$Target/Property[Type="Ambari.SCOM.AmbariSeed"]/AmbariUri$</AlertParameter2>
+          </AlertParameters>
+        </AlertSettings>
+        <OperationalStates>
+          <OperationalState ID="HealthyState" MonitorTypeStateID="Healthy" HealthState="Success" />
+          <OperationalState ID="ErrorState" MonitorTypeStateID="Error" HealthState="Error" />
+        </OperationalStates>
+        <Configuration>
+          <ErrorCode>1903</ErrorCode>
+          <TimeInterval>900</TimeInterval>
+        </Configuration>
+      </UnitMonitor>
+    </Monitors>
+  </Monitoring>
+  <Presentation>
+    <StringResources>
+      <StringResource ID="Ambari.SCOM.APIAvailabilityMonitor.AlertMessage" />
+    </StringResources>
+  </Presentation>
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.APIAvailabilityMonitor">
+          <Name>Ambari Availability monitor</Name>
+          <Description>This monitor checks  availability of Ambari server.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.APIAvailabilityMonitor" SubElementID="HealthyState">
+          <Name>Healthy state</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.APIAvailabilityMonitor" SubElementID="ErrorState">
+          <Name>Error state</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.APIAvailabilityMonitor.AlertMessage">
+          <Name>Connection to Hadoop Ambari server {1} from watcher {0} failed.</Name>
+          <Description>Connection to Hadoop Ambari server {1} from watcher {0} failed.</Description>
+        </DisplayString>
+      </DisplayStrings>
+      <KnowledgeArticles>
+        <KnowledgeArticle ElementID="Ambari.SCOM.APIAvailabilityMonitor" Visible="true">
+          <MamlContent>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Summary</title>
+              <para>This monitor checks  availability of Ambari server.</para>
+            </section>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Causes</title>
+              <para>This monitor turns to Critical state if Ambari Management Pack is unable to connect to Ambari server because of one of the following reasons:</para>
+              <para>-	wrong configuration</para>
+              <para>-	network issue</para>
+              <para>-	Ambari server problems</para>
+            </section>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Resolutions</title>
+              <para>Most recent reason for this issue -   wrong address of Ambari server, entered during Management Pack configuration. Please check that you’ve entered a valid connection string for Ambari server.</para>
+              <para>If Ambari server address is valid - check that Ambari server is running and reachable from watcher node.</para>
+            </section>
+          </MamlContent>
+        </KnowledgeArticle>
+      </KnowledgeArticles>
+
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/ambari/blob/53c40505/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/ErrorHandling/TimeoutMonitor.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/ErrorHandling/TimeoutMonitor.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/ErrorHandling/TimeoutMonitor.mpx
new file mode 100644
index 0000000..6a161cd
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/ErrorHandling/TimeoutMonitor.mpx
@@ -0,0 +1,91 @@
+<!--## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##     http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied.  See the License for the
+## specific language governing permissions and limitations
+## under the License.-->
+
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Monitoring>
+    <Monitors>
+      <UnitMonitor ID="Ambari.SCOM.TimeoutMonitor" Accessibility="Public" Enabled="true" Target="Ambari.SCOM.AmbariWatcherNode" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Ambari.SCOM.RepeatedEventLogTimer2StateMonitorType" ConfirmDelivery="true">
+        <Category>Custom</Category>
+        <AlertSettings AlertMessage="Ambari.SCOM.TimeoutMonitor.AlertMessage">
+          <AlertOnState>Error</AlertOnState>
+          <AutoResolve>true</AutoResolve>
+          <AlertPriority>Normal</AlertPriority>
+          <AlertSeverity>Error</AlertSeverity>
+          <AlertParameters>
+            <AlertParameter1>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter1>
+          </AlertParameters>
+        </AlertSettings>
+        <OperationalStates>
+          <OperationalState ID="HealthyState" MonitorTypeStateID="TimerEventRaised" HealthState="Success" />
+          <OperationalState ID="ErrorState" MonitorTypeStateID="RepeatedEventRaised" HealthState="Error" />
+        </OperationalStates>
+        <Configuration>
+          <ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
+          <LogName>Operations Manager</LogName>
+          <EventNumber>1904</EventNumber>
+          <TimeInterval>4500</TimeInterval>
+          <Count>3</Count>
+        </Configuration>
+      </UnitMonitor>
+    </Monitors>
+  </Monitoring>
+  <Presentation>
+    <StringResources>
+      <StringResource ID="Ambari.SCOM.TimeoutMonitor.AlertMessage" />
+    </StringResources>
+  </Presentation>
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.TimeoutMonitor">
+          <Name>Ambari Timeout monitor</Name>
+          <Description>This monitor detects timeout for Ambari API.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.TimeoutMonitor" SubElementID="HealthyState">
+          <Name>Healthy state</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.TimeoutMonitor" SubElementID="ErrorState">
+          <Name>Error state</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.TimeoutMonitor.AlertMessage">
+          <Name>Timeout errors on the watcher {0} during connection to Hadoop Ambari server.</Name>
+          <Description>Timeout errors on the watcher {0} during connection to Hadoop Ambari server.</Description>
+        </DisplayString>
+      </DisplayStrings>
+      <KnowledgeArticles>
+        <KnowledgeArticle ElementID="Ambari.SCOM.TimeoutMonitor" Visible="true">
+          <MamlContent>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Summary</title>
+              <para>This monitor detects timeout for Ambari API.</para>
+            </section>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Causes</title>
+              <para>This monitor turns to Warning state if Ambari Management Pack gets a repeatable timeouts trying to connect to Ambari server. Ambari server might be overloaded.</para>
+            </section>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Resolutions</title>
+              <para>-	Check if Ambari server is overloaded</para>
+              <para>- Check for network issues which may affect connection between watcher and Ambari server</para>
+            </section>
+          </MamlContent>
+        </KnowledgeArticle>
+      </KnowledgeArticles>
+
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/ambari/blob/53c40505/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/HostComponentsHeathState/DataNodeHealthStateUnitMonitor.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/HostComponentsHeathState/DataNodeHealthStateUnitMonitor.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/HostComponentsHeathState/DataNodeHealthStateUnitMonitor.mpx
new file mode 100644
index 0000000..1f3a165
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/HostComponentsHeathState/DataNodeHealthStateUnitMonitor.mpx
@@ -0,0 +1,74 @@
+<!--## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##     http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied.  See the License for the
+## specific language governing permissions and limitations
+## under the License.-->
+
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Monitoring>
+    <Monitors>
+      <UnitMonitor ID="Ambari.SCOM.UnitMonitor.DataNodeComponentHealthState"
+                   TypeID="Ambari.SCOM.UnitMonitorType.HostComponentHealthState"
+                   Target="Ambari.SCOM.HostComponent.DataNode"
+                   ParentMonitorID="Health!System.Health.AvailabilityState"
+                   Remotable="true" Priority="Normal" Accessibility="Public" Enabled="true" ConfirmDelivery="true">
+        <Category>AvailabilityHealth</Category>
+        <OperationalStates>
+          <OperationalState ID="Healthy" MonitorTypeStateID="Healthy" HealthState="Success" />
+          <OperationalState ID="Critical" MonitorTypeStateID="Critical" HealthState="Warning" />
+        </OperationalStates>
+        <Configuration>
+          <IntervalSeconds>900</IntervalSeconds>
+          <TimeoutSeconds>300</TimeoutSeconds>
+        </Configuration>
+      </UnitMonitor>
+    </Monitors>
+  </Monitoring>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitor.DataNodeComponentHealthState">
+          <Name>DataNode Service State</Name>
+          <Description>Turns DataNode service to warning state if the DataNode service is unavailable.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitor.DataNodeComponentHealthState" SubElementID="Healthy">
+          <Name>Running</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitor.DataNodeComponentHealthState" SubElementID="Critical">
+          <Name>Not Running</Name>
+        </DisplayString>
+      </DisplayStrings>
+
+      <KnowledgeArticles>
+        <KnowledgeArticle ElementID="Ambari.SCOM.UnitMonitor.DataNodeComponentHealthState" Visible="true">
+          <MamlContent>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Summary</title>
+              <para>Turns DataNode service to warning state if the DataNode service is unavailable.</para>
+            </section>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Causes</title>
+              <para>TBD</para>
+            </section>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Resolutions</title>
+              <para>TBD</para>
+            </section>
+          </MamlContent>
+        </KnowledgeArticle>
+      </KnowledgeArticles>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/ambari/blob/53c40505/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/HostComponentsHeathState/HistoryServerHealthStateUnitMonitor.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/HostComponentsHeathState/HistoryServerHealthStateUnitMonitor.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/HostComponentsHeathState/HistoryServerHealthStateUnitMonitor.mpx
new file mode 100644
index 0000000..add9b4f
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/HostComponentsHeathState/HistoryServerHealthStateUnitMonitor.mpx
@@ -0,0 +1,95 @@
+<!--## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##     http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied.  See the License for the
+## specific language governing permissions and limitations
+## under the License.-->
+
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Monitoring>
+    <Monitors>
+      <UnitMonitor ID="Ambari.SCOM.UnitMonitor.HistoryServerComponentHealthState"
+                   TypeID="Ambari.SCOM.UnitMonitorType.HostComponentHealthState"
+                   Target="Ambari.SCOM.HostComponent.HistoryServer"
+                   ParentMonitorID="Health!System.Health.AvailabilityState"
+                   Remotable="true" Priority="Normal" Accessibility="Public" Enabled="true" ConfirmDelivery="true">
+        <Category>AvailabilityHealth</Category>
+        <AlertSettings AlertMessage="Ambari.SCOM.UnitMonitor.HistoryServerComponentHealthState.AlertMessage">
+          <AlertOnState>Error</AlertOnState>
+          <AutoResolve>true</AutoResolve>
+          <AlertPriority>Normal</AlertPriority>
+          <AlertSeverity>MatchMonitorHealth</AlertSeverity>
+          <AlertParameters>
+            <AlertParameter1>$Target/Host/Host/Property[Type="Ambari.SCOM.Host.Private"]/HostName$</AlertParameter1>
+            <AlertParameter2>$Target/Host/Host/Property[Type="Ambari.SCOM.Host.Private"]/ClusterName$</AlertParameter2>
+          </AlertParameters>
+        </AlertSettings>
+        <OperationalStates>
+          <OperationalState ID="Healthy" MonitorTypeStateID="Healthy" HealthState="Success" />
+          <OperationalState ID="Critical" MonitorTypeStateID="Critical" HealthState="Error" />
+        </OperationalStates>
+        <Configuration>
+          <IntervalSeconds>900</IntervalSeconds>
+          <TimeoutSeconds>300</TimeoutSeconds>
+        </Configuration>
+      </UnitMonitor>
+    </Monitors>
+  </Monitoring>
+
+  <Presentation>
+    <StringResources>
+      <StringResource ID="Ambari.SCOM.UnitMonitor.HistoryServerComponentHealthState.AlertMessage" />
+    </StringResources>
+  </Presentation>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitor.HistoryServerComponentHealthState">
+          <Name>History Server Service State</Name>
+          <Description>Gives critical alert if a History Server service is unavailable.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitor.HistoryServerComponentHealthState" SubElementID="Healthy">
+          <Name>Running</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitor.HistoryServerComponentHealthState" SubElementID="Critical">
+          <Name>Not Running</Name>
+        </DisplayString>
+
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitor.HistoryServerComponentHealthState.AlertMessage">
+          <Name>History Server service is not running.</Name>
+          <Description>History Server hosted on "{0}" in cluster "{1}" is not running.</Description>
+        </DisplayString>
+      </DisplayStrings>
+
+      <KnowledgeArticles>
+        <KnowledgeArticle ElementID="Ambari.SCOM.UnitMonitor.HistoryServerComponentHealthState" Visible="true">
+          <MamlContent>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Summary</title>
+              <para>Gives critical alert if a History Server service is unavailable.</para>
+            </section>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Causes</title>
+              <para>TBD</para>
+            </section>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Resolutions</title>
+              <para>TBD</para>
+            </section>
+          </MamlContent>
+        </KnowledgeArticle>
+      </KnowledgeArticles>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/ambari/blob/53c40505/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/HostComponentsHeathState/NodeManagerHealthStateUnitMonitor.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/HostComponentsHeathState/NodeManagerHealthStateUnitMonitor.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/HostComponentsHeathState/NodeManagerHealthStateUnitMonitor.mpx
new file mode 100644
index 0000000..2e0145a
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/HostComponentsHeathState/NodeManagerHealthStateUnitMonitor.mpx
@@ -0,0 +1,95 @@
+<!--## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##     http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied.  See the License for the
+## specific language governing permissions and limitations
+## under the License.-->
+
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Monitoring>
+    <Monitors>
+      <UnitMonitor ID="Ambari.SCOM.UnitMonitor.NodeManagerComponentHealthState"
+                   TypeID="Ambari.SCOM.UnitMonitorType.HostComponentHealthState"
+                   Target="Ambari.SCOM.HostComponent.NodeManager"
+                   ParentMonitorID="Health!System.Health.AvailabilityState"
+                   Remotable="true" Priority="Normal" Accessibility="Public" Enabled="true" ConfirmDelivery="true">
+        <Category>AvailabilityHealth</Category>
+        <AlertSettings AlertMessage="Ambari.SCOM.UnitMonitor.NodeManagerComponentHealthState.AlertMessage">
+          <AlertOnState>Error</AlertOnState>
+          <AutoResolve>true</AutoResolve>
+          <AlertPriority>Normal</AlertPriority>
+          <AlertSeverity>MatchMonitorHealth</AlertSeverity>
+          <AlertParameters>
+            <AlertParameter1>$Target/Host/Host/Property[Type="Ambari.SCOM.Host.Private"]/HostName$</AlertParameter1>
+            <AlertParameter2>$Target/Host/Host/Property[Type="Ambari.SCOM.Host.Private"]/ClusterName$</AlertParameter2>
+          </AlertParameters>
+        </AlertSettings>
+        <OperationalStates>
+          <OperationalState ID="Healthy" MonitorTypeStateID="Healthy" HealthState="Success" />
+          <OperationalState ID="Critical" MonitorTypeStateID="Critical" HealthState="Error" />
+        </OperationalStates>
+        <Configuration>
+          <IntervalSeconds>900</IntervalSeconds>
+          <TimeoutSeconds>300</TimeoutSeconds>
+        </Configuration>
+      </UnitMonitor>
+    </Monitors>
+  </Monitoring>
+
+  <Presentation>
+    <StringResources>
+      <StringResource ID="Ambari.SCOM.UnitMonitor.NodeManagerComponentHealthState.AlertMessage" />
+    </StringResources>
+  </Presentation>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitor.NodeManagerComponentHealthState">
+          <Name>Node Manager Service State</Name>
+          <Description>Gives critical alert if a Node Manager service is unavailable.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitor.NodeManagerComponentHealthState" SubElementID="Healthy">
+          <Name>Running</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitor.NodeManagerComponentHealthState" SubElementID="Critical">
+          <Name>Not Running</Name>
+        </DisplayString>
+
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitor.NodeManagerComponentHealthState.AlertMessage">
+          <Name>Node Manager service is not running.</Name>
+          <Description>Node Manager hosted on "{0}" in cluster "{1}" is not running.</Description>
+        </DisplayString>
+      </DisplayStrings>
+
+      <KnowledgeArticles>
+        <KnowledgeArticle ElementID="Ambari.SCOM.UnitMonitor.NodeManagerComponentHealthState" Visible="true">
+          <MamlContent>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Summary</title>
+              <para>Gives critical alert if a Node Manager service is unavailable.</para>
+            </section>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Causes</title>
+              <para>TBD</para>
+            </section>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Resolutions</title>
+              <para>TBD</para>
+            </section>
+          </MamlContent>
+        </KnowledgeArticle>
+      </KnowledgeArticles>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/ambari/blob/53c40505/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/HostComponentsHeathState/ResourceManagerHealthStateUnitMonitor.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/HostComponentsHeathState/ResourceManagerHealthStateUnitMonitor.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/HostComponentsHeathState/ResourceManagerHealthStateUnitMonitor.mpx
new file mode 100644
index 0000000..39fe755
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Monitors/HostComponentsHeathState/ResourceManagerHealthStateUnitMonitor.mpx
@@ -0,0 +1,95 @@
+<!--## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##     http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied.  See the License for the
+## specific language governing permissions and limitations
+## under the License.-->
+
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <Monitoring>
+    <Monitors>
+      <UnitMonitor ID="Ambari.SCOM.UnitMonitor.ResourceManagerComponentHealthState"
+                   TypeID="Ambari.SCOM.UnitMonitorType.HostComponentHealthState"
+                   Target="Ambari.SCOM.HostComponent.ResourceManager"
+                   ParentMonitorID="Health!System.Health.AvailabilityState"
+                   Remotable="true" Priority="Normal" Accessibility="Public" Enabled="true" ConfirmDelivery="true">
+        <Category>AvailabilityHealth</Category>
+        <AlertSettings AlertMessage="Ambari.SCOM.UnitMonitor.ResourceManagerComponentHealthState.AlertMessage">
+          <AlertOnState>Error</AlertOnState>
+          <AutoResolve>true</AutoResolve>
+          <AlertPriority>Normal</AlertPriority>
+          <AlertSeverity>MatchMonitorHealth</AlertSeverity>
+          <AlertParameters>
+            <AlertParameter1>$Target/Host/Host/Property[Type="Ambari.SCOM.Host.Private"]/HostName$</AlertParameter1>
+            <AlertParameter2>$Target/Host/Host/Property[Type="Ambari.SCOM.Host.Private"]/ClusterName$</AlertParameter2>
+          </AlertParameters>
+        </AlertSettings>
+        <OperationalStates>
+          <OperationalState ID="Healthy" MonitorTypeStateID="Healthy" HealthState="Success" />
+          <OperationalState ID="Critical" MonitorTypeStateID="Critical" HealthState="Error" />
+        </OperationalStates>
+        <Configuration>
+          <IntervalSeconds>900</IntervalSeconds>
+          <TimeoutSeconds>300</TimeoutSeconds>
+        </Configuration>
+      </UnitMonitor>
+    </Monitors>
+  </Monitoring>
+
+  <Presentation>
+    <StringResources>
+      <StringResource ID="Ambari.SCOM.UnitMonitor.ResourceManagerComponentHealthState.AlertMessage" />
+    </StringResources>
+  </Presentation>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitor.ResourceManagerComponentHealthState">
+          <Name>Resource Manager Service State</Name>
+          <Description>Gives critical alert if a Resource Manager service is unavailable.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitor.ResourceManagerComponentHealthState" SubElementID="Healthy">
+          <Name>Running</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitor.ResourceManagerComponentHealthState" SubElementID="Critical">
+          <Name>Not Running</Name>
+        </DisplayString>
+
+        <DisplayString ElementID="Ambari.SCOM.UnitMonitor.ResourceManagerComponentHealthState.AlertMessage">
+          <Name>Resource Manager service is not running.</Name>
+          <Description>Resource Manager hosted on "{0}" in cluster "{1}" is not running.</Description>
+        </DisplayString>
+      </DisplayStrings>
+
+      <KnowledgeArticles>
+        <KnowledgeArticle ElementID="Ambari.SCOM.UnitMonitor.ResourceManagerComponentHealthState" Visible="true">
+          <MamlContent>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Summary</title>
+              <para>Gives critical alert if a Resource Manager service is unavailable.</para>
+            </section>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Causes</title>
+              <para>TBD</para>
+            </section>
+            <section xmlns="http://schemas.microsoft.com/maml/2004/10">
+              <title>Resolutions</title>
+              <para>TBD</para>
+            </section>
+          </MamlContent>
+        </KnowledgeArticle>
+      </KnowledgeArticles>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>