Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. import java.util.concurrent.TimeUnit
  2.  
  3. import software.amazon.awssdk.services.ecs.EcsClient
  4. import software.amazon.awssdk.services.ecs.model.{DescribeServicesRequest, ListServicesRequest}
  5.  
  6. import scala.collection.JavaConverters._
  7.  
  8. object EcsAutoScalingReport extends App {
  9. val startTime = System.nanoTime()
  10.  
  11. var ecs = EcsClient.create()
  12. // 92 services collected in
  13. // Sequential: 11/14/7/13/12/15 secs
  14. // 1 Parallel For: 9/10/10/10 secs
  15. // 2 Parallel For: 5/5/5/5/6 secs
  16. // 3 Parallel For: 5/6/5/5/5 secs
  17. for (ecsClusterArn <- ecs.listClustersPaginator().clusterArns().asScala.par) {
  18. for (ecsServiceArns <- ecs.listServicesPaginator(ListServicesRequest.builder()
  19. .cluster(ecsClusterArn)
  20. .build())
  21. .serviceArns().asScala.grouped(10).toParArray) {
  22. for (ecsService <- ecs.describeServices(DescribeServicesRequest.builder()
  23. .cluster(ecsClusterArn)
  24. .services(ecsServiceArns.asJavaCollection)
  25. .build())
  26. .services().asScala) {
  27. println(ecsService.serviceName())
  28. }
  29. }
  30. }
  31. val timeTakenSec = TimeUnit.NANOSECONDS.toSeconds(System.nanoTime() - startTime)
  32. println(s"DONE in $timeTakenSec secs")
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement