@Override public boolean apply(@Nonnull GobblinTrackingEvent input) { return input.getName().equals(expectedName); } };
Assert.assertEquals(retrievedEvent.getName(), eventName); Assert.assertEquals(retrievedEvent.getMetadata().size(), 4);
/** * Filter for {@link GobblinTrackingEvent}. Used to quickly determine whether an event should be used to produce * a {@link JobSpec}. */ protected boolean acceptEvent(GobblinTrackingEvent event) { if (!event.getMetadata().containsKey(SlaEventKeys.DATASET_URN_KEY)) { return false; } String datasetURN = event.getMetadata().get(SlaEventKeys.DATASET_URN_KEY); if (this.urnFilter.isPresent() && !this.urnFilter.get().matcher(datasetURN).find()) { return false; } if (this.nameFilter.isPresent() && !this.nameFilter.get().matcher(event.getName()).find()) { return false; } return true; } }
Assert.assertEquals(retrievedEvent.getName(), eventName); Assert.assertEquals(retrievedEvent.getMetadata().size(), 4); Assert.assertEquals(retrievedEvent.getMetadata().get(tag1), metadataValue1);
@Override public Collection<Either<JobSpec, URI>> parseJobSpec(GobblinTrackingEvent message) { this.events.add(message); return Lists.newArrayList(Either.<JobSpec, URI>left(JobSpec.builder(message.getName()).build())); } }
/** * Extracts the event and its metadata from {@link GobblinTrackingEvent} and creates * timestamped name value pairs * * @param event {@link GobblinTrackingEvent} to be reported * @throws IOException */ private void pushEvent(GobblinTrackingEvent event) throws IOException { Map<String, String> metadata = event.getMetadata(); String name = getMetricName(metadata, event.getName()); long timestamp = event.getTimestamp(); MultiPartEvent multiPartEvent = MultiPartEvent.getEvent(metadata.get(EventSubmitter.EVENT_TYPE)); if (multiPartEvent == null) { influxDBPusher.push(buildEventAsPoint(name, EMTPY_VALUE, timestamp)); } else { List<Point> points = Lists.newArrayList(); for (String field : multiPartEvent.getMetadataFields()) { Point point = buildEventAsPoint(JOINER.join(name, field), convertValue(field, metadata.get(field)), timestamp); points.add(point); } influxDBPusher.push(points); } }
String name = getMetricName(metadata, event.getName()); long timestamp = event.getTimestamp() / 1000l; MultiPartEvent multipartEvent = MultiPartEvent.getEvent(metadata.get(EventSubmitter.EVENT_TYPE));
/** * Create a {@link LineageEventBuilder} from a {@link GobblinEventBuilder}. An inverse function * to {@link LineageEventBuilder#build()} */ public static LineageEventBuilder fromEvent(GobblinTrackingEvent event) { Map<String, String> metadata = event.getMetadata(); LineageEventBuilder lineageEvent = new LineageEventBuilder(event.getName()); metadata.forEach((key, value) -> { switch (key) { case SOURCE: lineageEvent.setSource(Descriptor.fromJson(value)); break; case DESTINATION: lineageEvent.setDestination(Descriptor.fromJson(value)); break; default: lineageEvent.addMetadata(key, value); break; } }); return lineageEvent; }
@Override public boolean apply(@Nonnull GobblinTrackingEvent input) { return input.getName().equals(expectedName); } };
/** * Filter for {@link GobblinTrackingEvent}. Used to quickly determine whether an event should be used to produce * a {@link JobSpec}. */ protected boolean acceptEvent(GobblinTrackingEvent event) { if (!event.getMetadata().containsKey(SlaEventKeys.DATASET_URN_KEY)) { return false; } String datasetURN = event.getMetadata().get(SlaEventKeys.DATASET_URN_KEY); if (this.urnFilter.isPresent() && !this.urnFilter.get().matcher(datasetURN).find()) { return false; } if (this.nameFilter.isPresent() && !this.nameFilter.get().matcher(event.getName()).find()) { return false; } return true; } }
/** * Extracts the event and its metadata from {@link GobblinTrackingEvent} and creates * timestamped name value pairs * * @param event {@link GobblinTrackingEvent} to be reported * @throws IOException */ private void pushEvent(GobblinTrackingEvent event) throws IOException { Map<String, String> metadata = event.getMetadata(); String name = getMetricName(metadata, event.getName()); long timestamp = event.getTimestamp(); MultiPartEvent multiPartEvent = MultiPartEvent.getEvent(metadata.get(EventSubmitter.EVENT_TYPE)); if (multiPartEvent == null) { influxDBPusher.push(buildEventAsPoint(name, EMTPY_VALUE, timestamp)); } else { List<Point> points = Lists.newArrayList(); for (String field : multiPartEvent.getMetadataFields()) { Point point = buildEventAsPoint(JOINER.join(name, field), convertValue(field, metadata.get(field)), timestamp); points.add(point); } influxDBPusher.push(points); } }
String name = getMetricName(metadata, event.getName()); long timestamp = event.getTimestamp() / 1000l; MultiPartEvent multipartEvent = MultiPartEvent.getEvent(metadata.get(EventSubmitter.EVENT_TYPE));
/** * Create a {@link LineageEventBuilder} from a {@link GobblinEventBuilder}. An inverse function * to {@link LineageEventBuilder#build()} */ public static LineageEventBuilder fromEvent(GobblinTrackingEvent event) { Map<String, String> metadata = event.getMetadata(); LineageEventBuilder lineageEvent = new LineageEventBuilder(event.getName()); metadata.forEach((key, value) -> { switch (key) { case SOURCE: lineageEvent.setSource(Descriptor.fromJson(value)); break; case DESTINATION: lineageEvent.setDestination(Descriptor.fromJson(value)); break; default: lineageEvent.addMetadata(key, value); break; } }); return lineageEvent; }