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 4 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
85 changes: 85 additions & 0 deletions config/openshift/cryostat-quickstart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
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: "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. 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. For Cryostat to use JMX, you must enable and configure JMX when you start the JVM because Cryostat requires the target applications to expose a JMX port. Cryostat communicates with the target applications over this JMX port to start and stop JFR recordings and to pull JFR data over the network, enabling Cryostat to store and analyze this JFR data.
<br />
<br />
If you have not yet installed the 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 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. Click on the perspective switcher at the top of the navigation, 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. Add a single value entry environment variable where <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. Reference [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) for details on configuring authentication with SSL/TLS for Remote JMX. <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 />
1. Click on the perspective switcher at the top of the navigation, 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 bring up 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 service port is added to the Cryostat sample resource:** <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 />
3. Click on the **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 Cryostat: <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 />
3. The external link icon on the top right quadrant of the **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 />
4. Enter your OpenShift credentials to log in to the Cryostat web application. <br />
5. In the Cryostat web application, click on **Recordings** in the left navigation menu. <br />
6. View quarkus-quickstarts (or your deployed application) in the **Targets** list."
title: "View your Java Application as a target in 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.](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)"
Loading