Guest User

Untitled

a guest
Jan 17th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. @Override
  2. public void handleRequest(InputStream input, OutputStream output, Context context) throws IOException {
  3. int inProgressStateMachines = 0;
  4.  
  5. LocalDateTime now = LocalDateTime.now();
  6.  
  7. long alarmThreshold = getAlarmThreshold(input, context.getLogger());
  8.  
  9. AWSStepFunctions awsStepFunctions = AWSStepFunctionsClientBuilder.standard().build();
  10.  
  11. ListStateMachinesRequest listStateMachinesRequest = new ListStateMachinesRequest();
  12. ListStateMachinesResult listStateMachinesResult = awsStepFunctions.listStateMachines(listStateMachinesRequest);
  13.  
  14. for (StateMachineListItem stateMachineListItem : listStateMachinesResult.getStateMachines()) {
  15.  
  16. ListExecutionsRequest listExecutionRequest = new ListExecutionsRequest()
  17. .withStateMachineArn(stateMachineListItem.getStateMachineArn())
  18. .withStatusFilter(ExecutionStatus.RUNNING);
  19.  
  20. ListExecutionsResult listExecutionsResult = awsStepFunctions.listExecutions(listExecutionRequest);
  21.  
  22. for (ExecutionListItem executionListItem : listExecutionsResult.getExecutions()) {
  23.  
  24. LocalDateTime stateMachineStartTime = LocalDateTime.ofInstant(
  25. executionListItem.getStartDate().toInstant(), ZoneId.systemDefault());
  26.  
  27. long elapsedTime = ChronoUnit.SECONDS.between(stateMachineStartTime, now);
  28.  
  29. if (elapsedTime > alarmThreshold){
  30. inProgressStateMachines++;
  31. }
  32. }
  33.  
  34. publishMetrics(inProgressStateMachines);
  35. }
  36. }
Add Comment
Please, Sign In to add comment