private boolean isValidationEvent(JetstreamEvent event) { if (event.containsKey(VALIDATION_TYPE)) { return true; } return false; }
private JetstreamEvent createEvent(Map<String, Object> data, String eventType) { JetstreamEvent event = new JetstreamEvent(data); event.setEventType(eventType); return event; }
@Override public void sendEvent(JetstreamEvent event) throws EventException { String key = JetstreamReservedKeys.EventReplayTopic.toString(); if (event.containsKey(key)) { String retryTopic = (String) event.get(key); if (retryTopic != null && retryTopic.length() != 0) { retryTopic = "Replay-" + retryTopic.replaceAll("/", "-"); event.setForwardingTopics(new String[] { retryTopic }); } } super.sendEvent(event); } }
if (!event.containsKey(Constants.REPLAY_INITIAL_TS)) { event.addMetaData(Constants.REPLAY_INITIAL_TS, current); event.addMetaData(Constants.REPLAY_LAST_TS, current); } else if (event.containsKey(Constants.REPLAY_LAST_TS)) { long initTs = (Long) event.get(Constants.REPLAY_INITIAL_TS); return; event.addMetaData(Constants.REPLAY_INITIAL_TS, initTs); event.addMetaData(Constants.REPLAY_LAST_TS, current); event.remove(Constants.REPLAY_INITIAL_TS); event.remove(Constants.REPLAY_LAST_TS); if (event.containsKey(JetstreamReservedKeys.RetryCount.toString())) { event.put(JetstreamReservedKeys.RetryCount.toString(), 0); if (event.containsKey(getReplayConfig().getTimestampKey())) { event.remove(getReplayConfig().getTimestampKey()); .toString(); if (replayTopicKey != null && event.containsKey(replayTopicKey)) { event.remove(replayTopicKey); event.put(REPLAY_TAG, Boolean.TRUE); event.setForwardingTopics(null); super.fireSendEvent(event);
@Override public void sendEvent(JetstreamEvent event) throws EventException { if (event.getMetaData(Constants.REPLAY_INITIAL_TS) != null) { long initTs = (Long) event.getMetaData(Constants.REPLAY_INITIAL_TS); event.put(Constants.REPLAY_INITIAL_TS, initTs); if (event.getMetaData(Constants.REPLAY_LAST_TS) != null) { long lastTs = (Long) event.getMetaData(Constants.REPLAY_LAST_TS); event.put(Constants.REPLAY_LAST_TS, lastTs); super.sendEvent(event); postAlert( "The topic: " + event.get(JetstreamReservedKeys.EventReplayTopic.toString()) + " has issue, replay occurs on replay agent", AlertStrength.RED); postAlert( "The topic: " + event.get(JetstreamReservedKeys.EventReplayTopic.toString()) + " has issue, replay occurs on replay agent", AlertStrength.RED);
@Override public void sendExpirationCheckEvent(String uid, String ak) { JetstreamEvent jsEvent = new JetstreamEvent(); int type = identifierType(uid); jsEvent.setEventType(Constants.EVENT_TYPE_SESSION_EXPIRED_EVENT); jsEvent.put(Constants.EVENT_PAYLOAD_SESSION_UNIQUEID, uid); jsEvent.put(Constants.EVENT_PAYLOAD_SESSION_TYPE, Integer.valueOf(type)); jsEvent.put(AFFINITY_KEY, ak); this.loopbackEventProducer.sendExpirationCheckEvent(jsEvent); }
@Override public void run() { pendingRequestCounter.decrementAndGet(); try { future.getUninterruptibly(); } catch (DriverException e) { cassandraErrorCount.increment(); if (event != null) { if (event.get(JetstreamReservedKeys.MessageAffinityKey .toString()) == null) { event.put(JetstreamReservedKeys.MessageAffinityKey .toString(), (String) event .get(MCConstant.METRIC_NAME)); } getAdviceListener().retry(event, RetryEventCode.MSG_RETRY, e.getMessage()); eventSentToAdviceListener.increment(); } registerError(e); } } }
@Override public BatchResponse onNextBatch(BatchSource source, Collection<JetstreamEvent> events) throws EventException { // check if it's time to send the batch, check the delay time of the // lastEvent, if it's no time to send the batch, tell the IKC to wait // and resend this batch long start = System.currentTimeMillis(); if (getReplayConfig().getTimestampKey() != null && getReplayConfig().getDelayInMs() > 0) { JetstreamEvent[] eventArr = events .toArray(new JetstreamEvent[events.size()]); JetstreamEvent lastEvent = eventArr[eventArr.length - 1]; Long ts = (Long) lastEvent.get(getReplayConfig().getTimestampKey()); if (ts != null) { long v = ts + getReplayConfig().getDelayInMs() - start; if (v > 0) { incrementEventRecievedCounter(events.size()); incrementEventDelayedCounter(events.size()); return BatchResponse.getNextBatch() .setOffset(source.getHeadOffset()) .setWaitTimeInMs(v); } } } return super.onNextBatch(source, events); }
private void processEPL(JetstreamEvent event) { Object sesionizerList = event.remove(SessionizerProcessor.SESSIONIZER_LIST); try { esperService.getEPRuntime().sendEvent(event, event.getEventType()); } finally { if (sesionizerList != null) { event.put(SessionizerProcessor.SESSIONIZER_LIST, sesionizerList); } } }
public static boolean isGroupByCounterEventWithTag(JetstreamEvent event, Map<String, String> tags) { boolean result = false; if ((event != null) && event.getEventType().contains(COUNTERGROUPBYEVENT)) { Set<String> keys = event.keySet(); String[] keyArray = keys.toArray(new String[0]); for (int i = 0; i < keyArray.length; i++) { if (keyArray[i].contains(COUNTERGROUPBYEVENTTAG)) { result = true; if (tags != null) { tags.put(keyArray[i], String.valueOf(event.get(keyArray[i]))); } } } if (event.getEventType().contains(COUNTERGROUPBYMETICTIMEEVENT)) { tags.put(TAG_METRICTIME, String.valueOf(event.get(MCConstant.METRIC_TIME))); } } return result; }
public static boolean isMCMultiCounterEvent(JetstreamEvent event) { if ((event != null) && event.getEventType().contains(MultiCOUNTEREVENT)) { return true; } return false; }
@SuppressWarnings({ "rawtypes", "unchecked" }) @Override public void update(EventBean[] newEvents, EventBean[] oldEvents) { if (newEvents != null && newEvents.length > 0) { Map<String, Object> eventMap = getEventMap(newEvents[0]); if (eventMap != null) { for (Map.Entry<String, Object> e : eventMap.entrySet()) { if (e.getValue() != null) { if (e.getValue() instanceof Map) { event.putAll((Map)e.getValue()); } else { event.put(e.getKey(), e.getValue()); } } } } } } }
@Override public void sendEvent(JetstreamEvent event) throws EventException { String key = JetstreamReservedKeys.EventReplayTopic.toString(); if (event.containsKey(key)) { String retryTopic = (String) event.get(key); if (retryTopic != null && retryTopic.length() != 0) { retryTopic = "Replay-" + retryTopic.replaceAll("/", "-"); event.setForwardingTopics(new String[] { retryTopic }); } } super.sendEvent(event); } }
private JetstreamEvent createEvent(Session session, String type) { JetstreamEvent jsEvent = new JetstreamEvent(); jsEvent.setEventType(type); jsEvent.put(Constants.EVENT_PAYLOAD_SESSION_PAYLOAD, BinaryFormatSerializer.getInstance().getSessionPayload(session).array()); jsEvent.put(Constants.EVENT_PAYLOAD_SESSION_METADATA, BinaryFormatSerializer.getInstance().getSessionMetadata(session).array()); return jsEvent; }
public static boolean isMCCounterEvent(JetstreamEvent event) { if ((event != null) && event.getEventType().contains(COUNTEREVENT)) { return true; } return false; }
private void sendRawEvent(JetstreamEvent event) { if (event.containsKey(SESSIONIZER_LIST)) { localQueue.offer(event); } else { sendToDownStream(event); } }
@Override public void remoteSessionExpired(String uid, String ak, byte[] payload, byte[] metadata) { JetstreamEvent jsEvent = new JetstreamEvent(); int type = identifierType(uid); jsEvent.setEventType(Constants.EVENT_TYPE_SESSION_EXPIRED_EVENT); jsEvent.put(Constants.EVENT_PAYLOAD_SESSION_UNIQUEID, uid); jsEvent.put(Constants.EVENT_PAYLOAD_SESSION_TYPE, Integer.valueOf(type)); jsEvent.put(AFFINITY_KEY, ak); jsEvent.put(Constants.EVENT_PAYLOAD_SESSION_PAYLOAD, payload); jsEvent.put(Constants.EVENT_PAYLOAD_SESSION_METADATA, metadata); int queueIndex = getQueueIndex(ak); try { responseQueues[queueIndex].put(jsEvent); } catch (InterruptedException e) { responseQueueFullCounter.incrementAndGet(); } }
public static boolean isGroupByCounterEvent(JetstreamEvent event) { if ((event != null) && event.getEventType().contains(COUNTERGROUPBYEVENT)) { return true; } return false; }
public boolean isEventSupported(JetstreamEvent event) { return eventTypes.contains(event.getEventType()); }
public Map<String, SessionizationInfo> process(JetstreamEvent event) { sessionizationMap.clear(); eventListener.reset(event); esperService.getEPRuntime().sendEvent(event, event.getEventType()); return sessionizationMap; }