Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Remove iKeys from logs
  • Loading branch information
jeanbisutti committed Jan 3, 2025
commit 474365cedfd5093e9e84cc1952fe1db04ea027e1
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import java.util.zip.GZIPOutputStream;

import static com.azure.monitor.opentelemetry.autoconfigure.implementation.utils.AzureMonitorMsgId.TELEMETRY_ITEM_EXPORTER_ERROR;
Expand Down Expand Up @@ -131,18 +132,9 @@ CompletableResultCode internalSendByBatch(TelemetryItemBatchKey telemetryItemBat
private static List<ByteBuffer> serialize(List<TelemetryItem> telemetryItems) {
try {
if (logger.canLogAtLevel(LogLevel.VERBOSE)) {
try (StringWriter debug = new StringWriter()) {
for (int i = 0; i < telemetryItems.size(); i++) {
JsonWriter jsonWriter = JsonProviders.createWriter(debug);
telemetryItems.get(i).toJson(jsonWriter);
jsonWriter.flush();

if (i < telemetryItems.size() - 1) {
debug.write('\n');
}
}
logger.verbose("sending telemetry to ingestion service:{}{}", System.lineSeparator(), debug);
}
String json = toJson(telemetryItems);
String jsonWithoutIKeys = removeIKeys(telemetryItems, json);
logger.verbose("sending telemetry to ingestion service:{}{}", System.lineSeparator(), jsonWithoutIKeys);
}

ByteBufferOutputStream out = writeTelemetryItemsAsByteBufferOutputStream(telemetryItems);
Expand All @@ -157,6 +149,30 @@ private static List<ByteBuffer> serialize(List<TelemetryItem> telemetryItems) {
}
}

private static String toJson(List<TelemetryItem> telemetryItems) throws IOException {
try (StringWriter debug = new StringWriter()) {
for (int i = 0; i < telemetryItems.size(); i++) {
JsonWriter jsonWriter = JsonProviders.createWriter(debug);
TelemetryItem telemetryItem = telemetryItems.get(i);
telemetryItem.toJson(jsonWriter);
jsonWriter.flush();
if (i < telemetryItems.size() - 1) {
debug.write('\n');
}
}
return debug.toString();
}
}

private static String removeIKeys(List<TelemetryItem> telemetryItems, String json) {
Set<String> iKeys
= telemetryItems.stream().map(TelemetryItem::getInstrumentationKey).collect(Collectors.toSet());
for (String instrumentationKey : iKeys) {
json = json.replace(instrumentationKey, "***");
}
return json;
}

// gzip and add new line delimiter from a list of telemetry items to a byte buffer output stream
private static ByteBufferOutputStream
writeTelemetryItemsAsByteBufferOutputStream(List<TelemetryItem> telemetryItems) throws IOException {
Expand Down
Loading