in src/main/java/com/google/cloud/dfmetrics/commands/MetricsFetcherCommand.java [72:102]
public void run() {
try {
LOG.info("Creating Dataflow job manager..");
DataflowJobManager jobManager =
DataflowJobManager.builder(this.dataflowClient)
.build()
.withJob(jobConfig.projectId(), jobConfig.location(), jobConfig.jobId());
JobInfo jobInfo = jobManager.getJobInfoBuilder(jobConfig).build();
LOG.info("Fetching job metrics..");
MonitoringClient monitoringClient =
MonitoringClient.builder()
.setCredentials(
MetricsCollectorUtils.getCredentialsFromDataflowClient(this.dataflowClient))
.build();
MetricsManager metricsManager =
MetricsManager.builder(this.dataflowClient, jobManager.job(), monitoringClient).build();
Map<String, Double> metrics =
metricsManager.getMetrics(jobInfo.jobType(), jobConfig.resourcePricing());
LOG.info("Storing the results in the output store..");
this.outputStore.load(jobInfo, metrics);
LOG.info("Completed all operations");
} catch (IOException e) {
throw new RuntimeException(e);
}
}