Search in sources :

Example 31 with Event

use of org.ff4j.audit.Event in project ff4j by ff4j.

the class EventRepositoryElastic method getSourceHitCount.

@Override
public Map<String, MutableHitCount> getSourceHitCount(EventQueryDefinition query) {
    JestResult result = getConnection().execute(getBuilder().queryGetEventQueryDefinition(query, EventConstants.ACTION_CHECK_OK));
    List<Event> events = result.getSourceAsObjectList(Event.class);
    Map<String, MutableHitCount> hitCount = new HashMap<String, MutableHitCount>();
    for (Event event : events) {
        String source = event.getSource();
        if (hitCount.containsKey(source)) {
            hitCount.get(source).inc();
        } else {
            hitCount.put(source, new MutableHitCount(1));
        }
    }
    return hitCount;
}
Also used : HashMap(java.util.HashMap) Event(org.ff4j.audit.Event) JestResult(io.searchbox.client.JestResult) MutableHitCount(org.ff4j.audit.MutableHitCount)

Example 32 with Event

use of org.ff4j.audit.Event in project ff4j by ff4j.

the class EventRepositoryElastic method getHostHitCount.

@Override
public Map<String, MutableHitCount> getHostHitCount(EventQueryDefinition query) {
    JestResult result = getConnection().execute(getBuilder().queryGetEventQueryDefinition(query, EventConstants.ACTION_CHECK_OK));
    List<Event> events = result.getSourceAsObjectList(Event.class);
    Map<String, MutableHitCount> hitCount = new HashMap<String, MutableHitCount>();
    for (Event event : events) {
        String hostName = event.getHostName();
        if (hitCount.containsKey(hostName)) {
            hitCount.get(hostName).inc();
        } else {
            hitCount.put(hostName, new MutableHitCount(1));
        }
    }
    return hitCount;
}
Also used : HashMap(java.util.HashMap) Event(org.ff4j.audit.Event) JestResult(io.searchbox.client.JestResult) MutableHitCount(org.ff4j.audit.MutableHitCount)

Example 33 with Event

use of org.ff4j.audit.Event in project ff4j by ff4j.

the class EventRepositoryHBase method getFeatureUsageHistory.

/**
 * {@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;
}
Also used : TimeSeriesChart(org.ff4j.audit.chart.TimeSeriesChart) Event(org.ff4j.audit.Event)

Example 34 with Event

use of org.ff4j.audit.Event in project ff4j by ff4j.

the class HBaseEventMapper method fromStore.

/**
 * {@inheritDoc}
 */
public Event fromStore(Result result) {
    if (result == null)
        return null;
    Event evt = new Event();
    evt.setUuid(Bytes.toString(result.getValue(B_AUDIT_CF, B_EVENT_UID)));
    evt.setSource(Bytes.toString(result.getValue(B_AUDIT_CF, B_EVENT_SOURCE)));
    evt.setType(Bytes.toString(result.getValue(B_AUDIT_CF, B_EVENT_TYPE)));
    evt.setName(Bytes.toString(result.getValue(B_AUDIT_CF, B_EVENT_NAME)));
    evt.setAction(Bytes.toString(result.getValue(B_AUDIT_CF, B_EVENT_ACTION)));
    evt.setDuration(Bytes.toLong(result.getValue(B_AUDIT_CF, B_EVENT_DURATION)));
    evt.setHostName(Bytes.toString(result.getValue(B_AUDIT_CF, B_EVENT_HOSTNAME)));
    evt.setUser(Bytes.toString(result.getValue(B_AUDIT_CF, B_EVENT_USER)));
    evt.setValue(Bytes.toString(result.getValue(B_AUDIT_CF, B_EVENT_VALUE)));
    evt.setTimestamp(Bytes.toLong(result.getValue(B_AUDIT_CF, B_EVENT_TIME)));
    evt.setCustomKeys(MappingUtil.toMap(Bytes.toString(result.getValue(B_AUDIT_CF, B_EVENT_KEYS))));
    return evt;
}
Also used : Event(org.ff4j.audit.Event)

Example 35 with Event

use of org.ff4j.audit.Event in project ff4j by ff4j.

the class OperationsController method auditEventasJson.

/**
 * Generation of JSON to render Features.
 *
 * @param req
 *      current request
 * @param res
 *      current response
 * @throws IOException
 */
private void auditEventasJson(HttpServletRequest req, HttpServletResponse res) throws IOException {
    res.setContentType(CONTENT_TYPE_JSON);
    String[] pathParts = req.getPathInfo().split("/");
    if (pathParts.length > 3) {
        String eventUUId = pathParts[3];
        Long eventTime = null;
        if (isValidParam(req, WebConstants.KEY_DATE)) {
            eventTime = Long.valueOf(req.getParameter(WebConstants.KEY_DATE));
        }
        Event event = getFf4j().getEventRepository().getEventByUUID(eventUUId, eventTime);
        if (event != null) {
            res.getWriter().println(event.toString());
        } else {
            res.setStatus(WebConstants.STATUS_NOT_FOUND);
            res.getWriter().println("Event " + eventUUId + " does not exist in event repository.");
        }
    }
}
Also used : Event(org.ff4j.audit.Event)

Aggregations

Event (org.ff4j.audit.Event)56 Test (org.junit.Test)32 EventQueryDefinition (org.ff4j.audit.EventQueryDefinition)22 MutableHitCount (org.ff4j.audit.MutableHitCount)15 EventSeries (org.ff4j.audit.EventSeries)8 TimeSeriesChart (org.ff4j.audit.chart.TimeSeriesChart)8 JestResult (io.searchbox.client.JestResult)6 HashMap (java.util.HashMap)5 EventRepository (org.ff4j.audit.repository.EventRepository)4 InMemoryEventRepository (org.ff4j.audit.repository.InMemoryEventRepository)4 Date (java.util.Date)2 TreeMap (java.util.TreeMap)2 EventPublisher (org.ff4j.audit.EventPublisher)2 EventWorker (org.ff4j.audit.EventWorker)2 BarChart (org.ff4j.audit.chart.BarChart)2 Map (java.util.Map)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1 FF4j (org.ff4j.FF4j)1 Serie (org.ff4j.audit.chart.Serie)1 MongoEventMapper (org.ff4j.mongo.mapper.MongoEventMapper)1