private static boolean validTriggerType(final String value) { boolean result = true; if (StringUtils.hasText(value)) { try { AlertTriggerType.valueOf(value); } catch (final IllegalArgumentException ecnpe) { result = false; } } return result; }
public static String formatAlertRuleTriggerColumn(final AlertRule alertRule) { final String value = alertRule.getTrigger().name() + "(" + alertRule.getExpression() + ")"; return StringUtils.hasText(value) ? FormatUtils.label(value) : value; }
private static void setInternalAttributes(final Alert alert, final String entityId, final CatalogAlert catalogAlert) { alert.setType(Type.INTERNAL); alert.setProviderId(entityId); alert.setComponentId(CompoundKeyBuilder.buildCompoundKey(entityId, catalogAlert.getComponent())); alert.setSensorId(catalogAlert.getSensor()); alert.setTrigger(AlertTriggerType.valueOf(catalogAlert.getTrigger())); alert.setExpression(catalogAlert.getExpression()); }
public void doWithMessage(final EventMessage eventMessage) { final String value = eventMessage.getMessage(); // For each registered alert, the message value must be checked to validate that verifies all // alerts's restriction rules (for not frozen alerts) final List<InternalAlert> alertsToCheck = getAlerts(); final List<InternalAlert> frozenAlerts = new ArrayList<InternalAlert>(); if (!CollectionUtils.isEmpty(alertsToCheck)) { for (final InternalAlert alert : alertsToCheck) { if (AlertTriggerType.FROZEN.name().equals(alert.getTrigger().name())) { frozenAlerts.add(alert); } else { valueVerifiesRestriction(alert, value); } } } // Set value as previousValue in triggerEvaluator for the next iterator triggerEvaluator.setPreviousValue(value); // Finally, updates the timeout for each frozen alert associated with this listener if (!CollectionUtils.isEmpty(frozenAlerts)) { frozenRepository.updateFrozenTimeouts(frozenAlerts); } }
private static Alert buildAlertToUpdate(final CatalogAlert catalogAlert, final ApiAlertConverterContext context, final String catalogUser) { final Alert alert = context.getAlertService().find(new Alert(catalogAlert.getId())); final String entityId = StringUtils.hasText(catalogAlert.getEntity()) ? catalogAlert.getEntity() : context.getMessage().getEntityId(); // To confirm that an alert exists not only alert must be not null but also type and owner must // be equals if (alert != null && verifyType(alert.getType(), catalogAlert.getType()) && verifyOwner(alert, entityId)) { if (SentiloUtils.stringIsNotEmptyOrNull(catalogAlert.getName())) { alert.setName(catalogAlert.getName()); } if (SentiloUtils.stringIsNotEmptyOrNull(catalogAlert.getDescription())) { alert.setDescription(catalogAlert.getDescription()); } if (Type.INTERNAL.equals(alert.getType())) { if (SentiloUtils.stringIsNotEmptyOrNull(catalogAlert.getTrigger())) { alert.setTrigger(AlertTriggerType.valueOf(catalogAlert.getTrigger())); } if (SentiloUtils.stringIsNotEmptyOrNull(catalogAlert.getExpression())) { alert.setExpression(catalogAlert.getExpression()); } } alert.setUpdatedAt(new Date()); alert.setUpdatedBy(catalogUser); } else { final String errorMessage = String.format(ALERT_NOT_FOUND, catalogAlert.getId(), catalogAlert.getType()); context.getResults().addErrorMessage(errorMessage); } return alert; }
protected String buildAlertId(final Sensor sensor, final AlertRule alertRule, final long createdTime) { // Alerts generated automatically must have the following id: // PROVIDER_ID+'_'+SENSOR_ID+"_"+TRIGGER_TYPE+"_"+TIMESTAMP return alertRule.getProviderId() + "_" + sensor.getSensorId() + "_" + alertRule.getTrigger().name() + "_" + createdTime; }
public static String formatAlertTriggerColumn(final Alert alert) { String value = ""; if (Type.INTERNAL.equals(alert.getType())) { value = alert.getTrigger().name() + "(" + alert.getExpression() + ")"; } return StringUtils.hasText(value) ? FormatUtils.label(value) : value; }
public void publishAlarm(final InternalAlert alert, final String message) { LOGGER.debug("Publishing new alarm, related to (alert, sensor, provider) ({}, {} , {}), with message: {} ", alert.getId(), alert.getSensorId(), alert.getProviderId(), message); // Publish directly via API REST final AlarmInputMessage alarmMessage = new AlarmInputMessage(alert.getId(), message); alarmMessage.setProviderId(alert.getProviderId()); alarmMessage.setSensorId(alert.getSensorId()); alarmMessage.setAlertType(alert.getTrigger().name()); platformClient.getAlarmOps().publish(alarmMessage); } }
public static List<CatalogAlert> convertToCatalogAlertList(final List<Alert> alerts) { final List<CatalogAlert> catalogAlerts = new ArrayList<CatalogAlert>(); for (final Alert alert : alerts) { final String entityId = StringUtils.hasText(alert.getProviderId()) ? alert.getProviderId() : alert.getApplicationId(); final CatalogAlert catalogAlert = new CatalogAlert(); catalogAlert.setId(alert.getId()); catalogAlert.setName(alert.getName()); catalogAlert.setDescription(alert.getDescription()); catalogAlert.setEntity(entityId); catalogAlert.setType(alert.getType().name()); if (Type.INTERNAL.equals(alert.getType())) { catalogAlert.setTrigger(alert.getTrigger().name()); catalogAlert.setExpression(alert.getExpression()); catalogAlert.setComponent(CompoundKeyBuilder.splitCompoundKey(alert.getComponentId())[1]); catalogAlert.setSensor(alert.getSensorId()); } catalogAlerts.add(catalogAlert); } return catalogAlerts; }