@Override public long getEventTime() { return event.getEventTime(); }
@Override public long getTimestamp() { return record.getEventTime(); }
@Override public long getEventTime() { return record.getEventTime(); }
@Override public int compare(final ProvenanceEventRecord o1, final ProvenanceEventRecord o2) { // Sort on Event Time, then Event ID. final int eventTimeComparison = Long.compare(o1.getEventTime(), o2.getEventTime()); if (eventTimeComparison == 0) { return Long.compare(o1.getEventId(), o2.getEventId()); } else { return eventTimeComparison; } } });
private static String stringify(final ProvenanceEventRecord event, final int index, final long byteOffset) { final StringBuilder sb = new StringBuilder(); sb.append("Event Index in File = ").append(index).append(", Byte Offset = ").append(byteOffset); sb.append("\n\t").append("Event ID = ").append(event.getEventId()); sb.append("\n\t").append("Event Type = ").append(event.getEventType()); sb.append("\n\t").append("Event Time = ").append(new Date(event.getEventTime())); sb.append("\n\t").append("Event UUID = ").append(event.getFlowFileUuid()); sb.append("\n\t").append("Component ID = ").append(event.getComponentId()); sb.append("\n\t").append("Event ID = ").append(event.getComponentType()); sb.append("\n\t").append("Transit URI = ").append(event.getTransitUri()); sb.append("\n\t").append("Parent IDs = ").append(event.getParentUuids()); sb.append("\n\t").append("Child IDs = ").append(event.getChildUuids()); sb.append("\n\t").append("Previous Attributes = ").append(event.getPreviousAttributes()); sb.append("\n\t").append("Updated Attributes = ").append(event.getUpdatedAttributes()); return sb.toString(); } }
void performMaintenance() { try { final List<ProvenanceEventRecord> firstEvents = eventStore.getEvents(0, 1); final long earliestEventTime; if (firstEvents.isEmpty()) { earliestEventTime = System.currentTimeMillis(); logger.debug("Found no events in the Provenance Repository. In order to perform maintenace of the indices, " + "will assume that the first event time is now ({})", System.currentTimeMillis()); } else { final ProvenanceEventRecord firstEvent = firstEvents.get(0); earliestEventTime = firstEvent.getEventTime(); logger.debug("First Event Time is {} ({}) with Event ID {}; will delete any Lucene Index that is older than this", earliestEventTime, new Date(earliestEventTime), firstEvent.getEventId()); } final List<File> indicesBeforeEarliestEvent = directoryManager.getDirectoriesBefore(earliestEventTime); for (final File index : indicesBeforeEarliestEvent) { logger.debug("Index directory {} is now expired. Attempting to remove index", index); tryDeleteIndex(index); } } catch (final Exception e) { logger.error("Failed to perform background maintenance procedures", e); eventReporter.reportEvent(Severity.ERROR, EVENT_CATEGORY, "Failed to perform maintenance of Provenance Repository. See logs for more information."); } }
public PlaceholderProvenanceEvent(final ProvenanceEventRecord original) { this.componentId = original.getComponentId(); this.eventId = original.getEventId(); this.eventTime = original.getEventTime(); this.flowFileUuid = original.getFlowFileUuid(); }
} else { final File indexDir; if (event.getEventTime() == lastEventTime) { indexDir = lastIndexDir; } else { final List<File> files = getDirectoryManager().getDirectories(event.getEventTime(), null); indexDir = files.isEmpty() ? null : files.get(0); lastIndexDir = indexDir;
return record.getEventTime();
if (query.getStartDate() != null && query.getStartDate().getTime() > event.getEventTime()) { return false; if (query.getEndDate() != null && query.getEndDate().getTime() < event.getEventTime()) { return false;
case REPLAY: { return submitLineageComputation(event.getChildUuids(), user, authorizer, LineageComputationType.EXPAND_CHILDREN, eventId, event.getEventTime(), Long.MAX_VALUE);
case JOIN: case REPLAY: return submitLineageComputation(event.getChildUuids(), user, LineageComputationType.EXPAND_CHILDREN, eventId, event.getEventTime(), Long.MAX_VALUE); default: final AsyncLineageSubmission submission = new AsyncLineageSubmission(LineageComputationType.EXPAND_CHILDREN, eventId, Collections.<String>emptyList(), 1, userId);
case CLONE: case REPLAY: return submitLineageComputation(event.getParentUuids(), user, LineageComputationType.EXPAND_PARENTS, eventId, event.getLineageStartDate(), event.getEventTime()); default: { final AsyncLineageSubmission submission = new AsyncLineageSubmission(LineageComputationType.EXPAND_PARENTS, eventId, Collections.<String>emptyList(), 1, userId);
case REPLAY: { return submitLineageComputation(event.getParentUuids(), user, authorizer, LineageComputationType.EXPAND_PARENTS, eventId, event.getLineageStartDate(), event.getEventTime());
out.writeLong(record.getEventTime()); out.writeLong(record.getFlowFileEntryDate()); out.writeLong(record.getEventDuration());
addField(builder, "eventOrdinal", event.getEventId()); addField(builder, "eventType", event.getEventType().name()); addField(builder, "timestampMillis", event.getEventTime()); addField(builder, "timestamp", df.format(event.getEventTime())); addField(builder, "durationMillis", event.getEventDuration()); addField(builder, "lineageStart", event.getLineageStartDate());
doc.add(new LongField(SearchableFields.EventTime.getSearchableFieldName(), record.getEventTime(), Store.NO));
return (int) event.getEventDuration(); case EventFieldNames.EVENT_TIME: return (int) (event.getEventTime() - startTimeOffset); case EventFieldNames.EVENT_TYPE: return eventTypeMap.get(event.getEventType().name());
return event.getEventDuration(); case EventFieldNames.EVENT_TIME: return event.getEventTime(); case EventFieldNames.EVENT_TYPE: return event.getEventType().name();
@Override public Builder fromEvent(final ProvenanceEventRecord event) { eventTime = event.getEventTime(); entryDate = event.getFlowFileEntryDate(); lineageStartDate = event.getLineageStartDate();