@Test void writesSpans_readMetricsFormat() throws Exception {
    byte[] span = {'z', 'i', 'p', 'k', 'i', 'n'};
    List<Span> spans = List.of(LOTS_OF_SPANS[0], LOTS_OF_SPANS[1], LOTS_OF_SPANS[2]);
    byte[] body = SpanBytesEncoder.JSON_V2.encodeList(spans);
    post("/api/v2/spans", body);
    post("/api/v2/spans", body);
    post("/api/v2/spans", span);
    Thread.sleep(1500);

    String metrics = getAsString("/metrics");

    assertThat(readJson(metrics)).containsOnlyKeys(
      "gauge.zipkin_collector.message_spans.grpc"
      , "gauge.zipkin_collector.message_bytes.grpc"
      , "counter.zipkin_collector.messages.grpc"
      , "counter.zipkin_collector.bytes.grpc"
      , "counter.zipkin_collector.spans.grpc"
      , "counter.zipkin_collector.messages_dropped.grpc"
      , "counter.zipkin_collector.spans_dropped.grpc"
      , "gauge.zipkin_collector.message_spans.http"
      , "gauge.zipkin_collector.message_bytes.http"
      , "counter.zipkin_collector.messages.http"
      , "counter.zipkin_collector.bytes.http"
      , "counter.zipkin_collector.spans.http"
      , "counter.zipkin_collector.messages_dropped.http"
      , "counter.zipkin_collector.spans_dropped.http"
    );
  }
Only add tests that do not consider the value of a counter or gauge, as these will flake and so
should only exist in {@link ITZipkinMetricsDirty}.
zipkin-server/src/test/java/zipkin2/server/internal/prometheus/ITZipkinMetrics.java