/** * Handle the {@link AbstractAlertingDefinitionEvent}. * * @param event * the received {@link AbstractAlertingDefinitionEvent} */ private void deletedAlertingDefinition(AbstractAlertingDefinitionEvent event) { for (AlertingState state : alertingStates) { if (Objects.equals(state.getAlertingDefinition().getId(), event.getFirst().getId())) { if (null != state.getAlert()) { state.getAlert().close(System.currentTimeMillis(), AlertClosingReason.ALERTING_DEFINITION_DELETED); } alertingStates.remove(state); break; } } }
@Test @SuppressWarnings("unchecked") public void alertEnded() { IAlertAction alertAction = Mockito.mock(IAlertAction.class); Iterator<IAlertAction> iterator = Mockito.mock(Iterator.class); when(iterator.hasNext()).thenReturn(true, false); when(iterator.next()).thenReturn(alertAction); when(alertActions.iterator()).thenReturn(iterator); Alert alert = Mockito.mock(Alert.class); AlertingState alertingState = Mockito.mock(AlertingState.class); when(alertingState.getAlert()).thenReturn(alert); long leftBorder = System.currentTimeMillis(); alertingService.alertEnding(alertingState); long rightBorder = System.currentTimeMillis(); ArgumentCaptor<Long> timeCaptor = ArgumentCaptor.forClass(Long.class); ArgumentCaptor<AlertClosingReason> closingReasonCaptor = ArgumentCaptor.forClass(AlertClosingReason.class); verify(alert).close(timeCaptor.capture(), closingReasonCaptor.capture()); assertThat(timeCaptor.getValue(), greaterThanOrEqualTo(leftBorder)); assertThat(timeCaptor.getValue(), lessThanOrEqualTo(rightBorder)); assertThat(closingReasonCaptor.getValue(), is(AlertClosingReason.ALERT_RESOLVED)); verifyNoMoreInteractions(alert); verify(alertingState).getAlert(); verify(alertingState).setAlert(null); verifyNoMoreInteractions(alertingState); verify(alertAction).onEnding(alertingState); verifyNoMoreInteractions(alertAction); verify(alertActions).iterator(); verifyNoMoreInteractions(alertActions); verifyZeroInteractions(alertRegistry); }
/** * This method is called when an active alert is ending. * * @param alertingState * the ending alert */ public void alertEnding(AlertingState alertingState) { if (alertingState == null) { throw new IllegalArgumentException("The given alerting state may not be null."); } if (log.isDebugEnabled()) { log.debug("Alert definition '{}' is ending.", alertingState.getAlertingDefinition().getName()); } alertingState.getAlert().close(System.currentTimeMillis(), AlertClosingReason.ALERT_RESOLVED); for (IAlertAction alertAction : alertActions) { alertAction.onEnding(alertingState); } alertingState.setAlert(null); } }
/** * Handle the {@link AbstractAlertingDefinitionEvent}. * * @param event * the received {@link AbstractAlertingDefinitionEvent} */ private void updatedAlertingDefinition(AbstractAlertingDefinitionEvent event) { Iterator<AlertingState> iterator = alertingStates.iterator(); while (iterator.hasNext()) { AlertingState state = iterator.next(); if (Objects.equals(state.getAlertingDefinition().getId(), event.getFirst().getId())) { state.setAlertingDefinition(event.getFirst()); if (null != state.getAlert()) { state.getAlert().setAlertingDefinition(event.getFirst()); } break; } } } }
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT); Alert alert = alertingState.getAlert(); AlertingDefinition definition = alertingState.getAlertingDefinition();
ImmutableMap<String, String> tags = ImmutableMap.of("k1", "appName", "k2", "btName"); when(alertingState.getAlertingDefinition()).thenReturn(alertingDefinition); when(alertingState.getAlert()).thenReturn(alert); when(alertingState.getExtremeValue()).thenReturn(100D); when(alertingDefinition.getName()).thenReturn("name"); verifyNoMoreInteractions(templateManager); verify(alertingState).getAlertingDefinition(); verify(alertingState).getAlert(); verify(alertingState, times(2)).getExtremeValue(); verifyNoMoreInteractions(alertingState);
ImmutableMap<String, String> tags = ImmutableMap.of(Series.BusinessTransaction.TAG_APPLICATION_NAME, "appName", Series.BusinessTransaction.TAG_BUSINESS_TRANSACTION_NAME, "btName"); when(alertingState.getAlertingDefinition()).thenReturn(alertingDefinition); when(alertingState.getAlert()).thenReturn(alert); when(alertingState.getExtremeValue()).thenReturn(100D); when(alertingDefinition.getName()).thenReturn("name"); verifyNoMoreInteractions(templateManager); verify(alertingState).getAlertingDefinition(); verify(alertingState).getAlert(); verify(alertingState, times(2)).getExtremeValue(); verifyNoMoreInteractions(alertingState);
ImmutableMap<String, String> tags = ImmutableMap.of("k1", "appName", "k2", "btName"); when(alertingState.getAlertingDefinition()).thenReturn(alertingDefinition); when(alertingState.getAlert()).thenReturn(alert); when(alertingState.getExtremeValue()).thenReturn(100D); when(alertingDefinition.getName()).thenReturn("name"); verifyNoMoreInteractions(templateManager); verify(alertingState).getAlertingDefinition(); verify(alertingState).getAlert(); verify(alertingState, times(2)).getExtremeValue(); verifyNoMoreInteractions(alertingState);
ImmutableMap<String, String> tags = ImmutableMap.of("k1", "appName", "k2", "btName"); when(alertingState.getAlertingDefinition()).thenReturn(alertingDefinition); when(alertingState.getAlert()).thenReturn(alert); when(alertingState.getExtremeValue()).thenReturn(100D); when(alertingDefinition.getName()).thenReturn("name"); verifyNoMoreInteractions(templateManager); verify(alertingState).getAlertingDefinition(); verify(alertingState).getAlert(); verify(alertingState, times(2)).getExtremeValue(); verifyNoMoreInteractions(alertingState);
ImmutableMap<String, String> tags = ImmutableMap.of("k1", "appName", "k2", "btName"); when(alertingState.getAlertingDefinition()).thenReturn(alertingDefinition); when(alertingState.getAlert()).thenReturn(alert); when(alertingState.getExtremeValue()).thenReturn(100D); when(alertingDefinition.getName()).thenReturn("name"); verifyNoMoreInteractions(templateManager); verify(alertingState).getAlertingDefinition(); verify(alertingState).getAlert(); verify(alertingState, times(2)).getExtremeValue(); verifyNoMoreInteractions(alertingState);