@Test void writeSpans_malformedUpdatesMetrics() throws Exception {
    byte[] body = {'h', 'e', 'l', 'l', 'o'};
    double messagesCount =
      registry.counter("zipkin_collector.messages", "transport", "http").count();
    double messagesDroppedCount =
      registry.counter("zipkin_collector.messages_dropped", "transport", "http").count();
    post("/api/v2/spans", body);

    String json = getAsString("/metrics");

    assertThat(readDouble(json, "$.['counter.zipkin_collector.messages.http']"))
      .isEqualTo(messagesCount + 1);
    assertThat(readDouble(json, "$.['counter.zipkin_collector.messages_dropped.http']"))
      .isEqualTo(messagesDroppedCount + 1);
  }
Tests here look at values based on counter values, so need to run independently. It would seem
correct to {@link PrometheusMeterRegistry#clear() clear the registry} to isolate counters
incremented in one test from interfering with another. However, this clears the metrics
themselves, resulting in an empty {@link PrometheusMeterRegistry#scrape()}.

<p>Currently, the only way we know how to reset the whole registry is to recreate the Spring
context, via {@link DirtiesContext} on each test. This is extremely slow, so please only add
tests that require isolation here!
zipkin-server/src/test/java/zipkin2/server/internal/prometheus/ITZipkinMetricsDirty.java