in src/main/java/com/google/cloud/dfmetrics/pipelinemanager/MonitoringClient.java [157:173]
public Optional<Double> getJobElapsedTime(
String project, String jobId, TimeInterval timeInterval) {
LOG.info("Getting elapsed time for {} under {}", jobId, project);
String filter =
String.format(
"metric.type = \"dataflow.googleapis.com/job/elapsed_time\" "
+ "AND metric.labels.job_id=\"%s\" ",
jobId);
ListTimeSeriesRequest request =
getTimeSeriesRequest(project, filter, timeInterval, getAggregation());
List<Double> timeSeries = listTimeSeriesAsDouble(request);
if (timeSeries.isEmpty()) {
LOG.warn("No monitoring data found. Unable to get Data freshness information.");
return Optional.empty();
}
return Optional.of(Collections.max(timeSeries));
}