Repository: ambari
Updated Branches:
  refs/heads/branch-2.5 c1b326221 -> 1e2c44bb4


AMBARI-18841 : Grafana fails to start (avijayan)


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

Branch: refs/heads/branch-2.5
Commit: 1e2c44bb4f5e5e1f168d2082abd737ac39f76c91
Parents: c1b3262
Author: Aravindan Vijayan <avija...@hortonworks.com>
Authored: Thu Nov 10 09:35:32 2016 -0800
Committer: Aravindan Vijayan <avija...@hortonworks.com>
Committed: Thu Nov 10 09:35:53 2016 -0800

----------------------------------------------------------------------
 .../conf/unix/ambari-metrics-grafana               | 17 +++++++++++++++++
 .../0.1.0/package/scripts/metrics_grafana.py       |  8 ++++++++
 2 files changed, 25 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/1e2c44bb/ambari-metrics/ambari-metrics-grafana/conf/unix/ambari-metrics-grafana
----------------------------------------------------------------------
diff --git 
a/ambari-metrics/ambari-metrics-grafana/conf/unix/ambari-metrics-grafana 
b/ambari-metrics/ambari-metrics-grafana/conf/unix/ambari-metrics-grafana
index f0c2ed4..eeb189b 100644
--- a/ambari-metrics/ambari-metrics-grafana/conf/unix/ambari-metrics-grafana
+++ b/ambari-metrics/ambari-metrics-grafana/conf/unix/ambari-metrics-grafana
@@ -50,6 +50,7 @@ GRAFANA_HOME=${AMS_GRAFANA_HOME_DIR}
 WORK_DIR=$GRAFANA_HOME
 DATA_DIR=${AMS_GRAFANA_DATA_DIR}
 LOG_DIR=${AMS_GRAFANA_LOG_DIR}
+LOG_FILE=$LOG_DIR/grafana.log
 CONF_FILE=$CONF_DIR/ams-grafana.ini
 MAX_OPEN_FILES=10000
 PID_FILE=${AMS_GRAFANA_PID_DIR}/$NAME.pid
@@ -101,6 +102,22 @@ case "$1" in
       exit 0
     fi
 
+    echo "$(date) Checking for previously running Grafana with out of sync 
PID..." >> $LOG_FILE
+    if [ -n "`ps ax | grep -w ambari-metrics-grafana/bin/grafana-server`" ]; 
then
+      PID=`ps aux | grep -w ambari-metrics-grafana/bin/grafana-server | head 
-n 1 | awk '{print $2}'`
+      echo "$(date) Grafana Server already running with PID: ${PID}. Killing 
that instance"  >> $LOG_FILE
+      kill "${PID}" >/dev/null 2>&1
+      sleep "${STOP_TIMEOUT}"
+
+      if kill -0 "${PID}" > /dev/null 2>&1; then
+        echo "$(date) WARNING: Grafana Server did not stop gracefully. Trying 
to kill with kill -9" >> $LOG_FILE
+        kill -9 "${PID}" >/dev/null 2>&1
+      fi
+
+    else
+      echo "$(date) No out of sync Grafana server process found" >> $LOG_FILE
+    fi
+
     # Prepare environment
     # mkdir -p "$LOG_DIR" "$DATA_DIR" && chown 
"$GRAFANA_USER":"$GRAFANA_GROUP" "$LOG_DIR" "$DATA_DIR"
     # touch "$PID_FILE" && chown "$GRAFANA_USER":"$GRAFANA_GROUP" "$PID_FILE"

http://git-wip-us.apache.org/repos/asf/ambari/blob/1e2c44bb/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/metrics_grafana.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/metrics_grafana.py
 
b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/metrics_grafana.py
index 0c9bb08..667c127 100644
--- 
a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/metrics_grafana.py
+++ 
b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/metrics_grafana.py
@@ -23,6 +23,8 @@ from resource_management.libraries.functions import format
 from status import check_service_status
 from ams import ams
 from metrics_grafana_util import create_ams_datasource, create_ams_dashboards
+from resource_management.core.logger import Logger
+from resource_management.core import sudo
 
 class AmsGrafana(Script):
   def install(self, env):
@@ -46,6 +48,12 @@ class AmsGrafana(Script):
             user=params.ams_user,
             not_if = params.grafana_process_exists_cmd,
             )
+    pidfile = format("{ams_grafana_pid_dir}/grafana-server.pid")
+    if not sudo.path_exists(pidfile):
+      Logger.warn("Pid file doesn't exist after starting of the component.")
+    else:
+      Logger.info("Grafana Server has started with pid: 
{0}".format(sudo.read_file(pidfile).strip()))
+
     # Create datasource
     create_ams_datasource()
     # Create pre-built dashboards

Reply via email to