org.opentripplanner.analyst.cluster.TaskStatistics Maven / Gradle / Ivy
package org.opentripplanner.analyst.cluster;
import org.opentripplanner.common.MavenVersion;
import java.io.Serializable;
/**
* Statistics about running a single task.
* TODO add markField functions: "field = System.currentTimeMillis() - field;"
* Every time it's called after the first time will record the elapsed time, assuming fields are initialized to 0.
*/
public class TaskStatistics implements Serializable{
public static final long serialVersionUID = 1;
/** milliseconds of compute time once the RAPTOR worker was started, exclusive of building result sets */
public int compute = -1;
/** number of milliseconds spent in graph build */
public int graphBuild = -1;
/** number of milliseconds spent in stop tree caching */
public int stopTreeCaching = -1;
/** milliseconds of time spent in RAPTOR algorithm (transit search) */
public int transitSearch = -1;
/** milliseconds of time spent in initial stop search */
public int initialStopSearch = -1;
/** milliseconds spent in walk search (this is not a search per se but simply using the SPT from the initial stop search to create walk times to reachable destinations */
public int walkSearch = -1;
/** milliseconds spent in propagating travel times from transit stops to targets */
public int propagation = -1;
/** time to make raptor data (milliseconds) */
public int raptorData;
/** number of discrete times (e.g. minutes) for which a RAPTOR search was performed */
public int searchCount;
/** time step between RAPTOR searches (seconds) */
public int timeStep;
/** milliseconds spent in preparing resultsets */
public int resultSets = -1;
/** was this an isochrone request */
public boolean isochrone = false;
/** total processing time, including fetching and pushing results, in milliseconds */
public int total = -1;
/** number of stops used in search (i.e. number of stops that had service on this day) */
public int stopCount = -1;
/** number of stops found in the initial walk search (stand-in for density/city-ness) */
public int initialStopCount = -1;
/** number of patterns used in the search (i.e. those in the RAPTOR worker data) */
public int patternCount = -1;
/** number of targets of this search */
public int targetCount = -1;
/** number of targets reached */
public int targetsReached = 0;
/** number of scheduled trips in the RAPTOR worker data */
public int scheduledTripCount = -1;
/** number of frequency trips (the actual number of trips - i.e. a frequency entry running every 10 minutes for an hour is 6 trips */
public int frequencyTripCount = -1;
/** number of frequency entries */
public int frequencyEntryCount = -1;
/** number of stops in the graph */
public int graphStopCount;
/** number of trips in the graph */
public int graphTripCount;
/** latitude of origin (note: potentially sensitive, should be stripped from some analyses) */
public double lat;
/** longitude of origins */
public double lon;
/** graph ID */
public String graphId;
/** point set ID */
public String pointsetId;
/** the job ID */
public String jobId;
/** AWS instance type, if applicable */
public String awsInstanceType;
/** unique ID of the worker (to control for any variation introduced by e.g. noisy neighbors in a virtualized environment) */
public String workerId;
/** was this request successful */
public boolean success;
/** was this a single-point request */
public boolean single;
/** OTP commit used for computation */
public String otpCommit;
/** UTC date/time this was computed */
public long computeDate;
public TaskStatistics() {
otpCommit = MavenVersion.VERSION.commit;
computeDate = System.currentTimeMillis();
}
}