Chapter 3. Feature enhancements Cryostat 2.1 includes feature enhancements that build upon the Cryostat 2.1 offerings. Archives view The Cryostat 2.1 web console includes an Archives menu item. After you select this menu item, an Archives Recording table displays on your console. This table improves upon the Cryostat 2.0 table in that it adheres to a split view and uses a GraphQL query to populate table data. The Archived Recordings table on the Archives menu item is different from the Archived Recordings table that displays on the Recordings menu in that it displays archives for all target JVMs. Figure 3.1. Archives view on the Cryostat web console cert-manager API Cryostat 2.1 supports version 1.5.3 , so that the Cryostat Operator now uses the cert-manager API to set TLS certificates for a target JVM. See, v1.5.3 ( cert-manager ) Create Target dialog box Cryostat 2.1 disables the Create button on the Create Target dialog box until you enter a value in the Connection URL field. Additionally, the Connection URL field includes an example of a JMX Service URL that you can refer to when you need to enter a valid URL in the field. Figure 3.2. The Create Target dialog box in the Dashboard menu item Cryostat Operator service customization The Cryostat Operator now includes a spec.serviceOptions property in its YAML configuration file, so that you can change the following service options for the operator: Annotations Labels Port numbers Service type After you make changes to the default service option values, the Cryostat Operator creates services for the following components: Cryostat application Grafana application Report generator microservice Cryostat Operator details The Cryostat Operator details page on the OpenShift Container Platform (OCP) web console includes the following enhancements: An updated name reference for the Cryostat Operator. Before the Cryostat 2.1 release, the Cryostat application and Cryostat Operator were named similarly on OCP. A link to the Cryostat website Figure 3.3. New enhancements on the Cryostat Operator details page Download file behavior of Cryostat When you downloaded a file from your Cryostat 2.0 web console, such as selecting the Download Recording item from the Active Recordings overflow menu, you would need to complete the following steps: Download the remote file into your default web browser's memory. Create a local object URL for the blob file item. This behavior voided the purpose of the Cancel option from your web browser's downloads menu. This might be problematic if you wanted to cancel the download operation of the JFR binary file. Cryostat 2.1 relies on the HTML 5 download attribute that is available with your web browser to manage a file download. This attribute reads the anchor element from the href attribute and then instructs your web browser to download the file. This download operation decreases the time it takes for your web browser to display the Save File menu, so that you can choose to cancel the download operation before saving the file to your local system. File upload functionality During a large file upload operation on Cryostat 2.1, such as re-uploading an archived recording from the Re-Upload Archived Recordings dialog box, you can click the Cancel button to stop the file upload operation. An Upload in Progress dialog box displays, where you must choose to proceed with the cancel operation. Figure 3.4. Cancel button on the Re-Upload Archived Recordings dialog box After the cancel operation completes, your web browser displays the size of the JFR file that was not transferred to your Cryostat application. jfr-datasource container Cryostat 2.0 contained an issue where the Cryostat web console would not display the version number on the About page. Cryostat 2.1 fixes this issue by changing the codebase to ensure that the version number displays on this page, regardless of the jfr-datasource or grafana dashboard configuration settings. Figure 3.5. About page on the Cryostat web console Netty performance regression Handler implementations that use the Vert.x BodyHandler class no longer experience the performance issues that were evident in Cryostat 2.0, such as accepting file uploads where a standard HTTP form upload was expected by a handler. These file uploads could lead to resource constraints for Vert.x, because the handlers might permanently store such files in the temporary file-upload storage location on Vert.x. Additionally, Netty's parsing of POST form bodies could lead to higher than expected memory usage while processing API requests. Cryostat 2.1 uses Vert.x version 3.9.9 , which includes an upgrade to Netty, version 4.1.67 . This upgrade improves both the speed and logic on how handlers upload files to Vert.x. Red Hat OpenShift cluster connections with external JVMs Cryostat 2.0 had a known issue with connecting an Red Hat OpenShift cluster with JVMs located on nodes different to those running on a Cryostat node. Cryostat 2.1 resolves this issue with the new CRYOSTYAT_ENABLE_JDP_BROADCAST environment variable, which is set to false as default. The default configuration of this environment variable disables the Java Discovery Protocol (JDP) on Red Hat OpenShift, so that Cryostat 2.1 can now connect to JVMs that are located on any nodes. See, Known issues (Cryostat 2.0) RecordingPostHandler behavior change Cryostat 2.1 enhances the RecordingPostHandler implementation so that it now sequentially parses a JFR binary. The implementation in Cryostat 2.0 parsed data and then constructed a list of events. The new implementation has the following advantages: Provides a simple method Requires less resources to run Validates uploaded data much faster than the behavior Security menu item After you select the Security menu item on your Cryostat 2.1 instance, you can access the Store JMX Credentials tile. Figure 3.6. Store JMX Credentials on the Security menu item The Store JMX Credentials tile provides a convenient way to easily view any target JVMs that have stored JMX credentials. Additionally, on this tile item, you can add stored credentials to a specific target JVM. For a target JVM that requires JMX authentication, you must provide your username and password when prompted. Cryostat can use stored credentials when attempting to open JMX connections to a target JVM. setCachedTargetSelect implementation Before the Cryostat 2.1 release, when you logged into your Cryostat web console and navigated to the Dashboard , the JVM you selected from your session would display as the default value under the Target JVM drop-down list. This would occur even if Cryostat can no longer connect to this JVM. Cryostat 2.1 resolves this issue by refreshing the list of target JVMs at the start of each new session and then only lists JVMs where it can establish a connection. You can configure the refresh period for your Cryostat web console by navigating to Settings > Auto-Refresh . In the provided field, you can specify a value in seconds, minutes, or hours. You must select the Enable checkbox to complete the configuration. Username on GUI masthead Cryostat 2.1 fetches a username from the /v2.1/auth endpoint, so it can display a username in the Cryostat web console masthead. In Cryostat 2.0, you could only view your username when you start a Cryostat instance in basic authentication mode. Figure 3.7. Username displaying on the masthead of the Cryostat web console WebSocket API Cryostat 2.1 updates its WebSocket API to support unlimited WebSocket client connections. Before this release, the WebSocket API could only support a maximum of 64 client connections. For Cryostat 2.1, the WebSocket API can now automatically receive information about actions performed by an unlimited number of connected clients that are using the same one-way push Notification Channel (NC) channel.

Commands: