Package zipkin2.junit

Class ZipkinRule

  • All Implemented Interfaces:
    org.junit.rules.TestRule

    public final class ZipkinRule
    extends Object
    implements org.junit.rules.TestRule
    Starts up a local Zipkin server, listening for http requests on httpUrl().

    This can be used to test instrumentation. For example, you can POST spans directly to this server.

    See http://openzipkin.github.io/zipkin-api/#/

    • Constructor Detail

      • ZipkinRule

        public ZipkinRule()
    • Method Detail

      • httpUrl

        public String httpUrl()
        Use this to connect. The zipkin v1 interface will be under "/api/v1"
      • httpRequestCount

        public int httpRequestCount()
        Use this to see how many requests you've sent to any zipkin http endpoint.
      • collectorMetrics

        public InMemoryCollectorMetrics collectorMetrics()
        Use this to see how many spans or serialized bytes were collected on the http endpoint.
      • storeSpans

        public ZipkinRule storeSpans​(List<Span> spans)
        Stores the given spans directly, to setup preconditions for a test.

        For example, if you are testing what happens when instrumentation adds a child to a trace, you'd add the parent here.

      • enqueueFailure

        public ZipkinRule enqueueFailure​(HttpFailure failure)
        Adds a one-time failure to the http endpoint.

        Ex. If you want to test that you don't repeatedly send bad data, you could send a 400 back.

        
         zipkin.enqueueFailure(sendErrorResponse(400, "bad format"));
         
        Parameters:
        failure - type of failure the next call to the http endpoint responds with
      • getTraces

        public List<List<Span>> getTraces()
        Retrieves all traces this zipkin server has received.
      • getTrace

        @Nullable
        public List<Span> getTrace​(String traceId)
        Retrieves a trace by ID which Zipkin server has received, or null if not present.
      • getDependencies

        public List<DependencyLink> getDependencies()
        Retrieves all service links between traces this zipkin server has received.
      • start

        public void start​(int httpPort)
                   throws IOException
        Used to manually start the server.
        Parameters:
        httpPort - choose 0 to select an available port
        Throws:
        IOException
      • apply

        public org.junit.runners.model.Statement apply​(org.junit.runners.model.Statement base,
                                                       org.junit.runner.Description description)
        Specified by:
        apply in interface org.junit.rules.TestRule