Class ZipkinExtension

  • All Implemented Interfaces:
    org.junit.jupiter.api.extension.AfterEachCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.Extension

    public final class ZipkinExtension
    extends Object
    implements org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.AfterEachCallback
    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

      • ZipkinExtension

        public ZipkinExtension()
    • 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 ZipkinExtension 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 ZipkinExtension 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
      • beforeEach

        public void beforeEach​(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
                        throws Exception
        Specified by:
        beforeEach in interface org.junit.jupiter.api.extension.BeforeEachCallback
        Throws:
        Exception
      • afterEach

        public void afterEach​(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
                       throws Exception
        Specified by:
        afterEach in interface org.junit.jupiter.api.extension.AfterEachCallback
        Throws:
        Exception