@Test public void queryForFinalized() { String query = InfluxQueryFactory.buildTraceIdForAlertQuery(new Alert(alertingDefinition, START_TIME, STOP_TIME)); assertThat(query, is("SELECT \"" + Series.BusinessTransaction.FIELD_TRACE_ID + "\" FROM \"" + Series.BusinessTransaction.NAME + "\" WHERE time >= " + START_TIME + "ms AND time < " + STOP_TIME + "ms AND \"duration\" >= " + THRESHOLD)); }
@Test public void queryForNotFinalized() { String query = InfluxQueryFactory.buildTraceIdForAlertQuery(new Alert(alertingDefinition, START_TIME)); assertThat(query, is("SELECT \"" + Series.BusinessTransaction.FIELD_TRACE_ID + "\" FROM \"" + Series.BusinessTransaction.NAME + "\" WHERE time >= " + START_TIME + "ms AND \"duration\" >= " + THRESHOLD)); }
@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)); }
@Test public void queryWithTags() throws BusinessException { String key1 = "keyOne"; String key2 = "keyTwo"; String value1 = "valueOne"; String value2 = "valueTwo"; alertingDefinition.putTag(key1, value1); alertingDefinition.putTag(key2, value2); String query = InfluxQueryFactory.buildTraceIdForAlertQuery(new Alert(alertingDefinition, START_TIME)); assertThat(query, containsString("SELECT \"" + Series.BusinessTransaction.FIELD_TRACE_ID + "\" FROM \"" + Series.BusinessTransaction.NAME + "\"")); assertThat(query, containsString("time >= " + START_TIME)); assertThat(query, not(containsString("time < " + STOP_TIME))); assertThat(query, containsString("\"duration\" >= " + THRESHOLD)); assertThat(query, containsString("\"" + key1 + "\" = '" + value1 + "'")); assertThat(query, containsString("\"" + key2 + "\" = '" + value2 + "'")); }
/** * This method is called when a new alert is started. * * @param alertingState * the started alert * @param violationValue * the value has violated the threshold */ public void alertStarting(AlertingState alertingState, double violationValue) { if (alertingState == null) { throw new IllegalArgumentException("The given alerting state may not be null."); } Alert alert = new Alert(alertingState.getAlertingDefinition(), alertingState.getLastCheckTime()); alertRegistry.registerAlert(alert); alertingState.setAlert(alert); alertingState.setExtremeValue(violationValue); for (IAlertAction alertAction : alertActions) { alertAction.onStarting(alertingState); } }