Skip to content

Commit

Permalink
better data reported
Browse files Browse the repository at this point in the history
  • Loading branch information
ssalinas committed Aug 25, 2016
1 parent fca02bb commit d417ed2
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 4 deletions.
@@ -1,5 +1,5 @@
package com.hubspot.singularity; package com.hubspot.singularity;


public enum SingularityDisasterType { public enum SingularityDisasterType {
EXCESSIVE_TASK_LAG, LOST_SLAVES, LOST_TASKS; EXCESSIVE_TASK_LAG, LOST_SLAVES, LOST_TASKS, USER_INITIATED;
} }
Expand Up @@ -17,6 +17,7 @@
import com.hubspot.singularity.SingularityDisabledActionType; import com.hubspot.singularity.SingularityDisabledActionType;
import com.hubspot.singularity.SingularityDisasterStats; import com.hubspot.singularity.SingularityDisasterStats;
import com.hubspot.singularity.SingularityDisasterType; import com.hubspot.singularity.SingularityDisasterType;
import com.hubspot.singularity.SingularityDisastersData;
import com.hubspot.singularity.SingularityUser; import com.hubspot.singularity.SingularityUser;
import com.hubspot.singularity.config.SingularityConfiguration; import com.hubspot.singularity.config.SingularityConfiguration;
import com.hubspot.singularity.data.transcoders.Transcoder; import com.hubspot.singularity.data.transcoders.Transcoder;
Expand All @@ -26,6 +27,7 @@ public class DisasterManager extends CuratorAsyncManager {
private static final String DISABLED_ACTIONS_PATH = DISASTERS_ROOT + "/disabled-actions"; private static final String DISABLED_ACTIONS_PATH = DISASTERS_ROOT + "/disabled-actions";
private static final String ACTIVE_DISASTERS_PATH = DISASTERS_ROOT + "/active"; private static final String ACTIVE_DISASTERS_PATH = DISASTERS_ROOT + "/active";
private static final String DISASTER_STATS_PATH = DISASTERS_ROOT + "/stats"; private static final String DISASTER_STATS_PATH = DISASTERS_ROOT + "/stats";
private static final String PREVIOUS_DISASTER_STATS_PATH = DISASTERS_ROOT + "/previous-stats";
private static final String DISABLE_AUTOMATED_PATH = DISASTERS_ROOT + "/disabled"; private static final String DISABLE_AUTOMATED_PATH = DISASTERS_ROOT + "/disabled";


private static final String MESSAGE_FORMAT = "Cannot perform action %s: %s"; private static final String MESSAGE_FORMAT = "Cannot perform action %s: %s";
Expand Down Expand Up @@ -107,6 +109,18 @@ public Optional<SingularityDisasterStats> getDisasterStats() {
return getData(DISASTER_STATS_PATH, disasterStatsTranscoder); return getData(DISASTER_STATS_PATH, disasterStatsTranscoder);
} }


public void savePreviousDisasterStats(SingularityDisasterStats stats) {
save(PREVIOUS_DISASTER_STATS_PATH, stats, disasterStatsTranscoder);
}

public Optional<SingularityDisasterStats> getPreviousDisasterStats() {
return getData(PREVIOUS_DISASTER_STATS_PATH, disasterStatsTranscoder);
}

public SingularityDisastersData getDisastersData() {
return new SingularityDisastersData(getDisasterStats(), getPreviousDisasterStats(), getActiveDisasters());
}

public void updateActiveDisasters(List<SingularityDisasterType> previouslyActiveDisasters, List<SingularityDisasterType> newActiveDisasters) { public void updateActiveDisasters(List<SingularityDisasterType> previouslyActiveDisasters, List<SingularityDisasterType> newActiveDisasters) {
for (SingularityDisasterType disaster : previouslyActiveDisasters) { for (SingularityDisasterType disaster : previouslyActiveDisasters) {
if (!newActiveDisasters.contains(disaster)) { if (!newActiveDisasters.contains(disaster)) {
Expand Down
Expand Up @@ -18,6 +18,7 @@
import com.hubspot.singularity.SingularityDisabledActionType; import com.hubspot.singularity.SingularityDisabledActionType;
import com.hubspot.singularity.SingularityDisasterStats; import com.hubspot.singularity.SingularityDisasterStats;
import com.hubspot.singularity.SingularityDisasterType; import com.hubspot.singularity.SingularityDisasterType;
import com.hubspot.singularity.SingularityDisastersData;
import com.hubspot.singularity.SingularityService; import com.hubspot.singularity.SingularityService;
import com.hubspot.singularity.SingularityUser; import com.hubspot.singularity.SingularityUser;
import com.hubspot.singularity.auth.SingularityAuthorizationHelper; import com.hubspot.singularity.auth.SingularityAuthorizationHelper;
Expand All @@ -43,9 +44,9 @@ public DisastersResource(DisasterManager disasterManager, SingularityAuthorizati


@GET @GET
@Path("/stats") @Path("/stats")
public Optional<SingularityDisasterStats> disasterStats() { public SingularityDisastersData disasterStats() {
authorizationHelper.checkAdminAuthorization(user); authorizationHelper.checkAdminAuthorization(user);
return disasterManager.getDisasterStats(); return disasterManager.getDisastersData();
} }


@GET @GET
Expand Down
Expand Up @@ -17,6 +17,7 @@
import com.hubspot.singularity.MachineState; import com.hubspot.singularity.MachineState;
import com.hubspot.singularity.SingularityDisasterStats; import com.hubspot.singularity.SingularityDisasterStats;
import com.hubspot.singularity.SingularityDisasterType; import com.hubspot.singularity.SingularityDisasterType;
import com.hubspot.singularity.SingularityDisastersData;
import com.hubspot.singularity.SingularityEmailDestination; import com.hubspot.singularity.SingularityEmailDestination;
import com.hubspot.singularity.SingularityEmailType; import com.hubspot.singularity.SingularityEmailType;
import com.hubspot.singularity.SingularityPendingTask; import com.hubspot.singularity.SingularityPendingTask;
Expand Down Expand Up @@ -83,6 +84,9 @@ public void runActionOnPoll() {


disasterManager.updateActiveDisasters(previouslyActiveDisasters, newActiveDisasters); disasterManager.updateActiveDisasters(previouslyActiveDisasters, newActiveDisasters);
disasterManager.saveDisasterStats(newStats); disasterManager.saveDisasterStats(newStats);
if (lastStats.isPresent()) {
disasterManager.savePreviousDisasterStats(lastStats.get());
}


if (!newActiveDisasters.isEmpty()) { if (!newActiveDisasters.isEmpty()) {
if (!disasterManager.isAutomatedDisabledActionsDisabled()) { if (!disasterManager.isAutomatedDisabledActionsDisabled()) {
Expand Down Expand Up @@ -192,7 +196,9 @@ private void queueDisasterEmail(SingularityDisasterStats stats, Optional<Singula
return; return;
} }


final String body = String.format("Disasters detected: %s%nCurrent disaster stats: %s%nPrevious disaster stats: %s", disasters, stats, lastStats); SingularityDisastersData data = new SingularityDisastersData(Optional.of(stats), lastStats, disasters);

final String body = String.format("New disasters detected. Data: %s ", data);
final String subject = String.format("Disaster(s) Detected %s", disasters); final String subject = String.format("Disaster(s) Detected %s", disasters);


smtpSender.queueMail(configuration.getSmtpConfiguration().get().getAdmins(), ImmutableList.<String> of(), subject, body); smtpSender.queueMail(configuration.getSmtpConfiguration().get().getAdmins(), ImmutableList.<String> of(), subject, body);
Expand Down

0 comments on commit d417ed2

Please sign in to comment.