On Thu, 22 Apr 2021 16:00:32 GMT, Jaroslav Bachorik <jbacho...@openjdk.org> wrote:
>> With this change it becomes possible to surface various cgroup level metrics >> (available via `jdk.internal.platform.Metrics`) as JFR events. >> >> Only a subset of the metrics exposed by `jdk.internal.platform.Metrics` is >> turned into JFR events to start with. >> * CPU related metrics >> * Memory related metrics >> * I/O related metrics >> >> For each of those subsystems a configuration data will be emitted as well. >> The initial proposal is to emit the configuration data events at least once >> per chunk and the metrics values at 30 seconds interval. >> By using these values the emitted events seem to contain useful information >> without increasing overhead (the metrics values are read from `/proc` >> filesystem so that should not be done too frequently). > > Jaroslav Bachorik has updated the pull request with a new target base due to > a merge or a rebase. The incremental webrev excludes the unrelated changes > brought in by the merge/rebase. The pull request contains 13 additional > commits since the last revision: > > - Prevent event container bytecode generation if no container present > - Fix event metadata > - Roll back conditional registration of container events > - Remove container events flag > - Remove trailing spaces > - Doh > - Report container type and register events conditionally > - Remove unused test files > - Initial test support for JFR container events > - Update the JFR control files > - ... and 3 more: > https://git.openjdk.java.net/jdk/compare/23dc6e83...04c3f092 @jbachorik The test needs fixing. test/hotspot/jtreg/containers/docker/TestJFREvents.java line 147: > 145: .addClassOptions(eventName, > "period=endChunk")) > 146: .shouldHaveExitValue(0) > 147: .shouldContain(memoryPressureFld) This test fails for me on cgroupv1 with: ----------System.err:(42/1407)---------- stdout: [===== EventType: jdk.ContainerMemoryUsage startTime = 946400166 duration = 0 eventThread = { osName = "main" osThreadId = 6 javaName = "main" javaThreadId = 1 group = { parent = { parent = N/A name = "system" } name = "main" } } stackTrace = null memoryFailCount = 0 memoryUsage = 57786368 swapMemoryUsage = 57782272 ]; stderr: [] exitValue = 0 java.lang.RuntimeException: 'memoryPressure' missing from stdout/stderr at jdk.test.lib.process.OutputAnalyzer.shouldContain(OutputAnalyzer.java:206) at TestJFREvents.testMemoryUsage(TestJFREvents.java:147) at TestJFREvents.main(TestJFREvents.java:77) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127) at java.base/java.lang.Thread.run(Thread.java:831) JavaTest Message: Test threw exception: java.lang.RuntimeException: 'memoryPressure' missing from stdout/stderr JavaTest Message: shutting down test I think `memoryPressure` got removed from the code and, thus, should get removed from the test. ------------- Changes requested by sgehwolf (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/3126