Package com.github.kristofa.brave.zipkin

Source Code of com.github.kristofa.brave.zipkin.ZipkinCollectorServer

package com.github.kristofa.brave.zipkin;

import java.util.List;

import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.server.THsHaServer;
import org.apache.thrift.server.TServer;
import org.apache.thrift.transport.TFramedTransport;
import org.apache.thrift.transport.TNonblockingServerSocket;
import org.apache.thrift.transport.TNonblockingServerTransport;
import org.apache.thrift.transport.TTransportException;

import com.twitter.zipkin.gen.Span;
import com.twitter.zipkin.gen.ZipkinCollector;
import com.twitter.zipkin.gen.ZipkinCollector.Iface;
import com.twitter.zipkin.gen.ZipkinCollector.Processor;

class ZipkinCollectorServer {

    private final TServer server;
    private final ZipkinCollectorReceiver receiver;

    public ZipkinCollectorServer(final int port) throws TTransportException {
        this(port, -1);
    }

    public ZipkinCollectorServer(final int port, final int delayMs) throws TTransportException {
        receiver = new ZipkinCollectorReceiver(delayMs);

        final Processor<Iface> processor = new ZipkinCollector.Processor<Iface>(receiver);

        final TNonblockingServerTransport transport = new TNonblockingServerSocket(port);
        final THsHaServer.Args args = new THsHaServer.Args(transport);

        args.workerThreads(1);
        args.processor(processor);
        args.protocolFactory(new TBinaryProtocol.Factory());
        args.transportFactory(new TFramedTransport.Factory());

        server = new THsHaServer(args);

    }

    public void start() {

        final Runnable serveThread = new Runnable() {

            @Override
            public void run() {
                server.serve();
            }
        };

        new Thread(serveThread).start();
    }

    public void clearReceivedSpans() {
        receiver.clearReceivedSpans();
    }

    public List<Span> getReceivedSpans() {
        return receiver.getSpans();
    }

    public void stop() {
        server.stop();
    }

}
TOP

Related Classes of com.github.kristofa.brave.zipkin.ZipkinCollectorServer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.