@Benchmark
  @Threads(16) // Use several threads since we expect contention during logging
  public void testLoggingWithAllOptionalParameters(
      ManyExpectedCallsLoggingClientAndService client, ManageExecutionState executionState)
      throws Exception {
    BeamFnLoggingMDC.setInstructionId("instruction id");
    try (Closeable state =
        executionState.executionStateTracker.enterState(executionState.simpleExecutionState)) {
      LOG.warn("log me");
    }
    BeamFnLoggingMDC.setInstructionId(null);
  }
@Test
  public void testLoggingWithAllOptionalParameters() throws Exception {
    ManyExpectedCallsLoggingClientAndService service =
        new ManyExpectedCallsLoggingClientAndService();
    ManageExecutionState state = new ManageExecutionState();
    new BeamFnLoggingClientBenchmark().testLoggingWithAllOptionalParameters(service, state);
    state.tearDown();
    service.tearDown();
  }