You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@eagle.apache.org by ji...@apache.org on 2016/11/24 04:35:12 UTC
incubator-eagle git commit: [MINOR] optimize health check: add some
information
Repository: incubator-eagle
Updated Branches:
refs/heads/master adeaa0f9e -> 3becca689
[MINOR] optimize health check: add some information
Author: wujinhu <wu...@126.com>
Closes #679 from wujinhu/healthFix.
Project: http://git-wip-us.apache.org/repos/asf/incubator-eagle/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-eagle/commit/3becca68
Tree: http://git-wip-us.apache.org/repos/asf/incubator-eagle/tree/3becca68
Diff: http://git-wip-us.apache.org/repos/asf/incubator-eagle/diff/3becca68
Branch: refs/heads/master
Commit: 3becca68929cd005416605da0b9be4cbdb0c0cba
Parents: adeaa0f
Author: wujinhu <wu...@126.com>
Authored: Thu Nov 24 12:35:05 2016 +0800
Committer: wujinhu <wu...@126.com>
Committed: Thu Nov 24 12:35:05 2016 +0800
----------------------------------------------------------------------
.../ApplicationHealthCheckEmailPublisher.java | 29 ++++++++++++++++++--
.../impl/ApplicationHealthCheckServiceImpl.java | 4 +--
.../src/main/resources/application.conf | 1 -
3 files changed, 29 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/3becca68/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationHealthCheckEmailPublisher.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationHealthCheckEmailPublisher.java b/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationHealthCheckEmailPublisher.java
index c7d7e0f..8374b38 100644
--- a/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationHealthCheckEmailPublisher.java
+++ b/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationHealthCheckEmailPublisher.java
@@ -26,6 +26,7 @@ import org.apache.velocity.VelocityContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.net.InetAddress;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
@@ -72,8 +73,15 @@ public class ApplicationHealthCheckEmailPublisher implements ApplicationHealthCh
final VelocityContext context = new VelocityContext();
Map<String, String> appMsgs = new HashMap<>();
+ int unhealthyCount = 0;
+ int healthyCount = 0;
for (String appId : results.keySet()) {
appMsgs.put(appId, results.get(appId).getMessage());
+ if (!results.get(appId).isHealthy()) {
+ unhealthyCount++;
+ } else {
+ healthyCount++;
+ }
}
Map<String, Object> unHealthyContext = new HashMap<>();
unHealthyContext.put("appMsgs", appMsgs);
@@ -81,11 +89,28 @@ public class ApplicationHealthCheckEmailPublisher implements ApplicationHealthCh
unHealthyContext.put("healthCheckUrl", "http://" + config.getString(SERVICE_HOST) + ":" + HEALTH_CHECK_PORT + "/healthcheck");
context.put(UNHEALTHY_CONTEXT, unHealthyContext);
+ String subject = "";
+ if (healthyCount > 0) {
+ subject += healthyCount + " healthy app(s)";
+ }
+ if (unhealthyCount > 0) {
+ if (!subject.isEmpty()) {
+ subject += ", ";
+ }
+ subject += unhealthyCount + " unhealthy app(s)";
+ }
+ subject = config.getString(CONF_MAIL_SUBJECT) + ": " + subject;
EagleMailClient client = new EagleMailClient(properties);
- success = client.send(config.getString(CONF_MAIL_SENDER),
+ String hostname = InetAddress.getLocalHost().getHostName();
+ if (!hostname.endsWith(".com")) {
+ //avoid invalid host exception
+ hostname += ".com";
+ }
+ success = client.send(
+ System.getProperty("user.name") + "@" + hostname,
recipients,
config.hasPath(CONF_MAIL_CC) ? config.getString(CONF_MAIL_CC) : null,
- config.getString(CONF_MAIL_SUBJECT),
+ subject,
config.getString(CONF_MAIL_TEMPLATE),
context,
null);
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/3becca68/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationHealthCheckServiceImpl.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationHealthCheckServiceImpl.java b/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationHealthCheckServiceImpl.java
index b292fa1..fb2a1b4 100644
--- a/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationHealthCheckServiceImpl.java
+++ b/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationHealthCheckServiceImpl.java
@@ -152,11 +152,11 @@ public class ApplicationHealthCheckServiceImpl extends ApplicationHealthCheckSer
int dailySendHour = config.getInt(HEALTH_CHECK_DAILY_SEND_HOUR_PATH);
GregorianCalendar cal = new GregorianCalendar(timeZone);
- if (cal.get(Calendar.HOUR_OF_DAY) % dailySendHour == 0 && !hasSendDaily) {
+ if (cal.get(Calendar.HOUR_OF_DAY) == dailySendHour && !hasSendDaily) {
isDaily = true;
}
- if (cal.get(Calendar.HOUR_OF_DAY) % dailySendHour != 0) {
+ if (cal.get(Calendar.HOUR_OF_DAY) != dailySendHour) {
hasSendDaily = false;
}
Map<String, HealthCheck> copyAppHealthChecks = new HashMap<>();
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/3becca68/eagle-server/src/main/resources/application.conf
----------------------------------------------------------------------
diff --git a/eagle-server/src/main/resources/application.conf b/eagle-server/src/main/resources/application.conf
index da0c7c9..91757d7 100644
--- a/eagle-server/src/main/resources/application.conf
+++ b/eagle-server/src/main/resources/application.conf
@@ -105,7 +105,6 @@ application {
mail.smtp.host = "mail.host.com"
mail.smtp.port = 25
mail.smtp.recipients = "someone@email.com"
- mail.smtp.sender = "someone@email.com"
mail.smtp.subject = "Eagle Application Health Check"
mail.smtp.template = "HealthCheckTemplate.vm"
}