You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by nc...@apache.org on 2014/02/18 17:37:18 UTC

git commit: AMBARI-4712. Fix Hive Metastore alert issues (ncole)

Repository: ambari
Updated Branches:
  refs/heads/trunk 8f0fe9c33 -> 8d9b031e8


AMBARI-4712. Fix Hive Metastore alert issues (ncole)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/8d9b031e
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/8d9b031e
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/8d9b031e

Branch: refs/heads/trunk
Commit: 8d9b031e877f8ddc46f2443ce9bc8cb55d0007f1
Parents: 8f0fe9c
Author: Nate Cole <nc...@hortonworks.com>
Authored: Tue Feb 18 10:48:11 2014 -0500
Committer: Nate Cole <nc...@hortonworks.com>
Committed: Tue Feb 18 11:37:07 2014 -0500

----------------------------------------------------------------------
 .../nagios/NagiosPropertyProvider.java          |  7 ++-
 .../NAGIOS/package/files/check_wrapper.sh       | 24 ++++++++-
 .../NAGIOS/package/files/check_wrapper.sh       | 24 ++++++++-
 .../nagios/NagiosPropertyProviderTest.java      | 53 +++++++++++++++++++-
 .../src/test/resources/nagios_alerts.txt        | 19 ++++++-
 5 files changed, 119 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/8d9b031e/ambari-server/src/main/java/org/apache/ambari/server/controller/nagios/NagiosPropertyProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/nagios/NagiosPropertyProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/nagios/NagiosPropertyProvider.java
index a57c87b..b520202 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/nagios/NagiosPropertyProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/nagios/NagiosPropertyProvider.java
@@ -247,11 +247,14 @@ public class NagiosPropertyProvider extends BaseProvider implements PropertyProv
         map.put("actual_status", NagiosAlert.getStatusString(alert.getStatus()));
         
         String longOut = alert.getLongPluginOutput();
-        if (null != longOut && longOut.startsWith(PASSIVE_TOKEN)) {
+        int index = (null == longOut) ? -1 : longOut.indexOf(PASSIVE_TOKEN);
+        if (-1 != index) {
           int actualStatus = 3;
           try {
             int len = PASSIVE_TOKEN.length();
-            actualStatus = Integer.parseInt(longOut.substring(len, len+1));
+            
+            actualStatus = Integer.parseInt(longOut.substring(
+                index + len, index + len+1));
           } catch (Exception e) {
             // do nothing
           }

http://git-wip-us.apache.org/repos/asf/ambari/blob/8d9b031e/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/NAGIOS/package/files/check_wrapper.sh
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/NAGIOS/package/files/check_wrapper.sh b/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/NAGIOS/package/files/check_wrapper.sh
index ece44b2..3e4c61a 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/NAGIOS/package/files/check_wrapper.sh
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/NAGIOS/package/files/check_wrapper.sh
@@ -2,7 +2,15 @@
 
 function real_service() {
   desc=$NAGIOS_SERVICEGROUPNAME
-  eval "$1='$NAGIOS_SERVICEGROUPNAME'"
+  case "$desc" in
+    HIVE-METASTORE)
+      desc="HIVE"
+    ;;
+    *)
+    ;;
+  esac
+
+  eval "$1='$desc'"
 }
 
 function real_component() {
@@ -17,6 +25,18 @@ function real_component() {
     REGIONSERVER)
       realCompName="HBASE_REGIONSERVER"
     ;;
+    HIVE-METASTORE)
+      realCompName="HIVE_METASTORE"
+    ;;
+    FLUME)
+      realCompName="FLUME_SERVER"
+    ;;
+    HUE)
+      realCompName="HUE_SERVER"
+    ;;
+    WEBHCAT)
+      realCompName="WEBHCAT_SERVER"
+    ;;
     *)
       realCompName=$compName
     ;;
@@ -46,7 +66,7 @@ if [ ! -f /var/nagios/ignore.dat ]; then
 else
   count=`grep $NAGIOS_HOSTNAME /var/nagios/ignore.dat | grep $real_service_var | grep $real_comp_var | wc -l`
   if [ "$count" -ne "0" ]; then
-    echo "$wrapper_output\nAMBARIPASSIVE=${wrapper_result}"
+    echo "$wrapper_output\nAMBARIPASSIVE=${wrapper_result}" | sed 's/^[ \t]*//g'
     exit 0
   else
     echo "$wrapper_output"

http://git-wip-us.apache.org/repos/asf/ambari/blob/8d9b031e/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/files/check_wrapper.sh
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/files/check_wrapper.sh b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/files/check_wrapper.sh
index a1b6a12..0982606 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/files/check_wrapper.sh
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/package/files/check_wrapper.sh
@@ -2,7 +2,15 @@
 
 function real_service() {
   desc=$NAGIOS_SERVICEGROUPNAME
-  eval "$1='$NAGIOS_SERVICEGROUPNAME'"
+  case "$desc" in
+    HIVE-METASTORE)
+      desc="HIVE"
+    ;;
+    *)
+    ;;
+  esac
+
+  eval "$1='$desc'"
 }
 
 function real_component() {
@@ -20,6 +28,18 @@ function real_component() {
     JOBHISTORY)
       realCompName="MAPREDUCE2"
     ;;
+    HIVE-METASTORE)
+      realCompName="HIVE_METASTORE"
+    ;;
+    FLUME)
+      realCompName="FLUME_SERVER"
+    ;;
+    HUE)
+      realCompName="HUE_SERVER"
+    ;;
+    WEBHCAT)
+      realCompName="WEBHCAT_SERVER"
+    ;;
     *)
       realCompName=$compName
     ;;
@@ -49,7 +69,7 @@ if [ ! -f /var/nagios/ignore.dat ]; then
 else
   count=`grep $NAGIOS_HOSTNAME /var/nagios/ignore.dat | grep $real_service_var | grep $real_comp_var | wc -l`
   if [ "$count" -ne "0" ]; then
-    echo "$wrapper_output\nAMBARIPASSIVE=${wrapper_result}"
+    echo "$wrapper_output\nAMBARIPASSIVE=${wrapper_result}" | sed 's/^[ \t]*//g'
     exit 0
   else
     echo "$wrapper_output"

http://git-wip-us.apache.org/repos/asf/ambari/blob/8d9b031e/ambari-server/src/test/java/org/apache/ambari/server/controller/nagios/NagiosPropertyProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/nagios/NagiosPropertyProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/nagios/NagiosPropertyProviderTest.java
index 209e04a..9c6977d 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/nagios/NagiosPropertyProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/nagios/NagiosPropertyProviderTest.java
@@ -151,7 +151,6 @@ public class NagiosPropertyProviderTest {
   @Test
   public void testNagiosServiceAlerts() throws Exception {
 
-    
     TestStreamProvider streamProvider = new TestStreamProvider("nagios_alerts.txt");
 
     NagiosPropertyProvider npp = new NagiosPropertyProvider(Resource.Type.Service,
@@ -431,6 +430,58 @@ public class NagiosPropertyProviderTest {
     Assert.assertEquals(Integer.valueOf(1), summary.get("PASSIVE"));
   }
   
+  @Test
+  public void testNagiosHostAlertsSubstringPassiveMarker() throws Exception {
+    
+    TestStreamProvider streamProvider = new TestStreamProvider("nagios_alerts.txt");
+
+    NagiosPropertyProvider npp = new NagiosPropertyProvider(Resource.Type.Host,
+        streamProvider,
+        "Hosts/cluster_name",
+        "Hosts/host_name");
+    npp.forceReset();
+    
+    Resource resource = new ResourceImpl(Resource.Type.Host);
+    resource.setProperty("Hosts/cluster_name", "c1");
+    resource.setProperty("Hosts/host_name", "c6404.ambari.apache.org");
+    
+    // request with an empty set should get all supported properties
+    Request request = PropertyHelper.getReadRequest(Collections.<String>emptySet(), new HashMap<String, TemporalInfo>());
+
+    Set<Resource> set = npp.populateResources(Collections.singleton(resource), request, null);
+    Assert.assertEquals(1, set.size());
+    
+    Resource res = set.iterator().next();
+    
+    Map<String, Map<String, Object>> values = res.getPropertiesMap();
+    
+    Assert.assertTrue(values.containsKey("alerts"));
+    Assert.assertTrue(values.containsKey("alerts/summary"));
+    Assert.assertTrue(values.get("alerts").containsKey("detail"));
+    Assert.assertTrue(List.class.isInstance(values.get("alerts").get("detail")));
+    
+    List<?> list = (List<?>) values.get("alerts").get("detail");
+    Assert.assertEquals(Integer.valueOf(1), Integer.valueOf(list.size()));
+    for (Object o : list) {
+      Assert.assertTrue(Map.class.isInstance(o));
+      Map<?, ?> map = (Map<?, ?>) o;
+      Assert.assertTrue(map.containsKey("host_name"));
+      String host = map.get("host_name").toString();
+      Assert.assertEquals("c6404.ambari.apache.org", host);
+    }
+    
+    Map<String, Object> summary = values.get("alerts/summary");
+    Assert.assertTrue(summary.containsKey("OK"));
+    Assert.assertTrue(summary.containsKey("WARNING"));
+    Assert.assertTrue(summary.containsKey("CRITICAL"));
+    Assert.assertTrue(summary.containsKey("PASSIVE"));
+    
+    Assert.assertEquals(Integer.valueOf(0), summary.get("OK"));
+    Assert.assertEquals(Integer.valueOf(0), summary.get("WARNING"));
+    Assert.assertEquals(Integer.valueOf(0), summary.get("CRITICAL"));
+    Assert.assertEquals(Integer.valueOf(1), summary.get("PASSIVE"));
+  }   
+  
   private static class GuiceModule implements Module {
 
     private Properties properties = new Properties();

http://git-wip-us.apache.org/repos/asf/ambari/blob/8d9b031e/ambari-server/src/test/resources/nagios_alerts.txt
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/resources/nagios_alerts.txt b/ambari-server/src/test/resources/nagios_alerts.txt
index a90f445..e5f04d6 100644
--- a/ambari-server/src/test/resources/nagios_alerts.txt
+++ b/ambari-server/src/test/resources/nagios_alerts.txt
@@ -576,10 +576,27 @@
             "is_flapping": "0",
             "last_check": "1389288671",
             "service_type": "ZOOKEEPER"
+        },
+        {
+          "service_description" : "Hive Metastore status",
+          "host_name" : "c6404.ambari.apache.org",
+          "current_attempt" : "1",
+          "current_state" : "0",
+          "plugin_output" : "CRITICAL: Error accessing Hive Metastore status [Exception in thread &quot;main&quot; java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient",
+          "last_hard_state_change" : "1392736649",
+          "last_hard_state" : "0",
+          "last_time_ok" : "1392736799",
+          "last_time_warning" : "0",
+          "last_time_unknown" : "0",
+          "last_time_critical" : "1392736619",
+          "is_flapping" : "0",
+          "last_check" : "1392736799",
+          "long_plugin_output" : "at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:319)\\nat org.apache.hive.hcatalog.cli.HCatCli.main(HCatCli.java:138)\\nat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\\nat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\\nat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\\nat java.lang.reflect.Method.invoke(Method.java:597)\\nat org.apache.hadoop.util.RunJar.main(RunJar.java:212)\\nCaused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient\\nat org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1345)\\nat org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.&lt;init&gt;(RetryingMetaStoreClient.java:62)\\nat org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:72)\\nat org.apache.hadoop.hive.ql.metadata.Hive.creat
 eMetaStoreClient(Hive.java:2434)\\nat org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:2446)\\nat org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:313)\\n... 6 more\\nCaused by: java.lang.reflect.InvocationTargetException\\nat sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\\nat sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)\\nat sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)\\nat java.lang.reflect.Constructor.newInstance(Constructor.java:513)\\nat org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1343)\\n... 11 more\\nCaused by: MetaException(message:Could not connect to meta store using any of the URIs provided. Most recent failure: org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection refused\\nat org.apache.thrift.transport.TSocket.open(TSocket.java:185)\\nat org.apac
 he.hadoop.hive.metastore.HiveMetaStoreClient.open(HiveMetaStoreClient.java:300)\\nat org.apache.hadoop.hive.metastore.HiveMetaStoreClient.&lt;init&gt;(HiveMetaStoreClient.java:181)\\nat sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\\nat sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)\\nat sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)\\nat java.lang.reflect.Constructor.newInstance(Constructor.java:513)\\nat org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1343)\\nat org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.&lt;init&gt;(RetryingMetaStoreClient.java:62)\\nat org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:72)\\nat org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:2434)\\nat org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:2446)\\nat org.apach
 e.hadoop.hive.ql.session.SessionState.start(SessionState.java:313)\\nat org.apache.hive.hcatalog.cli.HCatCli.main(HCatCli.java:138)\\nat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\\nat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\\nat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\\nat java.lang.reflect.Method.invoke(Method.java:597)\\nat org.apache.hadoop.util.RunJar.main(RunJar.java:212)\\nCaused by: java.net.ConnectException: Connection refused\\nat java.net.PlainSocketImpl.socketConnect(Native Method)\\nat java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)\\nat java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)\\nat java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)\\nat java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)\\nat java.net.Socket.connect(Socket.java:529)\\nat org.apache.thrift.transport.TSocket.open(TSocket.java:180)\\n... 18 more\\n)\\n
 at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.open(HiveMetaStoreClient.java:346)\\nat org.apache.hadoop.hive.metastore.HiveMetaStoreClient.&lt;init&gt;(HiveMetaStoreClient.java:181)\\n... 16 more]\\nAMBARIPASSIVE=2\\n",
+          "service_type" : "HIVE"
         }
     ],
     "hostcounts": {
-        "up_hosts": "3",
+        "up_hosts": "4",
         "down_hosts": "0"
     },
     "servicestates": {