All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hubspot.singularity.SingularityDeployStatistics Maven / Gradle / Ivy

The newest version!
package com.hubspot.singularity;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Optional;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ImmutableListMultimap;
import com.google.common.collect.ListMultimap;

public class SingularityDeployStatistics {

  private final String requestId;
  private final String deployId;

  private final int numTasks;

  private final int numSuccess;
  private final int numFailures;

  private final int numSequentialRetries;

  private final ListMultimap instanceSequentialFailureTimestamps;

  private final Optional lastFinishAt;
  private final Optional lastTaskState;

  private final Optional averageRuntimeMillis;

  @JsonCreator
  public SingularityDeployStatistics(@JsonProperty("requestId") String requestId, @JsonProperty("deployId") String deployId, @JsonProperty("numSuccess") int numSuccess, @JsonProperty("numFailures") int numFailures,
      @JsonProperty("numSequentialRetries") int numSequentialRetries, @JsonProperty("lastFinishAt") Optional lastFinishAt, @JsonProperty("lastTaskState") Optional lastTaskState,
      @JsonProperty("instanceSequentialFailureTimestamps") ListMultimap instanceSequentialFailureTimestamps, @JsonProperty("numTasks") int numTasks, @JsonProperty("averageRuntimeMillis")  Optional averageRuntimeMillis) {
    this.requestId = requestId;
    this.deployId = deployId;
    this.numSuccess = numSuccess;
    this.numFailures = numFailures;
    this.lastFinishAt = lastFinishAt;
    this.lastTaskState = lastTaskState;
    this.numSequentialRetries = numSequentialRetries;
    this.numTasks = numTasks;
    this.averageRuntimeMillis = averageRuntimeMillis;
    this.instanceSequentialFailureTimestamps = instanceSequentialFailureTimestamps == null ?  ImmutableListMultimap. of() : ImmutableListMultimap.copyOf(instanceSequentialFailureTimestamps);
  }

  public SingularityDeployStatisticsBuilder toBuilder() {
    return new SingularityDeployStatisticsBuilder(requestId, deployId)
    .setLastFinishAt(lastFinishAt)
    .setLastTaskState(lastTaskState)
    .setNumSequentialRetries(numSequentialRetries)
    .setNumFailures(numFailures)
    .setNumSuccess(numSuccess)
    .setNumTasks(numTasks)
    .setAverageRuntimeMillis(averageRuntimeMillis)
    .setInstanceSequentialFailureTimestamps(ArrayListMultimap.create(instanceSequentialFailureTimestamps));
  }

  public int getNumTasks() {
    return numTasks;
  }

  public Optional getAverageRuntimeMillis() {
    return averageRuntimeMillis;
  }

  public String getRequestId() {
    return requestId;
  }

  public String getDeployId() {
    return deployId;
  }

  public int getNumSuccess() {
    return numSuccess;
  }

  public int getNumFailures() {
    return numFailures;
  }

  public Optional getLastFinishAt() {
    return lastFinishAt;
  }

  public Optional getLastTaskState() {
    return lastTaskState;
  }

  public int getNumSequentialRetries() {
    return numSequentialRetries;
  }

  public ListMultimap getInstanceSequentialFailureTimestamps() {
    return instanceSequentialFailureTimestamps;
  }

  @Override
  public String toString() {
    return "SingularityDeployStatistics [requestId=" + requestId + ", deployId=" + deployId + ", numTasks=" + numTasks + ", numSuccess=" + numSuccess + ", numFailures=" + numFailures
        + ", numSequentialRetries=" + numSequentialRetries + ", instanceSequentialFailureTimestamps=" + instanceSequentialFailureTimestamps + ", lastFinishAt=" + lastFinishAt + ", lastTaskState="
        + lastTaskState + ", averageRuntimeMillis=" + averageRuntimeMillis + "]";
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy