diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/GrpcExporter.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/GrpcExporter.java index 62d5695baf0..c894d0dff12 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/GrpcExporter.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/GrpcExporter.java @@ -68,8 +68,8 @@ public CompletableResultCode export(Marshaler exportRequest, int numItems) { grpcSender.send( exportRequest.toBinaryMessageWriter(), - grpcResponse -> onResponse(result, metricRecording, grpcResponse), - throwable -> onError(result, metricRecording, throwable)); + grpcResponse -> onResponse(result, metricRecording, grpcResponse, numItems), + throwable -> onError(result, metricRecording, numItems, throwable)); return result; } @@ -77,7 +77,8 @@ public CompletableResultCode export(Marshaler exportRequest, int numItems) { private void onResponse( CompletableResultCode result, ExporterInstrumentation.Recording metricRecording, - GrpcResponse grpcResponse) { + GrpcResponse grpcResponse, + int numItems) { GrpcStatusCode statusCode = grpcResponse.getStatusCode(); metricRecording.setGrpcStatusCode(statusCode); @@ -100,6 +101,8 @@ private void onResponse( logger.log( Level.SEVERE, "Failed to export " + + numItems + + " " + type + "s. Server is UNAVAILABLE. " + "Make sure your collector is running and reachable from this network. " @@ -110,6 +113,8 @@ private void onResponse( logger.log( Level.WARNING, "Failed to export " + + numItems + + " " + type + "s. Server responded with gRPC status code " + statusCode.getValue() @@ -123,12 +128,16 @@ private void onResponse( private void onError( CompletableResultCode result, ExporterInstrumentation.Recording metricRecording, + int numItems, Throwable e) { metricRecording.finishFailed(e); logger.log( - Level.SEVERE, "Failed to export " + type + "s. The request could not be executed.", e); + Level.SEVERE, + "Failed to export " + numItems + " " + type + "s. The request could not be executed.", + e); if (logger.isLoggable(Level.FINEST)) { - logger.log(Level.FINEST, "Failed to export " + type + "s. Details follow:", e); + logger.log( + Level.FINEST, "Failed to export " + numItems + " " + type + "s. Details follow:", e); } result.failExceptionally(FailedExportException.grpcFailedExceptionally(e)); } diff --git a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/HttpExporter.java b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/HttpExporter.java index ea2b108f20e..516c70e9abd 100644 --- a/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/HttpExporter.java +++ b/exporters/otlp/all/src/main/java/io/opentelemetry/exporter/otlp/internal/HttpExporter.java @@ -75,8 +75,8 @@ public CompletableResultCode export(Marshaler exportRequest, int numItems) { httpSender.send( messageWriter, - httpResponse -> onResponse(result, metricRecording, httpResponse), - throwable -> onError(result, metricRecording, throwable)); + httpResponse -> onResponse(result, metricRecording, httpResponse, numItems), + throwable -> onError(result, metricRecording, numItems, throwable)); return result; } @@ -84,7 +84,8 @@ public CompletableResultCode export(Marshaler exportRequest, int numItems) { private void onResponse( CompletableResultCode result, ExporterInstrumentation.Recording metricRecording, - HttpResponse httpResponse) { + HttpResponse httpResponse, + int numItems) { int statusCode = httpResponse.getStatusCode(); metricRecording.setHttpStatusCode(statusCode); @@ -104,6 +105,8 @@ private void onResponse( logger.log( Level.WARNING, "Failed to export " + + numItems + + " " + type + "s. Server responded with HTTP status code " + statusCode @@ -116,10 +119,13 @@ private void onResponse( private void onError( CompletableResultCode result, ExporterInstrumentation.Recording metricRecording, + int numItems, Throwable e) { metricRecording.finishFailed(e); logger.log( - Level.SEVERE, "Failed to export " + type + "s. The request could not be executed.", e); + Level.SEVERE, + "Failed to export " + numItems + " " + type + "s. The request could not be executed.", + e); result.failExceptionally(FailedExportException.httpFailedExceptionally(e)); } diff --git a/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/AbstractGrpcTelemetryExporterTest.java b/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/AbstractGrpcTelemetryExporterTest.java index 743efed98cf..d82c5e8d4b9 100644 --- a/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/AbstractGrpcTelemetryExporterTest.java +++ b/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/AbstractGrpcTelemetryExporterTest.java @@ -826,7 +826,7 @@ void error() { LoggingEvent log = logs.assertContains( - "Failed to export " + "Failed to export 1 " + type + "s. Server responded with gRPC status code 13. Error message:"); assertThat(log.getLevel()).isEqualTo(Level.WARN); @@ -870,7 +870,7 @@ void errorWithMessage() { .isFalse(); LoggingEvent log = logs.assertContains( - "Failed to export " + "Failed to export 1 " + type + "s. Server responded with gRPC status code 8. Error message: out of quota"); assertThat(log.getLevel()).isEqualTo(Level.WARN); @@ -891,7 +891,7 @@ void errorWithEscapedMessage() { .isFalse(); LoggingEvent log = logs.assertContains( - "Failed to export " + "Failed to export 1 " + type + "s. Server responded with gRPC status code 5. Error message: クマ🐻"); assertThat(log.getLevel()).isEqualTo(Level.WARN); @@ -912,7 +912,7 @@ void testExport_Unavailable() { .isFalse(); LoggingEvent log = logs.assertContains( - "Failed to export " + "Failed to export 1 " + type + "s. Server is UNAVAILABLE. " + "Make sure your collector is running and reachable from this network."); diff --git a/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/AbstractHttpTelemetryExporterTest.java b/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/AbstractHttpTelemetryExporterTest.java index 11a3e7e2efb..1506ed107fc 100644 --- a/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/AbstractHttpTelemetryExporterTest.java +++ b/exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/AbstractHttpTelemetryExporterTest.java @@ -611,7 +611,7 @@ void error() { LoggingEvent log = logs.assertContains( - "Failed to export " + "Failed to export 1 " + type + "s. Server responded with HTTP status code 500. Error message:"); assertThat(log.getLevel()).isEqualTo(Level.WARN);