private boolean isInternalAlarm(final EventMessage eventMessage, final EventType eventType) { return eventType.equals(EventType.ALARM) && StringUtils.hasText(eventMessage.getProvider()) && StringUtils.hasText(eventMessage.getSensor()); }
/** * Return metric name either in form of <event type>.<sensor type> or <event * type>.<component>.<sensor name>, depending on property metrics.fromSensorType * * @param event * @return */ public static String createMetricName(final EventMessage event) { String metric; if (metricsFromSensorType) { metric = event.getType().toLowerCase() + '.' + event.getSensorType(); } else { metric = event.getType().toLowerCase() + '.' + event.getProvider() + '.' + event.getSensor(); } return metric; }
private boolean eventCouldBeProcessed(final EventMessage eventMessage) { // Returns true only if and only if provider, sensor, timestamp and location are filled in return StringUtils.hasText(eventMessage.getProvider()) && StringUtils.hasText(eventMessage.getSensor()) && StringUtils.hasText(eventMessage.getLocation()) && StringUtils.hasText(eventMessage.getTimestamp()); }
private static Map<String, String> createTags(final EventMessage event) { final Map<String, String> tags = new LinkedHashMap<String, String>(); putTag(tags, Tags.type.name(), event.getType()); putTag(tags, Tags.sensor.name(), event.getSensor()); putTag(tags, Tags.provider.name(), event.getProvider()); putTag(tags, Tags.component.name(), event.getComponent()); putTag(tags, Tags.alertType.name(), event.getAlertType()); putTag(tags, Tags.sensorType.name(), event.getSensorType()); putTag(tags, Tags.publisher.name(), event.getPublisher()); putTag(tags, Tags.tenant.name(), event.getTenant()); putTag(tags, Tags.publisherTenant.name(), event.getPublisherTenant()); return tags; }
private boolean isInternalAlarm(final EventMessage eventMessage, final EventType eventType) { return eventType.equals(EventType.ALARM) && StringUtils.hasText(eventMessage.getProvider()) && StringUtils.hasText(eventMessage.getSensor()); }
private String buildCacheKey(final EventMessage event) { return event.getProvider() + KEY_TOKEN + event.getSensor() + KEY_TOKEN + event.getTime(); }
public void process(final EventMessage eventMessage) { final EventType type = EventType.valueOf(eventMessage.getType().toUpperCase()); // If filter by tenant is enabled, checks if eventMessage tenant is equal to tenant filter // parameter. Rejects event otherwise and no process it if (filterByTenant && !tenantFilter.equals(eventMessage.getTenant())) { return; } try { populateAdditionalFields(eventMessage, type); publishMessageToOpenTSDB(eventMessage); } catch (final IncompleteCatalogDataException e) { LOGGER.info("Sensor {} not found in catalog", eventMessage.getSensor()); } }
private void updateLocation(final EventMessage eventMessage) { // enqueue location to be update in a background process // This location object must contain the following info: provider, sensor, location and // timestamp LOGGER.trace("update location for event {}", eventMessage); final SensorLocationElement sensorLocation = new SensorLocationElement(); sensorLocation.setProvider(eventMessage.getProvider()); sensorLocation.setSensor(eventMessage.getSensor()); sensorLocation.setLocation(eventMessage.getLocation()); sensorLocation.setFromTsTime(eventMessage.getTime()); asyncResourceUpdater.addResourceToUpdate(sensorLocation); }
private void populateAdditionalFields(final EventMessage eventMessage, final EventType eventType) { eventMessage.setSensorType(catalogService.getSensorType(eventMessage.getProvider(), eventMessage.getSensor())); // Depending on the event message type, some additional fields need to be populated if (eventType.equals(EventType.ALARM) && isInternalAlarm(eventMessage, eventType)) { final CatalogAdditionalFields additionalFields = catalogService.getAlertAdditionalFields(eventMessage.getAlert()); if (additionalFields != null) { eventMessage.setComponent(additionalFields.getComponentId()); } } }
private void populateAdditionalFields(final EventMessage eventMessage, final EventType eventType) { // Depending on the event message type, some additional fields need to be populated before send // it to index if (eventType.equals(EventType.ALARM) && isInternalAlarm(eventMessage, eventType) && !isGhostSensorAlarm(eventMessage, eventType)) { eventMessage.setSensorType(catalogService.getSensorType(eventMessage.getProvider(), eventMessage.getSensor())); final CatalogAdditionalFields additionalFields = catalogService.getAdditionalFields(eventMessage.getAlert()); if (additionalFields != null) { eventMessage.setLocation(additionalFields.getLocation()); eventMessage.setComponent(additionalFields.getComponentId()); } } }