package com.netflix.suro.sink; import com.netflix.suro.SuroPlugin; import com.netflix.suro.message.Message; import com.netflix.suro.sink.elasticsearch.ElasticSearchSink; import com.netflix.suro.sink.kafka.KafkaSink; import com.netflix.suro.sink.kafka.KafkaSinkV2; import com.netflix.suro.sink.kafka.SuroKeyedMessage; import com.netflix.suro.sink.localfile.LocalFileSink; import com.netflix.suro.sink.notice.LogNotice; import com.netflix.suro.sink.notice.NoNotice; import com.netflix.suro.sink.notice.QueueNotice; import com.netflix.suro.sink.notice.SQSNotice; import com.netflix.suro.sink.remotefile.HdfsFileSink; import com.netflix.suro.sink.remotefile.S3FileSink; import com.netflix.suro.sink.remotefile.formatter.DateRegionStackFormatter; import com.netflix.suro.sink.remotefile.formatter.DynamicRemotePrefixFormatter; /** * * @author jbae */ public class ServerSinkPlugin extends SuroPlugin { @Override protected void configure() { this.addSinkType(LocalFileSink.TYPE, LocalFileSink.class); this.addSinkType(ElasticSearchSink.TYPE, ElasticSearchSink.class); this.addSinkType(KafkaSink.TYPE, KafkaSink.class); this.addSinkType(KafkaSinkV2.TYPE, KafkaSinkV2.class); Message.classMap.put((byte) 1, SuroKeyedMessage.class); this.addSinkType(S3FileSink.TYPE, S3FileSink.class); this.addSinkType(HdfsFileSink.TYPE, HdfsFileSink.class); this.addRemotePrefixFormatterType(DateRegionStackFormatter.TYPE, DateRegionStackFormatter.class); this.addRemotePrefixFormatterType(DynamicRemotePrefixFormatter.TYPE, DynamicRemotePrefixFormatter.class); this.addSinkType(SuroSink.TYPE, SuroSink.class); this.addNoticeType(NoNotice.TYPE, NoNotice.class); this.addNoticeType(QueueNotice.TYPE, QueueNotice.class); this.addNoticeType(SQSNotice.TYPE, SQSNotice.class); this.addNoticeType(LogNotice.TYPE, LogNotice.class); } }