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

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();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy