Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Native Image Native Memory Tracking (NMT) option and update docs #44000

Merged
merged 1 commit into from
Nov 5, 2024

Conversation

roberttoyonaga
Copy link
Contributor

@roberttoyonaga roberttoyonaga commented Oct 21, 2024

Summary

This is a small PR to update the monitoring options to include the new native memory tracking support in Native Image. It's another monitoring option similar to JFR or JMX. I've also done a small corresponding update to the documentation as well.
Users will then be able to include the feature at build time with: -Dquarkus.native.monitoring=nmt

In addition, I updated the JFR docs with a section on the new functionality in GraalVM for JDK 23.

See here for more info: https://www.graalvm.org/latest/reference-manual/native-image/debugging-and-diagnostics/NMT/

Copy link

github-actions bot commented Oct 21, 2024

🙈 The PR is closed and the preview is expired.

This comment has been minimized.

This comment has been minimized.

@roberttoyonaga
Copy link
Contributor Author

It looks like all the GHA tests in JVM Tests - JDK 17 Windows are failing due to java.net.BindException: Address already in use: bind. I'm not sure this is related to the changes in this PR becuase I'm primarily changing documentation.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

Copy link
Member

@dmlloyd dmlloyd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM; @zakkak?

Copy link
Contributor

@zakkak zakkak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

FTR: I considered if it's worth having a check in Quarkus to avoid build failures when using GraalVM < 24.1 (where the nmt option is not available), but it seems impossible since there is no reliable way to know the GraalVM version before actually running the build (especially in multi-stage builds).

Copy link
Contributor

@zakkak zakkak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some minor doc change I thought about on a second pass.

docs/src/main/asciidoc/building-native-image.adoc Outdated Show resolved Hide resolved
Copy link
Contributor

@zakkak zakkak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you Robert. It would be great if you could also squash the 2 commits in one (no need to keep the co-authored part).

Copy link

quarkus-bot bot commented Nov 4, 2024

Status for workflow Quarkus Documentation CI

This is the status report for running Quarkus Documentation CI on commit c294d26.

✅ The latest workflow run for the pull request has completed successfully.

It should be safe to merge provided you have a look at the other checks in the summary.

Warning

There are other workflow runs running, you probably need to wait for their status before merging.

Copy link

quarkus-bot bot commented Nov 4, 2024

Status for workflow Quarkus CI

This is the status report for running Quarkus CI on commit c294d26.

✅ The latest workflow run for the pull request has completed successfully.

It should be safe to merge provided you have a look at the other checks in the summary.

You can consult the Develocity build scans.


Flaky tests - Develocity

⚙️ JVM Tests - JDK 21

📦 extensions/micrometer/deployment

io.quarkus.micrometer.deployment.binder.VertxHttpClientMetricsTest.testWebClientMetrics - History

  • event executor terminated - java.util.concurrent.RejectedExecutionException
java.util.concurrent.RejectedExecutionException: event executor terminated
	at io.netty.util.concurrent.SingleThreadEventExecutor.reject(SingleThreadEventExecutor.java:931)
	at io.netty.util.concurrent.SingleThreadEventExecutor.offerTask(SingleThreadEventExecutor.java:350)
	at io.netty.util.concurrent.SingleThreadEventExecutor.addTask(SingleThreadEventExecutor.java:343)
	at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:833)
	at io.netty.util.concurrent.SingleThreadEventExecutor.execute0(SingleThreadEventExecutor.java:824)
	at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:814)
	at io.vertx.core.impl.EventLoopExecutor.execute(EventLoopExecutor.java:35)

📦 integration-tests/opentelemetry-vertx-exporter

io.quarkus.it.opentelemetry.vertx.exporter.http.HttpNoTLSNoCompressionTest.test - History

  • Expecting Optional to contain a value but it was empty. - java.lang.AssertionError
java.lang.AssertionError: 

Expecting Optional to contain a value but it was empty.
	at io.quarkus.it.opentelemetry.vertx.exporter.AbstractExporterTest.verifyLogs(AbstractExporterTest.java:173)
	at io.quarkus.it.opentelemetry.vertx.exporter.AbstractExporterTest.test(AbstractExporterTest.java:54)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at io.quarkus.test.junit.QuarkusTestExtension.runExtensionMethod(QuarkusTestExtension.java:971)
	at io.quarkus.test.junit.QuarkusTestExtension.interceptTestMethod(QuarkusTestExtension.java:821)

@zakkak zakkak merged commit b059cbb into quarkusio:main Nov 5, 2024
55 checks passed
@quarkus-bot quarkus-bot bot added this to the 3.17 - main milestone Nov 5, 2024
@zakkak
Copy link
Contributor

zakkak commented Nov 5, 2024

Thank you @roberttoyonaga.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants