in universal-profiling-integration/src/main/java/co/elastic/otel/UniversalProfilingProcessor.java [270:294]
private void consumeProfilerMessages() {
StringBuilder tempBuffer = new StringBuilder();
try {
while (true) {
try {
ProfilerMessage message =
UniversalProfilingCorrelation.readProfilerReturnChannelMessage();
if (message == null) {
break;
} else if (message instanceof TraceCorrelationMessage) {
handleMessage((TraceCorrelationMessage) message, tempBuffer);
} else if (message instanceof ProfilerRegistrationMessage) {
handleMessage((ProfilerRegistrationMessage) message);
} else {
log.log(Level.FINE, "Received unknown message type from profiler: {0}", message);
}
} catch (DecodeException e) {
log.log(Level.WARNING, "Failed to read profiler message", e);
// intentionally no break here, subsequent messages might be decodeable
}
}
} catch (Exception e) {
log.log(Level.SEVERE, "Cannot read from profiler socket", e);
}
}