/** * Search event by its id in the eventSeries. * * @param es * current event series * @param uuid * current unique identifier * @return * event if found, null if not */ private Event getFromEventSeries(EventSeries es, String uuid) { if (es == null) return null; Iterator<Event> iterEvents = es.iterator(); while (iterEvents.hasNext()) { Event evt = iterEvents.next(); if (evt.getUuid().equalsIgnoreCase(uuid)) { return evt; } } return null; }
private void removeEventIfPresent(EventSeries es, Event evt) { Iterator < Event > iterEvt = es.iterator(); while(iterEvt.hasNext()) { Event currentEvent = iterEvt.next(); if (currentEvent.getUuid().equalsIgnoreCase(evt.getUuid())) { es.remove(currentEvent); } } }
/** {@inheritDoc} */ @Override public void purgeAuditTrail(EventQueryDefinition q) { for (String currentDay : getCandidateDays(q.getFrom(), q.getTo())) { if (auditTrailEvents.containsKey(currentDay)) { Iterator<Event> iterEvents = auditTrailEvents.get(currentDay).iterator(); while (iterEvents.hasNext()) { Event evt = iterEvents.next(); if (q.match(evt)) { auditTrailEvents.get(currentDay).remove(evt); } } if (auditTrailEvents.get(currentDay).isEmpty()) { auditTrailEvents.remove(currentDay); } } } }
/** {@inheritDoc} */ @Override public void purgeFeatureUsage(EventQueryDefinition q) { Set<String> candidateDates = getCandidateDays(q.getFrom(), q.getTo()); for (String currentDay : candidateDates) { if (featureUsageEvents.containsKey(currentDay)) { Map<String, EventSeries> currentDayEvents = featureUsageEvents.get(currentDay); for (String currentFeature : currentDayEvents.keySet()) { Iterator<Event> iterEvents = currentDayEvents.get(currentFeature).iterator(); while (iterEvents.hasNext()) { Event evt = iterEvents.next(); if (q.match(evt)) { removeEventIfPresent(currentDayEvents.get(currentFeature), evt); } if (currentDayEvents.get(currentFeature).isEmpty()){ currentDayEvents.remove(currentFeature); } } } // Remove list if empty if (currentDayEvents.isEmpty()) { featureUsageEvents.remove(currentDay); } } } }
@Override public TimeSeriesChart getFeatureUsageHistory(EventQueryDefinition query, TimeUnit units) { // Create the interval depending on units TimeSeriesChart tsc = new TimeSeriesChart(query.getFrom(), query.getTo(), units); // Search All events Iterator<Event> iterEvent = searchFeatureUsageEvents(query).iterator(); // Dispatch events into time slots while (iterEvent.hasNext()) { tsc.addEvent(iterEvent.next()); } return tsc; }
/** {@inheritDoc} */ @Override public TimeSeriesChart getFeatureUsageHistory(EventQueryDefinition query, TimeUnit units) { // Create the interval depending on units TimeSeriesChart tsc = new TimeSeriesChart(query.getFrom(), query.getTo(), units); // Search All events Iterator<Event> iterEvent = searchFeatureUsageEvents(query).iterator(); // Dispatch events into time slots while (iterEvent.hasNext()) { tsc.addEvent(iterEvent.next()); } return tsc; }
/** {@inheritDoc} */ @Override public TimeSeriesChart getFeatureUsageHistory(EventQueryDefinition query, TimeUnit units) { // Create the interval depending on units TimeSeriesChart tsc = new TimeSeriesChart(query.getFrom(), query.getTo(), units); // Search All events Iterator<Event> iterEvent = searchFeatureUsageEvents(query).iterator(); // Dispatch events into time slots while (iterEvent.hasNext()) { tsc.addEvent(iterEvent.next()); } return tsc; }
/** {@inheritDoc} */ @Override public EventSeries getAuditTrail(EventQueryDefinition q) { EventSeries resultSeries = new EventSeries(10000); for (String currentDay : getCandidateDays(q.getFrom(), q.getTo())) { if (auditTrailEvents.containsKey(currentDay)) { Iterator<Event> iterEvents = auditTrailEvents.get(currentDay).iterator(); while (iterEvents.hasNext()) { Event evt = iterEvents.next(); if (q.match(evt)) { resultSeries.add(evt); } } } } return resultSeries; }
/** {@inheritDoc} */ @Override public TimeSeriesChart getFeatureUsageHistory(EventQueryDefinition query, TimeUnit units) { // Create the interval depending on units TimeSeriesChart tsc = new TimeSeriesChart(query.getFrom(), query.getTo(), units); // Search All events Iterator<Event> iterEvent = searchFeatureUsageEvents(query).iterator(); // Dispatch events into time slots while (iterEvent.hasNext()) { tsc.addEvent(iterEvent.next()); } return tsc; }
/** {@inheritDoc} */ @Override public TimeSeriesChart getFeatureUsageHistory(EventQueryDefinition query, TimeUnit units) { // Create the interval depending on units TimeSeriesChart tsc = new TimeSeriesChart(query.getFrom(), query.getTo(), units); // Search All events Iterator<Event> iterEvent = searchFeatureUsageEvents(query).iterator(); // Dispatch events into time slots while (iterEvent.hasNext()) { tsc.addEvent(iterEvent.next()); } return tsc; }
/** {@inheritDoc} */ @Override public EventSeries searchFeatureUsageEvents(EventQueryDefinition query) { EventSeries es = new EventSeries(1000000); // Dates are the keys of the storage map, compute list of keys and loop over them for (String currentDay : getCandidateDays(query.getFrom(), query.getTo())) { // There are some events with the current date if (featureUsageEvents.containsKey(currentDay)) { Map<String, EventSeries> currentDayEvents = featureUsageEvents.get(currentDay); for (String currentFeature : currentDayEvents.keySet()) { // query can have filters for names, here we limite the number of map to scan if (query.matchName(currentFeature)) { Iterator<Event> iterEvents = currentDayEvents.get(currentFeature).iterator(); while (iterEvents.hasNext()) { Event evt = iterEvents.next(); // use other filter (host, action, timestamp....) if (query.match(evt)) { es.add(evt); } } } } } } return es; }