Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Override
- public void handleRequest(InputStream input, OutputStream output, Context context) throws IOException {
- int inProgressStateMachines = 0;
- LocalDateTime now = LocalDateTime.now();
- long alarmThreshold = getAlarmThreshold(input, context.getLogger());
- AWSStepFunctions awsStepFunctions = AWSStepFunctionsClientBuilder.standard().build();
- ListStateMachinesRequest listStateMachinesRequest = new ListStateMachinesRequest();
- ListStateMachinesResult listStateMachinesResult = awsStepFunctions.listStateMachines(listStateMachinesRequest);
- for (StateMachineListItem stateMachineListItem : listStateMachinesResult.getStateMachines()) {
- ListExecutionsRequest listExecutionRequest = new ListExecutionsRequest()
- .withStateMachineArn(stateMachineListItem.getStateMachineArn())
- .withStatusFilter(ExecutionStatus.RUNNING);
- ListExecutionsResult listExecutionsResult = awsStepFunctions.listExecutions(listExecutionRequest);
- for (ExecutionListItem executionListItem : listExecutionsResult.getExecutions()) {
- LocalDateTime stateMachineStartTime = LocalDateTime.ofInstant(
- executionListItem.getStartDate().toInstant(), ZoneId.systemDefault());
- long elapsedTime = ChronoUnit.SECONDS.between(stateMachineStartTime, now);
- if (elapsedTime > alarmThreshold){
- inProgressStateMachines++;
- }
- }
- publishMetrics(inProgressStateMachines);
- }
- }
Add Comment
Please, Sign In to add comment