You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2015/03/17 14:23:02 UTC
ambari git commit: AMBARI-10099 - Web Alerts Create Confusing Errors
And Warnings (jonathanhurley)
Repository: ambari
Updated Branches:
refs/heads/trunk ff711095e -> 8a821dbf2
AMBARI-10099 - Web Alerts Create Confusing Errors And Warnings (jonathanhurley)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/8a821dbf
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/8a821dbf
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/8a821dbf
Branch: refs/heads/trunk
Commit: 8a821dbf2d5ae61e30a5dbbf40b1b866c25276e0
Parents: ff71109
Author: Jonathan Hurley <jh...@hortonworks.com>
Authored: Mon Mar 16 22:42:28 2015 -0400
Committer: Jonathan Hurley <jh...@hortonworks.com>
Committed: Tue Mar 17 09:22:55 2015 -0400
----------------------------------------------------------------------
.../python/ambari_agent/alerts/web_alert.py | 31 +++++++++++++++-----
.../src/test/python/ambari_agent/TestAlerts.py | 8 ++---
.../FALCON/0.5.0.2.1/alerts.json | 4 +--
.../common-services/HDFS/2.1.0.2.0/alerts.json | 8 ++---
.../common-services/OOZIE/4.0.0.2.0/alerts.json | 4 +--
.../common-services/STORM/0.9.1.2.1/alerts.json | 4 +--
.../common-services/YARN/2.1.0.2.0/alerts.json | 16 +++++-----
.../stacks/BIGTOP/0.8/services/HDFS/alerts.json | 8 ++---
.../BIGTOP/0.8/services/OOZIE/alerts.json | 4 +--
.../stacks/BIGTOP/0.8/services/YARN/alerts.json | 16 +++++-----
10 files changed, 58 insertions(+), 45 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/8a821dbf/ambari-agent/src/main/python/ambari_agent/alerts/web_alert.py
----------------------------------------------------------------------
diff --git a/ambari-agent/src/main/python/ambari_agent/alerts/web_alert.py b/ambari-agent/src/main/python/ambari_agent/alerts/web_alert.py
index 2db4996..1a6540a 100644
--- a/ambari-agent/src/main/python/ambari_agent/alerts/web_alert.py
+++ b/ambari-agent/src/main/python/ambari_agent/alerts/web_alert.py
@@ -23,6 +23,7 @@ import time
import subprocess
import os
import urllib2
+from urllib2 import HTTPError
import uuid
from tempfile import gettempdir
@@ -89,10 +90,12 @@ class WebAlert(BaseAlert):
if status_code == 0:
return (self.RESULT_CRITICAL, [status_code, url, time_seconds, error_message])
+ # anything that's less than 400 is OK
if status_code < 400:
return (self.RESULT_OK, [status_code, url, time_seconds])
- return (self.RESULT_WARNING, [status_code, url, time_seconds])
+ # everything else is WARNING
+ return (self.RESULT_WARNING, [status_code, url, time_seconds, error_message])
def _build_web_query(self, alert_uri):
@@ -140,6 +143,7 @@ class WebAlert(BaseAlert):
"""
try:
+ response_code = 0
kerberos_keytab = None
kerberos_principal = None
@@ -199,22 +203,26 @@ class WebAlert(BaseAlert):
'%{http_code}', url, '--connect-timeout', CURL_CONNECTION_TIMEOUT,
'-o', '/dev/null'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=kerberos_env)
- out, err = curl.communicate()
+ curl_stdout, curl_stderr = curl.communicate()
finally:
if os.path.isfile(cookie_file):
os.remove(cookie_file)
- if err != '':
- raise Exception(err)
+ # empty quotes evaluates to false
+ if curl_stderr:
+ raise Exception(curl_stderr)
+
+ # empty quotes evaluates to false
+ if curl_stdout:
+ response_code = int(curl_stdout)
- response_code = int(out)
time_millis = time.time() - start_time
else:
# kerberos is not involved; use urllib2
- response_code, time_millis = self._make_web_request_urllib(url)
+ response_code, time_millis, error_msg = self._make_web_request_urllib(url)
return WebResponse(status_code=response_code, time_millis=time_millis,
- error_msg=None)
+ error_msg=error_msg)
except Exception, exception:
if logger.isEnabledFor(logging.DEBUG):
@@ -230,6 +238,8 @@ class WebAlert(BaseAlert):
:return: a tuple of the response code and the total time in ms
"""
response = None
+ error_message = None
+
start_time = time.time()
try:
@@ -237,7 +247,12 @@ class WebAlert(BaseAlert):
response_code = response.getcode()
time_millis = time.time() - start_time
- return response_code, time_millis
+ return response_code, time_millis, error_message
+ except HTTPError, httpError:
+ time_millis = time.time() - start_time
+ error_message = str(httpError)
+
+ return httpError.code, time_millis, error_message
finally:
if response is not None:
try:
http://git-wip-us.apache.org/repos/asf/ambari/blob/8a821dbf/ambari-agent/src/test/python/ambari_agent/TestAlerts.py
----------------------------------------------------------------------
diff --git a/ambari-agent/src/test/python/ambari_agent/TestAlerts.py b/ambari-agent/src/test/python/ambari_agent/TestAlerts.py
index 3133c57..a574422 100644
--- a/ambari-agent/src/test/python/ambari_agent/TestAlerts.py
+++ b/ambari-agent/src/test/python/ambari_agent/TestAlerts.py
@@ -380,9 +380,7 @@ class TestAlerts(TestCase):
self.assertEquals('OK', alerts[0]['state'])
# run the alert and check HTTP 500
-
-
- wa_make_web_request_mock.return_value = WebResponse(500,1.234,None)
+ wa_make_web_request_mock.return_value = WebResponse(500,1.234,"Internal Server Error")
collector = AlertCollector()
alert = WebAlert(definition_json, definition_json['source'], None)
alert.set_helpers(collector, cluster_configuration)
@@ -393,7 +391,7 @@ class TestAlerts(TestCase):
self.assertEquals(0, len(collector.alerts()))
self.assertEquals('WARNING', alerts[0]['state'])
- self.assertEquals('(Unit Tests) warning: 500', alerts[0]['text'])
+ self.assertEquals('(Unit Tests) warning: 500 (Internal Server Error)', alerts[0]['text'])
# run the alert and check critical
wa_make_web_request_mock.return_value = WebResponse(0,0,'error message')
@@ -1067,7 +1065,7 @@ class TestAlerts(TestCase):
"text": "(Unit Tests) ok: {0}",
},
"warning": {
- "text": "(Unit Tests) warning: {0}",
+ "text": "(Unit Tests) warning: {0} ({3})",
},
"critical": {
"text": "(Unit Tests) critical: {1}. {3}",
http://git-wip-us.apache.org/repos/asf/ambari/blob/8a821dbf/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/alerts.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/alerts.json b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/alerts.json
index e028ed5..cd1bd73 100644
--- a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/alerts.json
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/alerts.json
@@ -44,10 +44,10 @@
},
"reporting": {
"ok": {
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response in {2:.3f}s"
},
"warning":{
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response from {1} in {2:.3f}s ({3})"
},
"critical": {
"text": "Connection failed to {1} ({3})"
http://git-wip-us.apache.org/repos/asf/ambari/blob/8a821dbf/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/alerts.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/alerts.json b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/alerts.json
index d5dccbf..3f0a926 100644
--- a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/alerts.json
+++ b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/alerts.json
@@ -103,10 +103,10 @@
},
"reporting": {
"ok": {
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response in {2:.3f}s"
},
"warning":{
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response from {1} in {2:.3f}s ({3})"
},
"critical": {
"text": "Connection failed to {1} ({3})"
@@ -506,10 +506,10 @@
},
"reporting": {
"ok": {
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response in {2:.3f}s"
},
"warning":{
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response from {1} in {2:.3f}s ({3})"
},
"critical": {
"text": "Connection failed to {1} ({3})"
http://git-wip-us.apache.org/repos/asf/ambari/blob/8a821dbf/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/alerts.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/alerts.json b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/alerts.json
index 01d9148..975fea0 100644
--- a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/alerts.json
+++ b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/alerts.json
@@ -17,10 +17,10 @@
},
"reporting": {
"ok": {
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response in {2:.3f}s"
},
"warning":{
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response from {1} in {2:.3f}s ({3})"
},
"critical": {
"text": "Connection failed to {1} ({3})"
http://git-wip-us.apache.org/repos/asf/ambari/blob/8a821dbf/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/alerts.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/alerts.json b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/alerts.json
index 002fd07..6557df9 100644
--- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/alerts.json
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/alerts.json
@@ -67,10 +67,10 @@
},
"reporting": {
"ok": {
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response in {2:.3f}s"
},
"warning":{
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response from {1} in {2:.3f}s ({3})"
},
"critical": {
"text": "Connection failed to {1} ({3})"
http://git-wip-us.apache.org/repos/asf/ambari/blob/8a821dbf/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/alerts.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/alerts.json b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/alerts.json
index fe1ae8a..a446808 100644
--- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/alerts.json
+++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/alerts.json
@@ -20,10 +20,10 @@
},
"reporting": {
"ok": {
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response in {2:.3f}s"
},
"warning":{
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response from {1} in {2:.3f}s ({3})"
},
"critical": {
"text": "Connection failed to {1} ({3})"
@@ -183,10 +183,10 @@
},
"reporting": {
"ok": {
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response in {2:.3f}s"
},
"warning":{
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response from {1} in {2:.3f}s ({3})"
},
"critical": {
"text": "Connection failed to {1} ({3})"
@@ -231,10 +231,10 @@
},
"reporting": {
"ok": {
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response in {2:.3f}s"
},
"warning":{
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response from {1} in {2:.3f}s ({3})"
},
"critical": {
"text": "Connection failed to {1} ({3})"
@@ -360,10 +360,10 @@
},
"reporting": {
"ok": {
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response in {2:.3f}s"
},
"warning":{
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response from {1} in {2:.3f}s ({3})"
},
"critical": {
"text": "Connection failed to {1} ({3})"
http://git-wip-us.apache.org/repos/asf/ambari/blob/8a821dbf/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/alerts.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/alerts.json b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/alerts.json
index ac5ab37..8e08ef2 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/alerts.json
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/alerts.json
@@ -103,10 +103,10 @@
},
"reporting": {
"ok": {
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response in {2:.3f}s"
},
"warning":{
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response from {1} in {2:.3f}s ({3})"
},
"critical": {
"text": "Connection failed to {1} ({3})"
@@ -506,10 +506,10 @@
},
"reporting": {
"ok": {
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response in {2:.3f}s"
},
"warning":{
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response from {1} in {2:.3f}s ({3})"
},
"critical": {
"text": "Connection failed to {1} ({3})"
http://git-wip-us.apache.org/repos/asf/ambari/blob/8a821dbf/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/OOZIE/alerts.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/OOZIE/alerts.json b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/OOZIE/alerts.json
index 17c2b23..f13bb63 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/OOZIE/alerts.json
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/OOZIE/alerts.json
@@ -15,10 +15,10 @@
},
"reporting": {
"ok": {
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response in {2:.3f}s"
},
"warning":{
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response from {1} in {2:.3f}s ({3})"
},
"critical": {
"text": "Connection failed to {1}"
http://git-wip-us.apache.org/repos/asf/ambari/blob/8a821dbf/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/YARN/alerts.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/YARN/alerts.json b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/YARN/alerts.json
index aeabc93..94f0926 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/YARN/alerts.json
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/YARN/alerts.json
@@ -20,10 +20,10 @@
},
"reporting": {
"ok": {
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response in {2:.3f}s"
},
"warning":{
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response from {1} in {2:.3f}s ({3})"
},
"critical": {
"text": "Connection failed to {1} ({3})"
@@ -183,10 +183,10 @@
},
"reporting": {
"ok": {
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response in {2:.3f}s"
},
"warning":{
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response from {1} in {2:.3f}s ({3})"
},
"critical": {
"text": "Connection failed to {1} ({3})"
@@ -231,10 +231,10 @@
},
"reporting": {
"ok": {
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response in {2:.3f}s"
},
"warning":{
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response from {1} in {2:.3f}s ({3})"
},
"critical": {
"text": "Connection failed to {1} ({3})"
@@ -348,10 +348,10 @@
},
"reporting": {
"ok": {
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response in {2:.3f}s"
},
"warning":{
- "text": "HTTP {0} response in {2:.3f} seconds"
+ "text": "HTTP {0} response from {1} in {2:.3f}s ({3})"
},
"critical": {
"text": "Connection failed to {1} ({3})"