@Override protected void emitReport(MetricReport report) { this.kafkaPusher.pushMessages(Lists.newArrayList(this.serializer.serializeRecord(report))); } }
@Test public void test() throws IOException { // Test that the scoped config overrides the generic config Pusher pusher = new KafkaProducerPusher("localhost:dummy", TOPIC, Optional.of(ConfigFactory.parseMap(ImmutableMap.of( ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:" + this.kafkaTestHelper.getKafkaServerPort())))); String msg1 = "msg1"; String msg2 = "msg2"; pusher.pushMessages(Lists.newArrayList(msg1.getBytes(), msg2.getBytes())); try { Thread.sleep(1000); } catch(InterruptedException ex) { Thread.currentThread().interrupt(); } ConsumerIterator<byte[], byte[]> iterator = this.kafkaTestHelper.getIteratorForTopic(TOPIC); assert(iterator.hasNext()); Assert.assertEquals(new String(iterator.next().message()), msg1); assert(iterator.hasNext()); Assert.assertEquals(new String(iterator.next().message()), msg2); pusher.close(); }
@Test public void test() throws IOException { // Test that the scoped config overrides the generic config Pusher pusher = new KafkaKeyValueProducerPusher<byte[], byte[]>("localhost:dummy", TOPIC, Optional.of(ConfigFactory.parseMap(ImmutableMap.of( ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:" + this.kafkaTestHelper.getKafkaServerPort())))); String msg1 = "msg1"; String msg2 = "msg2"; pusher.pushMessages(Lists.newArrayList(Pair.of("key1", msg1.getBytes()), Pair.of("key2", msg2.getBytes()))); try { Thread.sleep(1000); } catch(InterruptedException ex) { Thread.currentThread().interrupt(); } ConsumerIterator<byte[], byte[]> iterator = this.kafkaTestHelper.getIteratorForTopic(TOPIC); assert(iterator.hasNext()); MessageAndMetadata<byte[], byte[]> messageAndMetadata = iterator.next(); Assert.assertEquals(new String(messageAndMetadata.key()), "key1"); Assert.assertEquals(new String(messageAndMetadata.message()), msg1); assert(iterator.hasNext()); messageAndMetadata = iterator.next(); Assert.assertEquals(new String(messageAndMetadata.key()), "key2"); Assert.assertEquals(new String(messageAndMetadata.message()), msg2); pusher.close(); }
@Override public void reportEventQueue(Queue<GobblinTrackingEvent> queue) { GobblinTrackingEvent nextEvent; List<byte[]> events = Lists.newArrayList(); while(null != (nextEvent = queue.poll())) { events.add(this.serializer.serializeRecord(nextEvent)); } if (!events.isEmpty()) { this.kafkaPusher.pushMessages(events); } }
@Override public void reportEventQueue(Queue<GobblinTrackingEvent> queue) { GobblinTrackingEvent nextEvent; List<Pair<String, byte[]>> events = Lists.newArrayList(); while(null != (nextEvent = queue.poll())) { StringBuilder sb = new StringBuilder(); String key = null; if (keys.isPresent()) { for (String keyPart : keys.get()) { if (nextEvent.getMetadata().containsKey(keyPart)) { sb.append(nextEvent.getMetadata().get(keyPart)); } else { log.error("{} not found in the GobblinTrackingEvent. Setting key to null.", keyPart); sb = null; break; } } key = (sb == null) ? null : sb.toString(); } events.add(Pair.of(key, this.serializer.serializeRecord(nextEvent))); } if (!events.isEmpty()) { this.kafkaPusher.pushMessages(events); } }
@Override public void reportEventQueue(Queue<GobblinTrackingEvent> queue) { GobblinTrackingEvent nextEvent; List<byte[]> events = Lists.newArrayList(); while(null != (nextEvent = queue.poll())) { events.add(this.serializer.serializeRecord(nextEvent)); } if (!events.isEmpty()) { this.kafkaPusher.pushMessages(events); } }
@Override protected void emitReport(MetricReport report) { this.kafkaPusher.pushMessages(Lists.newArrayList(this.serializer.serializeRecord(report))); } }