Skip to content

Commit a1fd5df

Browse files
authored
Suppress ingestion sampling warnings (#2473)
1 parent f8137a7 commit a1fd5df

File tree

1 file changed

+13
-14
lines changed

1 file changed

+13
-14
lines changed

agent/azure-monitor-exporter/src/main/java/com/azure/monitor/opentelemetry/exporter/implementation/logging/DiagnosticTelemetryPipelineListener.java

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
package com.azure.monitor.opentelemetry.exporter.implementation.logging;
2323

2424
import static com.azure.monitor.opentelemetry.exporter.implementation.utils.AzureMonitorMsgId.INGESTION_ERROR;
25+
import static java.util.Collections.singleton;
2526

2627
import com.azure.monitor.opentelemetry.exporter.implementation.pipeline.TelemetryPipeline;
2728
import com.azure.monitor.opentelemetry.exporter.implementation.pipeline.TelemetryPipelineListener;
@@ -66,13 +67,12 @@ public void onResponse(TelemetryPipelineRequest request, TelemetryPipelineRespon
6667
break;
6768
case 206: // PARTIAL CONTENT, Breeze-specific: PARTIAL SUCCESS
6869
case 400: // breeze returns if json content is bad (e.g. missing required field)
69-
operationLogger.recordFailure(
70-
"Received response code "
71-
+ responseCode
72-
+ " ("
73-
+ getErrorMessageFromPartialSuccessResponse(response.getBody())
74-
+ ")",
75-
INGESTION_ERROR);
70+
Set<String> errors = getErrors(response.getBody());
71+
if (!errors.isEmpty()) {
72+
operationLogger.recordFailure(
73+
"Received response code " + responseCode + " (" + String.join(", ", errors) + ")",
74+
INGESTION_ERROR);
75+
}
7676
break;
7777
case 307:
7878
case 308:
@@ -126,21 +126,20 @@ public CompletableResultCode shutdown() {
126126
return CompletableResultCode.ofSuccess();
127127
}
128128

129-
private static String getErrorMessageFromPartialSuccessResponse(String body) {
129+
private static Set<String> getErrors(String body) {
130130
JsonNode jsonNode;
131131
try {
132132
jsonNode = new ObjectMapper().readTree(body);
133133
} catch (JsonProcessingException e) {
134134
// fallback to generic message
135-
return "Could not parse response";
135+
return singleton("Could not parse response");
136136
}
137137
List<JsonNode> errorNodes = new ArrayList<>();
138138
jsonNode.get("errors").forEach(errorNodes::add);
139-
Set<String> errors =
140-
errorNodes.stream()
141-
.map(errorNode -> errorNode.get("message").asText())
142-
.collect(Collectors.toSet());
143-
return String.join(", ", errors);
139+
return errorNodes.stream()
140+
.map(errorNode -> errorNode.get("message").asText())
141+
.filter(s -> !s.equals("Telemetry sampled out."))
142+
.collect(Collectors.toSet());
144143
}
145144

146145
private static String getErrorMessageFromCredentialRelatedResponse(

0 commit comments

Comments
 (0)