8288982: JFR: Log event streaming actions

Reviewed-by: mgronlun
This commit is contained in:
Erik Gahlin 2022-06-22 19:37:51 +00:00
parent 82c77ca807
commit 58b6937b09
3 changed files with 17 additions and 1 deletions
src/jdk.jfr/share/classes/jdk/jfr/internal/consumer
test/jdk/jdk/jfr/api/consumer/recordingstream

@ -85,6 +85,9 @@ public abstract class AbstractEventStream implements EventStream {
synchronized (streamConfiguration) {
dispatcher = new Dispatcher(streamConfiguration);
streamConfiguration.setChanged(false);
if (Logger.shouldLog(LogTag.JFR_SYSTEM_STREAMING, LogLevel.DEBUG)) {
Logger.log(LogTag.JFR_SYSTEM_STREAMING, LogLevel.DEBUG, dispatcher.toString());
}
}
}
return dispatcher;

@ -209,4 +209,15 @@ final class Dispatcher {
public boolean hasMetadataHandler() {
return metadataActions.length > 0;
}
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("Error actions: " + errorActions.length + "\n");
sb.append("Meta actions: " + metadataActions.length + "\n");
sb.append("Flush actions: " + flushActions.length + "\n");
sb.append("Close actions: " + closeActions.length+ "\n");
sb.append("Event dispatchers: " + dispatchers.length+ "\n" );
sb.append("Dispatch lookup size: " + dispatcherLookup.size());
return sb.toString();
}
}

@ -35,7 +35,7 @@ import jdk.jfr.consumer.RecordingStream;
* @key jfr
* @requires vm.hasJFR
* @library /test/lib /test/jdk
* @run main/othervm jdk.jfr.api.consumer.recordingstream.TestOnEvent
* @run main/othervm -Xlog:jfr+system+streaming=debug jdk.jfr.api.consumer.recordingstream.TestOnEvent
*/
public class TestOnEvent {
@ -154,12 +154,14 @@ public class TestOnEvent {
EventProducer p = new EventProducer();
p.start();
Thread addHandler = new Thread(() -> {
log("About to add handler");
r.onEvent(e -> {
// Got event, close stream
log("Executing onEvent");
r.close();
log("RecordingStream closed");
});
log("Handler added");
});
r.onFlush(() -> {
// Only add handler once