interop-testing: make soak test use logger rather than writing to stderr directly

This commit is contained in:
apolcyn 2025-07-30 09:31:02 -07:00 committed by GitHub
parent 6ffcbd927e
commit d947c80f99
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 7 additions and 2 deletions

View File

@ -39,6 +39,7 @@ import java.util.List;
import java.util.Locale;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
import java.util.logging.Logger;
import org.HdrHistogram.Histogram;
/**
@ -48,6 +49,8 @@ import org.HdrHistogram.Histogram;
* https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md#rpc_soak
*/
final class SoakClient {
private static final Logger logger = Logger.getLogger(SoakClient.class.getName());
private static class SoakIterationResult {
public SoakIterationResult(long latencyMs, Status status) {
this.latencyMs = latencyMs;
@ -171,7 +174,7 @@ final class SoakClient {
iterationsDone += threadResult.getIterationsDone();
latencies.add(threadResult.getLatencies());
}
System.err.println(
logger.info(
String.format(
Locale.US,
"(server_uri: %s) soak test ran: %d / %d iterations. total failures: %d. "
@ -244,14 +247,16 @@ final class SoakClient {
if (!result.getStatus().equals(Status.OK)) {
threadResults.threadFailures++;
logStr.append(String.format(" failed: %s", result.getStatus()));
logger.warning(logStr.toString());
} else if (result.getLatencyMs() > maxAcceptablePerIterationLatencyMs) {
threadResults.threadFailures++;
logStr.append(
" exceeds max acceptable latency: " + maxAcceptablePerIterationLatencyMs);
logger.warning(logStr.toString());
} else {
logStr.append(" succeeded");
logger.info(logStr.toString());
}
System.err.println(logStr.toString());
threadResults.iterationsDone++;
threadResults.getLatencies().recordValue(result.getLatencyMs());
long remainingNs = earliestNextStartNs - System.nanoTime();