public void run()

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