diff --git a/oci-apm-springboot/a-introduction/images/apm_diagram.png b/oci-apm-springboot/00-introduction/images/apm_diagram.png similarity index 100% rename from oci-apm-springboot/a-introduction/images/apm_diagram.png rename to oci-apm-springboot/00-introduction/images/apm_diagram.png diff --git a/oci-apm-springboot/a-introduction/images/apm_microservices_setup.png b/oci-apm-springboot/00-introduction/images/apm_microservices_setup.png similarity index 100% rename from oci-apm-springboot/a-introduction/images/apm_microservices_setup.png rename to oci-apm-springboot/00-introduction/images/apm_microservices_setup.png diff --git a/oci-apm-springboot/a-introduction/introduction.md b/oci-apm-springboot/00-introduction/introduction.md similarity index 54% rename from oci-apm-springboot/a-introduction/introduction.md rename to oci-apm-springboot/00-introduction/introduction.md index 72981dc82..796e9fc3b 100644 --- a/oci-apm-springboot/a-introduction/introduction.md +++ b/oci-apm-springboot/00-introduction/introduction.md @@ -1,16 +1,15 @@ # Introduction -## About this Workshop - +## About this workshop This workshop walks you through how to configure Spring Boot microservices deployed on Kubernetes for monitoring with the Oracle Application Performance Monitoring (APM) service. This enables automatic OpenTracing instrumentation and metrics collection that is used to provide full, end-to-end monitoring and diagnostics for the application. -In this workshop, you will provision the APM Java agent in either a file system (Paid Oracle account) or block volumes (Paid or Free tier account) mounted in the Oracle Cloud, deploy the agent to the Kubernetes cluster, instrument the APM Browser agent by inserting JavaScript code to a webpage and view traces and spans in APM Trace Explorer. +In this workshop, you will instrument the application using the OpenTelemetry (OTEL) Operator, which automatically inject and configure APM Java Agent to the Kubernetes cluster, instrument the APM Browser agent by inserting JavaScript code to a webpage and view traces and spans in APM Trace Explorer. >**Note:** The same approach demonstrated for Spring Boot Java microservices on Kubernetes can be used to configure other types of java application servers, such as WebLogic, deployed on Kubernetes. -![Workshop app architecture](images/apm_microservices_setup.png " ") +Estimated Time: 45 minutes -Estimated Time: 75 minutes +## Task 1: Know before you run ### About Oracle Cloud Infrastructure Application Performance Management (OCI APM) @@ -18,35 +17,30 @@ The diagram below provides an overview of the OCI APM Service, its features, com ![APM architecture](images/apm_diagram.png " ") -Among other capabilities, OCI APM includes an implementation of a Distributed Tracing system. It collects and processes transaction trace data (spans) from the monitored application and makes it available for viewing, dashboarding, exploration, alerts, etc. For more information on APM and Trace Explorer please refer to Application Performance Monitoring > **[Use Trace Explorer](https://docs.oracle.com/en-us/iaas/application-performance-monitoring/doc/use-trace-explorer.html)** section in the OCI Documentation. +Among other capabilities, OCI APM includes an implementation of a Distributed Tracing system. It collects and processes transaction trace data (spans) from the monitored application and makes it available for viewing, dash boarding, exploration, alerts, etc. For more information on APM and Trace Explorer please refer to Application Performance Monitoring > **[Use Trace Explorer](https://docs.oracle.com/en-us/iaas/application-performance-monitoring/doc/use-trace-explorer.html)** section in the OCI Documentation. -In the workshop, you will learn how to instrument a Java microservices application deployed on a Kubernetes cluster with APM agents. You will also learn how to create an APM domain in the Oracle Cloud and use Trace Explorer to search and view traces/spans in the APM User Interface. +In the workshop, you will learn how to automatically instrument a Java micro services application deployed on a Kubernetes cluster with APM agents. You will also learn how to create an APM domain in the Oracle Cloud and use Trace Explorer to search and view traces/spans in the APM User Interface. ->**Note:** Creating a file system requires OCI quota and permissions. If you are running the workshop in a free tier with 30 day free trial, please select to create block volumes. After completion of Lab 3, select **Lab 4 (Free Trial) "Create and configure block volumes"**, then proceed to **Lab 5 (Free Trial) "Instrument server monitoring on the block volumes"**. ### Objectives In this workshop, you will: * Create an APM domain, obtain Data Upload Endpoint and Data Keys -* Create a file system or block volumes in the Oracle Cloud Infrastructure, and mount it in the Kubernetes pods -* Download, provision and deploy the APM Java agent -* Apply custom storage configuration to the Kubernetes pods -* Instrument APM Browser agent +* Install OpenTelemetry Operator and deploy the APM Java agent +* Configure Kubernetes custom resource to automatically inject APM Browser Agent * Use APM Trace Explorer to view traces, spans, and span dimensions ### Prerequisites - -* An Oracle Free Tier with a 30-day free trial or Paid Cloud Account - Please view this workshop's LiveLabs landing page to see which environments are supported.
 +* An Oracle Free Tier with a 30-day free trial or Paid Cloud Account - Please view this workshop's LiveLabs landing page to see which environments are supported. >**Note:** If you have a **Free Trial** account when your Free Trial expires, your account will be converted to an **Always Free** account. You will not be able to conduct Free Tier workshops unless the Always Free environment is available. **[Click here for the Free Tier FAQ page.](https://www.oracle.com/cloud/free/faq.html)** If you are running the workshop in a Paid Cloud Account, ensure you have the permissions below: -* Oracle Cloud resources and permissions to create a file system. See **[Creating File Systems](https://docs.oracle.com/en-us/iaas/Content/File/Tasks/creatingfilesystems.htm)** and **[Service Limits](https://docs.oracle.com/en-us/iaas/Content/General/Concepts/servicelimits.htm#top)** in the Oracle Cloud documentation. -* Oracle Cloud Account Administrator role or manage apm-domains permission in the target compartment. See **[Perform Oracle Cloud Infrastructure Prerequisites (APM)](https://docs.oracle.com/en-us/iaas/application-performance-monitoring/doc/perform-oracle-cloud-infrastructure-prerequisite-tasks.html)** in the Oracle Cloud documentation. +* Oracle Cloud Account Administrator role or manage apm-domains permission in the target compartment. See **[Perform Oracle Cloud Infrastructure Prerequisites (APM)](https://docs.oracle.com/en-us/iaas/application-performance-monitoring/doc/perform-oracle-cloud-infrastructure-prerequisite-tasks.html)** in the Oracle Cloud documentation. ### More APM Workshops @@ -59,4 +53,4 @@ If you are running the workshop in a Paid Cloud Account, ensure you have the per - **Contributors** - Steven Lemme, Senior Principal Product Manager, Anand Prabhu, Sr. Member of Technical Staff, Avi Huber, Vice President, Product Management -- **Last Updated By/Date** - Yutaka Takatsu, March 2023 +- **Last Updated By/Date** - Yutaka Takatsu, November, 2024 diff --git a/oci-apm-springboot/b-lab-one-create-oke/create-oke.md b/oci-apm-springboot/01-create-oke/create-oke.md similarity index 82% rename from oci-apm-springboot/b-lab-one-create-oke/create-oke.md rename to oci-apm-springboot/01-create-oke/create-oke.md index 45b447281..942175ab8 100644 --- a/oci-apm-springboot/b-lab-one-create-oke/create-oke.md +++ b/oci-apm-springboot/01-create-oke/create-oke.md @@ -41,28 +41,28 @@ Watch the video below for a quick walk-through of the lab. 2. Make sure the **apmworkshop** is selected in the Compartment field, then click **Create cluster** - ![Oracle Cloud console, Clusters in Compartment](images/1-2-OKE.png " ") + ![Oracle Cloud console, Clusters in Compartment](images/1-2-oke.png " ") 3. Quick Create pane is pre-selected. Keep the default selection and click **Submit**. - ![Oracle Cloud console, Create cluster](images/1-3-OKE.png " ") + ![Oracle Cloud console, Create cluster](images/1-3-oke.png " ") 4. Name the cluster as **apmlab-cluser1**. Accept the default setting for other fields and click **Next**. - ![Oracle Cloud console, Create cluster](images/1-4-OKE.png " ") - ![Oracle Cloud console, Create cluster](images/1-5-OKE.png " ") + ![Oracle Cloud console, Create cluster](images/1-4-oke.png " ") + ![Oracle Cloud console, Create cluster](images/1-5-oke.png " ") 5. Review the configuration, and click **Create cluster**. - ![Oracle Cloud console, Create cluster](images/1-6-OKE.png " ") + ![Oracle Cloud console, Create cluster](images/1-6-oke.png " ") 6. Make sure all verification steps are cleared. Click **Close**. - ![Oracle Cloud console, Create cluster](images/1-7-OKE.png " ") + ![Oracle Cloud console, Create cluster](images/1-7-oke.png " ") 7. This will start to create a cluster, and takes 7 to 10 minutes to complete. While waiting for the creation of the cluster, you can proceed to the next lab to create an APM domain. In Lab 3, we will resume the steps to build the application. - ![Oracle Cloud console, Create cluster](images/1-8-OKE.png " ") + ![Oracle Cloud console, Create cluster](images/1-8-oke.png " ") @@ -75,4 +75,4 @@ You may now **proceed to the next lab**. - **Contributors** - Steven Lemme, Senior Principal Product Manager, Anand Prabhu, Sr. Member of Technical Staff, Avi Huber, Vice President, Product Management -* **Last Updated By/Date** - Yutaka Takatsu, August 2022 +* **Last Updated By/Date** - Yutaka Takatsu, November, 2024 diff --git a/oci-apm-springboot/01-create-oke/images/1-1-compartments.png b/oci-apm-springboot/01-create-oke/images/1-1-compartments.png new file mode 100644 index 000000000..fb80d85c0 Binary files /dev/null and b/oci-apm-springboot/01-create-oke/images/1-1-compartments.png differ diff --git a/oci-apm-springboot/01-create-oke/images/1-1-menu.png b/oci-apm-springboot/01-create-oke/images/1-1-menu.png new file mode 100644 index 000000000..1952ba10d Binary files /dev/null and b/oci-apm-springboot/01-create-oke/images/1-1-menu.png differ diff --git a/oci-apm-springboot/01-create-oke/images/1-2-compartments.png b/oci-apm-springboot/01-create-oke/images/1-2-compartments.png new file mode 100644 index 000000000..80f5f21e8 Binary files /dev/null and b/oci-apm-springboot/01-create-oke/images/1-2-compartments.png differ diff --git a/oci-apm-springboot/01-create-oke/images/1-2-oke.png b/oci-apm-springboot/01-create-oke/images/1-2-oke.png new file mode 100644 index 000000000..1e5306845 Binary files /dev/null and b/oci-apm-springboot/01-create-oke/images/1-2-oke.png differ diff --git a/oci-apm-springboot/01-create-oke/images/1-3-compartments.png b/oci-apm-springboot/01-create-oke/images/1-3-compartments.png new file mode 100644 index 000000000..1399fd117 Binary files /dev/null and b/oci-apm-springboot/01-create-oke/images/1-3-compartments.png differ diff --git a/oci-apm-springboot/01-create-oke/images/1-3-oke.png b/oci-apm-springboot/01-create-oke/images/1-3-oke.png new file mode 100644 index 000000000..f1a759819 Binary files /dev/null and b/oci-apm-springboot/01-create-oke/images/1-3-oke.png differ diff --git a/oci-apm-springboot/01-create-oke/images/1-4-compartments.png b/oci-apm-springboot/01-create-oke/images/1-4-compartments.png new file mode 100644 index 000000000..d43476138 Binary files /dev/null and b/oci-apm-springboot/01-create-oke/images/1-4-compartments.png differ diff --git a/oci-apm-springboot/01-create-oke/images/1-4-oke.png b/oci-apm-springboot/01-create-oke/images/1-4-oke.png new file mode 100644 index 000000000..e6beceee1 Binary files /dev/null and b/oci-apm-springboot/01-create-oke/images/1-4-oke.png differ diff --git a/oci-apm-springboot/01-create-oke/images/1-5-oke.png b/oci-apm-springboot/01-create-oke/images/1-5-oke.png new file mode 100644 index 000000000..3b274dc70 Binary files /dev/null and b/oci-apm-springboot/01-create-oke/images/1-5-oke.png differ diff --git a/oci-apm-springboot/01-create-oke/images/1-6-oke.png b/oci-apm-springboot/01-create-oke/images/1-6-oke.png new file mode 100644 index 000000000..8f68bcea5 Binary files /dev/null and b/oci-apm-springboot/01-create-oke/images/1-6-oke.png differ diff --git a/oci-apm-springboot/01-create-oke/images/1-7-oke.png b/oci-apm-springboot/01-create-oke/images/1-7-oke.png new file mode 100644 index 000000000..f830dd8fc Binary files /dev/null and b/oci-apm-springboot/01-create-oke/images/1-7-oke.png differ diff --git a/oci-apm-springboot/01-create-oke/images/1-8-oke.png b/oci-apm-springboot/01-create-oke/images/1-8-oke.png new file mode 100644 index 000000000..691e27f41 Binary files /dev/null and b/oci-apm-springboot/01-create-oke/images/1-8-oke.png differ diff --git a/oci-apm-springboot/c-lab-two-create-domain/create-domain.md b/oci-apm-springboot/02-create-domain/create-domain.md similarity index 94% rename from oci-apm-springboot/c-lab-two-create-domain/create-domain.md rename to oci-apm-springboot/02-create-domain/create-domain.md index ea648df66..191105af0 100644 --- a/oci-apm-springboot/c-lab-two-create-domain/create-domain.md +++ b/oci-apm-springboot/02-create-domain/create-domain.md @@ -25,10 +25,10 @@ Watch the video below for a quick walk-through of the lab. 1. From the OCI menu, select **Observability & Management**, then **Administration**. ![Oracle Cloud console Menu](images/2-1-domain.png " ") -2. Select the **apmworkshop** compartment from the pulldown menu. +2. Select the **apmworkshop** compartment from the pulldown menu. Then click **Create APM Domain**. ![Oracle Cloud console Menu](images/2-1-2-domain.png " ") -3. Click **Create APM Domain**. - ![Oracle Cloud console, Create APM Domain](images/2-2-domain.png " ") + + 4. Name your APM domain as **apmworkshop** and select the compartment you created. Add a check to the **“Create as Always Free Domain”**, then click **Create**. ![Oracle Cloud console, Create APM Domain](images/2-3-domain.png " ") @@ -71,4 +71,4 @@ You may now **proceed to the next lab**. Steven Lemme, Senior Principal Product Manager, Anand Prabhu, Sr. Member of Technical Staff, Avi Huber, Vice President, Product Management -* **Last Updated By/Date** - Yutaka Takatsu, December 2022 +* **Last Updated By/Date** - Yutaka Takatsu, November, 2024 diff --git a/oci-apm-springboot/02-create-domain/images/2-1-2-domain.png b/oci-apm-springboot/02-create-domain/images/2-1-2-domain.png new file mode 100644 index 000000000..f98bae7ac Binary files /dev/null and b/oci-apm-springboot/02-create-domain/images/2-1-2-domain.png differ diff --git a/oci-apm-springboot/02-create-domain/images/2-1-domain.png b/oci-apm-springboot/02-create-domain/images/2-1-domain.png new file mode 100644 index 000000000..140b9b29b Binary files /dev/null and b/oci-apm-springboot/02-create-domain/images/2-1-domain.png differ diff --git a/oci-apm-springboot/c-lab-two-create-domain/images/2-2-domain.png b/oci-apm-springboot/02-create-domain/images/2-2-domain.png similarity index 100% rename from oci-apm-springboot/c-lab-two-create-domain/images/2-2-domain.png rename to oci-apm-springboot/02-create-domain/images/2-2-domain.png diff --git a/oci-apm-springboot/02-create-domain/images/2-3-domain.png b/oci-apm-springboot/02-create-domain/images/2-3-domain.png new file mode 100644 index 000000000..901dc020f Binary files /dev/null and b/oci-apm-springboot/02-create-domain/images/2-3-domain.png differ diff --git a/oci-apm-springboot/02-create-domain/images/2-4-domain.png b/oci-apm-springboot/02-create-domain/images/2-4-domain.png new file mode 100644 index 000000000..76e569064 Binary files /dev/null and b/oci-apm-springboot/02-create-domain/images/2-4-domain.png differ diff --git a/oci-apm-springboot/02-create-domain/images/2-5-domain.png b/oci-apm-springboot/02-create-domain/images/2-5-domain.png new file mode 100644 index 000000000..4290cbe79 Binary files /dev/null and b/oci-apm-springboot/02-create-domain/images/2-5-domain.png differ diff --git a/oci-apm-springboot/02-create-domain/images/3-1-2-domain.png b/oci-apm-springboot/02-create-domain/images/3-1-2-domain.png new file mode 100644 index 000000000..6077a4638 Binary files /dev/null and b/oci-apm-springboot/02-create-domain/images/3-1-2-domain.png differ diff --git a/oci-apm-springboot/02-create-domain/images/3-1-domain.png b/oci-apm-springboot/02-create-domain/images/3-1-domain.png new file mode 100644 index 000000000..1dd4ed31a Binary files /dev/null and b/oci-apm-springboot/02-create-domain/images/3-1-domain.png differ diff --git a/oci-apm-springboot/02-create-domain/images/3-2-domain.png b/oci-apm-springboot/02-create-domain/images/3-2-domain.png new file mode 100644 index 000000000..571b5edaa Binary files /dev/null and b/oci-apm-springboot/02-create-domain/images/3-2-domain.png differ diff --git a/oci-apm-springboot/03-build-app/build-app.md b/oci-apm-springboot/03-build-app/build-app.md new file mode 100644 index 000000000..5515e1aa8 --- /dev/null +++ b/oci-apm-springboot/03-build-app/build-app.md @@ -0,0 +1,222 @@ +# Build a microservices application + +## Introduction + +This workshop uses Spring Boot-based Java microservices as a target application to trace against. In this lab, you will deploy the application to the Kubernetes cluster you created in Lab 1. + +Estimated time: 10 minutes + +### Objectives + +* Build a microservices application for monitoring + +### Prerequisites + +* Completion of the preceding labs in this workshop + +## Task 1: Verify OKE + +1. Go back to the Kubernetes cluster page where you left Lab 1, and check the status of the cluster. Open the navigation menu from the top left corner (aka. hamburger menu) in the Oracle Cloud console, and select **Developer Services** > **Kubernetes Clusters (OKE)**. + + ![Oracle Cloud console, Cluster details](images/1-1-menu.png " ") + +2. Click the **apmlab-cluser1** link from the table. + + ![Oracle Cloud console, Navigation Menu](images/1-2-menu.png " ") + +3. If the status of the cluster is **Active**, creation was successful. If it is still in a **Creating** status, it may take a few more minutes to complete. (Usually, it takes 7 to 10 minutes to finish the jobs to create a cluster). + + ![Oracle Cloud console, Cluster details](images/1-9-oke.png " ") + +## Task 2: Access the OKE in the Oracle Cloud shell + + +1. Click **Access Cluster** on the cluster details page. + + ![Oracle Cloud console, Cluster details](images/2-1-oke.png " ") + +2. Make sure the **Cloud Shell Access** is selected. Click the **Copy** link from the command to access kubeconfig for the cluster. + + ![Oracle Cloud console, Cluster details](images/2-2-oke.png " ") + +3. Then click **Launch Cloud Shell**. + + ![Oracle Cloud console, Cluster details](images/2-2-2-oke.png " ") + +4. Oracle Cloud Shell window opens at the lower side of the browser screen. + + ![Oracle Cloud console, Cluster details](images/2-3-oke.png " ") + +5. Paste the copied command to the command shell prompt. Then hit enter. + + ![Oracle Cloud console, Cluster details](images/2-4-oke.png " ") + + >**Note:** Save the command to a text file on your laptop, and execute it whenever you start a new Cloud Shell session while working in the labs in this workshop. + +## Task 3: Create a configuration file + +1. In the Cloud Shell, type down the command below to create a work directory. + + ``` bash + + mkdir ~/sb-hol;cd ~/sb-hol + + ``` + + ![Oracle Cloud console, Cloud Shell](images/3-1-mkdir.png " ") + +2. Use text editor (such as the vi editor tool) to create a configuration file within the directory. + + ``` bash + + vi wstore.yaml + + ``` + ![Oracle Cloud console, Cloud Shell](images/3-2-wstore.png " ") + + >**Note**: If you are using the vi editor, type i to enter Insert mode, and make the text editable. Use allow keys to navigate the text and make changes to where you set the cursor. To save a file, press the Esc key, then type :wq to write and quit the file. If you do not wish a change, press Esc then type :q! to discard your changes. Please refer to the editor's references for more usage. + + +3. Copy the content below and paste it into the configuration file. + + ``` bash + + apiVersion: v1 + kind: Service + metadata: + name: wstore-frontend + spec: + type: LoadBalancer + selector: + app: wstore-front + ports: + - protocol: TCP + port: 80 + targetPort: 8080 + externalTrafficPolicy: Local + --- + apiVersion: v1 + kind: Service + metadata: + name: wstore-backend + spec: + type: NodePort + selector: + app: wstore-back + ports: + - protocol: TCP + port: 8080 + targetPort: 8080 + --- + apiVersion: apps/v1 + kind: StatefulSet + metadata: + name: wstore-front + spec: + serviceName: "wstore-frontend" + replicas: 1 + selector: + matchLabels: + app: wstore-front + template: + metadata: + labels: + app: wstore-front + spec: + containers: + - name: wstore + image: iad.ocir.io/axfo51x8x2ap/p-winestore:latest + command: ["java", "-jar", "./wineStore.jar", "--spring.config.location=file:/spring/wstore.properties"] + ports: + - containerPort: 8080 + imagePullSecrets: + - name: ocirsecret + --- + apiVersion: apps/v1 + kind: StatefulSet + metadata: + name: wstore-back + spec: + serviceName: "wstore-backend" + replicas: 2 + selector: + matchLabels: + app: wstore-back + template: + metadata: + labels: + app: wstore-back + spec: + containers: + - name: wstore + image: iad.ocir.io/axfo51x8x2ap/p-winestore:latest + command: ["java", "-jar", "./wineStore.jar", "--spring.config.location=file:/spring/wstore.properties"] + ports: + - containerPort: 8080 + imagePullSecrets: + - name: ocirsecret + + + ``` + ![Oracle Cloud console, Cloud Shell](images/3-3-wstore-content.png " ") + + >**Note**: Make sure to keep the same space indentation when pasting the code into the file. + + + +## Task 4: Deploy the application + +1. Execute the command below to deploy the application to the cluster. + ``` bash + + kubectl apply -f ~/sb-hol/wstore.yaml + + ``` + + Verify the 2 services and 2 stateful sets are created. + + ![Oracle Cloud console, Cloud Shell](images/4-1-apply.png " ") + + +2. Run the kubectl command below to display the status of the pod creation. Wait until the statuses become 'Running'. This may take a few minutes. + + ``` bash + + kubectl get pods + + ``` + + ![Oracle Cloud console, Cloud Shell](images/4-2-pods.png " ") + +3. Run the kubectl command below to display the deployed services. + + ``` bash + + kubectl get svc + + ``` + +4. Copy the External IP of the wstore-frontend service + + ![Oracle Cloud console, Cloud Shell](images/4-3-svc.png " ") + +5. Refer to the below example and construct a URL, and paste it into a browser's address bar. If you see the WineCellar content as in the below screenshot, the deployment was successful. + + ``` bash + + http:///winestore/ + + ``` + ![Oracle Cloud console, Cloud Shell](images/4-4-app.png " ") + + >**Note:** It may take a few minutes to complete the deployment and start loading the page content on the screen for the first time. + +You may now **proceed to the next lab**. + +## Acknowledgements + +* **Author** - Yutaka Takatsu, Product Manager, Enterprise and Cloud Manageability +- **Contributors** - Steven Lemme, Senior Principal Product Manager, +Anand Prabhu, Sr. Member of Technical Staff, +Avi Huber, Vice President, Product Management +* **Last Updated By/Date** - Yutaka Takatsu, November, 2024 diff --git a/oci-apm-springboot/03-build-app/images/1-1-menu.png b/oci-apm-springboot/03-build-app/images/1-1-menu.png new file mode 100644 index 000000000..1952ba10d Binary files /dev/null and b/oci-apm-springboot/03-build-app/images/1-1-menu.png differ diff --git a/oci-apm-springboot/03-build-app/images/1-2-menu.png b/oci-apm-springboot/03-build-app/images/1-2-menu.png new file mode 100644 index 000000000..b8602a9b0 Binary files /dev/null and b/oci-apm-springboot/03-build-app/images/1-2-menu.png differ diff --git a/oci-apm-springboot/03-build-app/images/1-9-oke.png b/oci-apm-springboot/03-build-app/images/1-9-oke.png new file mode 100644 index 000000000..ad6ee836e Binary files /dev/null and b/oci-apm-springboot/03-build-app/images/1-9-oke.png differ diff --git a/oci-apm-springboot/03-build-app/images/2-1-oke.png b/oci-apm-springboot/03-build-app/images/2-1-oke.png new file mode 100644 index 000000000..2e81092fe Binary files /dev/null and b/oci-apm-springboot/03-build-app/images/2-1-oke.png differ diff --git a/oci-apm-springboot/03-build-app/images/2-2-2-oke.png b/oci-apm-springboot/03-build-app/images/2-2-2-oke.png new file mode 100644 index 000000000..4d47152ca Binary files /dev/null and b/oci-apm-springboot/03-build-app/images/2-2-2-oke.png differ diff --git a/oci-apm-springboot/03-build-app/images/2-2-oke.png b/oci-apm-springboot/03-build-app/images/2-2-oke.png new file mode 100644 index 000000000..ca3cb448b Binary files /dev/null and b/oci-apm-springboot/03-build-app/images/2-2-oke.png differ diff --git a/oci-apm-springboot/03-build-app/images/2-3-oke.png b/oci-apm-springboot/03-build-app/images/2-3-oke.png new file mode 100644 index 000000000..644984a06 Binary files /dev/null and b/oci-apm-springboot/03-build-app/images/2-3-oke.png differ diff --git a/oci-apm-springboot/03-build-app/images/2-4-oke.png b/oci-apm-springboot/03-build-app/images/2-4-oke.png new file mode 100644 index 000000000..0eed913e7 Binary files /dev/null and b/oci-apm-springboot/03-build-app/images/2-4-oke.png differ diff --git a/oci-apm-springboot/03-build-app/images/3-1-mkdir.png b/oci-apm-springboot/03-build-app/images/3-1-mkdir.png new file mode 100644 index 000000000..e06b6a05e Binary files /dev/null and b/oci-apm-springboot/03-build-app/images/3-1-mkdir.png differ diff --git a/oci-apm-springboot/03-build-app/images/3-2-wstore.png b/oci-apm-springboot/03-build-app/images/3-2-wstore.png new file mode 100644 index 000000000..69318612b Binary files /dev/null and b/oci-apm-springboot/03-build-app/images/3-2-wstore.png differ diff --git a/oci-apm-springboot/03-build-app/images/3-3-wstore-content.png b/oci-apm-springboot/03-build-app/images/3-3-wstore-content.png new file mode 100644 index 000000000..ffcd2a006 Binary files /dev/null and b/oci-apm-springboot/03-build-app/images/3-3-wstore-content.png differ diff --git a/oci-apm-springboot/03-build-app/images/4-1-apply.png b/oci-apm-springboot/03-build-app/images/4-1-apply.png new file mode 100644 index 000000000..f467b9ef7 Binary files /dev/null and b/oci-apm-springboot/03-build-app/images/4-1-apply.png differ diff --git a/oci-apm-springboot/03-build-app/images/4-2-pods.png b/oci-apm-springboot/03-build-app/images/4-2-pods.png new file mode 100644 index 000000000..2a49f865d Binary files /dev/null and b/oci-apm-springboot/03-build-app/images/4-2-pods.png differ diff --git a/oci-apm-springboot/03-build-app/images/4-3-svc.png b/oci-apm-springboot/03-build-app/images/4-3-svc.png new file mode 100644 index 000000000..4b3f7777e Binary files /dev/null and b/oci-apm-springboot/03-build-app/images/4-3-svc.png differ diff --git a/oci-apm-springboot/03-build-app/images/4-4-app.png b/oci-apm-springboot/03-build-app/images/4-4-app.png new file mode 100644 index 000000000..7caba76a9 Binary files /dev/null and b/oci-apm-springboot/03-build-app/images/4-4-app.png differ diff --git a/oci-apm-springboot/04-deploy-apm-agent/deploy-apm-agent.md b/oci-apm-springboot/04-deploy-apm-agent/deploy-apm-agent.md new file mode 100644 index 000000000..5e2248a33 --- /dev/null +++ b/oci-apm-springboot/04-deploy-apm-agent/deploy-apm-agent.md @@ -0,0 +1,157 @@ +# Instrument the server with OpenTelemetry Operator + +## Introduction + +In this lab, you will instrument the application using the OpenTelemetry (OTEL) Operator, which automatically inject and configure APM Java Agent to the Kubernetes cluster. + +The OCI APM Java agent is designed to monitor Java applications and supports multiple deployment options across Kubernetes and other environments. The latest addition to these options is the OTEL operator, a Kubernetes operator that simplifies the automatic injection of Java agents into JVMs running in Kubernetes Pods. + + ![OTEL deployment diagram](images/00-intro-otel-diagram.png " ") + + +You will also enable automatic APM Browser agent injection, which captures traces and spans generated by the browser, as part of the custom resource configuration. + +Estimated time: 5 minutes + + +### Objectives + +* Install cert-manager and the OpenTelemetry Operator. +* Use Kubernetes custom resources and annotations to deploy the APM agent to the cluster. +* Enable APM Browser Agent injection for real-time user session monitoring. + + + +### Prerequisites + +* Completion of the preceding labs in this workshop + +## Task 1: Install cert-manager and OpenTelemetry Operator + +As a pre-requisite to automatically deploy APM Java agent in the Kubernetes, cert-manager and OpenTelemetry Operator must to be installed. + +1. Run the command below to install cert-manager. + + ``` bash + + kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.2/cert-manager.yaml + + ``` + ![Oracle Cloud console, Cloud Shell](images/1-1-cert-manager.png " ") + +2. Once the command is complete, wait for 20 seconds to complete the configurations in the background. Then install the **[OpenTelemetry Operator](https://github.com/open-telemetry/opentelemetry-operator)** into the Kubernetes cluster by running the command below. + + ``` bash + + kubectl apply -f https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml + + ``` + + ![Oracle Cloud console, Cloud Shell](images/1-2-otel-operator.png " ") + + >**Note:** if you see an error, **no endpoints available for service "cert-manager-webhook"**, re-run the command to install OpenTelemetry Operator. + +## Task 2: Create Kubernetes custom resource definition + +To manage automatic instrumentation, the operator must have information about the agent and its configuration. + +The first requirement is addressed using a Custom Resource Definition (CRD). The Custom Resource will be used by the operator to copy the agent into the pod with required configuration. The OpenTelemetry operator uses Kubernetes annotations to determine which pods should be automatically injected with the OCI APM Java agent. + +In the custom resource, you can add parameters to enable APM Browser Agent Injection. This configures the APM Java Agent to automatically inject the browser agent, enabling real-time user session monitoring for the application. + + + +1. To create a custom resource definition, use text editor (such as the vi editor tool) to create a configuration file within the workshop directory. + + ``` bash + + vi ~/sb-hol/customapmresource.yaml + + ``` + +2. Copy the content below and paste it into the configuration file. Replace **Data Upload Endpoint**, **Private Data key** and the **Public Data key** (copied from the APM domain administration page in the previous labs) and save the file. + + + ``` bash + + apiVersion: opentelemetry.io/v1alpha1 + kind: Instrumentation + metadata: + name: inst-apm-java + namespace: opentelemetry-operator-system + spec: + java: + image: container-registry.oracle.com/oci_observability_management/oci-apm-java-agent:latest + env: + - name: OTEL_com_oracle_apm_agent_data_upload_endpoint + value: + - name: OTEL_com_oracle_apm_agent_private_data_key + value: + - name: OTEL_com_oracle_apm_agent_public_data_key + value: + - name: OTEL_com_oracle_apm_agent_rum_enable_injection + value: "true" + - name: OTEL_com_oracle_apm_agent_rum_service_name + value: wstore-web + - name: OTEL_com_oracle_apm_agent_rum_web_application + value: "Wstore WebApp" + + + ``` + ![Oracle Cloud console, Cloud Shell](images/2-1-create-cr.png " ") + + 3. Execute the command below to create a custom resource to the cluster. + + ``` bash + + kubectl apply -f ~/sb-hol/customapmresource.yaml + + ``` + + ![Oracle Cloud console, Cloud Shell](images/2-2-apply-cr.png " ") + + >**Note:** You can ignore the warning. + +## Task 3: Add an annotation to the namespace + +Another requirement to manage automatic instrumentation is to specify which pods should be instrumented. This is handed by special annotations. Annotations can be added to a namespace to inject all pods within that namespace. Alternatively, annotations can be applied to individual PodSpec objects, such as those in Deployment, StatefulSet, and other resources. In this lab, annotation is applied to the entire namespace for the learning purposes. + +1. Open the namespace to edit. + + ``` bash + + kubectl edit namespace default + + ``` + Copy the below lines below and insert them as shown in the example image. Ensure the indentation matches the level of the "labels:" key. + ``` bash + + annotations: + instrumentation.opentelemetry.io/inject-java: "opentelemetry-operator-system/inst-apm-java" + + ``` + ![Oracle Cloud console, Cloud Shell](images/3-1-annotation.png " ") + +## Task 4: Redeploy the application + +1. Run the command below to restart the stafulsets. This will redeploy the application. + + ``` bash + + kubectl rollout restart statefulset + + ``` + + ![Oracle Cloud console, Cloud Shell](images/4-1-restart-app.png " ") + + +You may now **proceed to the next lab**. + +## Acknowledgements + +* **Author** - Yutaka Takatsu, Product Manager, Enterprise and Cloud Manageability +- **Contributors** - Steven Lemme, Senior Principal Product Manager, +Anand Prabhu, Sr. Member of Technical Staff, +Mike Mu, Principal Member of Technical Staff +Avi Huber, Vice President, Product Management +* **Last Updated By/Date** - Yutaka Takatsu, November 2024 diff --git a/oci-apm-springboot/04-deploy-apm-agent/images/00-intro-otel-diagram.png b/oci-apm-springboot/04-deploy-apm-agent/images/00-intro-otel-diagram.png new file mode 100644 index 000000000..bac2ebf4e Binary files /dev/null and b/oci-apm-springboot/04-deploy-apm-agent/images/00-intro-otel-diagram.png differ diff --git a/oci-apm-springboot/04-deploy-apm-agent/images/1-1-cert-manager.png b/oci-apm-springboot/04-deploy-apm-agent/images/1-1-cert-manager.png new file mode 100644 index 000000000..b342c500c Binary files /dev/null and b/oci-apm-springboot/04-deploy-apm-agent/images/1-1-cert-manager.png differ diff --git a/oci-apm-springboot/04-deploy-apm-agent/images/1-2-otel-operator.png b/oci-apm-springboot/04-deploy-apm-agent/images/1-2-otel-operator.png new file mode 100644 index 000000000..512780d22 Binary files /dev/null and b/oci-apm-springboot/04-deploy-apm-agent/images/1-2-otel-operator.png differ diff --git a/oci-apm-springboot/04-deploy-apm-agent/images/2-1-create-cr.png b/oci-apm-springboot/04-deploy-apm-agent/images/2-1-create-cr.png new file mode 100644 index 000000000..548fd2a39 Binary files /dev/null and b/oci-apm-springboot/04-deploy-apm-agent/images/2-1-create-cr.png differ diff --git a/oci-apm-springboot/04-deploy-apm-agent/images/2-2-apply-cr.png b/oci-apm-springboot/04-deploy-apm-agent/images/2-2-apply-cr.png new file mode 100644 index 000000000..6178e39ce Binary files /dev/null and b/oci-apm-springboot/04-deploy-apm-agent/images/2-2-apply-cr.png differ diff --git a/oci-apm-springboot/04-deploy-apm-agent/images/3-1-annotation.png b/oci-apm-springboot/04-deploy-apm-agent/images/3-1-annotation.png new file mode 100644 index 000000000..b9ab8d884 Binary files /dev/null and b/oci-apm-springboot/04-deploy-apm-agent/images/3-1-annotation.png differ diff --git a/oci-apm-springboot/04-deploy-apm-agent/images/4-1-restart-app.png b/oci-apm-springboot/04-deploy-apm-agent/images/4-1-restart-app.png new file mode 100644 index 000000000..c8ef02aca Binary files /dev/null and b/oci-apm-springboot/04-deploy-apm-agent/images/4-1-restart-app.png differ diff --git a/oci-apm-springboot/04-deploy-apm-agent/images/4-2-obtain-ipaddress.png b/oci-apm-springboot/04-deploy-apm-agent/images/4-2-obtain-ipaddress.png new file mode 100644 index 000000000..dba9ad5d2 Binary files /dev/null and b/oci-apm-springboot/04-deploy-apm-agent/images/4-2-obtain-ipaddress.png differ diff --git a/oci-apm-springboot/04-deploy-apm-agent/images/5-1-open-app-withbrowser.png b/oci-apm-springboot/04-deploy-apm-agent/images/5-1-open-app-withbrowser.png new file mode 100644 index 000000000..30305e221 Binary files /dev/null and b/oci-apm-springboot/04-deploy-apm-agent/images/5-1-open-app-withbrowser.png differ diff --git a/oci-apm-springboot/04-deploy-apm-agent/images/5-2-trace-explorer-menu.png b/oci-apm-springboot/04-deploy-apm-agent/images/5-2-trace-explorer-menu.png new file mode 100644 index 000000000..c42f82ba7 Binary files /dev/null and b/oci-apm-springboot/04-deploy-apm-agent/images/5-2-trace-explorer-menu.png differ diff --git a/oci-apm-springboot/04-deploy-apm-agent/images/5-2-wstore-menu.png b/oci-apm-springboot/04-deploy-apm-agent/images/5-2-wstore-menu.png new file mode 100644 index 000000000..ec35eff82 Binary files /dev/null and b/oci-apm-springboot/04-deploy-apm-agent/images/5-2-wstore-menu.png differ diff --git a/oci-apm-springboot/04-deploy-apm-agent/images/5-3-trace-explorer.png b/oci-apm-springboot/04-deploy-apm-agent/images/5-3-trace-explorer.png new file mode 100644 index 000000000..f5d34d42c Binary files /dev/null and b/oci-apm-springboot/04-deploy-apm-agent/images/5-3-trace-explorer.png differ diff --git a/oci-apm-springboot/04-deploy-apm-agent/images/5-3-wstore-source.png b/oci-apm-springboot/04-deploy-apm-agent/images/5-3-wstore-source.png new file mode 100644 index 000000000..6cf05a425 Binary files /dev/null and b/oci-apm-springboot/04-deploy-apm-agent/images/5-3-wstore-source.png differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-1-2-wstore.png b/oci-apm-springboot/04-deploy-apm-agent/images/6-1-2-wstore.png similarity index 100% rename from oci-apm-springboot/j-lab-seven-view-traces/images/6-1-2-wstore.png rename to oci-apm-springboot/04-deploy-apm-agent/images/6-1-2-wstore.png diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-1-4-demoapp.png b/oci-apm-springboot/04-deploy-apm-agent/images/6-1-4-demoapp.png similarity index 100% rename from oci-apm-springboot/j-lab-seven-view-traces/images/6-1-4-demoapp.png rename to oci-apm-springboot/04-deploy-apm-agent/images/6-1-4-demoapp.png diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-1-5-demoapp.png b/oci-apm-springboot/04-deploy-apm-agent/images/6-1-5-demoapp.png similarity index 100% rename from oci-apm-springboot/j-lab-seven-view-traces/images/6-1-5-demoapp.png rename to oci-apm-springboot/04-deploy-apm-agent/images/6-1-5-demoapp.png diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-1-6-demoapp.png b/oci-apm-springboot/04-deploy-apm-agent/images/6-1-6-demoapp.png similarity index 100% rename from oci-apm-springboot/j-lab-seven-view-traces/images/6-1-6-demoapp.png rename to oci-apm-springboot/04-deploy-apm-agent/images/6-1-6-demoapp.png diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-1-7-demoapp.png b/oci-apm-springboot/04-deploy-apm-agent/images/6-1-7-demoapp.png similarity index 100% rename from oci-apm-springboot/j-lab-seven-view-traces/images/6-1-7-demoapp.png rename to oci-apm-springboot/04-deploy-apm-agent/images/6-1-7-demoapp.png diff --git a/oci-apm-springboot/05-verify-agent/images/4-2-obtain-ipaddress.png b/oci-apm-springboot/05-verify-agent/images/4-2-obtain-ipaddress.png new file mode 100644 index 000000000..dba9ad5d2 Binary files /dev/null and b/oci-apm-springboot/05-verify-agent/images/4-2-obtain-ipaddress.png differ diff --git a/oci-apm-springboot/05-verify-agent/images/5-1-open-app-withbrowser.png b/oci-apm-springboot/05-verify-agent/images/5-1-open-app-withbrowser.png new file mode 100644 index 000000000..30305e221 Binary files /dev/null and b/oci-apm-springboot/05-verify-agent/images/5-1-open-app-withbrowser.png differ diff --git a/oci-apm-springboot/05-verify-agent/images/5-2-trace-explorer-menu.png b/oci-apm-springboot/05-verify-agent/images/5-2-trace-explorer-menu.png new file mode 100644 index 000000000..c42f82ba7 Binary files /dev/null and b/oci-apm-springboot/05-verify-agent/images/5-2-trace-explorer-menu.png differ diff --git a/oci-apm-springboot/05-verify-agent/images/5-2-wstore-menu.png b/oci-apm-springboot/05-verify-agent/images/5-2-wstore-menu.png new file mode 100644 index 000000000..ec35eff82 Binary files /dev/null and b/oci-apm-springboot/05-verify-agent/images/5-2-wstore-menu.png differ diff --git a/oci-apm-springboot/05-verify-agent/images/5-3-trace-explorer.png b/oci-apm-springboot/05-verify-agent/images/5-3-trace-explorer.png new file mode 100644 index 000000000..f5d34d42c Binary files /dev/null and b/oci-apm-springboot/05-verify-agent/images/5-3-trace-explorer.png differ diff --git a/oci-apm-springboot/05-verify-agent/images/5-3-wstore-source.png b/oci-apm-springboot/05-verify-agent/images/5-3-wstore-source.png new file mode 100644 index 000000000..6cf05a425 Binary files /dev/null and b/oci-apm-springboot/05-verify-agent/images/5-3-wstore-source.png differ diff --git a/oci-apm-springboot/05-verify-agent/images/6-1-2-wstore.png b/oci-apm-springboot/05-verify-agent/images/6-1-2-wstore.png new file mode 100644 index 000000000..0ad880c6e Binary files /dev/null and b/oci-apm-springboot/05-verify-agent/images/6-1-2-wstore.png differ diff --git a/oci-apm-springboot/05-verify-agent/images/6-1-4-demoapp.png b/oci-apm-springboot/05-verify-agent/images/6-1-4-demoapp.png new file mode 100644 index 000000000..6054a65e7 Binary files /dev/null and b/oci-apm-springboot/05-verify-agent/images/6-1-4-demoapp.png differ diff --git a/oci-apm-springboot/05-verify-agent/images/6-1-5-demoapp.png b/oci-apm-springboot/05-verify-agent/images/6-1-5-demoapp.png new file mode 100644 index 000000000..b20aa3928 Binary files /dev/null and b/oci-apm-springboot/05-verify-agent/images/6-1-5-demoapp.png differ diff --git a/oci-apm-springboot/05-verify-agent/images/6-1-6-demoapp.png b/oci-apm-springboot/05-verify-agent/images/6-1-6-demoapp.png new file mode 100644 index 000000000..6328c432a Binary files /dev/null and b/oci-apm-springboot/05-verify-agent/images/6-1-6-demoapp.png differ diff --git a/oci-apm-springboot/05-verify-agent/images/6-1-7-demoapp.png b/oci-apm-springboot/05-verify-agent/images/6-1-7-demoapp.png new file mode 100644 index 000000000..025b2e210 Binary files /dev/null and b/oci-apm-springboot/05-verify-agent/images/6-1-7-demoapp.png differ diff --git a/oci-apm-springboot/05-verify-agent/verify-agent.md b/oci-apm-springboot/05-verify-agent/verify-agent.md new file mode 100644 index 000000000..562117d0f --- /dev/null +++ b/oci-apm-springboot/05-verify-agent/verify-agent.md @@ -0,0 +1,109 @@ +# Verify APM Agent setup and data collection + +## Introduction + +In the previous lab, you instrumented the application with an APM java agent, which captures traces and spans generated by the server, using OpenTelemetry Operator. You have also added browser injection that is automatically configured by the APM Java agent. In this lab, you will ensure the APM agents are added to the application and collects traces and spans. + +Estimated time: 5 minutes + +### Objectives + +* Verify the APM Browser Agent injection in the WineCellar application. +* Generate workload on the application by navigating through the pages. +* Verify data collection on APM Trace Explorer page. + +### Prerequisites + +* Completion of the preceding labs in this workshop + +## Task 1: Verify the APM Browser Agent injection + +1. If you are starting a new Oracle Cloud Shell session, run the oci ce (Container Engine) command that you saved in Lab 3, Task 2, step 5. + +2. From the Oracle Cloud shell, enter the following command. + + ``` bash + + kubectl get svc + + ``` + + From the output, find the wstore-frontend service. Note down the External-IP. + + ![Oracle Cloud console, Cloud Shell](images/4-2-obtain-ipaddress.png " ") + + + >**Note:** + + - The IP may be different from the last time when you accessed the WinCellar app because the pods are regenerated. + - If the application is not starting up, run the **kubectl get pods** command and check the status. It may take a few minutes to see the pods in the running state. + +3. On your laptop, start a browser and access the application with the URL pattern: + + ``` bash + + http:///winestore/ + + ``` +4. WinCellar application launches. + + ![Oracle Cloud console, Cloud Shell](images/5-1-open-app-withbrowser.png " ") + + +5. Right mouse click on the browser and select a menu item to view the page source. + + ![Oracle Cloud console, Cloud Shell](images/5-2-wstore-menu.png " ") + +6. Verify the Browser Agent JavaScript is in the page source. + + ![Oracle Cloud console, Cloud Shell](images/5-3-wstore-source.png " ") + + + >**Note:** If you do not see the Browser Agent JavaScript in the source, remove the browser cache, or try with a different browser. + +7. Close the page source. + +## Task 2: Generate workload by navigating to the app + + +1. Click **Login**. + + ![WineCellar Demo App](images/6-1-2-wstore.png " ") + + +2. Enter your name (or john) as username, leave the password blank, and click **Login**. + + ![WineCellar Demo App](images/6-1-4-demoapp.png " ") + + +3. Then click around the buttons in the pages, as in the example flow shown below. + + >**Note:** Do not worry if you see the "Failed" messages, or if it takes a long time for the pages to respond. Those are expected because the app is designed to fail every once and often for demo purposes. + + Click **Add** on a couple of products then hit **Shopping Cart**. Then Click **Checkout**. + ![WineCellar Demo App](images/6-1-5-demoapp.png " ") + Click **Confirm Order**, then **Logout**. + ![WineCellar Demo App](images/6-1-6-demoapp.png " ") + +## Task 3: Verify the collection of traces and spans + +1. Navigate through the page content to generate some workload. For example, add a few products to the cart and view the shopping cart. + +2. Open the OCI navigation menu, select **Observability and Management**, and then choose **Trace Explorer** under **Application Performance Monitoring**. + + ![Oracle Cloud console, Cloud Shell](images/5-2-trace-explorer-menu.png " ") + +3. Select the compartment and the APM domain used for the lab. Verify that the traces are collected and displayed on the screen. + ![Oracle Cloud console, Cloud Shell](images/5-3-trace-explorer.png " ") + + + +You may now **proceed to the next lab**. + +## Acknowledgements + +* **Author** - Yutaka Takatsu, Product Manager, Enterprise and Cloud Manageability +- **Contributors** - Steven Lemme, Senior Principal Product Manager, +Anand Prabhu, Sr. Member of Technical Staff, +Avi Huber, Vice President, Product Management +* **Last Updated By/Date** - Yutaka Takatsu, November, 2024 diff --git a/oci-apm-springboot/06-view-traces/images/1-10-span-details.png b/oci-apm-springboot/06-view-traces/images/1-10-span-details.png new file mode 100644 index 000000000..fe1b2e7d4 Binary files /dev/null and b/oci-apm-springboot/06-view-traces/images/1-10-span-details.png differ diff --git a/oci-apm-springboot/06-view-traces/images/1-11-span-details-db.png b/oci-apm-springboot/06-view-traces/images/1-11-span-details-db.png new file mode 100644 index 000000000..fce0bf71a Binary files /dev/null and b/oci-apm-springboot/06-view-traces/images/1-11-span-details-db.png differ diff --git a/oci-apm-springboot/06-view-traces/images/1-13-close.png b/oci-apm-springboot/06-view-traces/images/1-13-close.png new file mode 100644 index 000000000..28a474972 Binary files /dev/null and b/oci-apm-springboot/06-view-traces/images/1-13-close.png differ diff --git a/oci-apm-springboot/06-view-traces/images/1-2-trace-explorer.png b/oci-apm-springboot/06-view-traces/images/1-2-trace-explorer.png new file mode 100644 index 000000000..65056154b Binary files /dev/null and b/oci-apm-springboot/06-view-traces/images/1-2-trace-explorer.png differ diff --git a/oci-apm-springboot/06-view-traces/images/1-3-trace-explorer-sort.png b/oci-apm-springboot/06-view-traces/images/1-3-trace-explorer-sort.png new file mode 100644 index 000000000..54e118107 Binary files /dev/null and b/oci-apm-springboot/06-view-traces/images/1-3-trace-explorer-sort.png differ diff --git a/oci-apm-springboot/06-view-traces/images/1-4-trace-explorer-services.png b/oci-apm-springboot/06-view-traces/images/1-4-trace-explorer-services.png new file mode 100644 index 000000000..edd0bd8e9 Binary files /dev/null and b/oci-apm-springboot/06-view-traces/images/1-4-trace-explorer-services.png differ diff --git a/oci-apm-springboot/06-view-traces/images/1-5-trace-explorer-link.png b/oci-apm-springboot/06-view-traces/images/1-5-trace-explorer-link.png new file mode 100644 index 000000000..dce94505d Binary files /dev/null and b/oci-apm-springboot/06-view-traces/images/1-5-trace-explorer-link.png differ diff --git a/oci-apm-springboot/06-view-traces/images/1-6-trace-details.png b/oci-apm-springboot/06-view-traces/images/1-6-trace-details.png new file mode 100644 index 000000000..cc57924ec Binary files /dev/null and b/oci-apm-springboot/06-view-traces/images/1-6-trace-details.png differ diff --git a/oci-apm-springboot/06-view-traces/images/1-7-toplogy-arrows.png b/oci-apm-springboot/06-view-traces/images/1-7-toplogy-arrows.png new file mode 100644 index 000000000..7d8c1823b Binary files /dev/null and b/oci-apm-springboot/06-view-traces/images/1-7-toplogy-arrows.png differ diff --git a/oci-apm-springboot/06-view-traces/images/1-8-waterfalls.png b/oci-apm-springboot/06-view-traces/images/1-8-waterfalls.png new file mode 100644 index 000000000..435c95d97 Binary files /dev/null and b/oci-apm-springboot/06-view-traces/images/1-8-waterfalls.png differ diff --git a/oci-apm-springboot/06-view-traces/images/1-9-waterfall-jdbc.png b/oci-apm-springboot/06-view-traces/images/1-9-waterfall-jdbc.png new file mode 100644 index 000000000..1eafedc1d Binary files /dev/null and b/oci-apm-springboot/06-view-traces/images/1-9-waterfall-jdbc.png differ diff --git a/oci-apm-springboot/06-view-traces/images/2-1-trace-ex.png b/oci-apm-springboot/06-view-traces/images/2-1-trace-ex.png new file mode 100644 index 000000000..2951eec23 Binary files /dev/null and b/oci-apm-springboot/06-view-traces/images/2-1-trace-ex.png differ diff --git a/oci-apm-springboot/06-view-traces/images/2-2-attributes.png b/oci-apm-springboot/06-view-traces/images/2-2-attributes.png new file mode 100644 index 000000000..ee9c79238 Binary files /dev/null and b/oci-apm-springboot/06-view-traces/images/2-2-attributes.png differ diff --git a/oci-apm-springboot/06-view-traces/images/2-3-dimention.png b/oci-apm-springboot/06-view-traces/images/2-3-dimention.png new file mode 100644 index 000000000..6a390bc94 Binary files /dev/null and b/oci-apm-springboot/06-view-traces/images/2-3-dimention.png differ diff --git a/oci-apm-springboot/06-view-traces/images/2-4-apdex-query.png b/oci-apm-springboot/06-view-traces/images/2-4-apdex-query.png new file mode 100644 index 000000000..f2dfb6b45 Binary files /dev/null and b/oci-apm-springboot/06-view-traces/images/2-4-apdex-query.png differ diff --git a/oci-apm-springboot/06-view-traces/images/2-5-apdex-results.png b/oci-apm-springboot/06-view-traces/images/2-5-apdex-results.png new file mode 100644 index 000000000..7638e9381 Binary files /dev/null and b/oci-apm-springboot/06-view-traces/images/2-5-apdex-results.png differ diff --git a/oci-apm-springboot/06-view-traces/view-traces.md b/oci-apm-springboot/06-view-traces/view-traces.md new file mode 100644 index 000000000..ded391cf7 --- /dev/null +++ b/oci-apm-springboot/06-view-traces/view-traces.md @@ -0,0 +1,119 @@ +# View traces and spans in APM Trace Explorer + +## Introduction + +In this lab, you will learn how to use the APM Trace Explorer to trace the workload generated with the WineCellar demo application. + +Estimated time: 10 minutes + +Watch the video below for a quick walk-through of the lab. +[View traces and spans in APM Trace Explorer](videohub:1_ax6iqqu1) + +### Objectives + +* Examine values in the span dimensions for the frontend browser and the backend Spring Boot server +* Use dimensions to automatically update the query and filter the selection + +### Prerequisites + +* Completion of preceding labs in this workshop. + + +## Task 1: Examine traces in APM Trace Explorer + +1. From the OCI menu, From the OCI menu, select **Observability & Management** > **Trace Explorer** + +2. On the Trace Explorer page, select **apmworkshop** for the **Compartment** and the **APM Domain**. + + ![Oracle Cloud, Trace Explorer](images/1-2-trace-explorer.png " ") + +3. By default, traces are displayed in the order by the start time. Right mouse click on the **Duration** column, select **Sort Descending** to show the traces by duration in descending order. This will bring the slowest trace to the top of the list. + + ![Oracle Cloud, Trace Explorer](images/1-3-trace-explorer-sort.png " ") + +4. Hover the mouse over the bar in the **Spans** column at the top row. Verify three services are included in the trace, and each color represents a service, wstore-back, wstore-front, and wstore-web, which you defined in the previous labs. + + ![Oracle Cloud, Trace Explorer](images/1-4-trace-explorer-services.png " ") + +5. Click the trace link at the **Service:Operationame** column. + + ![Oracle Cloud, Trace Explorer](images/1-5-trace-explorer-link.png " ") + + >**Note:** If you do not see a slow trace with a duration of 10 seconds or more, you can navigate the WineStore demo app a few times until you see the programmed slowness in the checkout service. + +6. **Trace Details** page opens. Review the trace information on the upper screen. E.g., Status, Trace ID, Whether it has an error or not, how many spans and services are involved, or the duration of the trace. + ![Oracle Cloud, Trace Explorer](images/1-6-trace-details.png " ") + +7. In the **Topology** view, you can see how the operations are connected within the trace. Different colors indicate different services. Hover the mouse on the icons and the arrows that connect the icons. Review the information in the callouts. + ![Oracle Cloud, Trace Explorer](images/1-7-toplogy-arrows.png " ") + + In this example, it seems that the checkout service is where the most time was spent in the trace. + + >**Note:** The operations may look differently in the trace you selected. + +8. Scroll down the page to show the **Spans** view. Spans in the trace are displayed in a Gantt chart. A span at the top of the list is the root span, and the child spans are nested below the root span. + + ![Oracle Cloud, Trace Explorer](images/1-8-waterfalls.png " ") + + In this example, one of the operations is taking 5 seconds alone, out of the total duration of 6 seconds. This seems to be the bottleneck of the slowness. + +9. Click the operation name link. + + ![Oracle Cloud, Trace Explorer](images/1-9-waterfall-jdbc.png " ") + +10. This opens a **Span Details** view. Review the span information, such as the operation name, which service it belongs to, start date and time, start time after the trace started, duration of the span, Trace ID, and Span ID. + + ![Oracle Cloud, Trace Explorer](images/1-10-span-details.png " ") + + From the operation name, this is a JDBC span that is generated by requesting a call to the database. + +11. Scroll down and review the collected dimension values. In this example, there are 67 dimensions collected. E.g., App server, Host, Kubernetes, and performance information. In addition, it has database information, because this is a JDBC span. + + ![Oracle Cloud, Trace Explorer](images/1-11-span-details-db.png " ") + +12. Click **Close** to close the **Span Details** view. + +13. Click the **Close** to close the **Trace Details** view.. This will bring you back to the Trace Explore the main view. + + ![Oracle Cloud, Trace Explorer](images/1-13-close.png " ") + +## Task 2: Filter traces with dimensions + +1. Click **Attributes** from the left side of the Trace Explorer main screen. This will slide out the Attribute pane. + + ![Oracle Cloud, Trace Explorer](images/2-1-trace-ex.png " ") + +2. Type '**apdex**' into the search field. Then click **ApdexLevel** from the list. + + ![Oracle Cloud, Trace Explorer](images/2-2-attributes.png " ") + +3. **Dimension ApdexLevel Values** window opens. Apdex or Application Performance Index measures customer satisfaction based on applications' page or service performance. Review the values and counts. In this example, there are 8 frustrated traces, 8 tolerating traces, and 62 satisfied traces. + + ![Oracle Cloud, Trace Explorer](images/2-3-dimention.png " ") + + Select **frustrated** from the list, then click **Add to Query**. + +4. Notice that the condition **("ApdexLevel" = 'frustrated')** has been inserted to the query. + + ![Oracle Cloud, Trace Explorer](images/2-4-apdex-query.png " ") + +5. Traces view is refreshed and shows only traces that **ApdexLevel** is frustrated. + + ![Oracle Cloud, Trace Explorer](images/2-5-apdex-results.png " ") + + + + + +## Conclusions + +In this workshop, you learned how to use the Kubernetes OpenTelemetry Operator to automatically deploy an APM Java agent to a microservices web application. You also explored how to configure the APM Browser agent within a custom resource definition and use the APM Trace Explorer to view traces and spans. For more information on APM, refer to the OCI documentation, **[Application Performance Monitoring](https://docs.oracle.com/en-us/iaas/application-performance-monitoring/index.html)**. + + +## Acknowledgements + +* **Author** - Yutaka Takatsu, Product Manager, Enterprise and Cloud Manageability +- **Contributors** - Steven Lemme, Senior Principal Product Manager, +Anand Prabhu, Sr. Member of Technical Staff, +Avi Huber, Vice President, Product Management +* **Last Updated By/Date** - Yutaka Takatsu, November, 2024 diff --git a/oci-apm-springboot/k-lab-eight-cleanup/cleanup.md b/oci-apm-springboot/07-cleanup/cleanup.md similarity index 69% rename from oci-apm-springboot/k-lab-eight-cleanup/cleanup.md rename to oci-apm-springboot/07-cleanup/cleanup.md index 45e51d04b..5872c6cf6 100644 --- a/oci-apm-springboot/k-lab-eight-cleanup/cleanup.md +++ b/oci-apm-springboot/07-cleanup/cleanup.md @@ -30,59 +30,28 @@ To delete the workshop setup from your tenancy, follow the steps below. kubectl delete -f ~/sb-hol/wstore.yaml ``` + ![Oracle Cloud console, Cloud Shell](images/1-1-remove-app.png " ") -3. Remove the storage configuration from the cluster. +2. Remove the the **[OpenTelemetry Operator](https://github.com/open-telemetry/opentelemetry-operator)** from the Kubernetes cluster. - a) If you created a file system, run the command below. ``` bash - kubectl delete -f ~/sb-hol/apmlab-fss.yaml + kubectl delete -f https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml ``` - ![Oracle Cloud, Cloud Shell](images/4-1-cleanup.png " ") - b) If you created block volumes, run the command below. + ![Oracle Cloud console, Cloud Shell](images/1-2-remove-otel.png " ") + +3. Run the command below to delete cert-manager. ``` bash - kubectl delete -f ~/sb-hol/apmlab-pvc.yaml + kubectl delete -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.2/cert-manager.yaml ``` + ![Oracle Cloud console, Cloud Shell](images/1-3-remove-cert-manager.png " ") - -## Task 2: Remove the Target Mount and the File System - -If you created a file system, complete steps 1 - 6 below. If you created block volumes instead, please proceed to the next Task. - -1. From the navigation menu in the Oracle Cloud console, select **Storage** > **Mount Target**. - Then click the link to the MountTarget configured in the workshop. - - ![Oracle Cloud, Cloud console](images/4-2-cleanup.png " ") - -2. In the **Mount Target Details** page, click **Delete**. In the confirmation window, click **Delete**. - - ![Oracle Cloud, Cloud console](images/4-3-cleanup.png " ") - -3. Deletion of the Mount Target starts and completes. - - ![Oracle Cloud, Cloud console](images/4-4-cleanup.png " ") - -4. From the navigation menu in the Oracle Cloud console, select **Storage** > **File Systems**. Then click the link to the File System configured in the workshop. - - ![Oracle Cloud, Cloud console](images/4-5-cleanup.png " ") - -5. In the **File System Details** page, click **Delete**. In the confirmation window, click **Delete**. - - ![Oracle Cloud, Cloud console](images/4-6-cleanup.png " ") - -6. Deletion of the File System starts and completes. - - ![Oracle Cloud, Cloud console](images/4-7-cleanup.png " ") - - - - -## Task 3: Remove the container +## Task 2: Remove the container 1. From the navigation menu in the Oracle Cloud console, select **Developer Services** > **Kubernetes Container(OKE)**. Then click the link to the Cluster configured in the workshop. @@ -96,7 +65,7 @@ If you created a file system, complete steps 1 - 6 below. If you created block v ![Oracle Cloud, Cloud console](images/4-10-cleanup.png " ") -## Task 4: Remove the VCN +## Task 3: Remove the VCN 1. From the navigation menu in the Oracle Cloud console, select **Networking** > **Virtual Cloud Networks**. Then click the link to the VCN configured in the workshop. @@ -124,18 +93,18 @@ If you created a file system, complete steps 1 - 6 below. If you created block v 6. Click the **Terminate All** button when activated. Termination of the resources begins. Once the message **Virtual Cloud Network termination complete** shows, click **Close**. ![Oracle Cloud, Cloud console](images/4-15-cleanup.png " ") -## Task 5: Remove the workshop directory +## Task 4: Remove the workshop directory 1. Open the Oracle Cloud shell, and run the following commands to remove the files and the workshop directory. ``` bash - cd ~; rm apm-java-agent-installer-*.jar; rm index.html; rm -r sb-hol;rm sb-hol.zip + cd ~;rm -r sb-hol;rm sb-hol.zip ``` ![Oracle Cloud, Cloud console](images/4-16-cleanup.png " ") -## Task 6: Remove the APM domain and compartment +## Task 5: Remove the APM domain and compartment 1. From the navigation menu in the Oracle Cloud console, select **Observability & Management** > **Administration**. Then click the link to the APM domain which you created in the workshop. ![Oracle Cloud, Cloud console](images/6-1-cleanup.png " ") @@ -163,4 +132,4 @@ If you created a file system, complete steps 1 - 6 below. If you created block v - **Contributors** - Steven Lemme, Senior Principal Product Manager, Anand Prabhu, Sr. Member of Technical Staff, Avi Huber, Vice President, Product Management -* **Last Updated By/Date** - Yutaka Takatsu, March 2023 +* **Last Updated By/Date** - Yutaka Takatsu, November, 2024 diff --git a/oci-apm-springboot/07-cleanup/images/1-1-remove-app.png b/oci-apm-springboot/07-cleanup/images/1-1-remove-app.png new file mode 100644 index 000000000..1dd10161d Binary files /dev/null and b/oci-apm-springboot/07-cleanup/images/1-1-remove-app.png differ diff --git a/oci-apm-springboot/07-cleanup/images/1-2-remove-otel.png b/oci-apm-springboot/07-cleanup/images/1-2-remove-otel.png new file mode 100644 index 000000000..b4e6d3775 Binary files /dev/null and b/oci-apm-springboot/07-cleanup/images/1-2-remove-otel.png differ diff --git a/oci-apm-springboot/07-cleanup/images/1-3-remove-cert-manager.png b/oci-apm-springboot/07-cleanup/images/1-3-remove-cert-manager.png new file mode 100644 index 000000000..bf3d070ce Binary files /dev/null and b/oci-apm-springboot/07-cleanup/images/1-3-remove-cert-manager.png differ diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/4-1-cleanup.png b/oci-apm-springboot/07-cleanup/images/4-1-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/4-1-cleanup.png rename to oci-apm-springboot/07-cleanup/images/4-1-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/4-10-cleanup.png b/oci-apm-springboot/07-cleanup/images/4-10-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/4-10-cleanup.png rename to oci-apm-springboot/07-cleanup/images/4-10-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/4-11-cleanup.png b/oci-apm-springboot/07-cleanup/images/4-11-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/4-11-cleanup.png rename to oci-apm-springboot/07-cleanup/images/4-11-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/4-12-cleanup.png b/oci-apm-springboot/07-cleanup/images/4-12-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/4-12-cleanup.png rename to oci-apm-springboot/07-cleanup/images/4-12-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/4-13-cleanup.png b/oci-apm-springboot/07-cleanup/images/4-13-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/4-13-cleanup.png rename to oci-apm-springboot/07-cleanup/images/4-13-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/4-14-2-cleanup.png b/oci-apm-springboot/07-cleanup/images/4-14-2-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/4-14-2-cleanup.png rename to oci-apm-springboot/07-cleanup/images/4-14-2-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/4-14-cleanup.png b/oci-apm-springboot/07-cleanup/images/4-14-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/4-14-cleanup.png rename to oci-apm-springboot/07-cleanup/images/4-14-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/4-15-cleanup.png b/oci-apm-springboot/07-cleanup/images/4-15-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/4-15-cleanup.png rename to oci-apm-springboot/07-cleanup/images/4-15-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/4-16-cleanup.png b/oci-apm-springboot/07-cleanup/images/4-16-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/4-16-cleanup.png rename to oci-apm-springboot/07-cleanup/images/4-16-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/4-2-cleanup.png b/oci-apm-springboot/07-cleanup/images/4-2-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/4-2-cleanup.png rename to oci-apm-springboot/07-cleanup/images/4-2-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/4-3-cleanup.png b/oci-apm-springboot/07-cleanup/images/4-3-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/4-3-cleanup.png rename to oci-apm-springboot/07-cleanup/images/4-3-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/4-4-cleanup.png b/oci-apm-springboot/07-cleanup/images/4-4-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/4-4-cleanup.png rename to oci-apm-springboot/07-cleanup/images/4-4-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/4-5-cleanup.png b/oci-apm-springboot/07-cleanup/images/4-5-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/4-5-cleanup.png rename to oci-apm-springboot/07-cleanup/images/4-5-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/4-6-cleanup.png b/oci-apm-springboot/07-cleanup/images/4-6-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/4-6-cleanup.png rename to oci-apm-springboot/07-cleanup/images/4-6-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/4-7-cleanup.png b/oci-apm-springboot/07-cleanup/images/4-7-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/4-7-cleanup.png rename to oci-apm-springboot/07-cleanup/images/4-7-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/4-8-cleanup.png b/oci-apm-springboot/07-cleanup/images/4-8-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/4-8-cleanup.png rename to oci-apm-springboot/07-cleanup/images/4-8-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/4-9-cleanup.png b/oci-apm-springboot/07-cleanup/images/4-9-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/4-9-cleanup.png rename to oci-apm-springboot/07-cleanup/images/4-9-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/6-1-cleanup.png b/oci-apm-springboot/07-cleanup/images/6-1-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/6-1-cleanup.png rename to oci-apm-springboot/07-cleanup/images/6-1-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/6-2-cleanup.png b/oci-apm-springboot/07-cleanup/images/6-2-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/6-2-cleanup.png rename to oci-apm-springboot/07-cleanup/images/6-2-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/6-3-cleanup.png b/oci-apm-springboot/07-cleanup/images/6-3-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/6-3-cleanup.png rename to oci-apm-springboot/07-cleanup/images/6-3-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/6-4-cleanup.png b/oci-apm-springboot/07-cleanup/images/6-4-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/6-4-cleanup.png rename to oci-apm-springboot/07-cleanup/images/6-4-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/6-5-cleanup.png b/oci-apm-springboot/07-cleanup/images/6-5-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/6-5-cleanup.png rename to oci-apm-springboot/07-cleanup/images/6-5-cleanup.png diff --git a/oci-apm-springboot/k-lab-eight-cleanup/images/6-6-cleanup.png b/oci-apm-springboot/07-cleanup/images/6-6-cleanup.png similarity index 100% rename from oci-apm-springboot/k-lab-eight-cleanup/images/6-6-cleanup.png rename to oci-apm-springboot/07-cleanup/images/6-6-cleanup.png diff --git a/oci-apm-springboot/l-lab-nine-learn-more/images/1-1-2-get-started.png b/oci-apm-springboot/08-learn-more/images/1-1-2-get-started.png similarity index 100% rename from oci-apm-springboot/l-lab-nine-learn-more/images/1-1-2-get-started.png rename to oci-apm-springboot/08-learn-more/images/1-1-2-get-started.png diff --git a/oci-apm-springboot/08-learn-more/images/1-1-get-started.png b/oci-apm-springboot/08-learn-more/images/1-1-get-started.png new file mode 100644 index 000000000..d10b38428 Binary files /dev/null and b/oci-apm-springboot/08-learn-more/images/1-1-get-started.png differ diff --git a/oci-apm-springboot/l-lab-nine-learn-more/images/1-2-get-started.png b/oci-apm-springboot/08-learn-more/images/1-2-get-started.png similarity index 100% rename from oci-apm-springboot/l-lab-nine-learn-more/images/1-2-get-started.png rename to oci-apm-springboot/08-learn-more/images/1-2-get-started.png diff --git a/oci-apm-springboot/l-lab-nine-learn-more/images/1-3-get-started.png b/oci-apm-springboot/08-learn-more/images/1-3-get-started.png similarity index 100% rename from oci-apm-springboot/l-lab-nine-learn-more/images/1-3-get-started.png rename to oci-apm-springboot/08-learn-more/images/1-3-get-started.png diff --git a/oci-apm-springboot/l-lab-nine-learn-more/images/1-4-get-started.png b/oci-apm-springboot/08-learn-more/images/1-4-get-started.png similarity index 100% rename from oci-apm-springboot/l-lab-nine-learn-more/images/1-4-get-started.png rename to oci-apm-springboot/08-learn-more/images/1-4-get-started.png diff --git a/oci-apm-springboot/l-lab-nine-learn-more/images/1-5-get-started.png b/oci-apm-springboot/08-learn-more/images/1-5-get-started.png similarity index 100% rename from oci-apm-springboot/l-lab-nine-learn-more/images/1-5-get-started.png rename to oci-apm-springboot/08-learn-more/images/1-5-get-started.png diff --git a/oci-apm-springboot/l-lab-nine-learn-more/images/1-6-get-started.png b/oci-apm-springboot/08-learn-more/images/1-6-get-started.png similarity index 100% rename from oci-apm-springboot/l-lab-nine-learn-more/images/1-6-get-started.png rename to oci-apm-springboot/08-learn-more/images/1-6-get-started.png diff --git a/oci-apm-springboot/l-lab-nine-learn-more/learn-more.md b/oci-apm-springboot/08-learn-more/learn-more.md similarity index 58% rename from oci-apm-springboot/l-lab-nine-learn-more/learn-more.md rename to oci-apm-springboot/08-learn-more/learn-more.md index e1927b619..faab99cf1 100644 --- a/oci-apm-springboot/l-lab-nine-learn-more/learn-more.md +++ b/oci-apm-springboot/08-learn-more/learn-more.md @@ -25,38 +25,16 @@ In this workshop, you will learn how to use Oracle Cloud APM to examine critical ## Task 1: Access the workshop -1. Click the link following URL to access the workshop: **[Get started with Oracle Cloud APM](https://livelabs.oracle.com/pls/apex/r/dbpm/livelabs/view-workshop?wec=2681-VVAB-USGL-IJWF)** Workshop. +1. Click the link following URL to access the workshop: **[Get started with Oracle Cloud APM](https://livelabs.oracle.com/pls/apex/r/dbpm/livelabs/view-workshop?wid=3350)** Workshop. Alternatively, open a new browser tab, copy the following URL, paste it to the address bar, and hit enter. ``` bash - https://livelabs.oracle.com/pls/apex/r/dbpm/livelabs/view-workshop?wec=2681-VVAB-USGL-IJWF + https://livelabs.oracle.com/pls/apex/r/dbpm/livelabs/view-workshop?wid=3350 ``` -2. Login with an Oracle account. - ![Oracle Account Login screen](images/1-2-get-started.png " ") - - >**Note:** If you do not have an account or forgot your Oracle account credentials, please refer to the next lab, **Oracle CloudWorld 2022 - Get Help**, section **Your Oracle Account**. - -3. Enter the code you got for two-factor authentication. - - ![Oracle Account Login screen](images/1-3-get-started.png " ") - -4. Workshop home page opens. Click the **Start** button. - - ![Oracle Account Login screen](images/1-4-get-started.png " ") - - >**Note:** The event code for the workshop is **2681-VVAB-USGL-IJWF**, however, you do not need to re-enter it, because it is already included in the URL. - -5. Click **Run on LiveLabs SandBox**. - - ![Oracle Account Login screen](images/1-5-get-started.png " ") - -6. Check the checkbox, click **Submit Reservation**, and follow the instructions to reserve the workshop. - - ![Oracle Account Login screen](images/1-6-get-started.png " ") ## Acknowledgements @@ -64,4 +42,4 @@ Alternatively, open a new browser tab, copy the following URL, paste it to the a - **Contributors** - Steven Lemme, Senior Principal Product Manager, Anand Prabhu, Sr. Member of Technical Staff, Avi Huber, Vice President, Product Management -* **Last Updated By/Date** - Yutaka Takatsu, October 2022 +* **Last Updated By/Date** - Yutaka Takatsu, November, 2024 diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/1-1-compartments.png b/oci-apm-springboot/b-lab-one-create-oke/images/1-1-compartments.png deleted file mode 100644 index 436dbcd04..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/1-1-compartments.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/1-1-menu.png b/oci-apm-springboot/b-lab-one-create-oke/images/1-1-menu.png deleted file mode 100644 index a784d907b..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/1-1-menu.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/1-2-OKE.png b/oci-apm-springboot/b-lab-one-create-oke/images/1-2-OKE.png deleted file mode 100644 index 96317ab1b..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/1-2-OKE.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/1-2-compartments.png b/oci-apm-springboot/b-lab-one-create-oke/images/1-2-compartments.png deleted file mode 100644 index 3cffdf62c..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/1-2-compartments.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/1-3-OKE.png b/oci-apm-springboot/b-lab-one-create-oke/images/1-3-OKE.png deleted file mode 100644 index e7763ec06..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/1-3-OKE.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/1-3-compartments.png b/oci-apm-springboot/b-lab-one-create-oke/images/1-3-compartments.png deleted file mode 100644 index e15717b48..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/1-3-compartments.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/1-4-OKE.png b/oci-apm-springboot/b-lab-one-create-oke/images/1-4-OKE.png deleted file mode 100644 index 1cfaaf3f5..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/1-4-OKE.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/1-4-compartments.png b/oci-apm-springboot/b-lab-one-create-oke/images/1-4-compartments.png deleted file mode 100644 index 8dcc12c0a..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/1-4-compartments.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/1-5-OKE.png b/oci-apm-springboot/b-lab-one-create-oke/images/1-5-OKE.png deleted file mode 100644 index 1486af1be..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/1-5-OKE.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/1-6-OKE.png b/oci-apm-springboot/b-lab-one-create-oke/images/1-6-OKE.png deleted file mode 100644 index 01559ea97..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/1-6-OKE.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/1-7-OKE.png b/oci-apm-springboot/b-lab-one-create-oke/images/1-7-OKE.png deleted file mode 100644 index d8f2dd4a5..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/1-7-OKE.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/1-8-OKE.png b/oci-apm-springboot/b-lab-one-create-oke/images/1-8-OKE.png deleted file mode 100644 index 3127aa3a3..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/1-8-OKE.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/1-9-OKE.png b/oci-apm-springboot/b-lab-one-create-oke/images/1-9-OKE.png deleted file mode 100644 index 54ea57c46..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/1-9-OKE.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/2-1-OKE.png b/oci-apm-springboot/b-lab-one-create-oke/images/2-1-OKE.png deleted file mode 100644 index eff037a4c..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/2-1-OKE.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/2-2-2-OKE.png b/oci-apm-springboot/b-lab-one-create-oke/images/2-2-2-OKE.png deleted file mode 100644 index ea12ba657..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/2-2-2-OKE.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/2-2-OKE.png b/oci-apm-springboot/b-lab-one-create-oke/images/2-2-OKE.png deleted file mode 100644 index 7e689aa5e..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/2-2-OKE.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/2-3-OKE.png b/oci-apm-springboot/b-lab-one-create-oke/images/2-3-OKE.png deleted file mode 100644 index 67ea9c668..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/2-3-OKE.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/2-4-OKE.png b/oci-apm-springboot/b-lab-one-create-oke/images/2-4-OKE.png deleted file mode 100644 index 92c61e51d..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/2-4-OKE.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/4-1-cloudshell.png b/oci-apm-springboot/b-lab-one-create-oke/images/4-1-cloudshell.png deleted file mode 100644 index 297aef0ff..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/4-1-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/4-2-cloudshell.png b/oci-apm-springboot/b-lab-one-create-oke/images/4-2-cloudshell.png deleted file mode 100644 index 54b4a6fb0..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/4-2-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/4-3-cloudshell.png b/oci-apm-springboot/b-lab-one-create-oke/images/4-3-cloudshell.png deleted file mode 100644 index 3e1685873..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/4-3-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/b-lab-one-create-oke/images/4-4-winestore.png b/oci-apm-springboot/b-lab-one-create-oke/images/4-4-winestore.png deleted file mode 100644 index 577683b21..000000000 Binary files a/oci-apm-springboot/b-lab-one-create-oke/images/4-4-winestore.png and /dev/null differ diff --git a/oci-apm-springboot/c-lab-two-create-domain/images/2-1-2-domain.png b/oci-apm-springboot/c-lab-two-create-domain/images/2-1-2-domain.png deleted file mode 100644 index 40c618963..000000000 Binary files a/oci-apm-springboot/c-lab-two-create-domain/images/2-1-2-domain.png and /dev/null differ diff --git a/oci-apm-springboot/c-lab-two-create-domain/images/2-1-domain.png b/oci-apm-springboot/c-lab-two-create-domain/images/2-1-domain.png deleted file mode 100644 index 6d5e27e62..000000000 Binary files a/oci-apm-springboot/c-lab-two-create-domain/images/2-1-domain.png and /dev/null differ diff --git a/oci-apm-springboot/c-lab-two-create-domain/images/2-3-domain.png b/oci-apm-springboot/c-lab-two-create-domain/images/2-3-domain.png deleted file mode 100644 index e31629bd8..000000000 Binary files a/oci-apm-springboot/c-lab-two-create-domain/images/2-3-domain.png and /dev/null differ diff --git a/oci-apm-springboot/c-lab-two-create-domain/images/2-4-domain.png b/oci-apm-springboot/c-lab-two-create-domain/images/2-4-domain.png deleted file mode 100644 index 4fecedfa0..000000000 Binary files a/oci-apm-springboot/c-lab-two-create-domain/images/2-4-domain.png and /dev/null differ diff --git a/oci-apm-springboot/c-lab-two-create-domain/images/2-5-domain.png b/oci-apm-springboot/c-lab-two-create-domain/images/2-5-domain.png deleted file mode 100644 index 1e9ccdef0..000000000 Binary files a/oci-apm-springboot/c-lab-two-create-domain/images/2-5-domain.png and /dev/null differ diff --git a/oci-apm-springboot/c-lab-two-create-domain/images/3-1-2-domain.png b/oci-apm-springboot/c-lab-two-create-domain/images/3-1-2-domain.png deleted file mode 100644 index 6c987834f..000000000 Binary files a/oci-apm-springboot/c-lab-two-create-domain/images/3-1-2-domain.png and /dev/null differ diff --git a/oci-apm-springboot/c-lab-two-create-domain/images/3-1-domain.png b/oci-apm-springboot/c-lab-two-create-domain/images/3-1-domain.png deleted file mode 100644 index 8982ad017..000000000 Binary files a/oci-apm-springboot/c-lab-two-create-domain/images/3-1-domain.png and /dev/null differ diff --git a/oci-apm-springboot/c-lab-two-create-domain/images/3-2-domain.png b/oci-apm-springboot/c-lab-two-create-domain/images/3-2-domain.png deleted file mode 100644 index d1370b379..000000000 Binary files a/oci-apm-springboot/c-lab-two-create-domain/images/3-2-domain.png and /dev/null differ diff --git a/oci-apm-springboot/d-lab-three-build-app/build-app.md b/oci-apm-springboot/d-lab-three-build-app/build-app.md deleted file mode 100644 index 8d18b24d2..000000000 --- a/oci-apm-springboot/d-lab-three-build-app/build-app.md +++ /dev/null @@ -1,148 +0,0 @@ -# Build a microservices application - -## Introduction - -This workshop uses Spring Boot-based Java microservices as a target application to trace against. In this lab, you will deploy the application to the Kubernetes cluster you created in Lab 1. - -Estimated time: 10 minutes - -Watch the video below for a quick walk-through of the lab. -[Build a microservices application](videohub:1_94bv1d35) - -### Objectives - -* Build a microservices application for monitoring - -### Prerequisites - -* Completion of the preceding labs in this workshop - -## Task 1: Verify OKE - -1. Go back to the Kubernetes cluster page where you left Lab 1, and check the status of the cluster. Open the navigation menu from the top left corner (aka. hamburger menu) in the Oracle Cloud console, and select **Developer Services** > **Kubernetes Clusters (OKE)**. - - ![Oracle Cloud console, Cluster details](images/1-1-menu.png " ") - -2. Click the **apmlab-cluser1** link from the table. - - ![Oracle Cloud console, Navigation Menu](images/1-2-menu.png " ") - -3. If the status of the cluster is **Active**, creation was successful. If it is still in a **Creating** status, it may take a few more minutes to complete. (Usually, it takes 7 to 10 minutes to finish the jobs to create a cluster). - - ![Oracle Cloud console, Cluster details](images/1-9-OKE.png " ") - -## Task 2: Access the OKE in the Oracle Cloud shell - - -1. Click **Access Cluster** on the cluster details page. - - ![Oracle Cloud console, Cluster details](images/2-1-OKE.png " ") - -2. Make sure the **Cloud Shell Access** is selected. Click the **Copy** link from the command to access kubeconfig for the cluster. - - ![Oracle Cloud console, Cluster details](images/2-2-OKE.png " ") - -3. Then click **Launch Cloud Shell**. - - ![Oracle Cloud console, Cluster details](images/2-2-2-OKE.png " ") - -4. Oracle Cloud Shell window opens at the lower side of the browser screen. - - ![Oracle Cloud console, Cluster details](images/2-3-OKE.png " ") - -5. Paste the copied command to the command shell prompt. Then hit enter. - - ![Oracle Cloud console, Cluster details](images/2-4-OKE.png " ") - - >**Note:** Save the command to a text file on your laptop, and execute it whenever you start a new Cloud Shell session while working in the labs in this workshop. - -## Task 3: Download configuration files - -1. Download the zip file to the home directory in the Cloud Shell. - - ``` bash - - cd ~; wget https://objectstorage.us-phoenix-1.oraclecloud.com/n/axfo51x8x2ap/b/apmocw-bucket-2022/o/sb-hol.zip - - ``` - ![Oracle Cloud console, Cloud Shell](images/3-1-cloudshell.png " ") - -3. Unzip the file. This will create a directory **sb-hol**. - - ``` bash - - unzip ~/sb-hol.zip - - ``` - - ![Oracle Cloud console, Cloud Shell](images/3-2-cloudshell.png " ") - -## Task 4: Deploy the application - -1. Execute the following command from the Cloud Shell. - - ``` bash - - cd ~/sb-hol;ls - - ``` - ![Oracle Cloud console, Cloud Shell](images/4-1-cloudshell.png " ") - - >**Note:** Verify there are the following files in the folder. - - apmlab-fss.yaml - - wstore.yaml - - wstore-add-storage.yaml - - wstore-deploy-agent.yaml - -3. Execute the command below to deploy the application to the cluster. - ``` bash - - kubectl apply -f ~/sb-hol/wstore.yaml --validate=false - - ``` - -4. Verify the 2 services and 2 stateful sets are created. - - ![Oracle Cloud console, Cloud Shell](images/4-2-cloudshell.png " ") - - -5. Run the kubectl command below to display the status of the pod creation. Wait until the statuses become 'Running'. This may take a few minutes. - - ``` bash - - kubectl get pods - - ``` - ![Oracle Cloud console, Cloud Shell](images/4-2-1-cloudshell.png " ") - -5. Run the kubectl command below to display the deployed services. - - ``` bash - - kubectl get svc - - ``` -5. Copy the External IP of the wstore-frontend service - - ![Oracle Cloud console, Cloud Shell](images/4-3-cloudshell.png " ") - -6. Refer to the below example and construct a URL, and paste it into a browser's address bar. If you see the WineCellar content as in the below screenshot, the deployment was successful. - - ``` bash - - http:///winestore/ - - ``` - ![WineCellar Demo app](images/4-4-winestore.png " ") - - >**Note:** It may take a few minutes to complete the deployment and start loading the page content on the screen for the first time. - -You may now **proceed to the next lab**. - -## Acknowledgements - -* **Author** - Yutaka Takatsu, Product Manager, Enterprise and Cloud Manageability -- **Contributors** - Steven Lemme, Senior Principal Product Manager, -Anand Prabhu, Sr. Member of Technical Staff, -Avi Huber, Vice President, Product Management -* **Last Updated By/Date** - Yutaka Takatsu, August 2022 diff --git a/oci-apm-springboot/d-lab-three-build-app/images/1-1-menu.png b/oci-apm-springboot/d-lab-three-build-app/images/1-1-menu.png deleted file mode 100644 index a784d907b..000000000 Binary files a/oci-apm-springboot/d-lab-three-build-app/images/1-1-menu.png and /dev/null differ diff --git a/oci-apm-springboot/d-lab-three-build-app/images/1-2-menu.png b/oci-apm-springboot/d-lab-three-build-app/images/1-2-menu.png deleted file mode 100644 index c7bd864c3..000000000 Binary files a/oci-apm-springboot/d-lab-three-build-app/images/1-2-menu.png and /dev/null differ diff --git a/oci-apm-springboot/d-lab-three-build-app/images/1-9-OKE.png b/oci-apm-springboot/d-lab-three-build-app/images/1-9-OKE.png deleted file mode 100644 index ec4692f37..000000000 Binary files a/oci-apm-springboot/d-lab-three-build-app/images/1-9-OKE.png and /dev/null differ diff --git a/oci-apm-springboot/d-lab-three-build-app/images/2-1-OKE.png b/oci-apm-springboot/d-lab-three-build-app/images/2-1-OKE.png deleted file mode 100644 index eff037a4c..000000000 Binary files a/oci-apm-springboot/d-lab-three-build-app/images/2-1-OKE.png and /dev/null differ diff --git a/oci-apm-springboot/d-lab-three-build-app/images/2-2-2-OKE.png b/oci-apm-springboot/d-lab-three-build-app/images/2-2-2-OKE.png deleted file mode 100644 index ea12ba657..000000000 Binary files a/oci-apm-springboot/d-lab-three-build-app/images/2-2-2-OKE.png and /dev/null differ diff --git a/oci-apm-springboot/d-lab-three-build-app/images/2-2-OKE.png b/oci-apm-springboot/d-lab-three-build-app/images/2-2-OKE.png deleted file mode 100644 index 7e689aa5e..000000000 Binary files a/oci-apm-springboot/d-lab-three-build-app/images/2-2-OKE.png and /dev/null differ diff --git a/oci-apm-springboot/d-lab-three-build-app/images/2-3-OKE.png b/oci-apm-springboot/d-lab-three-build-app/images/2-3-OKE.png deleted file mode 100644 index 67ea9c668..000000000 Binary files a/oci-apm-springboot/d-lab-three-build-app/images/2-3-OKE.png and /dev/null differ diff --git a/oci-apm-springboot/d-lab-three-build-app/images/2-4-OKE.png b/oci-apm-springboot/d-lab-three-build-app/images/2-4-OKE.png deleted file mode 100644 index 92c61e51d..000000000 Binary files a/oci-apm-springboot/d-lab-three-build-app/images/2-4-OKE.png and /dev/null differ diff --git a/oci-apm-springboot/d-lab-three-build-app/images/3-1-cloudshell.png b/oci-apm-springboot/d-lab-three-build-app/images/3-1-cloudshell.png deleted file mode 100644 index cdf336682..000000000 Binary files a/oci-apm-springboot/d-lab-three-build-app/images/3-1-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/d-lab-three-build-app/images/3-2-cloudshell.png b/oci-apm-springboot/d-lab-three-build-app/images/3-2-cloudshell.png deleted file mode 100644 index e654e06a2..000000000 Binary files a/oci-apm-springboot/d-lab-three-build-app/images/3-2-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/d-lab-three-build-app/images/4-1-cloudshell.png b/oci-apm-springboot/d-lab-three-build-app/images/4-1-cloudshell.png deleted file mode 100644 index 62e59035e..000000000 Binary files a/oci-apm-springboot/d-lab-three-build-app/images/4-1-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/d-lab-three-build-app/images/4-2-1-cloudshell.png b/oci-apm-springboot/d-lab-three-build-app/images/4-2-1-cloudshell.png deleted file mode 100644 index 08729d1b6..000000000 Binary files a/oci-apm-springboot/d-lab-three-build-app/images/4-2-1-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/d-lab-three-build-app/images/4-2-cloudshell.png b/oci-apm-springboot/d-lab-three-build-app/images/4-2-cloudshell.png deleted file mode 100644 index bcea07bf0..000000000 Binary files a/oci-apm-springboot/d-lab-three-build-app/images/4-2-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/d-lab-three-build-app/images/4-3-cloudshell.png b/oci-apm-springboot/d-lab-three-build-app/images/4-3-cloudshell.png deleted file mode 100644 index f31086ee8..000000000 Binary files a/oci-apm-springboot/d-lab-three-build-app/images/4-3-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/d-lab-three-build-app/images/4-4-winestore.png b/oci-apm-springboot/d-lab-three-build-app/images/4-4-winestore.png deleted file mode 100644 index 577683b21..000000000 Binary files a/oci-apm-springboot/d-lab-three-build-app/images/4-4-winestore.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/create-file-system.md b/oci-apm-springboot/e-lab-four-create-file-system/create-file-system.md deleted file mode 100755 index e75836e52..000000000 --- a/oci-apm-springboot/e-lab-four-create-file-system/create-file-system.md +++ /dev/null @@ -1,370 +0,0 @@ -# Create and configure a file system - -## Introduction - -In this lab, you will create a file system in the Oracle Cloud Infrastructure. You will also create security rules to allow network traffic and mount the file system to the Kubernetes pods. - -***This lab requires OCI quota and permissions to create a file system in your tenancy. If you are using a FREE TRIAL, please go to the next Lab 4 (Free Trial): "Create and configure block volumes", which does not require a paid OCI quota.*** - -Estimated time: 15 minutes - -Watch the video below for a quick walk-through of the lab. -[Create and configure a file system](videohub:1_nuemqknc) - -### Objectives - -* Create a file system in the Oracle Cloud -* Create security rules in the network -* Create a YAML file, which defines Storage Class, Persistent Volume, and Persistent Volume Claim -* Mount the volume to the Kubernetes cluster by applying the YAML, which recreates the Kubernetes pods with the new storage configuration - -### Prerequisites - -* OCI quota and permissions to create a file system and associated resources. See **[Creating File Systems](https://docs.oracle.com/en-us/iaas/Content/File/Tasks/creatingfilesystems.htm)** and **[Service Limits](https://docs.oracle.com/en-us/iaas/Content/General/Concepts/servicelimits.htm#top)** in the Oracle Cloud documentation. -* Completion of the preceding labs in this workshop - -## Task 1: Create a file system in the Oracle Cloud - -1. Minimize the Cloud Shell window by clicking the Minimize button. - - ![Oracle Cloud console, Cloud Shell](images/3-1-0-cloushell.png " ") - -2. From the OCI menu, select **Storage** > **File Systems**. - - ![Oracle Cloud console, Navigation Menu](images/3-1-1-menu.png " ") - -3. Make sure you are in the compartment **apmworkshop**. If not, select it from the pulldown menu. - - ![Oracle Cloud console, file systems](images/3-1-1-2-filesystem.png " ") - -4. Click **Create File System** - - ![Oracle Cloud console, file systems](images/3-1-2-filesystem.png " ") - -5. On the **Create File System** page, ensure the **File System for NFS** is selected. In the **File System Information** section, click **Edit Details**. - - ![Oracle Cloud console, file systems](images/3-1-3-filesystem.png " ") - -6. On the Create File System page, enter **apmlab-fss** into the **Name** field. - - Make sure the **apmworkshop** is selected in the **Compartment**. Leave the other fields in the section with default values. - ***Do NOT click the Create button yet.*** - - ![Oracle Cloud console, file systems](images/3-1-4-filesystem.png " ") - -7. Scroll down the **Create File System** page and find the **Export Information** section. Verify that the **Export Path** is set to **/apmlab-fss**. This is where the file system will be mounted. You will provision the APM Java agent at this location. In the **Mount Target Information** section, click **Edit Details** to expand the section. - - ![Oracle Cloud console, file systems](images/3-1-4-1-filesystem.png " ") - -8. In the **Mount Target Information** section, click the link **Click here to enable compartment selections**. - - ![Oracle Cloud console, file systems](images/3-1-5-filesystem.png " ") - -9. In the Mount Target Information section, ensure that the **Create New Mount Target** is selected. Then locate the **Create in Compartment** field, and ensure the **apmworkshop** compartment is selected. - ![Oracle Cloud console, file systems](images/3-1-5-1-filesystem.png " ") -10. Leave the other fields by default and click **Create**. - - ![Oracle Cloud console, file systems](images/3-1-6-filesystem.png " ") - -11. A new File System is created. Scroll down to find the **Exports** section. Click the link to the **Mount Target** just created. - - ![Oracle Cloud console, file systems](images/3-1-8-filesystem.png " ") - -12. Click **Copy** next to the **OCID**. Save the value in a text file on your computer. Also, take note of the **IP Address** as you will need these values in the next steps. - - ![Oracle Cloud console, file systems](images/3-1-9-filesystem.png " ") - -## Task 2: Create security rules in the network - -1. In the Mount Target Information section point your mouse cursor over the **“i”** icon next to **Subnet** and review the message. As the message indicates, security rules must be configured before mounting the file system, and that is what you will be doing next. - - ![Oracle Cloud console, Security Rules](images/3-2-1-securityrules.png " ") - -2. Click the **Subnet** link to open the Subnet page. - - ![Oracle Cloud console, Security Rules](images/3-2-2-securityrules.png " ") - - -3. In the **Subnet Details page**, scroll down and find the **Security Lists** section, then click the link to the security list. - - ![Oracle Cloud console, Security Rules](images/3-2-4-securityrules.png " ") - -4. Click the **Add Ingress Rules** button - - ![Oracle Cloud console, Security Rules](images/3-2-5-securityrules.png " ") - -5. In the **Add Ingress Rules** dialog, enter the following information: - - * Stateless: **No** - * Source Type: **CIDR** - * Source CIDR: **0.0.0.0/0** - * IP Protocol: **TCP** - * Source Port Range: leave as default (All) - * Destination Port Range: **111,2048-2050** - * Description: **Ingress security rule for apmlab-fss** - - ![Oracle Cloud console, Security Rules](images/3-2-6-securityrules.png " ") - -6. Click the **+ Another Ingress Rule** button and create an additional rule for **UDP**, with the destination port range **111,2048**. Use the same values with the rule created above for the rest of the fields. - - Click the **Add Ingress Rules** button which creates 4 ingress rules in the security list. - - ![Oracle Cloud console, Security Rules](images/3-2-7-securityrules.png " ") - -7. After the configuration, your **Ingress Rules** have 4 additional security rules as in the image below. - - ![Oracle Cloud console, Security Rules](images/3-2-8-securityrules.png " ") - -8. Click **Egress Rules**, which is located on the left side of the screen. - - ![Oracle Cloud console, Security Rules](images/3-2-9-securityrules.png " ") - -9. Click the **Add Egress Rules** button. - - ![Oracle Cloud console, Security Rules](images/3-2-10-securityrules.png " ") - -10. In the **Add Egress Rules** dialog, enter the following information: - - - * Stateless: **No** - * Source Type: **CIDR** - * Source CIDR: **0.0.0.0/0** - * IP Protocol: **TCP** - * Source Port Range: leave as default (All) - * Destination Port Range: **111,2048-2050** - * Description: **Egress security rule for apmlab-fss** - - ![Oracle Cloud console, Security Rules](images/3-2-11-securityrules.png " ") - -11. Click the **+ Another Egress Rule** button and create an additional rule for **UDP**, with the destination port **111**. Use the same values with the rule created above for the rest of the fields.

Click **Add Egress Rules** button which creates 3 egress rules in the security list. - - ![Oracle Cloud console, Security Rules](images/3-2-11-2-securityrules.png " ") - -12. After the configuration, your **Egress Rules** have 3 additional security rules as in the image below. - - ![Oracle Cloud console, Security Rules](images/3-2-12-securityrules.png " ") - -## Task 3: Mount the file system to Kubernetes pods - -1. Click the **Developer tools** icon from the top right corner in the Oracle Cloud console menu bar, then select **Cloud shell** to start a Cloud Shell environment which will appear at the bottom of your page. - ![Oracle Cloud console, Menu](images/3-3-1-menu.png " ") - - > **Note:** If the Cloud Shell is already running but the window is minimized, you can restore the window by clicking the **Restore** icon on the toolbar. - ![Oracle Cloud console, Menu](images/3-3-2-menu.png " ") - - -2. If the previous Cloud Shell session is expired, run the oci ce (Container Engine) command that you saved in Lab 3, Task 2, step 5. - - - ![Oracle Cloud console, Cloud Shell](images/3-3-2-cloudshell.png " ") - -3. Use any text editor (such as the vi editor tool) to open the **apmlab-fss.yaml** file for editing. - - ``` bash - - vi ~/sb-hol/apmlab-fss.yaml - - ``` - - >**Note:** If you are using the vi editor, type ***i*** to enter Insert mode, and make the text editable. Use allow keys to navigate the text and make changes to where you set the cursor. To save a file, press the Esc key, then type ***:wq*** to write and quit the file. If you do not wish a change, press Esc then type ***:q!*** to discard your changes. Please refer to the editor's references for more usage. - Alternatively, you can use a built-in code editor to edit files. To use the code editor, select the **Developer tools** icon from the toolbar> select **Code Editor**. - ![yaml](images/3-3-2-1-yaml.png " ") - -4. Review the file contents that create Kubernetes objects (StorageClass, PersistentVolume, PersistentVolumeClaim) in your OKE. Replace the **mntTargetID** and **server IP** with the values copied in Lab 3, Task 1, step 11 in this Workshop. Save the change and close the file. - - apiVersion: storage.k8s.io/v1 - kind: StorageClass - metadata: - name: apmlab-fss - provisioner: oracle.com/apmlab-fss - parameters: - mntTargetId: - --- - apiVersion: v1 - kind: PersistentVolume - metadata: - name: apmlab-fsspv - spec: - storageClassName: apmlab-fss - capacity: - storage: 10Gi - accessModes: - - ReadWriteMany - mountOptions: - - nosuid - nfs: - server: - path: "/apmlab-fss" - readOnly: false - --- - apiVersion: v1 - kind: PersistentVolumeClaim - metadata: - name: apmlab-fsspv - spec: - storageClassName: apmlab-fss - accessModes: - - ReadWriteMany - resources: - requests: - storage: 10Gi - volumeName: apmlab-fsspv - - >**Note:** Refer to the screenshot image below to see what it should look like after the file is modified. Verify that the Kubernetes objects, such as StorageClass, PersistentVolume, and PersistentVolumeClass are configured in the YAML file. - ![yaml](images/3-3-2-yaml.png " ") - - -## Task 4: Apply changes to the container - -1. Execute the following command to add the storage objects to the Kubernetes cluster. - - ``` bash - - kubectl apply -f ~/sb-hol/apmlab-fss.yaml - - ``` -2. Verify the Storage Class, PV and PVC are created. - - ![Oracle Cloud console, Cloud Shell](images/3-3-3-cloudshell.png " ") - - >**Note:** If you need to modify the YAML file after once applied, first run the command below to remove the objects, modify the file, then rerun the above command to re-apply the YAML. - kubectl delete -f ~/sb-hol/apmlab-fss.yaml - -## Task 5: Add volumes to Kubernetes pods - -1. Next, you will need to map the PV to the pods. Open **wstore.yaml** file with an editor. - - ``` bash - - vi ~/sb-hol/wstore.yaml - - ``` - -2. Scroll down the file. You will see there are two statefulsets, **wstore-front** and **wstore-back**, defined in the YAML file. - -3. Within each statefulset, find a line that defines the container port: "**- containerPort: 8080**" (line 51 and line 75). - - ![Oracle Cloud console, Cloud Shell](images/3-3-3-1-cloudshell.png " ") - -4. Hit **i** to enter the edit mode. Carefully insert the following code below the **containerPort**. Note that the same changes have to be made in both statefulsets, **wstore-back** and **wstore-front**. - - - volumeMounts: - - mountPath: "/apmlab-fss" - name: apmlab-nfs - volumes: - - name: apmlab-nfs - persistentVolumeClaim: - claimName: apmlab-fsspv - - - - > ***Suggested Editing Tips:*** - - Use your mouse to select the text above, and manually copy and paste it into a text file. - - Auto copy is not provided as it may break the indentation. - - Copy the entire area from the text box, including the space preceding the text. - - In the yaml file, place your mouse cursor at the beginning of the line, then paste the code. - - Make sure to keep the same space indentation when pasting the code into the file. - - "VolumeMounts:" aligns with "ports:" - - "Volumes:" aligns with "imagePullSecrets:" - - Refer to the screenshot image below to see how it should look, after the file is modified. - ![Oracle Cloud console, Cloud Shell](images/3-3-3-2-cloudshell.png " ") - - Also refer to the below code change made to one of the statefulsets, **wstore-back**. - - apiVersion: apps/v1 - kind: StatefulSet - metadata: - name: wstore-back - spec: - serviceName: "wstore-backend" - replicas: 2 - selector: - matchLabels: - app: wstore-back - template: - metadata: - labels: - app: wstore-back - spec: - containers: - - name: wstore - image: iad.ocir.io/axfo51x8x2ap/p-winestore:latest - command: ["java", "-jar", "./wineStore.jar", "--spring.config.location=file:/spring/wstore.properties"] - ports: - - containerPort: 8080 - volumeMounts: - - mountPath: "/apmlab-fss" - name: apmlab-nfs - volumes: - - name: apmlab-nfs - persistentVolumeClaim: - claimName: apmlab-fsspv - imagePullSecrets: - - name: ocirsecret - - - -5. Run the following command. This will recreate the pods, with the new object configurations. - - ``` bash - - kubectl apply -f ~/sb-hol/wstore.yaml --validate=false - - ``` - Verify that the service for wstore-frontend and both statefulsets are configured. - - ![Oracle Cloud console, Cloud Shell](images/3-3-6-cloudshell.png " ") - - -6. Run the following command to ensure the pods are in the running state. Verify the **AGE** column to ensure the pods are restarted. - - ``` bash - - kubectl get pods - - ``` - - ![Oracle Cloud console, Cloud Shell](images/3-3-7-cloudshell.png " ") - - -7. ***Troubleshooting:*** If the pods do not come back with the running state in a minute or two, review the configuration in the file to make sure they have the right indentation. For learning purposes, we have preconfigured the volume mapping in the **wstore-add-storage.yaml** file. Run the following command to view what it looks like after the successful file editing. - - ``` bash - - vi ~/sb-hol/wstore-add-storage.yaml - - ``` - - > If the problem persists, optionally, you can run the preconfigured YAML file to regenerate the file with the volume mapping. - - First, run the following command to delete the failing configurations: - kubectl delete -f ~/sb-hol/wstore.yaml - - Then run the following to apply the preconfigured settings: - kubectl apply -f ~/sb-hol/wstore-add-storage.yaml --validate=false - - - -8. Execute the following command to access the Kubernetes pods. - - ``` bash - - kubectl exec -it wstore-front-0 -- bash -c "cd / && ls " - - ``` - - Make sure that you see the ***apmlab-fss*** directory that is the file system mounted to this location. - - ![Oracle Cloud console, Cloud Shell](images/3-3-8-cloudshell.png " ") - - - >***Debugging TIPS***: If you cannot find the apmlab-fss directory, or the pods do not start running, execute the following command from the Cloud Shell to troubleshoot. - kubectl get events --sort-by=.metadata.creationTimestamp - -You may now **proceed to Lab 5 (Paid Tenancy): Instrument server monitoring on the file system**. - -## Acknowledgements - -* **Author** - Yutaka Takatsu, Product Manager, Enterprise and Cloud Manageability -- **Contributors** - Steven Lemme, Senior Principal Product Manager, -Anand Prabhu, Sr. Member of Technical Staff, -Avi Huber, Vice President, Product Management -* **Last Updated By/Date** - Yutaka Takatsu, March 2023 diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/1-7-cloudshell.png b/oci-apm-springboot/e-lab-four-create-file-system/images/1-7-cloudshell.png deleted file mode 100644 index 4429064a9..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/1-7-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-0-cloushell.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-0-cloushell.png deleted file mode 100644 index d5a7f1399..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-0-cloushell.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-1-2-filesystem.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-1-2-filesystem.png deleted file mode 100644 index 50a5693e1..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-1-2-filesystem.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-1-menu.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-1-menu.png deleted file mode 100644 index 5aa57d007..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-1-menu.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-2-filesystem.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-2-filesystem.png deleted file mode 100644 index cbf01d5e3..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-2-filesystem.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-3-filesystem.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-3-filesystem.png deleted file mode 100644 index ca106278b..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-3-filesystem.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-4-1-filesystem.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-4-1-filesystem.png deleted file mode 100644 index 046cc96a9..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-4-1-filesystem.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-4-filesystem.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-4-filesystem.png deleted file mode 100644 index 390c96c67..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-4-filesystem.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-5-1-filesystem.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-5-1-filesystem.png deleted file mode 100644 index a934bfc99..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-5-1-filesystem.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-5-filesystem.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-5-filesystem.png deleted file mode 100644 index c94233d38..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-5-filesystem.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-6-filesystem.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-6-filesystem.png deleted file mode 100644 index b58e984ce..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-6-filesystem.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-7-filesystem.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-7-filesystem.png deleted file mode 100644 index 37943522d..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-7-filesystem.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-8-filesystem.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-8-filesystem.png deleted file mode 100644 index 58ae07693..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-8-filesystem.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-9-filesystem.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-9-filesystem.png deleted file mode 100644 index b47b979dc..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-1-9-filesystem.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-1-securityrules.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-1-securityrules.png deleted file mode 100644 index 060197a1a..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-1-securityrules.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-10-securityrules.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-10-securityrules.png deleted file mode 100644 index 789be6e61..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-10-securityrules.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-11-2-securityrules.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-11-2-securityrules.png deleted file mode 100644 index c870580d4..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-11-2-securityrules.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-11-securityrules.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-11-securityrules.png deleted file mode 100644 index a53926b84..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-11-securityrules.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-12-securityrules.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-12-securityrules.png deleted file mode 100644 index a67c048de..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-12-securityrules.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-2-securityrules.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-2-securityrules.png deleted file mode 100644 index 1191aad7c..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-2-securityrules.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-3-securityrules.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-3-securityrules.png deleted file mode 100644 index f941b91d6..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-3-securityrules.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-4-securityrules.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-4-securityrules.png deleted file mode 100644 index 0afbbaf71..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-4-securityrules.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-5-securityrules.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-5-securityrules.png deleted file mode 100644 index 5a1eb4c04..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-5-securityrules.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-6-securityrules.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-6-securityrules.png deleted file mode 100644 index 9f95f4562..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-6-securityrules.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-7-securityrules.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-7-securityrules.png deleted file mode 100644 index 77a2767ff..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-7-securityrules.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-8-securityrules.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-8-securityrules.png deleted file mode 100644 index c15a062ad..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-8-securityrules.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-9-securityrules.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-9-securityrules.png deleted file mode 100644 index 580d4555c..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-2-9-securityrules.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-1-menu.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-1-menu.png deleted file mode 100644 index d55efd60f..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-1-menu.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-10-cloudshell.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-10-cloudshell.png deleted file mode 100644 index c82b06fe8..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-10-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-2-1-yaml.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-2-1-yaml.png deleted file mode 100644 index 461993389..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-2-1-yaml.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-2-cloudshell.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-2-cloudshell.png deleted file mode 100644 index 5845c778d..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-2-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-2-menu.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-2-menu.png deleted file mode 100644 index 271344024..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-2-menu.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-2-yaml.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-2-yaml.png deleted file mode 100644 index 5387d4149..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-2-yaml.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-3-1-cloudshell.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-3-1-cloudshell.png deleted file mode 100644 index 56147058d..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-3-1-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-3-2-cloudshell.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-3-2-cloudshell.png deleted file mode 100644 index b802df0c8..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-3-2-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-3-cloudshell.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-3-cloudshell.png deleted file mode 100644 index ac9a2c938..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-3-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-6-cloudshell.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-6-cloudshell.png deleted file mode 100644 index 25f7648f0..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-6-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-7-cloudshell.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-7-cloudshell.png deleted file mode 100644 index 239635b0f..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-7-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-8-cloudshell.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-8-cloudshell.png deleted file mode 100644 index ba6ed67b1..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-8-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-9-cloudshell.png b/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-9-cloudshell.png deleted file mode 100644 index 75a142c9d..000000000 Binary files a/oci-apm-springboot/e-lab-four-create-file-system/images/3-3-9-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/f-lab-four-b-create-block-volume/create-block-volume.md b/oci-apm-springboot/f-lab-four-b-create-block-volume/create-block-volume.md deleted file mode 100644 index fd3fbd433..000000000 --- a/oci-apm-springboot/f-lab-four-b-create-block-volume/create-block-volume.md +++ /dev/null @@ -1,251 +0,0 @@ -# Create and configure Block Volumes - -## Introduction - -In this lab, you will create block volumes in the Oracle Cloud Infrastructure, and mount the volumes to the Kubernetes pods. ***Select this lab if you are using Free Trial.*** - -Estimated time: 15 minutes - - -### Objectives - -* Create block volumes in the Oracle Cloud -* Create a YAML file, which defines Storage Class and Persistent Volume Claim -* Mount the volume to the Kubernetes cluster by applying the YAML, which recreates the Kubernetes pods with the new storage configuration - -### Prerequisites - -* If you are using a Free Trial, select this lab, because creating 2 Block Volumes storage is included in the Oracle Free Tier. -* Completion of the preceding labs in this workshop - - - - -## Task 1: Mount the file system to Kubernetes pods - - 1. If you closed the Oracle Cloud shell window, please re-open it. Click the **Developer tools** icon from the top right corner in the Oracle Cloud console menu bar, then select **Cloud shell** to start a Cloud Shell environment which will appear at the bottom of your page. - ![Oracle Cloud console, Menu](images/3-3-1-menu.png " ") - - > **Note:** If the Cloud Shell is already running but the window is minimized, you can restore the window by clicking the **Restore** icon on the toolbar. - ![Oracle Cloud console, Menu](images/3-3-2-menu.png " ") - - - 2. If the previous Cloud Shell session is expired, run the oci ce (Container Engine) command that you saved in Lab 3, Task 2, step 5. - - - ![Oracle Cloud console, Cloud Shell](images/3-3-2-cloudshell.png " ") - - 3. Create a YAML file, **apmlab-pvc.yaml** using an editor such as the vi editor tool. - - ``` bash - - vi ~/sb-hol/apmlab-pvc.yaml - - ``` - - >**Note:** If you are using the vi editor, type ***i*** to enter Insert mode, and make the text editable. Use allow keys to navigate the text and make changes to where you set the cursor. To save a file, press the Esc key, then type ***:wq*** to write and quit the file. If you do not wish a change, press Esc then type ***:q!*** to discard your changes. Please refer to the editor's references for more usage. - Alternatively, you can use a built-in code editor to edit files. To use the code editor, select the **Developer tools** icon from the toolbar> select **Code Editor**. - ![Code editor](images/3-3-2-1-yaml.png " ") - - 4. Hit **i** to enter the editing mode. Copy the below contents that create Kubernetes objects (StorageClass, PersistentVolumeClaim) in your OKE, and paste it into the file. Then save the file. - - - - apiVersion: v1 - kind: PersistentVolumeClaim - metadata: - name: apmlab-fsspv - spec: - storageClassName: "oci-bv" - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi - --- - apiVersion: v1 - kind: PersistentVolumeClaim - metadata: - name: apmlab-fsspv2 - spec: - storageClassName: "oci-bv" - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi - - - - >**Note:** Refer to the screenshot image below to see what it should look like after the file is modified. Verify that the Kubernetes objects, such as StorageClass and PersistentVolumeClass are configured in the YAML file. - ![apmlab-pvc.yaml](images/3-3-2-yaml.png " ") - -## Task 2: Apply changes to the container - -1. Execute the following command to add the storage objects to the Kubernetes cluster. - - ``` bash - - kubectl create -f apmlab-pvc.yaml - - ``` -2. Verify the Storage Class, PV and PVC are created. - - ![Oracle Cloud console, Cloud Shell](images/2-1-createpvc.png " ") - - >**Note:** If you need to modify the YAML file after once applied, first run the command below to remove the objects, modify the file, then rerun the above command to re-apply the YAML. - kubectl delete -f ~/sb-hol/apmlab-pvc.yaml - - -## Task 3: Add volumes to Kubernetes pods - -1. Next, you will need to map the PV to the pods. Open **wstore.yaml** file with an editor. - - ``` bash - - vi ~/sb-hol/wstore.yaml - - ``` - -2. Scroll down the file. You will see there are two statefulsets, **wstore-front** and **wstore-back**, defined in the YAML file. - -3. Within each statefulset, find a line that defines the container port: "**- containerPort: 8080**" (line 51 and line 75). - - ![Oracle Cloud console, Cloud Shell](images/3-3-3-1-cloudshell.png " ") - -4. Hit **i** to enter the edit mode. Carefully insert the following code below the **containerPort**. Note that the changes have to be made in both statefulsets, **wstore-back** and **wstore-front**. - - - - * Insert below under “- containerPort: 8080” (line 51) - - - - volumeMounts: - - name: data - mountPath: /apmlab-fss - volumes: - - name: data - persistentVolumeClaim: - claimName: apmlab-fsspv - - - * Insert below under “- containerPort: 8080” (line 75). - - NOTE the contents are different from the above. - - - volumeMounts: - - name: data - mountPath: /apmlab-fss2 - volumes: - - name: data - persistentVolumeClaim: - claimName: apmlab-fsspv2 - - - - * Change the replicas of backend from 2 to 1. - - - serviceName: "wstore-backend" - replicas: 1 - - Save the file. - - - - > ***Suggested Editing Tips:*** - - Use your mouse to select the text above, and manually copy and paste it into a text file. - - Auto copy is not provided as it may break the indentation. - - Copy the entire area from the text box, including the space preceding the text. - - In the yaml file, place your mouse cursor at the beginning of the line, then paste the code. - - Make sure to keep the same space indentation when pasting the code into the file. - - "VolumeMounts:" aligns with "ports:" - - "Volumes:" aligns with "imagePullSecrets:" - - Refer to the screenshot image below to see how it should look, after the file is modified. - ![Oracle Cloud console, Cloud Shell](images/3-1-wstore.yaml.png " ") - - - -5. Run the following command. This will recreate the pods, with the new object configurations. - - ``` bash - - kubectl apply -f ~/sb-hol/wstore.yaml --validate=false - - ``` - Verify that the service for wstore-frontend and both statefulsets are configured. - - ![Oracle Cloud console, Cloud Shell](images/3-3-6-cloudshell.png " ") - -6. Check the status of the PVCs. - - ``` bash - - kubectl get pvc - - ``` - ![Oracle Cloud console, Cloud Shell](images/3-3-cloudshell.png " ") - -7. Run the following commands to ensure the pods are in the running state. Verify the **AGE** column to ensure the pods are restarted. - - ``` bash - - kubectl get pods - - - ``` - - ![Oracle Cloud console, Cloud Shell](images/3-4-cloudshell.png " ") - - - >**Note:** Troubleshooting: If the pods do not come back with the running state in a minute or two, review the configuration in the file to make sure they have the right indentation. - -9. Execute the following command to access the Kubernetes pods. - - ``` bash - - kubectl exec -it wstore-front-0 -- bash -c "cd / && ls " - - ``` - - Make sure that you see the ***apmlab-fss*** directory that is the file system mounted to this location. - - ![Oracle Cloud console, Cloud Shell](images/3-3-8-cloudshell.png " ") - - - >***Debugging TIPS***: If you cannot find the apmlab-fss directory, or the pods do not start running, execute the following command from the Cloud Shell to troubleshoot. - kubectl get events --sort-by=.metadata.creationTimestamp - -10. Run the following command and copy the EXTERNAL-IP from the frontend service. - - ``` bash - - kubectl get svc - - ``` - ![Oracle Cloud console, Cloud Shell](images/3-5-cloudshell.png " ") - -11. Run the following URL and verify the application is running. - ``` bash - - http:///winestore/ - - ``` - - ![Wine store app](images/3-6-wstore-home.png " ") - - - - -You may now **proceed to Lab 5 (Free Trial): Instrument server monitoring on the block volumes**. - - -## Acknowledgements - -* **Author** - Yutaka Takatsu, Product Manager, Enterprise and Cloud Manageability -- **Contributors** - Steven Lemme, Senior Principal Product Manager, -Anand Prabhu, Sr. Member of Technical Staff, -Avi Huber, Vice President, Product Management -* **Last Updated By/Date** - Yutaka Takatsu, March 2023 diff --git a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/2-1-createpvc.png b/oci-apm-springboot/f-lab-four-b-create-block-volume/images/2-1-createpvc.png deleted file mode 100644 index 875183514..000000000 Binary files a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/2-1-createpvc.png and /dev/null differ diff --git a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-1-wstore.yaml.png b/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-1-wstore.yaml.png deleted file mode 100644 index b4a7fdc24..000000000 Binary files a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-1-wstore.yaml.png and /dev/null differ diff --git a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-1-menu.png b/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-1-menu.png deleted file mode 100644 index d55efd60f..000000000 Binary files a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-1-menu.png and /dev/null differ diff --git a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-2-1-yaml.png b/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-2-1-yaml.png deleted file mode 100644 index 461993389..000000000 Binary files a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-2-1-yaml.png and /dev/null differ diff --git a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-2-cloudshell.png b/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-2-cloudshell.png deleted file mode 100644 index 5845c778d..000000000 Binary files a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-2-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-2-menu.png b/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-2-menu.png deleted file mode 100644 index 271344024..000000000 Binary files a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-2-menu.png and /dev/null differ diff --git a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-2-yaml.png b/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-2-yaml.png deleted file mode 100644 index 276821b9e..000000000 Binary files a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-2-yaml.png and /dev/null differ diff --git a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-3-1-cloudshell.png b/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-3-1-cloudshell.png deleted file mode 100644 index 56147058d..000000000 Binary files a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-3-1-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-6-cloudshell.png b/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-6-cloudshell.png deleted file mode 100644 index 25f7648f0..000000000 Binary files a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-6-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-8-cloudshell.png b/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-8-cloudshell.png deleted file mode 100644 index ba6ed67b1..000000000 Binary files a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-8-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-cloudshell.png b/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-cloudshell.png deleted file mode 100644 index ac0b41e80..000000000 Binary files a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-3-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-4-cloudshell.png b/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-4-cloudshell.png deleted file mode 100644 index bfba50a7e..000000000 Binary files a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-4-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-5-cloudshell.png b/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-5-cloudshell.png deleted file mode 100644 index 5f67325e1..000000000 Binary files a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-5-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-6-wstore-home.png b/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-6-wstore-home.png deleted file mode 100644 index 8ee3324f7..000000000 Binary files a/oci-apm-springboot/f-lab-four-b-create-block-volume/images/3-6-wstore-home.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/configure-apm-agent.md b/oci-apm-springboot/g-lab-five-configure-apm-agent/configure-apm-agent.md deleted file mode 100644 index 3566ba11d..000000000 --- a/oci-apm-springboot/g-lab-five-configure-apm-agent/configure-apm-agent.md +++ /dev/null @@ -1,206 +0,0 @@ -# Instrument the server monitoring on the file system - -## Introduction - -In this lab, you will download the APM Java Agent installer file from the Oracle Cloud console, upload it to the Oracle Cloud shell, transfer it to the Kubernetes container, provision the Java Agent to the file system, and finally, deploy the Agent to the Kubernetes pods. - -***Please run this lab only if you completed Lab 4 (Paid Tenancy): "Create and configure a file system".*** - -***For users who completed Lab 4 (Free Trial): "Create and configure block volumes", please go to the next lab, Lab 5 (Free Trial): "Instrument server monitoring for block volumes".*** - -This lab requires OCI quota and permissions to create a file system in your tenancy. If you are using a FREE TRIAL, please go to the next Lab 4 (Free Trial): Create and configure block volumes, which does not require a paid OCI quota.*** - - -Estimated time: 10 minutes - -Watch the video below for a quick walk-through of the lab. -[Instrument the server monitoring](videohub:1_2mpynh0j) - -### Objectives - -* Download the APM Java Agent from the Oracle Cloud console -* Upload the APM Java Agent to the Cloud shell -* Copy the Java Agent installer from the Cloud shell to the file system -* Provision the APM Java Agent in the shared file system directory -* Deploy the Java Agent to the Kubernetes pods - -### Prerequisites - -* Completion of the preceding labs in this workshop - -## Task 1: Obtain APM Java Agent download link - -1. Open navigation menu from the Oracle Cloud console, select **Observability & Management** > **Administration**. - - ![Oracle Cloud console, Navigation Menu](images/4-1-1-menu.png " ") - -2. Under **Resources** at the lower left side of the screen, click **Download APM Agent** - - ![Oracle Cloud console, APM Domains](images/4-1-2-apmdomain.png " ") - -3. Manually copy the **Agent Version** and paste it to a text file. - - ![Oracle Cloud console, APM Domains](images/4-1-3-apmdomain.png " ") - -4. Open the Cloud Shell by clicking the **Developer tools** icon > select **Cloud shell** from the top right corner of the Oracle Cloud console. Restore the Cloud Shell if minimized. - - ![Oracle Cloud console, APM Domains](images/4-1-4-cloudshell.png " ") - - -## Task 2: Download the APM Java Agent to the Cloud shell - -1. Type the following command into the Cloud Shell. Make sure to ***replace*** the **Agent version** with the copied text from the previous steps. - - ``` bash - - cd ~/; wget https://repo1.maven.org/maven2/com/oracle/apm/agent/java/apm-java-agent-installer//apm-java-agent-installer-.jar - - ``` - - E.g., cd ~/; wget https://repo1.maven.org/maven2/com/oracle/apm/agent/java/apm-java-agent-installer/1.8.3326/apm-java-agent-installer-1.8.3326.jar - - >**Note:** If you received **No such file or directory** error, it may be a new version of the agent is being updated. Please run the following URL on a browser and find the Agent version available at the Maven central. - ``` bash - - https://repo1.maven.org/maven2/com/oracle/apm/agent/java/apm-java-agent-installer - - ``` - ![Oracle Cloud console, Cloud Shell](images/2-1-mavencentral.png " ") - -2. Hit the enter key and verify the message to ensure the successful file transfer. - -3. Type the ls command. Confirm that the java agent file installer is in the home directory. - - ``` bash - - ls ~ - - ``` - ![Oracle Cloud console, Cloud Shell](images/4-1-6-cloudshell.png " ") - -## Task 3: Copy the Java Agent installer to the file system - -1. Run the command below to copy the Java Agent installer file to the file system. Ensure to ***replace*** the **apm-agent-version** with that of the APM Java Agent you have, before the command execution. - - ``` bash - - kubectl cp apm-java-agent-installer-.jar wstore-front-0:/apmlab-fss/ - - ``` - - > - e.g., kubectl cp apm-java-agent-installer-1.8.3326.jar wstore-front-0:/apmlab-fss/ - - The command copies the Agent installer to the **wstore-front**, but it can be copied to any pod as the way we set up, all pods share the same file system. - - -2. Use the kubectl command below to remotely run the ls command in the container in the Kubernetes pod. - - ``` bash - - kubectl exec -it wstore-front-0 -- bash -c "cd /apmlab-fss && ls " - - ``` - - If you see the java agent installer file in the location, the file transfer was successful. - - ![Oracle Cloud console, Cloud Shell ](images/4-1-8-cloudshell.png " ") - - >**Note:** The APM version may be different from what is shown in the example. - -## Task 4: Provision of the APM Java Agent - - -1. Execute the command below to provision the APM Java agent. ***Replace*** the **APM Domain Private key** and **APM Domain Endpoint**, with the values saved in Lab2, Task2. Please also ***change*** the **apm-agent-version** in the file name to the version of the agent you have. - - ``` bash - - kubectl exec -it wstore-front-0 -- bash -c "cd /apmlab-fss && java -jar ./apm-java-agent-installer-.jar provision-agent -service-name=WS-svc -destination=. -private-data-key= -data-upload-endpoint=" - - ``` - E.g., kubectl exec -it wstore-front-0 -- bash -c "cd /apmlab-fss && java -jar apm-java-agent-installer-1.8.3326.jar provision-agent -service-name=WS-svc -destination=. -private-data-key=ABCDEFG12345ABCDEF123456ABCDE -data-upload-endpoint=https://abcdefgt12345aaaaaaaaabcdef.apm-agt.us-phoenix-1.oci.oraclecloud.com" - - With a successful installation, you should see the output similar to below. - - ![Oracle Cloud console, Cloud Shell ](images/4-1-10-cloudshell.png " ") - -2. Execute the below command to verify ***oracle-apm-agent*** directory is created under the apmlab-fss directory. - - ``` bash - - kubectl exec -it wstore-front-0 -- bash -c "cd /apmlab-fss && ls " - - ``` - - ![Oracle Cloud console, Cloud Shell ](images/4-1-11-cloudshell.png " ") - -## Task 5: Deploy the Java Agent - -The next step is to deploy the Java Agent. First, update the **wstore.yaml** file by adding the java runtime argument that points to the APM Agent jar file bootstrap location, then apply to the Kubernetes pods. Notice that the service names, **wstore-front** and **wstore-back**, that are used to display in the APM Trace Explorer, are also added to the command for the statefulsets. - -1. Use any editor to open the wstore.yaml file. - - ``` bash - - vi ~/sb-hol/wstore.yaml - - ``` -2. Find the following line in each statefulset, where Java runtime arguments are set. (Look for lines 49 and 80, assuming the volumes were added as expected in the previous steps). - - >command: ["java", "-jar", "./wineStore.jar", "--spring.config.location=file:/spring/wstore.properties"] - - -3. Hit **i**. Locate line 49, then insert the following arguments after the **command: ["java",**. - - ``` bash - - "-javaagent:/apmlab-fss/oracle-apm-agent/bootstrap/ApmAgent.jar", "-Dcom.oracle.apm.agent.service.name=wstore-front", - - ``` - -4. Next, locate line 80, and insert the following arguments after the **command: ["java",**. - - ``` bash - - "-javaagent:/apmlab-fss/oracle-apm-agent/bootstrap/ApmAgent.jar", "-Dcom.oracle.apm.agent.service.name=wstore-back", - - ``` - The image below shows the **wstore-back** statefulset after the successful editing, for example. Please note that you will need to add the arguments to both statefulsets, **wstore-front** and **wstore-back**, and the service names have to be configured differently. - - ![Oracle Cloud console, Cloud Shell ](images/4-6-1-cloudshell.png " ") - - - > ***Troubleshooting***: For learning purposes, we have preconfigured the java argument editing in the **wstore-deploy-agent.yaml** file. If you encounter any issues run the following command to review how the changes are expected to be done. - - vi ~/sb-hol/wstore-deploy-agent.yaml - - -5. Recreate the Kubernetes pods by applying the **wstore-deploy-agent.yaml** file. - - ```bash - - kubectl apply -f ~/sb-hol/wstore.yaml --validate=false - - ``` - - Verify the service and the statefulsets are configured. - - ![Oracle Cloud console, Cloud Shell ](images/4-6-2-cloudshell.png " ") - -6. Run the following command to check the status of the pods. Make sure they are in the Running state and Ready. If the status is pending, re-run the command. If they do not come back after a few minutes, review the file to ensure the editing was done correctly. - - ```bash - - kubectl get pods - - ``` - ![Oracle Cloud console, Cloud Shell ](images/4-6-3-cloudshell.png " ") - - Once the pods are in the Running state, the APM Java Agent is active and listening to the WineCellar application. It captures backend traces and spans which you can view in the APM Trace Explorer. - -You may now **proceed to the next lab**. - -## Acknowledgements - -* **Author** - Yutaka Takatsu, Product Manager, Enterprise and Cloud Manageability -- **Contributors** - Steven Lemme, Senior Principal Product Manager, -Anand Prabhu, Sr. Member of Technical Staff, -Avi Huber, Vice President, Product Management -* **Last Updated By/Date** - Yutaka Takatsu, March 2023 diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/2-1-mavencentral.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/2-1-mavencentral.png deleted file mode 100644 index 3ad361053..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/2-1-mavencentral.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-1-menu.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-1-menu.png deleted file mode 100644 index 451036ffc..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-1-menu.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-10-cloudshell.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-10-cloudshell.png deleted file mode 100644 index 42ab98d21..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-10-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-11-cloudshell.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-11-cloudshell.png deleted file mode 100644 index 406227d09..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-11-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-2-apmdomain.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-2-apmdomain.png deleted file mode 100644 index 408998c53..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-2-apmdomain.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-3-apmdomain.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-3-apmdomain.png deleted file mode 100644 index 8bb2a3811..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-3-apmdomain.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-4-cloudshell.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-4-cloudshell.png deleted file mode 100644 index e737c335b..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-4-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-5-browse.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-5-browse.png deleted file mode 100644 index 02a1048cc..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-5-browse.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-5-cloudshell.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-5-cloudshell.png deleted file mode 100644 index 35eff85df..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-5-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-6-cloudshell.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-6-cloudshell.png deleted file mode 100644 index 9ff170a32..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-6-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-6-upload.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-6-upload.png deleted file mode 100644 index b8ee0b064..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-6-upload.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-7-1-cloudshell.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-7-1-cloudshell.png deleted file mode 100644 index 7c2e3d52c..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-7-1-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-7-2-cloudshell.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-7-2-cloudshell.png deleted file mode 100644 index 2e20063bf..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-7-2-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-7-cloudshell.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-7-cloudshell.png deleted file mode 100644 index ea48c47d4..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-7-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-8-cloudshell.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-8-cloudshell.png deleted file mode 100644 index 7a14df8f5..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-8-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-9-cloudshell.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-9-cloudshell.png deleted file mode 100644 index 78371dd60..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-1-9-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-5-1-cloudshell.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-5-1-cloudshell.png deleted file mode 100644 index 4eaed2b98..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-5-1-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-5-2-cloudshell.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-5-2-cloudshell.png deleted file mode 100644 index f53a97507..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-5-2-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-5-3-cloudshell.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-5-3-cloudshell.png deleted file mode 100644 index ec47249e7..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-5-3-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-6-1-1-cloudshell.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-6-1-1-cloudshell.png deleted file mode 100644 index a81b30b30..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-6-1-1-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-6-1-cloudshell.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-6-1-cloudshell.png deleted file mode 100644 index eb9897710..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-6-1-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-6-2-cloudshell.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-6-2-cloudshell.png deleted file mode 100644 index 82c8eaf36..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-6-2-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-6-3-cloudshell.png b/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-6-3-cloudshell.png deleted file mode 100644 index 2e46dee30..000000000 Binary files a/oci-apm-springboot/g-lab-five-configure-apm-agent/images/4-6-3-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/b-configure-apm-agent.md b/oci-apm-springboot/h-lab-five-b-configure-apm-agent/b-configure-apm-agent.md deleted file mode 100644 index 6c7e815d5..000000000 --- a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/b-configure-apm-agent.md +++ /dev/null @@ -1,232 +0,0 @@ -# Instrument the server monitoring on the block volumes - -## Introduction - -In this lab, you will download the APM Java Agent installer file from the Oracle Cloud console, upload it to the Oracle Cloud shell, transfer it to the Kubernetes container, provision the Java Agent to the block volumes, and finally, deploy the Agent to the Kubernetes pods. - -***Please proceed to this lab only if you completed Lab 4 (Free Trial): "Create and configure block volumes".*** - -***For users who completed Lab 4 (Free Trial): "Create and configure a file system", please complete the previous lab, Lab 5 (Paid Tenancy): "Instrument server monitoring for the file system".*** - -Estimated time: 10 minutes - - -### Objectives - -* Download the APM Java Agent from the Oracle Cloud console -* Upload the APM Java Agent to the Cloud shell -* Copy the Java Agent installer from the Cloud shell to the block volumes -* Provision the APM Java Agent in the block volumes -* Deploy the Java Agent to the Kubernetes pods - -### Prerequisites - -* Completion of the preceding labs in this workshop - -## Task 1: Obtain APM Java Agent download link - -1. Open the navigation menu from the Oracle Cloud console, and select **Observability & Management** > **Administration**. - - ![Oracle Cloud console, Navigation Menu](images/4-1-1-menu.png " ") - -2. Under **Resources** at the lower left side of the screen, click **Download APM Agent** - - ![Oracle Cloud console, APM Domains](images/4-1-2-apmdomain.png " ") - -3. Manually copy the **Agent Version** and paste it to a text file. - - ![Oracle Cloud console, APM Domains](images/4-1-3-apmdomain.png " ") - -4. Open the Cloud Shell by clicking the **Developer tools** icon > select **Cloud shell** from the top right corner of the Oracle Cloud console. Restore the Cloud Shell if minimized. - - ![Oracle Cloud console, APM Domains](images/4-1-4-cloudshell.png " ") - - -## Task 2: Download the APM Java Agent to the Cloud shell - -1. Type the following command into the Cloud Shell. Make sure to ***replace*** the **Agent version** with the copied text from the previous steps. - - ``` bash - - cd ~/; wget https://repo1.maven.org/maven2/com/oracle/apm/agent/java/apm-java-agent-installer//apm-java-agent-installer-.jar - - ``` - - E.g., cd ~/; wget https://repo1.maven.org/maven2/com/oracle/apm/agent/java/apm-java-agent-installer/1.8.3326/apm-java-agent-installer-1.8.3326.jar - - - - >**Note:** If you received **No such file or directory** error, it may be a new version of the agent is being updated. Please run the following URL on a browser and find the Agent version available at the Maven central. - ``` bash - - https://repo1.maven.org/maven2/com/oracle/apm/agent/java/apm-java-agent-installer - - ``` - ![Oracle Cloud console, Cloud Shell](images/2-1-mavencentral.png " ") - - -2. Hit the enter key and verify the message to ensure the successful file transfer. - -3. Type the ls command. Confirm that the java agent file installer is in the home directory. - - ``` bash - - ls ~ - - ``` - ![Oracle Cloud console, Cloud Shell](images/4-1-6-cloudshell.png " ") - -## Task 3: Copy the Java Agent installer to the file system - -1. Run the commands below to copy the Java Agent installer file to the block volumes. Ensure to ***replace*** the **apm-agent-version** with that of the APM Java Agent you have, before the command execution. Note that you created PVCs in two different Block Volumes, so you will need to copy the agent installer file to both volumes. - - a) Copy the installer file to the volume **apmlab-fss** - - ``` bash - - kubectl cp apm-java-agent-installer-.jar wstore-front-0:/apmlab-fss/ - - ``` - b) Repeat to Copy the installer file to the volume **apmlab-fss2** - - ``` bash - - kubectl cp apm-java-agent-installer-.jar wstore-back-0:/apmlab-fss2/ - - ``` - - - > - e.g., kubectl cp apm-java-agent-installer-1.8.3326.jar wstore-front-0:/apmlab-fss/ - - The command copies the Agent installer to the **wstore-front**, but it can be copied to any pod as the way we set up, all pods share the same file system. - - -2. Use the kubectl commands below to remotely run the ls command in the containers in the Kubernetes pods. - - ``` bash - - kubectl exec -it wstore-front-0 -- bash -c "cd /apmlab-fss && ls " - - ``` - - ``` bash - - kubectl exec -it wstore-back-0 -- bash -c "cd /apmlab-fss2 && ls " - - ``` - - If you see the java agent installer file in the location, the file transfer was successful. - - ![Oracle Cloud console, Cloud Shell ](images/4-1-8-cloudshell.png " ") - - >**Note:** The APM version may be different from what is shown in the example. - -## Task 4: Provision of the APM Java Agent - - -1. Execute the command below to provision the APM Java agent. ***Replace*** the **APM Domain Private key** and **APM Domain Endpoint**, with the values saved in Lab2, Task2. Please also ***change*** the **apm-agent-version** in the file name to the version of the agent you have. Note that you will need to provision the agent in both volumes, **apmlab-fss** and **apmlab-fss2**. - - a) Provision the Java agent to the frontend volume **apmlab-fss** - ``` bash - - kubectl exec -it wstore-front-0 -- bash -c "cd /apmlab-fss && java -jar ./apm-java-agent-installer-.jar provision-agent -service-name=WS-svc -destination=. -private-data-key= -data-upload-endpoint=" - - ``` - b) Provision the Java agent to the backend volume **apmlab-fss2** - ``` bash - - kubectl exec -it wstore-back-0 -- bash -c "cd /apmlab-fss2 && java -jar ./apm-java-agent-installer-.jar provision-agent -service-name=WS-svc -destination=. -private-data-key= -data-upload-endpoint=" - - ``` - - - E.g., kubectl exec -it wstore-front-0 -- bash -c "cd /apmlab-fss && java -jar apm-java-agent-installer-1.8.3326.jar provision-agent -service-name=WS-svc -destination=. -private-data-key=ABCDEFG12345ABCDEF123456ABCDE -data-upload-endpoint=https://abcdefgt12345aaaaaaaaabcdef.apm-agt.us-phoenix-1.oci.oraclecloud.com" - - With a successful installation, you should see the output similar to below. - - ![Oracle Cloud console, Cloud Shell ](images/4-1-10-cloudshell.png " ") - - - -2. Execute the below command to verify ***oracle-apm-agent*** directory is created under the **apmlab-fss** and **apmlab-fss2** directories. - - ``` bash - - kubectl exec -it wstore-front-0 -- bash -c "cd /apmlab-fss && ls " - - ``` - ``` bash - - kubectl exec -it wstore-back-0 -- bash -c "cd /apmlab-fss2 && ls " - - ``` - ![Oracle Cloud console, Cloud Shell ](images/4-1-11-cloudshell.png " ") - -## Task 5: Deploy the Java Agent - -The next step is to deploy the Java Agent. First, update the **wstore.yaml** file by adding the java runtime argument that points to the APM Agent jar file bootstrap location, then apply to the Kubernetes pods. Notice that the service names, **wstore-front** and **wstore-back**, that are used to display in the APM Trace Explorer, are also added to the command for the statefulsets. - -1. Use any editor to open the wstore.yaml file. - - ``` bash - - vi ~/sb-hol/wstore.yaml - - ``` -2. Find the following line in each statefulset, where Java runtime arguments are set. (Look for lines 49 and 80, assuming the volumes were added as expected in the previous steps). - - >command: ["java", "-jar", "./wineStore.jar", "--spring.config.location=file:/spring/wstore.properties"] - - -3. Hit **i**. Locate line 49, then insert the following arguments after the **command: ["java",**. - - ``` bash - - "-javaagent:/apmlab-fss/oracle-apm-agent/bootstrap/ApmAgent.jar", "-Dcom.oracle.apm.agent.service.name=wstore-front", - - ``` - -4. Next, locate line 80, and insert the following arguments after the **command: ["java",**. - - ``` bash - - "-javaagent:/apmlab-fss2/oracle-apm-agent/bootstrap/ApmAgent.jar", "-Dcom.oracle.apm.agent.service.name=wstore-back", - - ``` - The image below shows the **wstore-back** statefulset after the successful editing, for example. Please note that you will need to add the arguments to both statefulsets, **wstore-front** and **wstore-back**, and the service names have to be configured differently. - - ![Oracle Cloud console, Cloud Shell ](images/5b-deployagent.png " ") - - - -5. Recreate the Kubernetes pods by applying the **wstore-deploy-agent.yaml** file. - - ```bash - - kubectl apply -f ~/sb-hol/wstore.yaml --validate=false - - ``` - - Verify the service and the statefulsets are configured. - - ![Oracle Cloud console, Cloud Shell ](images/4-6-2-cloudshell.png " ") - -6. Run the following command to check the status of the pods. Make sure they are in the Running state and Ready. If the status is pending, re-run the command. If they do not come back after a few minutes, review the file to ensure the editing was done correctly. - - ```bash - - kubectl get pods - - ``` - ![Oracle Cloud console, Cloud Shell ](images/4-6-3-cloudshell.png " ") - - Once the pods are in the Running state, the APM Java Agent is active and listening to the WineCellar application. It captures backend traces and spans which you can view in the APM Trace Explorer. - -You may now **proceed to the next lab**. - -## Acknowledgements - -* **Author** - Yutaka Takatsu, Product Manager, Enterprise and Cloud Manageability -- **Contributors** - Steven Lemme, Senior Principal Product Manager, -Anand Prabhu, Sr. Member of Technical Staff, -Avi Huber, Vice President, Product Management -* **Last Updated By/Date** - Yutaka Takatsu, March 2023 diff --git a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/2-1-mavencentral.png b/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/2-1-mavencentral.png deleted file mode 100644 index 3ad361053..000000000 Binary files a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/2-1-mavencentral.png and /dev/null differ diff --git a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-1-menu.png b/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-1-menu.png deleted file mode 100644 index 451036ffc..000000000 Binary files a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-1-menu.png and /dev/null differ diff --git a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-10-cloudshell.png b/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-10-cloudshell.png deleted file mode 100644 index 42ab98d21..000000000 Binary files a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-10-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-11-cloudshell.png b/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-11-cloudshell.png deleted file mode 100644 index 406227d09..000000000 Binary files a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-11-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-2-apmdomain.png b/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-2-apmdomain.png deleted file mode 100644 index 408998c53..000000000 Binary files a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-2-apmdomain.png and /dev/null differ diff --git a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-3-apmdomain.png b/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-3-apmdomain.png deleted file mode 100644 index 8bb2a3811..000000000 Binary files a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-3-apmdomain.png and /dev/null differ diff --git a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-4-cloudshell.png b/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-4-cloudshell.png deleted file mode 100644 index e737c335b..000000000 Binary files a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-4-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-6-cloudshell.png b/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-6-cloudshell.png deleted file mode 100644 index 9ff170a32..000000000 Binary files a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-6-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-8-cloudshell.png b/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-8-cloudshell.png deleted file mode 100644 index 99463727a..000000000 Binary files a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-1-8-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-6-2-cloudshell.png b/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-6-2-cloudshell.png deleted file mode 100644 index 82c8eaf36..000000000 Binary files a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-6-2-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-6-3-cloudshell.png b/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-6-3-cloudshell.png deleted file mode 100644 index dcdca52ea..000000000 Binary files a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/4-6-3-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/5b-deployagent.png b/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/5b-deployagent.png deleted file mode 100644 index c8491e4f8..000000000 Binary files a/oci-apm-springboot/h-lab-five-b-configure-apm-agent/images/5b-deployagent.png and /dev/null differ diff --git a/oci-apm-springboot/i-lab-six-configure-browser-agent/configure-browser-agent.md b/oci-apm-springboot/i-lab-six-configure-browser-agent/configure-browser-agent.md deleted file mode 100644 index 9fd922270..000000000 --- a/oci-apm-springboot/i-lab-six-configure-browser-agent/configure-browser-agent.md +++ /dev/null @@ -1,112 +0,0 @@ -# Instrument the browser monitoring - -## Introduction - -In the previous lab, you instrumented the application with an APM java agent, which captures traces and spans generated by the server. In this lab, you will configure an APM browser agent that captures traces and spans generated by the browser. You will insert a javascript to the application's index.html file to deploy the APM browser agent. - -To simplify the application setup process in this workshop, the webpage to instrument (index.html) is located in a Kubernetes pod. You will copy the file from the container, edit the file by injecting the JavaScript, then copy it back into the container. - - -Please note that these changes will be lost when the pods are recreated. This setup is only to keep the lab steps simple. In the real use cases, you will need the changes preconfigured in the image, or deploy the static content to the shared location so that the changes will be kept when Kubernetes pods are recreated. - - -Estimated time: 5 minutes - -Watch the video below for a quick walk-through of the lab. -[Instrument the browser monitoring](videohub:1_qrehxy3o) - -### Objectives - -* Instrument browser by injecting JavaScript code to the webpage - -### Prerequisites - -* Completion of the preceding labs in this workshop - -## Task 1: Copy a webpage from the container - - -1. Run the oci ce (Container Engine) command that you saved in Lab 3, Task 2, step 5. - -2. Execute the following command to copy ***index.html*** from the container to the home directory. - - ``` bash - - cd ~/;kubectl cp wstore-front-0:static/index.html ./index.html - - ``` - -3. Run the "ls" command in the home directory, to verify that the file is transferred to the Cloud Shell. - - ``` bash - - ls - - ``` - - ![Oracle Cloud console, Cloud Shell](images/5-1-1-cloudshell.png " ") - -## Task 2: Update the webpage with APM browser agent injection -1. Open the index.html with an editor. - - ```bash - - vi ~/index.html - - ``` - -2. Insert the following JavaScript to the index.html file, just below the </head> tag. Replace **Data Upload Endpoint** and the **Public Data key**. Note that there are two locations you will need to replace the Data Upload Endpoint. - - - ```bash - - - - - ``` - Save the changes and close the file. - - ![Oracle Cloud console, Cloud Shell](images/5-1-2-cloudshell.png " ") - -## Task 3: Copy the webpage back to the container - -1. Execute the following command to copy the ***index.html*** file back to the container. - - ``` bash - - cd ~/;kubectl cp ./index.html wstore-front-0:static/index.html - - ``` - ![Oracle Cloud console, Cloud Shell](images/5-1-4-cloudshell.png " ") - -2. Verify the successful file transfer, by running the following command. - - - ``` bash - - kubectl exec -it wstore-front-0 -- bash -c "cd static && cat index.html " - - ``` - Ensure you see the changes made in the previous step. - - ![Oracle Cloud console, Cloud Shell](images/5-1-3-cloudshell.png " ") - - In the next lab, you will verify the JavaScript from the source page in the browser. - - -You may now **proceed to the next lab**. - -## Acknowledgements - -* **Author** - Yutaka Takatsu, Product Manager, Enterprise and Cloud Manageability -- **Contributors** - Steven Lemme, Senior Principal Product Manager, -Anand Prabhu, Sr. Member of Technical Staff, -Avi Huber, Vice President, Product Management -* **Last Updated By/Date** - Yutaka Takatsu, December 2022 diff --git a/oci-apm-springboot/i-lab-six-configure-browser-agent/images/5-1-1-cloudshell.png b/oci-apm-springboot/i-lab-six-configure-browser-agent/images/5-1-1-cloudshell.png deleted file mode 100644 index 166ed23ab..000000000 Binary files a/oci-apm-springboot/i-lab-six-configure-browser-agent/images/5-1-1-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/i-lab-six-configure-browser-agent/images/5-1-2-cloudshell.png b/oci-apm-springboot/i-lab-six-configure-browser-agent/images/5-1-2-cloudshell.png deleted file mode 100644 index adee5a740..000000000 Binary files a/oci-apm-springboot/i-lab-six-configure-browser-agent/images/5-1-2-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/i-lab-six-configure-browser-agent/images/5-1-3-cloudshell.png b/oci-apm-springboot/i-lab-six-configure-browser-agent/images/5-1-3-cloudshell.png deleted file mode 100644 index 17e5b830a..000000000 Binary files a/oci-apm-springboot/i-lab-six-configure-browser-agent/images/5-1-3-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/i-lab-six-configure-browser-agent/images/5-1-4-cloudshell.png b/oci-apm-springboot/i-lab-six-configure-browser-agent/images/5-1-4-cloudshell.png deleted file mode 100644 index ca11aab04..000000000 Binary files a/oci-apm-springboot/i-lab-six-configure-browser-agent/images/5-1-4-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/i-lab-six-configure-browser-agent/images/5-3-1-cloudshell.png b/oci-apm-springboot/i-lab-six-configure-browser-agent/images/5-3-1-cloudshell.png deleted file mode 100644 index 46b20a59f..000000000 Binary files a/oci-apm-springboot/i-lab-six-configure-browser-agent/images/5-3-1-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/i-lab-six-configure-browser-agent/images/5-3-2-cloudshell.png b/oci-apm-springboot/i-lab-six-configure-browser-agent/images/5-3-2-cloudshell.png deleted file mode 100644 index 963f21338..000000000 Binary files a/oci-apm-springboot/i-lab-six-configure-browser-agent/images/5-3-2-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-1-1-cloudshell.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-1-1-cloudshell.png deleted file mode 100644 index f80be5e89..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-1-1-cloudshell.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-1-menu.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-1-menu.png deleted file mode 100644 index 4229aa093..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-1-menu.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-10-traceexplorer.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-10-traceexplorer.png deleted file mode 100644 index f8c9b0c34..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-10-traceexplorer.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-11-traceexplorer.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-11-traceexplorer.png deleted file mode 100644 index 1e55c4ec4..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-11-traceexplorer.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-12-traceexplorer.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-12-traceexplorer.png deleted file mode 100644 index b2ae6bddb..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-12-traceexplorer.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-2-traceexplorer.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-2-traceexplorer.png deleted file mode 100644 index 43325c76b..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-2-traceexplorer.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-3-traceexplorer.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-3-traceexplorer.png deleted file mode 100644 index d5cf5566a..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-3-traceexplorer.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-4-traceexplorer.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-4-traceexplorer.png deleted file mode 100644 index f5524c286..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-4-traceexplorer.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-5-traceexplorer.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-5-traceexplorer.png deleted file mode 100644 index 7a6e23d95..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-5-traceexplorer.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-6-traceexplorer.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-6-traceexplorer.png deleted file mode 100644 index b947f4640..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-6-traceexplorer.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-7-traceexplorer.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-7-traceexplorer.png deleted file mode 100644 index bce3ed116..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-7-traceexplorer.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-8-traceexplorer.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-8-traceexplorer.png deleted file mode 100644 index 70225ea01..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-8-traceexplorer.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-9-traceexplorer.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-9-traceexplorer.png deleted file mode 100644 index a3d76322c..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-2-9-traceexplorer.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-3-1-traceexplorer.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-3-1-traceexplorer.png deleted file mode 100644 index faffdc0fb..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-3-1-traceexplorer.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-3-2-traceexplorer.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-3-2-traceexplorer.png deleted file mode 100644 index 55512cadd..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-3-2-traceexplorer.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-3-3-traceexplorer.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-3-3-traceexplorer.png deleted file mode 100644 index be833e0a2..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-3-3-traceexplorer.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-3-4-traceexplorer.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-3-4-traceexplorer.png deleted file mode 100644 index 2cbf25954..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-3-4-traceexplorer.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-4-1-traceexplorer.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-4-1-traceexplorer.png deleted file mode 100644 index 6c5c95fb4..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-4-1-traceexplorer.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-4-2-traceexplorer.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-4-2-traceexplorer.png deleted file mode 100644 index ec72faa0c..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-4-2-traceexplorer.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/6-4-3-traceexplorer.png b/oci-apm-springboot/j-lab-seven-view-traces/images/6-4-3-traceexplorer.png deleted file mode 100644 index 8fcea77eb..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/6-4-3-traceexplorer.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/7-1-1-wstore.png b/oci-apm-springboot/j-lab-seven-view-traces/images/7-1-1-wstore.png deleted file mode 100644 index 31aa9fdf2..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/7-1-1-wstore.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/7-1-2-wstore.png b/oci-apm-springboot/j-lab-seven-view-traces/images/7-1-2-wstore.png deleted file mode 100644 index 6256f71d3..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/7-1-2-wstore.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/7-1-3-wstore.png b/oci-apm-springboot/j-lab-seven-view-traces/images/7-1-3-wstore.png deleted file mode 100644 index 621b49c24..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/7-1-3-wstore.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/images/7-1-4-wstore.png b/oci-apm-springboot/j-lab-seven-view-traces/images/7-1-4-wstore.png deleted file mode 100644 index 396f13a47..000000000 Binary files a/oci-apm-springboot/j-lab-seven-view-traces/images/7-1-4-wstore.png and /dev/null differ diff --git a/oci-apm-springboot/j-lab-seven-view-traces/view-traces.md b/oci-apm-springboot/j-lab-seven-view-traces/view-traces.md deleted file mode 100644 index 065c8708d..000000000 --- a/oci-apm-springboot/j-lab-seven-view-traces/view-traces.md +++ /dev/null @@ -1,194 +0,0 @@ -# View traces and spans in APM Trace Explorer - -## Introduction - -In this lab, you will learn how to use the APM Trace Explorer to trace the workload generated with the WineCellar demo application. - -Estimated time: 10 minutes - -Watch the video below for a quick walk-through of the lab. -[View traces and spans in APM Trace Explorer](videohub:1_ax6iqqu1) - -### Objectives - -* Open APM Trace Explorer from the Oracle Cloud console -* Verify traces and spans generated by the APM agents configured in Lab 5 and 6 -* Examine values in the span dimensions for the frontend browser and the backend Spring Boot server -* Use dimensions to automatically update the query and filter the selection - -### Prerequisites - -* Completion of preceding labs in this workshop. - - -## Task 1: Verify the Browser Agent instrumentation in the WineCellar app - - - -1. If you are starting a new Oracle Cloud Shell session, run the oci ce (Container Engine) command that you saved in Lab 3, Task 2, step 5. - -2. From the Oracle Cloud shell, enter the following command. - - ``` bash - - kubectl get svc - - ``` - - From the output, find the wstore-frontend service. Note down the External-IP. - - ![Oracle Cloud console, Cloud Shell](images/6-1-1-cloudshell.png " ") - - - - >**Note:** - - - The IP may be different from the last time when you accessed the WinCellar app because the pods are regenerated. - - If the application is not starting up, run the **kubectl get pods** command and check the status. It may take a few minutes to see the pods in the running state. - -3. On your laptop, start a browser and access the application with the URL pattern: - - ``` bash - - http:///winestore/ - - ``` -4. WinCellar application launches. - - ![Oracle Cloud console, Cloud Shell](images/7-1-1-wstore.png " ") - -5. Right mouse click on the browser and select a menu item to view the page source. - - ![Oracle Cloud console, Cloud Shell](images/7-1-2-wstore.png " ") - -6. Verify the Browser Agent JavaScript is in the page source. - - ![Oracle Cloud console, Cloud Shell](images/7-1-3-wstore.png " ") - - - >**Note:** If you do not see the Browser Agent JavaScript in the source, remove the browser cache, or try with a different browser. - -7. Close the page source. - - ![Oracle Cloud console, Cloud Shell](images/7-1-4-wstore.png " ") - - -## Task 2: Generate workload by navigating to the app - - -1. Click **Login**. - - ![WineCellar Demo App](images/6-1-2-wstore.png " ") - - -2. Enter your name (or john) as username, leave the password blank, and click **Login**. - - ![WineCellar Demo App](images/6-1-4-demoapp.png " ") - - -3. Then click around the buttons in the pages, as in the example flow shown below. - - >**Note:** Do not worry if you see the "Failed" messages, or if it takes a long time for the pages to respond. Those are expected because the app is designed to fail every once and often for demo purposes. - - Click **Add** on a couple of products then hit **Shopping Cart**. Then Click **Checkout**. - ![WineCellar Demo App](images/6-1-5-demoapp.png " ") - Click **Confirm Order**, then **Logout**. - ![WineCellar Demo App](images/6-1-6-demoapp.png " ") - - -## Task 3: Examine traces in APM Trace Explorer - -1. From the OCI menu, select **Observability & Management** > **Trace Explorer** - - ![Oracle Cloud, Navigation Menu](images/6-2-1-menu.png " ") - -2. On the Trace Explorer page, select **apmworkshop** for the **Compartment** and the **APM Domain**. - - ![Oracle Cloud, Trace Explorer](images/6-2-2-traceexplorer.png " ") - -3. By default, traces are displayed in the order by the start time. Right mouse click on the **Duration** column, select **Sort Descending** to show the traces by duration in descending order. This will bring the slowest trace to the top of the list. - - ![Oracle Cloud, Trace Explorer](images/6-2-3-traceexplorer.png " ") - -4. Hover the mouse over the bar in the **Spans** column at the top row. Verify three services are included in the trace, and each color represents a service, wstore-back, wstore-front, and wstore-web, which you defined in the previous labs. - - ![Oracle Cloud, Trace Explorer](images/6-2-4-traceexplorer.png " ") - -5. Click the trace link at the **Service:Operationame** column. - - ![Oracle Cloud, Trace Explorer](images/6-2-5-traceexplorer.png " ") - - >**Note:** If you do not see a slow trace with a duration of 10 seconds or more, you can navigate the WineStore demo app a few times until you see the programmed slowness in the checkout service. - -6. **Trace Details** page opens. Review the trace information on the upper screen. E.g., Status, Trace ID, Whether it has an error or not, how many spans and services are involved, or the duration of the trace. - ![Oracle Cloud, Trace Explorer](images/6-2-6-traceexplorer.png " ") - -7. In the **Topology** view, you can see how the operations are connected within the trace. Different colors indicate different services. Hover the mouse on the icons and the arrows that connect the icons. Review the information in the callouts. - ![Oracle Cloud, Trace Explorer](images/6-2-7-traceexplorer.png " ") - - In this example, it seems that the checkout service is where the most time was spent in the trace. - - >**Note:** The operations may look differently in the trace you selected. - -8. Scroll down the page to show the **Spans** view. Spans in the trace are displayed in a Gantt chart. A span at the top of the list is the root span, and the child spans are nested below the root span. - - ![Oracle Cloud, Trace Explorer](images/6-2-8-traceexplorer.png " ") - - In this example, one of the operations is taking 9 seconds alone, out of the total duration of 10 seconds. This seems to be the bottleneck of the slowness. - -9. Click the operation name link. - - ![Oracle Cloud, Trace Explorer](images/6-2-9-traceexplorer.png " ") - -10. This opens a **Span Details** view. Review the span information, such as the operation name, which service it belongs to, start date and time, start time after the trace started, duration of the span, Trace ID, and Span ID. - - ![Oracle Cloud, Trace Explorer](images/6-2-10-traceexplorer.png " ") - - From the operation name, this is a JDBC span that is generated by requesting a call to the database. - -11. Scroll down and review the collected dimension values. In this example, there are 54 dimensions collected. E.g., App server, Host, Kubernetes, and performance information. In addition, it has database information, because this is a JDBC span. - - ![Oracle Cloud, Trace Explorer](images/6-2-11-traceexplorer.png " ") - -12. Click **Close** at the lower left corner of the window to close the **Span Details** view. - -13. Click the **Trace Explorer** link from the breadcrumbs. This will bring you back to the Trace Explore the main view. - - ![Oracle Cloud, Trace Explorer](images/6-2-12-traceexplorer.png " ") - -## Task 4: Filter traces with dimensions - -1. Type '**apdex**' into the search field in the **Fields** section. Then click **ApdexLevel** from the list. - - ![Oracle Cloud, Trace Explorer](images/6-3-1-traceexplorer.png " ") - -2. **Dimension ApdexLevel Values** window opens. Apdex or Application Performance Index measures customer satisfaction based on applications' page or service performance. Review the values and counts. In this example, there are 10 frustrated traces, 69 satisfied traces, and 4 tolerating traces. - - ![Oracle Cloud, Trace Explorer](images/6-3-2-traceexplorer.png " ") - - Select **frustrated** from the list, then click **Add to Query**. - -3. Notice that the condition **("ApdexLevel" = 'frustrated')** has been inserted to the query. Hit **Run**. - - ![Oracle Cloud, Trace Explorer](images/6-3-3-traceexplorer.png " ") - -4. Traces view is refreshed and shows only traces **ApdexLevel** is frustrated. - - ![Oracle Cloud, Trace Explorer](images/6-3-4-traceexplorer.png " ") - - - - - -## Conclusions - -In this workshop, you’ve learned how to use a file system by adding the APM Java agent to the microservices web application. You have also learned how to configure the APM Browser agent, and how to use APM Trace Explorer to view traces and spans. For more information on APM, refer to the OCI documentation, **[Application Performance Monitoring](https://docs.oracle.com/en-us/iaas/application-performance-monitoring/index.html)**. - - -## Acknowledgements - -* **Author** - Yutaka Takatsu, Product Manager, Enterprise and Cloud Manageability -- **Contributors** - Steven Lemme, Senior Principal Product Manager, -Anand Prabhu, Sr. Member of Technical Staff, -Avi Huber, Vice President, Product Management -* **Last Updated By/Date** - Yutaka Takatsu, December 2022 diff --git a/oci-apm-springboot/l-lab-nine-learn-more/images/1-1-get-started.png b/oci-apm-springboot/l-lab-nine-learn-more/images/1-1-get-started.png deleted file mode 100644 index 766f193bc..000000000 Binary files a/oci-apm-springboot/l-lab-nine-learn-more/images/1-1-get-started.png and /dev/null differ diff --git a/oci-apm-springboot/workshops/freetier/manifest.json b/oci-apm-springboot/workshops/freetier/manifest.json index c6937024b..342f6316c 100644 --- a/oci-apm-springboot/workshops/freetier/manifest.json +++ b/oci-apm-springboot/workshops/freetier/manifest.json @@ -5,7 +5,7 @@ { "title": "Introduction", "description": "Introduction", - "filename": "../../a-introduction/introduction.md" + "filename": "../../00-introduction/introduction.md" }, { "title": "Get Started", @@ -15,54 +15,44 @@ { "title": "Lab 1: Create a Kubernetes cluster", "description": "Create a Kubernetes cluster", - "filename": "../../b-lab-one-create-oke/create-oke.md" + "filename": "../../01-create-oke/create-oke.md" }, { "title": "Lab 2: Create an APM Domain and obtain Data Upload Endpoint and Private Data Key ", "description": "Create an APM Domain and obtain Data Upload Endpoint and Private Data Key ", - "filename": "../../c-lab-two-create-domain/create-domain.md" + "filename": "../../02-create-domain/create-domain.md" }, { "title": "Lab 3: Build a microservices application", "description": "Build a microservices application", - "filename": "../../d-lab-three-build-app/build-app.md" + "filename": "../../03-build-app/build-app.md" }, { - "title": "Lab 4 (Paid Tenancy): Create and configure a file system", - "description": "Create and configure a file system (Paid Tenancy)", - "filename": "../../e-lab-four-create-file-system/create-file-system.md" + "title": "Lab 4: Instrument server with OTEL operator", + "description": "Instrument server with OTEL operator", + "filename": "../../04-deploy-apm-agent/deploy-apm-agent.md" }, { - "title": "Lab 4 (Free Trial): Create and configure block volumes", - "description": "Create and configure block volumes (Free Trial)", - "filename": "../../f-lab-four-b-create-block-volume/create-block-volume.md" + "title": "Lab 5: Verify APM Agent setup and data collection", + "description": "Verify APM Agent setup and data collection", + "filename": "../../05-verify-agent/verify-agent.md" }, { - "title": "Lab 5 (Paid Tenancy): Instrument server monitoring on the file system", - "description": "Instrumentation for server monitoring", - "filename": "../../g-lab-five-configure-apm-agent/configure-apm-agent.md" - }, - { - "title": "Lab 5 (Free Trial): Instrument server monitoring on the block volumes", - "description": "Instrumentation for server monitoring", - "filename": "../../h-lab-five-b-configure-apm-agent/b-configure-apm-agent.md" - }, - { - "title": "Lab 6: Instrument browser monitoring", - "description": "Instrumentation for browser monitoring", - "filename": "../../i-lab-six-configure-browser-agent/configure-browser-agent.md" - }, - { - "title": "Lab 7: View traces and spans in APM Trace Explorer", + "title": "Lab 6: View traces and spans in APM Trace Explorer", "description": "View traces and spans in APM Trace Explorer", - "filename": "../../j-lab-seven-view-traces/view-traces.md" + "filename": "../../06-view-traces/view-traces.md" }, { - "title": "Lab 8: Clean up the workshop environment", + "title": "Lab 7: Clean up the workshop environment", "description": "Clean up the workshop environment", - "filename": "../../k-lab-eight-cleanup/cleanup.md" + "filename": "../../07-cleanup/cleanup.md" + }, + { + "title": "Lab 8: Learn more about APM (optional)", + "description": "Learn more about APM", + "filename": "../../08-learn-more/learn-more.md" }, { "title": "Need Help?", diff --git a/oci-apm-springboot/workshops/livelabs/manifest.json b/oci-apm-springboot/workshops/livelabs/manifest.json index f6a19cf2b..0bce2ff60 100644 --- a/oci-apm-springboot/workshops/livelabs/manifest.json +++ b/oci-apm-springboot/workshops/livelabs/manifest.json @@ -5,64 +5,54 @@ { "title": "Introduction", "description": "Introduction", - "filename": "../../a-introduction/introduction.md" + "filename": "../../00-introduction/introduction.md" }, { "title": "Get Started", "description": "This is the prerequisites for customers using Free Trial and Paid tenancies, and Always Free accounts (if applicable). The title of the lab and the Contents Menu title (the title above) match for Prerequisite lab. This lab is always first.", - "filename": "https://oracle-livelabs.github.io/common/labs/cloud-login/cloud-login-livelabs2.md" + "filename": "https://oracle-livelabs.github.io/common/labs/cloud-login/cloud-login-livelabs.md" }, { "title": "Lab 1: Create a Kubernetes cluster", "description": "Create a Kubernetes cluster", - "filename": "../../b-lab-one-create-oke/create-oke.md" + "filename": "../../01-create-oke/create-oke.md" }, { "title": "Lab 2: Create an APM Domain and obtain Data Upload Endpoint and Private Data Key ", "description": "Create an APM Domain and obtain Data Upload Endpoint and Private Data Key ", - "filename": "../../c-lab-two-create-domain/create-domain.md" + "filename": "../../02-create-domain/create-domain.md" }, { "title": "Lab 3: Build a microservices application", "description": "Build a microservices application", - "filename": "../../d-lab-three-build-app/build-app.md" + "filename": "../../03-build-app/build-app.md" }, { - "title": "Lab 4 (Paid Tenancy): Create and configure a file system", - "description": "Create and configure a file system (Paid Tenancy)", - "filename": "../../e-lab-four-create-file-system/create-file-system.md" + "title": "Lab 4: Instrument server with OTEL operator", + "description": "Instrument server with OTEL operator", + "filename": "../../04-deploy-apm-agent/deploy-apm-agent.md" }, { - "title": "Lab 4 (Free Trial): Create and configure block volumes", - "description": "Create and configure block volumes (Free Trial)", - "filename": "../../f-lab-four-b-create-block-volume/create-block-volume.md" + "title": "Lab 5: Verify APM Agent setup and data collection", + "description": "Verify APM Agent setup and data collection", + "filename": "../../05-verify-agent/verify-agent.md" }, { - "title": "Lab 5 (Paid Tenancy): Instrument server monitoring on the file system", - "description": "Instrumentation for server monitoring", - "filename": "../../g-lab-five-configure-apm-agent/configure-apm-agent.md" - }, - { - "title": "Lab 5 (Free Trial): Instrument server monitoring on the block volumes", - "description": "Instrumentation for server monitoring", - "filename": "../../h-lab-five-b-configure-apm-agent/b-configure-apm-agent.md" - }, - { - "title": "Lab 6: Instrument browser monitoring", - "description": "Instrumentation for browser monitoring", - "filename": "../../i-lab-six-configure-browser-agent/configure-browser-agent.md" - }, - { - "title": "Lab 7: View traces and spans in APM Trace Explorer", + "title": "Lab 6: View traces and spans in APM Trace Explorer", "description": "View traces and spans in APM Trace Explorer", - "filename": "../../j-lab-seven-view-traces/view-traces.md" + "filename": "../../06-view-traces/view-traces.md" }, { - "title": "Lab 8: Clean up the workshop environment", + "title": "Lab 7: Clean up the workshop environment", "description": "Clean up the workshop environment", - "filename": "../../k-lab-eight-cleanup/cleanup.md" + "filename": "../../07-cleanup/cleanup.md" + }, + { + "title": "Lab 8: Learn more about APM (optional)", + "description": "Learn more about APM", + "filename": "../../08-learn-more/learn-more.md" }, { "title": "Need Help?", diff --git a/oci-apm-springboot/workshops/ocw-freetier/index.html b/oci-apm-springboot/workshops/ocw-freetier/index.html deleted file mode 100644 index 6acdb69d1..000000000 --- a/oci-apm-springboot/workshops/ocw-freetier/index.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - Oracle LiveLabs - - - - - - - - - - - - -
-
-
-
-
-
-
-
- - - - - diff --git a/oci-apm-springboot/workshops/ocw-freetier/manifest.json b/oci-apm-springboot/workshops/ocw-freetier/manifest.json deleted file mode 100644 index f691a9a8d..000000000 --- a/oci-apm-springboot/workshops/ocw-freetier/manifest.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "workshoptitle": "Automatically instrument Java microservices on Kubernetes with Oracle Application Performance Monitoring", - "help": "livelabs-help-em_us@oracle.com", - "tutorials": [ - { - "title": "Introduction", - "description": "Introduction", - "filename": "../../a-introduction/introduction.md" - }, - { - "title": "Get Started", - "description": "This is the prerequisites for customers using Free Trial and Paid tenancies, and Always Free accounts (if applicable). The title of the lab and the Contents Menu title (the title above) match for Prerequisite lab. This lab is always first.", - "filename": "https://oracle-livelabs.github.io/common/labs/cloud-login/cloud-login.md" - }, - { - "title": "Lab 1: Create a Kubernetes cluster", - "description": "Create a Kubernetes cluster", - "filename": "../../b-lab-one-create-oke/create-oke.md" - }, - - { - "title": "Lab 2: Create an APM Domain and obtain Data Upload Endpoint and Private Data Key ", - "description": "Create an APM Domain and obtain Data Upload Endpoint and Private Data Key ", - "filename": "../../c-lab-two-create-domain/create-domain.md" - }, - { - "title": "Lab 3: Build a microservices application", - "description": "Build a microservices application", - "filename": "../../d-lab-three-build-app/build-app.md" - }, - - { - "title": "Lab 4 (Paid Tenancy): Create and configure a file system", - "description": "Create and configure a file system (Paid Tenancy)", - "filename": "../../e-lab-four-create-file-system/create-file-system.md" - }, - { - "title": "Lab 4 (Free Trial): Create and configure block volumes", - "description": "Create and configure block volumes (Free Trial)", - "filename": "../../f-lab-four-b-create-block-volume/create-block-volume.md" - }, - { - "title": "Lab 5 (Paid Tenancy): Instrument server monitoring on the file system", - "description": "Instrumentation for server monitoring", - "filename": "../../g-lab-five-configure-apm-agent/configure-apm-agent.md" - }, - { - "title": "Lab 5 (Free Trial): Instrument server monitoring on the block volumes", - "description": "Instrumentation for server monitoring", - "filename": "../../h-lab-five-b-configure-apm-agent/b-configure-apm-agent.md" - }, - { - "title": "Lab 6: Instrument browser monitoring", - "description": "Instrumentation for browser monitoring", - "filename": "../../i-lab-six-configure-browser-agent/configure-browser-agent.md" - }, - { - "title": "Lab 7: View traces and spans in APM Trace Explorer", - "description": "View traces and spans in APM Trace Explorer", - "filename": "../../j-lab-seven-view-traces/view-traces.md" - }, - { - "title": "Lab 8: Clean up the workshop environment", - "description": "Clean up the workshop environment", - "filename": "../../k-lab-eight-cleanup/cleanup.md" - }, - { - "title": "Lab 9: Learn more about APM (optional)", - "description": "Learn more about APM", - "filename": "../../l-lab-nine-learn-more/learn-more.md" - }, - { - "title": "Oracle CloudWorld 2022 - Get Help", - "filename": "https://oracle-livelabs.github.io/common/support/ocwsupportlab/ocwsupportlab.md" - } - ] -} diff --git a/oci-apm-springboot/workshops/ocw-livelabs/index.html b/oci-apm-springboot/workshops/ocw-livelabs/index.html deleted file mode 100644 index 6acdb69d1..000000000 --- a/oci-apm-springboot/workshops/ocw-livelabs/index.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - Oracle LiveLabs - - - - - - - - - - - - -
-
-
-
-
-
-
-
- - - - - diff --git a/oci-apm-springboot/workshops/ocw-livelabs/manifest.json b/oci-apm-springboot/workshops/ocw-livelabs/manifest.json deleted file mode 100644 index d65fed40e..000000000 --- a/oci-apm-springboot/workshops/ocw-livelabs/manifest.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "workshoptitle": "Automatically instrument Java microservices on Kubernetes with Oracle Application Performance Monitoring", - "help": "livelabs-help-em_us@oracle.com", - "tutorials": [ - { - "title": "Introduction", - "description": "Introduction", - "filename": "../../a-introduction/introduction.md" - }, - { - "title": "Get Started", - "description": "This is the prerequisites for customers using Free Trial and Paid tenancies, and Always Free accounts (if applicable). The title of the lab and the Contents Menu title (the title above) match for Prerequisite lab. This lab is always first.", - "filename": "https://oracle-livelabs.github.io/common/labs/cloud-login/cloud-login-livelabs2.md" - }, - { - "title": "Lab 1: Create a Kubernetes cluster", - "description": "Create a Kubernetes cluster", - "filename": "../../b-lab-one-create-oke/create-oke.md" - }, - - { - "title": "Lab 2: Create an APM Domain and obtain Data Upload Endpoint and Private Data Key ", - "description": "Create an APM Domain and obtain Data Upload Endpoint and Private Data Key ", - "filename": "../../c-lab-two-create-domain/create-domain.md" - }, - { - "title": "Lab 3: Build a microservices application", - "description": "Build a microservices application", - "filename": "../../d-lab-three-build-app/build-app.md" - }, - - { - "title": "Lab 4 (Paid Tenancy): Create and configure a file system", - "description": "Create and configure a file system (Paid Tenancy)", - "filename": "../../e-lab-four-create-file-system/create-file-system.md" - }, - { - "title": "Lab 4 (Free Trial): Create and configure block volumes", - "description": "Create and configure block volumes (Free Trial)", - "filename": "../../f-lab-four-b-create-block-volume/create-block-volume.md" - }, - { - "title": "Lab 5 (Paid Tenancy): Instrument server monitoring on the file system", - "description": "Instrumentation for server monitoring", - "filename": "../../g-lab-five-configure-apm-agent/configure-apm-agent.md" - }, - { - "title": "Lab 5 (Free Trial): Instrument server monitoring on the block volumes", - "description": "Instrumentation for server monitoring", - "filename": "../../h-lab-five-b-configure-apm-agent/b-configure-apm-agent.md" - }, - { - "title": "Lab 6: Instrument browser monitoring", - "description": "Instrumentation for browser monitoring", - "filename": "../../i-lab-six-configure-browser-agent/configure-browser-agent.md" - }, - { - "title": "Lab 7: View traces and spans in APM Trace Explorer", - "description": "View traces and spans in APM Trace Explorer", - "filename": "../../j-lab-seven-view-traces/view-traces.md" - }, - { - "title": "Lab 8: Clean up the workshop environment", - "description": "Clean up the workshop environment", - "filename": "../../k-lab-eight-cleanup/cleanup.md" - }, - { - "title": "Lab 9: Learn more about APM (optional)", - "description": "Learn more about APM", - "filename": "../../l-lab-nine-learn-more/learn-more.md" - }, - { - "title": "Oracle CloudWorld 2022 - Get Help", - "filename": "https://oracle-livelabs.github.io/common/support/ocwsupportlab/ocwsupportlab.md" - } - ] -}