/** * Returns string representation of an alert. * * @param alert * {@link Alert} instance to create string for. * @return Returns string representation of an alert. */ public static String getAlertDescription(Alert alert) { String closing = alert.isOpen() ? "Open" : DateFormat.getDateTimeInstance().format(new Date(alert.getStopTimestamp())); return alert.getAlertingDefinition().getName() + " (" + DateFormat.getDateTimeInstance().format(new Date(alert.getStartTimestamp())) + " - " + closing + ")"; }
/** * Creates a influxDB query for the given alert id. The query retrieves the ids of the * invocation sequences that constitute the alert. * * @param alert * the alert to retrieve the invocation IDs for. * @return Returns the query string. */ public static String buildTraceIdForAlertQuery(Alert alert) { StringBuilder builder = new StringBuilder(); builder.append("SELECT \"").append(Series.BusinessTransaction.FIELD_TRACE_ID).append("\" FROM \"").append(Series.BusinessTransaction.NAME); builder.append("\" WHERE time >= ").append(alert.getStartTimestamp()).append("ms"); if (alert.getStopTimestamp() >= 0) { builder.append(" AND time < ").append(alert.getStopTimestamp()).append("ms"); } for (Entry<String, String> entry : alert.getAlertingDefinition().getTags().entrySet()) { builder.append(" AND \"").append(entry.getKey()).append("\" = '").append(entry.getValue()).append('\''); } builder.append(" AND \"").append(Series.BusinessTransaction.FIELD_DURATION).append("\" >= ").append(alert.getAlertingDefinition().getThreshold()); return builder.toString(); } }
@Test public void testConstruction2() { Alert alert = new Alert(alertingDefinition, 1L, 2L); assertThat(alert.getId(), notNullValue()); assertThat(alert.getAlertingDefinition(), is(alertingDefinition)); assertThat(alert.getStartTimestamp(), is(1L)); assertThat(alert.getStopTimestamp(), is(2L)); } }
@Test public void testConstruction1() { Alert alert = new Alert(alertingDefinition, 1L); assertThat(alert.getId(), notNullValue()); assertThat(alert.getAlertingDefinition(), is(alertingDefinition)); assertThat(alert.getStartTimestamp(), is(1L)); }
properties.put(Placeholders.THRESHOLD, numberFormat.format(definition.getThreshold())); properties.put(Placeholders.THRESHOLD_TYPE, definition.getThresholdType().getName()); properties.put(Placeholders.START_TIME, String.valueOf(dateFormat.format(new Date(alert.getStartTimestamp())))); properties.put(Placeholders.VIOLATION_VALUE, numberFormat.format(alertingState.getExtremeValue())); properties.put(Placeholders.CURRENT_TIME, String.valueOf(new Date(System.currentTimeMillis())));
@Test @SuppressWarnings("unchecked") public void startAlert() { 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); AlertingState alertingState = Mockito.mock(AlertingState.class); AlertingDefinition alertingDefinition = Mockito.mock(AlertingDefinition.class); when(alertingState.getAlertingDefinition()).thenReturn(alertingDefinition); when(alertingState.getLastCheckTime()).thenReturn(1234L); alertingService.alertStarting(alertingState, 1.0D); ArgumentCaptor<Alert> captor = ArgumentCaptor.forClass(Alert.class); verify(alertRegistry).registerAlert(captor.capture()); verifyNoMoreInteractions(alertRegistry); assertThat(captor.getValue().getAlertingDefinition(), is(alertingDefinition)); assertThat(captor.getValue().getStartTimestamp(), is(1234L)); verify(alertAction).onStarting(alertingState); verify(alertActions).iterator(); verifyNoMoreInteractions(alertActions); verify(alertingState).getAlertingDefinition(); verify(alertingState).getLastCheckTime(); verify(alertingState).setAlert(any(Alert.class)); verify(alertingState).setExtremeValue(1.0D); verifyNoMoreInteractions(alertingState); }
when(alertingDefinition.getNotificationEmailAddresses()).thenReturn(Arrays.asList("test@example.com")); when(alert.getId()).thenReturn("id"); when(alert.getStartTimestamp()).thenReturn(10L); when(templateManager.resolveTemplate(eq(AlertEMailTemplateType.HTML_ALERT_OPEN), any(Map.class))).thenReturn("tplt"); verify(alertingDefinition).getTags(); verifyNoMoreInteractions(alertingDefinition); verify(alert).getStartTimestamp(); verify(alert).getStopTimestamp(); verify(alert).getId();
when(alertingDefinition.getNotificationEmailAddresses()).thenReturn(Arrays.asList("test@example.com")); when(alert.getId()).thenReturn("id"); when(alert.getStartTimestamp()).thenReturn(10L); when(alert.getStopTimestamp()).thenReturn(20L); when(alert.getClosingReason()).thenReturn(AlertClosingReason.ALERT_RESOLVED); verify(alertingDefinition).getTags(); verifyNoMoreInteractions(alertingDefinition); verify(alert).getStartTimestamp(); verify(alert, times(2)).getStopTimestamp(); verify(alert).getId();
when(alertingDefinition.getNotificationEmailAddresses()).thenReturn(Arrays.asList("test@example.com")); when(alert.getId()).thenReturn("id"); when(alert.getStartTimestamp()).thenReturn(10L); when(templateManager.resolveTemplate(eq(AlertEMailTemplateType.HTML_ALERT_OPEN), any(Map.class))).thenReturn("tplt"); verify(alertingDefinition, times(3)).getTags(); verifyNoMoreInteractions(alertingDefinition); verify(alert).getStartTimestamp(); verify(alert).getStopTimestamp(); verify(alert).getId();
when(alertingDefinition.getNotificationEmailAddresses()).thenReturn(Arrays.asList("test@example.com")); when(alert.getId()).thenReturn("id"); when(alert.getStartTimestamp()).thenReturn(10L); when(templateManager.resolveTemplate(eq(AlertEMailTemplateType.HTML_ALERT_OPEN), any(Map.class))).thenReturn("tplt"); verify(alertingDefinition, times(3)).getTags(); verifyNoMoreInteractions(alertingDefinition); verify(alert).getStartTimestamp(); verify(alert).getStopTimestamp(); verify(alert).getId();
when(alertingDefinition.getNotificationEmailAddresses()).thenReturn(Arrays.asList("test@example.com")); when(alert.getId()).thenReturn("id"); when(alert.getStartTimestamp()).thenReturn(10L); when(templateManager.resolveTemplate(eq(AlertEMailTemplateType.TXT_ALERT_OPEN), any(Map.class))).thenReturn("tplt"); verify(alertingDefinition).getTags(); verifyNoMoreInteractions(alertingDefinition); verify(alert).getStartTimestamp(); verify(alert).getStopTimestamp(); verify(alert).getId();