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;
}
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;
}
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;
}
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;
}
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.");
}
}
}
Aggregations