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: 11/14/7/13/12/15 secs
- // 1 Parallel For: 9/10/10/10 secs
- // 2 Parallel For: 5/5/5/5/6 secs
- // 3 Parallel For: 5/6/5/5/5 secs
- for (ecsClusterArn <- ecs.listClustersPaginator().clusterArns().asScala.par) {
- for (ecsServiceArns <- ecs.listServicesPaginator(ListServicesRequest.builder()
- .cluster(ecsClusterArn)
- .build())
- .serviceArns().asScala.grouped(10).toParArray) {
- for (ecsService <- ecs.describeServices(DescribeServicesRequest.builder()
- .cluster(ecsClusterArn)
- .services(ecsServiceArns.asJavaCollection)
- .build())
- .services().asScala) {
- 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