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 "main" 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.<init>(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.<init>(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.<init>(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.<init>(HiveMetaStoreClient.java:181)\\n... 16 more]\\nAMBARIPASSIVE=2\\n",
+ "service_type" : "HIVE"
}
],
"hostcounts": {
- "up_hosts": "3",
+ "up_hosts": "4",
"down_hosts": "0"
},
"servicestates": {