Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.concurrent.TimeUnit
- import software.amazon.awssdk.services.ecs.EcsClient
- import software.amazon.awssdk.services.ecs.model.{DescribeServicesRequest, ListServicesRequest}
- import scala.collection.JavaConverters._
- object EcsAutoScalingReport extends App {
- val startTime = System.nanoTime()
- var ecs = EcsClient.create()
- // 92 services collected in
- // Sequential for(...): 11/14/7/13/12/15 secs
- // 1 for(...par): 9/10/10/10 secs
- // 2 for(...par): 5/5/5/5/6 secs
- // 3 for(...par): 5/6/5/5/5 secs
- // 2 .par.foreach{}: 6/5/5/5/5 secs
- ecs.listClustersPaginator().clusterArns().asScala.par.foreach { ecsClusterArn =>
- ecs.listServicesPaginator(ListServicesRequest.builder()
- .cluster(ecsClusterArn)
- .build())
- .serviceArns().asScala.grouped(10).toParArray.foreach { ecsServiceArns =>
- ecs.describeServices(DescribeServicesRequest.builder()
- .cluster(ecsClusterArn)
- .services(ecsServiceArns.asJavaCollection)
- .build())
- .services().asScala.foreach { ecsService =>
- println(ecsService.serviceName())
- }
- }
- }
- val timeTakenSec = TimeUnit.NANOSECONDS.toSeconds(System.nanoTime() - startTime)
- println(s"DONE in $timeTakenSec secs")
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement