Package zipkin2.junit

Class ZipkinRule

java.lang.Object
zipkin2.junit.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 Details

  • Method Details

    • 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
    • shutdown

      public void shutdown() throws IOException
      Used to manually stop the server.
      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