<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Gunnar Morling on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/author/gunnarmorling/</link><description>Articles written by Gunnar Morling on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 25 Feb 2021 09:44:43 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/author/gunnarmorling/index.xml" rel="self" type="application/rss+xml"/><item><title>Towards Continuous Performance Regression Testing</title><link>https://foojayio.github.io/website/today/towards-continuous-performance-regression-testing/</link><pubDate>Thu, 25 Feb 2021 09:44:43 +0000</pubDate><guid>https://foojayio.github.io/website/today/towards-continuous-performance-regression-testing/</guid><description>&lt;p&gt;Functional unit and integration tests are a standard tool of any software development organization, helping not only to ensure correctness of newly implemented code, but also to identify regressions &amp;mdash; bugs in existing functionality introduced by a code change. The situation looks different though when it comes to regressions related to non-functional requirements, in particular performance-related ones: How to detect increased response times in a web application? How to identify decreased throughput?&lt;/p&gt;</description></item><item><title>JmFrX: A Bridge From JMX to Java Flight Recorder</title><link>https://foojayio.github.io/website/today/introducing-jmfrx-a-bridge-from-jmx-to-java-flight-recorder/</link><pubDate>Thu, 03 Sep 2020 09:24:29 +0000</pubDate><guid>https://foojayio.github.io/website/today/introducing-jmfrx-a-bridge-from-jmx-to-java-flight-recorder/</guid><description>&lt;p&gt;I&amp;rsquo;m excited to share news about an open-source utility I&amp;rsquo;ve been working on lately: &lt;a href="https://github.com/gunnarmorling/jmfrx" target="_blank" rel="noopener noreferrer"&gt;JmFrX&lt;/a&gt;
, a tool for capturing JMX data with Java Flight Recorder.&lt;/p&gt;
&lt;p&gt;When using JMX (&lt;a href="https://en.wikipedia.org/wiki/Java_Management_Extensions" target="_blank" rel="noopener noreferrer"&gt;Java Management Extensions&lt;/a&gt;
), the Java platform&amp;rsquo;s standard for monitoring and managing applications, JmFrX allows you to periodically record the attributes from any JMX MBean into &lt;a href="https://openjdk.java.net/jeps/328" target="_blank" rel="noopener noreferrer"&gt;Java Flight Recorder&lt;/a&gt;
 (JFR) files, which you then can analyse using &lt;a href="https://openjdk.java.net/projects/jmc/" target="_blank" rel="noopener noreferrer"&gt;JDK Mission Control&lt;/a&gt;
 (JMC).&lt;/p&gt;</description></item><item><title>Monitoring REST APIs with Custom Java Flight Recorder Events</title><link>https://foojayio.github.io/website/today/monitoring-rest-apis-with-custom-flight-recorder-events/</link><pubDate>Wed, 26 Aug 2020 08:36:57 +0000</pubDate><guid>https://foojayio.github.io/website/today/monitoring-rest-apis-with-custom-flight-recorder-events/</guid><description>&lt;p&gt;The &lt;a href="https://openjdk.java.net/jeps/328" target="_blank" rel="noopener noreferrer"&gt;Java Flight Recorder&lt;/a&gt;
 (JFR) is an invaluable tool for gaining deep insights into the performance characteristics of Java applications. Open-sourced in JDK 11, JFR provides a low-overhead framework for collecting events from Java applications, the JVM and the operating system.&lt;/p&gt;
&lt;p&gt;In this blog post, we&amp;rsquo;re going to explore how custom, application-specific JFR events can be used to monitor a REST API, allowing to track request counts, identify long-running requests and more. We&amp;rsquo;ll also discuss how the JFR &lt;a href="https://openjdk.java.net/jeps/349" target="_blank" rel="noopener noreferrer"&gt;Event Streaming API&lt;/a&gt;
, new in Java 14, can be used to export live events, making them available for monitoring and alerting via tools such as Prometheus and Grafana.&lt;/p&gt;</description></item></channel></rss>