Skip to content

Commit

Permalink
added another api call that gives total control to the client on wher…
Browse files Browse the repository at this point in the history
…e to query in influx and by jobId or time
  • Loading branch information
jgoldverg committed Aug 17, 2023
1 parent f9050f2 commit de44a5b
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

import java.security.Principal;
Expand Down Expand Up @@ -114,4 +113,10 @@ public Mono<MonitorData> monitorAJob(Mono<Principal> principalMono, Long jobId)
.flatMap(user -> metaDataService.monitor(user, jobId));
}

@GetMapping("/measurements/job/node")
public Mono<List<InfluxData>> queryMeasurementsByNode(Mono<Principal> principalMono, @RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime start, @RequestParam String appId, @RequestParam Long jobId){
return principalMono.map(Principal::getName)
.flatMap(user -> metaDataService.getJobMeasurementsUniversal(user, jobId, start, appId));
}

}
19 changes: 17 additions & 2 deletions src/main/java/org/onedatashare/server/service/MetaDataService.java
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,22 @@ private Mono<List<InfluxData>> influxDataCall(URI uri) {
.get()
.uri(uri)
.retrieve()
.bodyToMono(new ParameterizedTypeReference<List<InfluxData>>() {
});
.bodyToMono(new ParameterizedTypeReference<List<InfluxData>>() {});
}

public Mono<? extends List<InfluxData>> getJobMeasurementsUniversal(String user, Long jobId, LocalDateTime start, String appId) {
URI uri = UriComponentsBuilder.fromUriString(this.metaHostName)
.path(BASE_PATH + "/stats/influx/transfer/node")
.queryParam(USER_EMAIL, user)
.queryParam("jobId", jobId)
.queryParam("appId", appId)
.queryParam("start", start)
.build()
.toUri();
return this.webClientBuilder.build()
.get()
.uri(uri)
.retrieve()
.bodyToMono(new ParameterizedTypeReference<List<InfluxData>>() {});
}
}

0 comments on commit de44a5b

Please sign in to comment.