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

feat(openshift): add Configuring Cryostat Quickstart #668

Merged
merged 9 commits into from
Nov 23, 2023
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -467,6 +467,7 @@ ifeq ($(DISABLE_SERVICE_TLS), true)
exit 1; \
fi; \
$(CLUSTER_CLIENT) patch --type=merge -p '{"spec":{"config":{"env":[{"name":"DISABLE_SERVICE_TLS","value":"true"}]}}}' "$${1}"
$(CLUSTER_CLIENT) create -f quickstart/cryostat-quickstart.yaml
endif

.PHONY: undeploy_bundle
Expand Down
1 change: 1 addition & 0 deletions config/manifests/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ resources:
- ../default
- ../samples
- ../scorecard
- ../openshift
ebaron marked this conversation as resolved.
Show resolved Hide resolved
ebaron marked this conversation as resolved.
Show resolved Hide resolved

patchesJson6902:
- path: targetNamespaces_patch.yaml
Expand Down
93 changes: 93 additions & 0 deletions config/openshift/cryostat-quickstart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
apiVersion: console.openshift.io/v1
kind: ConsoleQuickStart
metadata:
annotations:
capability.openshift.io/name: Console
name: configuring-cryostat
spec:
icon: >-
data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZmZmO30uY2xzLTJ7ZmlsbDojMWI0OTY1O30uY2xzLTN7ZmlsbDojOTVjOWU5O30uY2xzLTR7ZmlsbDojNWZhOGQzO308L3N0eWxlPjwvZGVmcz48cG9seWdvbiBjbGFzcz0iY2xzLTQiIHBvaW50cz0iNjYxLjc2IDEzOS40OSA2MDcuMzggODUuMTEgNTUwLjQ1IDE0Mi4wNCA1NTAuNDUgMCA0NzMuNTUgMCA0NzMuNTUgMTQyLjA0IDQxNi42MiA4NS4xMSAzNjIuMjQgMTM5LjQ5IDUxMiAyODkuMjYgNjYxLjc2IDEzOS40OSIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMiIgcG9pbnRzPSI1OTcuMzQgNjU5LjgyIDY5OC45MiA2ODcuMDQgNjc3LjY0IDYwNy42MyA3NTcuMDQgNTg2LjM1IDY4Mi42OSA1MTIgNzU3LjA0IDQzNy42NSA2NzcuNjQgNDE2LjM3IDY5OC45MSAzMzYuOTYgNTk3LjM0IDM2NC4xOCA1NzAuMTMgMjYyLjYxIDUxMiAzMjAuNzQgNDUzLjg3IDI2Mi42MSA0MjYuNjYgMzY0LjE4IDMyNS4wOSAzMzYuOTYgMzQ2LjM2IDQxNi4zNyAyNjYuOTYgNDM3LjY1IDM0MS4zMSA1MTIgMjY2Ljk2IDU4Ni4zNSAzNDYuMzYgNjA3LjYzIDMyNS4wOSA2ODcuMDQgNDI2LjY2IDY1OS44MiA0NTMuODcgNzYxLjM5IDUxMiA3MDMuMjYgNTcwLjEzIDc2MS4zOSA1OTcuMzQgNjU5LjgyIi8+PHBvbHlnb24gY2xhc3M9ImNscy0zIiBwb2ludHM9IjI0Ni4yMyA0NTIuMSAyMTcuMzkgNDgwLjk0IDI0OC43NCA1MTIuMjkgMjE3LjM5IDU0My42NCAyNDYuMjMgNTcyLjQ4IDMwNi40MiA1MTIuMjkgMjQ2LjIzIDQ1Mi4xIi8+PHBvbHlnb24gY2xhc3M9ImNscy0zIiBwb2ludHM9Ijc3Ny43NyA0NTEuNTIgODA2LjYxIDQ4MC4zNiA3NzUuMjYgNTExLjcxIDgwNi42MSA1NDMuMDYgNzc3Ljc3IDU3MS45IDcxNy41OCA1MTEuNzEgNzc3Ljc3IDQ1MS41MiIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMyIgcG9pbnRzPSI0MzEuNDkgNzcyLjQgMzkyLjA5IDc4Mi45NiAzODAuNjIgNzQwLjE0IDMzNy44IDc1MS42MSAzMjcuMjQgNzEyLjIyIDQwOS40NiA2OTAuMTkgNDMxLjQ5IDc3Mi40Ii8+PHBvbHlnb24gY2xhc3M9ImNscy0zIiBwb2ludHM9IjY5Ny4yNiA3MTEuOTMgNjg2LjcxIDc1MS4zMiA2NDMuODggNzM5Ljg1IDYzMi40MSA3ODIuNjcgNTkzLjAxIDc3Mi4xMSA2MTUuMDQgNjg5LjkgNjk3LjI2IDcxMS45MyIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMyIgcG9pbnRzPSI1OTIuNTEgMjUxLjYgNjMxLjkxIDI0MS4wNCA2NDMuMzggMjgzLjg2IDY4Ni4yIDI3Mi4zOSA2OTYuNzYgMzExLjc4IDYxNC41NCAzMzMuODEgNTkyLjUxIDI1MS42Ii8+PHBvbHlnb24gY2xhc3M9ImNscy0zIiBwb2ludHM9IjMyNi43NCAzMTIuMDcgMzM3LjI5IDI3Mi42OCAzODAuMTIgMjg0LjE1IDM5MS41OSAyNDEuMzMgNDMwLjk5IDI1MS44OSA0MDguOTYgMzM0LjEgMzI2Ljc0IDMxMi4wNyIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtNCIgcG9pbnRzPSIyNjQuMjggMTk2LjA1IDE5MCAyMTUuOTUgMjEwLjgzIDI5My43MiA4Ny44MiAyMjIuNyA0OS4zNyAyODkuMyAxNzIuMzggMzYwLjMyIDk0LjYxIDM4MS4xNiAxMTQuNTIgNDU1LjQ1IDMxOS4xIDQwMC42MyAyNjQuMjggMTk2LjA1Ii8+PHBvbHlnb24gY2xhc3M9ImNscy00IiBwb2ludHM9IjExNC41MiA1NjguNTYgOTQuNjEgNjQyLjg0IDE3Mi4zOCA2NjMuNjggNDkuMzcgNzM0LjcgODcuODIgODAxLjMgMjEwLjgzIDczMC4yOCAxOTAgODA4LjA1IDI2NC4yOCA4MjcuOTUgMzE5LjEgNjIzLjM3IDExNC41MiA1NjguNTYiLz48cG9seWdvbiBjbGFzcz0iY2xzLTQiIHBvaW50cz0iMzYyLjI0IDg4NC41MSA0MTYuNjIgOTM4Ljg5IDQ3My41NSA4ODEuOTYgNDczLjU1IDEwMjQgNTUwLjQ1IDEwMjQgNTUwLjQ1IDg4MS45NiA2MDcuMzggOTM4Ljg5IDY2MS43NiA4ODQuNTEgNTEyIDczNC43NCAzNjIuMjQgODg0LjUxIi8+PHBvbHlnb24gY2xhc3M9ImNscy00IiBwb2ludHM9Ijc1OS43MiA4MjcuOTUgODM0IDgwOC4wNSA4MTMuMTcgNzMwLjI4IDkzNi4xOCA4MDEuMyA5NzQuNjMgNzM0LjcgODUxLjYyIDY2My42OCA5MjkuMzkgNjQyLjg0IDkwOS40OCA1NjguNTUgNzA0LjkgNjIzLjM3IDc1OS43MiA4MjcuOTUiLz48cG9seWdvbiBjbGFzcz0iY2xzLTQiIHBvaW50cz0iOTA5LjQ4IDQ1NS40NCA5MjkuMzkgMzgxLjE2IDg1MS42MiAzNjAuMzIgOTc0LjYzIDI4OS4zIDkzNi4xOCAyMjIuNyA4MTMuMTcgMjkzLjcyIDgzNCAyMTUuOTUgNzU5LjcyIDE5Ni4wNSA3MDQuOSA0MDAuNjMgOTA5LjQ4IDQ1NS40NCIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTUxMi41NCw1NzkuNDdjLTM3LjQ3LDAtNjcuOTYtMzAuNDktNjcuOTYtNjcuOTZzMzAuNDktNjcuOTYsNjcuOTYtNjcuOTZjMjUuMTEsMCw0Ny4wNiwxMy42OSw1OC44MiwzNGw2OS4xNy0zOS43Ni0xMjguNTMtNzQuMjEtMTI4LjUzLDc0LjIxdjE0OC40MmwxMjguNTMsNzQuMjEsMTI4LjUzLTc0LjIxLTY5LjE3LTQwLjczYy0xMS43NywyMC4zLTMzLjcyLDMzLjk5LTU4LjgyLDMzLjk5WiIvPjwvc3ZnPgo=
title: Configure Java applications with the Red Hat build of Cryostat
conclusion: Your Java application has now been configured to be detected by Cryostat. To profile your Java applications with Cryostat, please follow this documentation.
description: Configure your Java applications on OpenShift to be profiled and monitored using the Red Hat build of Cryostat.
durationMinutes: 10
displayName: Configuring Cryostat
introduction: "Red Hat build of Cryostat is a container-native Java application based on JDK Flight Recorder (JFR). You can use it to monitor the performance of the Java Virtual Machine (JVM) for containerized workloads that run on an OpenShift cluster.
<br />
<br />
- To enable Cryostat to gather, store, and analyze Java Flight Recorder (JFR) data about target applications that run on Java Virtual Machine (JVM)s, you must configure the applications so that Cryostat can detect and connect to them.
<br />
- This requires you to configure your Java applications to allow Java Management Extensions (JMX) connections and use an OpenShift Service for detection and JMX for connectivity.
<br />
<br />
JMX is a standard feature on a JVM with which you can monitor and manage target applications that run on the JVM. You must enable and configure JMX when you start the JVM because Red Hat build of Cryostat requires the target applications to expose a JMX port, so that it can communicate with the target applications over this JMX port. Red Hat build of Cryostat starts and stops the JFR recordings and pulls the JFR data over the network, enabling it to store and analyze this JFR data.
<br />
<br />
If you have not yet installed the Red Hat Build of Cryostat operator, start with the “Get started with the Red Hat build of Cryostat” quick start.
<br />
<br />
In this quick start, you will complete the following tasks:
<br />
1. Enable remote Java Management Extensions (JMX) connections on your Java application<br />
2. Update Red Hat OpenShift Services with the remote JMX port<br />
3. View your Java application as a target in the Red Hat build of Cryostat web application<br />
Note: The quickstart uses a sample [Quarkus application.](https://github.com/quarkusio/quarkus-quickstarts) You can deploy your own Quarkus application or follow the quarkus-with-s2i quick start.\ "
tasks:
- description: "To enable remote JMX connections: <br /><br />
1. In the main navigation, click the dropdown menu and select <b>Administrator</b>. <br />
2. In the navigation menu, click **Workloads > Deployments.** <br />
3. Click on the quarkus-quickstarts deployment name (or your application’s deployment name). <br />
4. Click **Environment.** <br />
5. In the XXX window/panel, add the following environment variable: <br /><br />
**Name:** JAVA\_OPTS\_APPEND <br />
**Value:** -Dcom.sun.management.jmxremote.port=9091 <br /> -Dcom.sun.management.jmxremote.authenticate=false <br /> -Dcom.sun.management.jmxremote.ssl=false <br /><br />
Note: This method enables remote JMX without authentication. For details on configuring authentication with SSL/TLS for Remote JMX, see [Configuring Java applications](https://access.redhat.com/documentation/en-us/red_hat_build_of_cryostat/2/html/getting_started_with_cryostat/assembly_configuing-java-applications_cryostat)<br /><br />
6. Click **Save.**"
title: "Enable **Remote Java Management Extensions (JMX) connections** on your Java Application"
review:
failedTaskHelp: "This task isn’t verified yet. Try the task again."
instructions: |-
"Click **Reload** at the bottom of the **Environment** tab.
1. Do you see a **single values entry** for **JAVA\_OPTS\_APPEND?**"
summary:
failed: This task isn’t verified yet. Try the task again.
success: You have enabled remote JMX connections.
- description: "To update Red Hat OpenShift Service with the remote JMX port: <br /><br /> In the main navigation, click the dropdown menu and select **Administrator.** <br />
2. In the navigation menu, click **Networking > Services.** <br />
3. Click on the quarkus-quickstarts service name (or your application’s service name). <br />
4. Click the “YAML” tab to open the YAML editor. <br />
5. In the **spec > ports** section, add a new port for jfr-jmx <br />
/code <br />
- name: jfr-jmx <br />
protocol: TCP <br />
port: 9091 <br />
targetPort: 9091 <br />
6. Click **Save**. <br />"
title: "Updating Red Hat OpenShift Service with the remote JMX port:"
review:
failedTaskHelp: "This task isn't verified yet. Try the task again, or read more about this topic."
instructions: |-
"**Verify that the service port is added to the sample resource:** <br />
1. In the main navigation, click the dropdown menu and select **Developer.** <br />
2. In the navigation menu, click **Topology.** <br />
3. Click **Cryostat-sample pod > Resources.** <br />"
summary:
failed: "This task isn't verified yet. Try the task again, or [read more](https://access.redhat.com/documentation/en-us/red_hat_build_of_cryostat/2/html/getting_started_with_cryostat/assembly_configuing-java-applications_cryostat) about this topic."
success: "You have updated the Red Hat Openshift Service with the Remote JMX Port."
- description: "View your Java application as a target in the Red Hat build of Cryostat web application: <br /><br />
1. Click on the perspective switcher at the top of the navigation, and select **Developer.** <br />
2. In the navigation menu, click **Topology.** <br /><br /> The external link icon on **cryostat-sample deployment** represents the route URL. Click on the external link icon to open the URL and run the Cryostat web application in a new browser tab. <br />
3. Click the external link icon to open the URL and run the Cryostat web application in a new browser tab.
4. Enter your Red Hat OpenShift credentials to log in to the Cryostat web application. <br />
5. In the web application, click **Recordings** in the navigation menu. <br />
6. View quarkus-quickstarts (or your deployed application) in the **Targets** list. <br /><br />
Your Java application has now been configured to be detected by Cryostat. To profile your Java applications with Cryostat, please follow [this documentation.](https://access.redhat.com/documentation/en-us/red_hat_build_of_cryostat/2/html/getting_started_with_cryostat/assembly_creating-recordings_assembly_configuing-java-applications)"
title: "View your Java Application as a target in Cryostat"
review:
failedTaskHelp: "This task isn't verified yet. Try the task again, or read more about this topic."
instructions: |-
"Verify your Java application is running on Red Hat build of Cryostat web application: <br /><br />
Did your Java application open in a separate browser window?"
conclusion: >-
"Red Hat build of Cryostat is now configured."

2 changes: 2 additions & 0 deletions config/openshift/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
resources:
- cryostat-quickstart.yaml
Loading