From a0ba73b3db987330e50a55d2a21a17433ed9095f Mon Sep 17 00:00:00 2001 From: Juergen Fleischer Date: Wed, 5 Feb 2025 10:45:04 +0100 Subject: [PATCH 01/16] Create README.md --- .../opentelemetry-demo/README.md | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 knowledge-content/opentelemetry-demo/README.md diff --git a/knowledge-content/opentelemetry-demo/README.md b/knowledge-content/opentelemetry-demo/README.md new file mode 100644 index 00000000..422b9b3a --- /dev/null +++ b/knowledge-content/opentelemetry-demo/README.md @@ -0,0 +1,82 @@ +# Configuring the OpenTelemetry Demo App to send data to Oracle Cloud Infrastucture (OCI) backend + +The [OpenTelemetry Astronomy Shop](https://github.com/open-telemetry/opentelemetry-demo) is a demo app to illustrate the implementation of OpenTelemetry in a near real-world environment. It is a microservice-based distributed system which can be easily deployed using Docker or Kubernetes, where we will focus here on deploying it using Kubernetes/Helm. + +Our aim is to guide you through the needed steps to deploy the OpenTelemetry Demo in a K8s cluster and send its data to OCI Observability and Management Services. + +## Prerequisites +The following prerequisites are needed: +1. Ensure to have an [OCI account](https://signup.cloud.oracle.com). +2. In Application Performance Monitoring (APM) service, create an APM domain. +3. Have the Data Upload Endpoint URL and the private data key of that domain available. +4. Have a Kubernetes Cluster available, either locally, in OCI or at other cloud vendors. + +## Deploy the Demo App +We will start by creating a dedicated namespace for the demo app: +```bash +kubectl create namespace otel-demo-app +``` +Next, we will create a secret named oci-apm-secret: +```bash +kubectl create secret generic oci-apm-secret -n otel-demo-app --from-literal="OCI_APM_ENDPOINT=" --from-literal="OCI_APM_DATAKEY=" +``` +Add the OpenTelemetry Helm charts site to your repo to allow deploying the OpenTelemetry Demo: +```bash +helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts +``` +Create file my-values.yaml with the following content: +``` +opentelemetry-collector: + extraEnvsFrom: + - secretRef: + name: oci-apm-secret + + config: + exporters: + otlphttp/oci_spans: + endpoint: "${OCI_APM_ENDPOINT}/20200101/opentelemetry/" + headers: + authorization: "dataKey ${OCI_APM_DATAKEY}" + tls: + insecure: false + otlphttp/oci_metrics: + endpoint: "${OCI_APM_ENDPOINT}/20200101/observations/metric?dataFormat=otlp-metric&dataFormatVersion=1" + headers: + authorization: "dataKey ${OCI_APM_DATAKEY}" + tls: + insecure: false + + service: + pipelines: + traces: + exporters: [otlp, debug, spanmetrics, otlphttp/oci_spans] + metrics: + exporters: [otlphttp/prometheus, debug, otlphttp/oci_metrics] +``` +Run the following helm command to deploy the OpenTelemetry Demo App: +```bash +helm install otel-demo-app open-telemetry/opentelemetry-demo --values my-values.yaml -n otel-demo-app +``` +Here is the expected output: +```bash +... + + ██████╗ ████████╗███████╗██╗ ██████╗ ███████╗███╗ ███╗ ██████╗ +██╔═══██╗╚══██╔══╝██╔════╝██║ ██╔══██╗██╔════╝████╗ ████║██╔═══██╗ +██║ ██║ ██║ █████╗ ██║ ██║ ██║█████╗ ██╔████╔██║██║ ██║ +██║ ██║ ██║ ██╔══╝ ██║ ██║ ██║██╔══╝ ██║╚██╔╝██║██║ ██║ +╚██████╔╝ ██║ ███████╗███████╗ ██████╔╝███████╗██║ ╚═╝ ██║╚██████╔╝ + ╚═════╝ ╚═╝ ╚══════╝╚══════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝ ╚═════╝ + + +- All services are available via the Frontend proxy: http://localhost:8080 + by running these commands: + kubectl --namespace default port-forward svc/otel-demo-app-frontendproxy 8080:8080 + + The following services are available at these paths after the frontendproxy service is exposed with port forwarding: + Webstore http://localhost:8080/ + Jaeger UI http://localhost:8080/jaeger/ui/ + Grafana http://localhost:8080/grafana/ + Load Generator UI http://localhost:8080/loadgen/ + Feature Flags UI http://localhost:8080/feature/ +``` From c0ec9d74946b0d97769bb963c3086401ffff66b7 Mon Sep 17 00:00:00 2001 From: Juergen Fleischer Date: Wed, 5 Feb 2025 13:29:40 +0100 Subject: [PATCH 02/16] Update README.md --- knowledge-content/opentelemetry-demo/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/knowledge-content/opentelemetry-demo/README.md b/knowledge-content/opentelemetry-demo/README.md index 422b9b3a..8b2af3b2 100644 --- a/knowledge-content/opentelemetry-demo/README.md +++ b/knowledge-content/opentelemetry-demo/README.md @@ -8,7 +8,7 @@ Our aim is to guide you through the needed steps to deploy the OpenTelemetry Dem The following prerequisites are needed: 1. Ensure to have an [OCI account](https://signup.cloud.oracle.com). 2. In Application Performance Monitoring (APM) service, create an APM domain. -3. Have the Data Upload Endpoint URL and the private data key of that domain available. +3. Have the [Data Upload Endpoint URL and the private data key](https://docs.oracle.com/en-us/iaas/application-performance-monitoring/doc/obtain-data-upload-endpoint-and-data-keys.html#GUID-912EA36F-4E58-4954-B9C2-4E9A9BADDAE9) of that domain available. 4. Have a Kubernetes Cluster available, either locally, in OCI or at other cloud vendors. ## Deploy the Demo App From 3f4ad9b9370657178671aa8d96b1590ec057072e Mon Sep 17 00:00:00 2001 From: Mesh44 Date: Wed, 5 Feb 2025 12:33:53 +0000 Subject: [PATCH 03/16] Update README.md --- knowledge-content/opentelemetry-demo/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/knowledge-content/opentelemetry-demo/README.md b/knowledge-content/opentelemetry-demo/README.md index 8b2af3b2..b89b1559 100644 --- a/knowledge-content/opentelemetry-demo/README.md +++ b/knowledge-content/opentelemetry-demo/README.md @@ -2,7 +2,7 @@ The [OpenTelemetry Astronomy Shop](https://github.com/open-telemetry/opentelemetry-demo) is a demo app to illustrate the implementation of OpenTelemetry in a near real-world environment. It is a microservice-based distributed system which can be easily deployed using Docker or Kubernetes, where we will focus here on deploying it using Kubernetes/Helm. -Our aim is to guide you through the needed steps to deploy the OpenTelemetry Demo in a K8s cluster and send its data to OCI Observability and Management Services. +Our aim is to guide you through the needed steps to deploy the OpenTelemetry Demo in a K8s cluster and send its data to OCI Observability and Management Services... ## Prerequisites The following prerequisites are needed: From 8708a0aa70771326d6b8555afbd26d7906d41db3 Mon Sep 17 00:00:00 2001 From: Mesh44 Date: Wed, 5 Feb 2025 12:34:10 +0000 Subject: [PATCH 04/16] Update README.md --- knowledge-content/opentelemetry-demo/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/knowledge-content/opentelemetry-demo/README.md b/knowledge-content/opentelemetry-demo/README.md index b89b1559..8b2af3b2 100644 --- a/knowledge-content/opentelemetry-demo/README.md +++ b/knowledge-content/opentelemetry-demo/README.md @@ -2,7 +2,7 @@ The [OpenTelemetry Astronomy Shop](https://github.com/open-telemetry/opentelemetry-demo) is a demo app to illustrate the implementation of OpenTelemetry in a near real-world environment. It is a microservice-based distributed system which can be easily deployed using Docker or Kubernetes, where we will focus here on deploying it using Kubernetes/Helm. -Our aim is to guide you through the needed steps to deploy the OpenTelemetry Demo in a K8s cluster and send its data to OCI Observability and Management Services... +Our aim is to guide you through the needed steps to deploy the OpenTelemetry Demo in a K8s cluster and send its data to OCI Observability and Management Services. ## Prerequisites The following prerequisites are needed: From 58beb4ce5fc78a26a98295059e53edc7e1458087 Mon Sep 17 00:00:00 2001 From: Mesh44 Date: Thu, 6 Feb 2025 16:28:48 +0000 Subject: [PATCH 05/16] Update README.md - started APM section --- knowledge-content/opentelemetry-demo/README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/knowledge-content/opentelemetry-demo/README.md b/knowledge-content/opentelemetry-demo/README.md index 8b2af3b2..7bc30c5c 100644 --- a/knowledge-content/opentelemetry-demo/README.md +++ b/knowledge-content/opentelemetry-demo/README.md @@ -80,3 +80,14 @@ Here is the expected output: Load Generator UI http://localhost:8080/loadgen/ Feature Flags UI http://localhost:8080/feature/ ``` + +## Using OCI APM service to observe traces and spans +With the OpenTelemetry Demo App installed, you are now ready to explore the capabilities of OCI APM (Application Performance Monitoring) and gain deep insights into your application's performance. Lets start by showing you the process of visualising spans and traces using OCI APM, showcasing its powerful features and benefits. + +### Getting Started with OCI APM +- +- + +### Visulaising Spans and Traces +- +- From 9a6cc869179691b1ef9e07adf1710c5376b02a8f Mon Sep 17 00:00:00 2001 From: Mesh44 Date: Fri, 7 Feb 2025 12:40:41 +0000 Subject: [PATCH 06/16] Update README.md APM section --- .../opentelemetry-demo/README.md | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/knowledge-content/opentelemetry-demo/README.md b/knowledge-content/opentelemetry-demo/README.md index 7bc30c5c..0da4800a 100644 --- a/knowledge-content/opentelemetry-demo/README.md +++ b/knowledge-content/opentelemetry-demo/README.md @@ -7,7 +7,7 @@ Our aim is to guide you through the needed steps to deploy the OpenTelemetry Dem ## Prerequisites The following prerequisites are needed: 1. Ensure to have an [OCI account](https://signup.cloud.oracle.com). -2. In Application Performance Monitoring (APM) service, create an APM domain. +2. In Application Performance Monitoring (APM) service, [create an APM domain.](https://docs.oracle.com/iaas/application-performance-monitoring/doc/create-apm-domain.html) 3. Have the [Data Upload Endpoint URL and the private data key](https://docs.oracle.com/en-us/iaas/application-performance-monitoring/doc/obtain-data-upload-endpoint-and-data-keys.html#GUID-912EA36F-4E58-4954-B9C2-4E9A9BADDAE9) of that domain available. 4. Have a Kubernetes Cluster available, either locally, in OCI or at other cloud vendors. @@ -81,13 +81,24 @@ Here is the expected output: Feature Flags UI http://localhost:8080/feature/ ``` -## Using OCI APM service to observe traces and spans +## Using OCI APM service to observe Traces and Spans With the OpenTelemetry Demo App installed, you are now ready to explore the capabilities of OCI APM (Application Performance Monitoring) and gain deep insights into your application's performance. Lets start by showing you the process of visualising spans and traces using OCI APM, showcasing its powerful features and benefits. ### Getting Started with OCI APM -- -- +Log in to your Oracle Cloud Infrastructure console and navigate to the Application Performance Monitoring. Here, you will find a wealth of information about your application's performance -### Visulaising Spans and Traces -- -- +### Visulaising Traces and Spans +Click on the "Traces" tab in the APM console. You will see a list of traces generated by the OTel demo application. Each trace represents a user request or an operation within your application. +*Image <>* + +Select a specific trace to view its details, including the span topology and tree topology. + +*Image <>* + +Click on any of the spans to see the span details, which include kubernetes data, SpanId, TraceID etc + +*Image <>* + +*Mahesh Notes: Need a Service Map ie a high-level overview of the interactions between different services in the application. This will help in understanding the dependencies and identifying potential performance bottlenecks between services.* + +*what else should we include for APM section?* From 65c9465374d8ba9d20bbd338ac08f6faee76c5a0 Mon Sep 17 00:00:00 2001 From: Juergen Fleischer Date: Fri, 7 Feb 2025 15:14:51 +0100 Subject: [PATCH 07/16] Update README.md --- knowledge-content/opentelemetry-demo/README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/knowledge-content/opentelemetry-demo/README.md b/knowledge-content/opentelemetry-demo/README.md index 0da4800a..7f1ca2cb 100644 --- a/knowledge-content/opentelemetry-demo/README.md +++ b/knowledge-content/opentelemetry-demo/README.md @@ -87,7 +87,7 @@ With the OpenTelemetry Demo App installed, you are now ready to explore the capa ### Getting Started with OCI APM Log in to your Oracle Cloud Infrastructure console and navigate to the Application Performance Monitoring. Here, you will find a wealth of information about your application's performance -### Visulaising Traces and Spans +### Visualising Traces and Spans Click on the "Traces" tab in the APM console. You will see a list of traces generated by the OTel demo application. Each trace represents a user request or an operation within your application. *Image <>* @@ -102,3 +102,10 @@ Click on any of the spans to see the span details, which include kubernetes data *Mahesh Notes: Need a Service Map ie a high-level overview of the interactions between different services in the application. This will help in understanding the dependencies and identifying potential performance bottlenecks between services.* *what else should we include for APM section?* + +## Using OCI Logging Analytics service to collect and analyze Logs from Kubernetes Infrastructure and Pods +OCI Logging Analytics provides a [complete solution](https://docs.oracle.com/en-us/iaas/logging-analytics/doc/kubernetes-solution.html) for monitoring Kubernetes (K8s) cluster deployed in OCI, third party public clouds, private clouds, or on-premises including managed Kubernetes deployments. We will start with discovering the K8s cluster running the OpenTelemetry Demo App. + +### Getting Started with monitoring a K8s Cluster using OCI Logging Analytics +Log in to your Oracle Cloud Infrastructure console and navigate to Logging Analytics Administration. Select Solutions -> Kubernetes -> Connect Clusters -> Monitor Kubernetes -> Oracle OKE, here we are assuming that the K8s cluster is running in OCI. Select the Cluster and press *Next* and select there the Comparment to be used for telemetry data and related monitoring resources, usually it will be the same like the one used for collecting the logs. Click on *Configure log collection* o kick-off collecting logs, metrics, and object information from related Kubernetes components, computer nodes, subnets, and load balancers. + From 0908b25a29147b7b7eb1e28e9e83731604f6885b Mon Sep 17 00:00:00 2001 From: Juergen Fleischer Date: Fri, 7 Feb 2025 16:25:09 +0100 Subject: [PATCH 08/16] Update README.md --- knowledge-content/opentelemetry-demo/README.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/knowledge-content/opentelemetry-demo/README.md b/knowledge-content/opentelemetry-demo/README.md index 7f1ca2cb..59fe05a1 100644 --- a/knowledge-content/opentelemetry-demo/README.md +++ b/knowledge-content/opentelemetry-demo/README.md @@ -107,5 +107,15 @@ Click on any of the spans to see the span details, which include kubernetes data OCI Logging Analytics provides a [complete solution](https://docs.oracle.com/en-us/iaas/logging-analytics/doc/kubernetes-solution.html) for monitoring Kubernetes (K8s) cluster deployed in OCI, third party public clouds, private clouds, or on-premises including managed Kubernetes deployments. We will start with discovering the K8s cluster running the OpenTelemetry Demo App. ### Getting Started with monitoring a K8s Cluster using OCI Logging Analytics -Log in to your Oracle Cloud Infrastructure console and navigate to Logging Analytics Administration. Select Solutions -> Kubernetes -> Connect Clusters -> Monitor Kubernetes -> Oracle OKE, here we are assuming that the K8s cluster is running in OCI. Select the Cluster and press *Next* and select there the Comparment to be used for telemetry data and related monitoring resources, usually it will be the same like the one used for collecting the logs. Click on *Configure log collection* o kick-off collecting logs, metrics, and object information from related Kubernetes components, computer nodes, subnets, and load balancers. - +Log in to your Oracle Cloud Infrastructure console and navigate to Logging Analytics Administration. Select Solutions -> Kubernetes -> Connect Clusters -> Monitor Kubernetes -> Oracle OKE, here we are assuming that the K8s cluster is running in OCI. Select the Cluster, press *Next* and select the right compartment to be used for telemetry data and related monitoring resources, usually it will be the same like the one used for collecting the logs. Click on *Configure log collection*, this will create all neded dynamic groups and policies to allow collecting logs, metrics, and object information from related Kubernetes components, computer nodes, subnets, and load balancers. The deployed solution will create these statefulsets, daemonsets and cronjobs in namespace *oci-onm*: +```bash +$ kubectl get pods -n oci-onm +NAME READY STATUS RESTARTS AGE +oci-onm-discovery-28982290-zdkxx 0/1 Completed 0 14m +oci-onm-discovery-28982295-bztr2 0/1 Completed 0 9m12s +oci-onm-discovery-28982300-zrxxq 0/1 Completed 0 4m12s +oci-onm-logan-krcmb 1/1 Running 3 80d +oci-onm-logan-npltp 1/1 Running 2 80d +oci-onm-logan-tthvm 1/1 Running 2 80d +oci-onm-mgmt-agent-0 1/1 Running 2 80d +``` From 15f3ac5033d27aed19d39fc6d4f9334d35e404d5 Mon Sep 17 00:00:00 2001 From: Juergen Fleischer Date: Fri, 7 Feb 2025 16:57:38 +0100 Subject: [PATCH 09/16] Update README.md --- .../opentelemetry-demo/README.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/knowledge-content/opentelemetry-demo/README.md b/knowledge-content/opentelemetry-demo/README.md index 59fe05a1..1f7c1840 100644 --- a/knowledge-content/opentelemetry-demo/README.md +++ b/knowledge-content/opentelemetry-demo/README.md @@ -119,3 +119,31 @@ oci-onm-logan-npltp 1/1 Running 2 80d oci-onm-logan-tthvm 1/1 Running 2 80d oci-onm-mgmt-agent-0 1/1 Running 2 80d ``` +### Screenshots from the Solution Dashboard +Cluster overview: +![K8s-Solution-01](https://github.com/user-attachments/assets/3d767718-60aa-4b47-b84a-93fedf5f9db4) + +Workload overview: +![K8s-Solution-02](https://github.com/user-attachments/assets/e8bad199-f6c0-4155-8140-0758cdffab12) + +Node overview: +![K8s-Solution-03](https://github.com/user-attachments/assets/ce809518-70e9-4d09-8cbe-0f3ff4662172) + +Pod overview: +![K8s-Solution-04](https://github.com/user-attachments/assets/a0d7dbe1-9cc9-4219-886e-fa8f4691a382) + +### Screenshots from Log Explorer + +List of TOP Log Sources: +![K8s-Log-Sources](https://github.com/user-attachments/assets/a4637601-d932-436a-9921-2f333f0d5450) + +Log Records by Pod name: +![K8s-Log-by-Pods](https://github.com/user-attachments/assets/47934bca-3084-47e7-87e6-4df986cbe42a) + +Compare Cluster results: +![K8s-Log-Sources_compare-cluster](https://github.com/user-attachments/assets/27d78650-85fe-4c73-9566-08e115e3ebc4) + + + + + From 3f2d680257d34a0fa1908e6ca39aca5a3ff4295c Mon Sep 17 00:00:00 2001 From: Juergen Fleischer Date: Mon, 10 Feb 2025 17:25:00 +0100 Subject: [PATCH 10/16] Update README.md --- .../opentelemetry-demo/README.md | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/knowledge-content/opentelemetry-demo/README.md b/knowledge-content/opentelemetry-demo/README.md index 1f7c1840..78af6596 100644 --- a/knowledge-content/opentelemetry-demo/README.md +++ b/knowledge-content/opentelemetry-demo/README.md @@ -88,20 +88,24 @@ With the OpenTelemetry Demo App installed, you are now ready to explore the capa Log in to your Oracle Cloud Infrastructure console and navigate to the Application Performance Monitoring. Here, you will find a wealth of information about your application's performance ### Visualising Traces and Spans -Click on the "Traces" tab in the APM console. You will see a list of traces generated by the OTel demo application. Each trace represents a user request or an operation within your application. -*Image <>* +Click on the "Traces" tab in the APM console / Trace Explorer. You will see a list of traces generated by the OTel demo application. Each trace represents a user request or an operation within your application: -Select a specific trace to view its details, including the span topology and tree topology. +![Trace-Explorer-05](https://github.com/user-attachments/assets/81e98ec3-cac9-4498-9c58-4a204e361dc0) -*Image <>* +Select a specific trace to view its details, including the span topology and tree topology: -Click on any of the spans to see the span details, which include kubernetes data, SpanId, TraceID etc +![Trace-Explorer-04](https://github.com/user-attachments/assets/e864abb7-3db0-4491-8bde-a3a7e7141c30) -*Image <>* +Click on any of the spans to see the span details, which include kubernetes data, SpanId, TraceID, etc.: -*Mahesh Notes: Need a Service Map ie a high-level overview of the interactions between different services in the application. This will help in understanding the dependencies and identifying potential performance bottlenecks between services.* +![Trace-Explorer-03](https://github.com/user-attachments/assets/c6244f5c-c8ba-418b-a5dd-eac696e9cea9) + +Services Topology view allows to visualize associations between services, several parameters can be used for the arrow width: + +![Service-Topology-06](https://github.com/user-attachments/assets/b98a2b79-b9cc-4bd9-aa4b-e9a1ce21245d) + +![Service-Topology-05](https://github.com/user-attachments/assets/f7f64081-980e-46b3-b0e4-964fb37f3f38) -*what else should we include for APM section?* ## Using OCI Logging Analytics service to collect and analyze Logs from Kubernetes Infrastructure and Pods OCI Logging Analytics provides a [complete solution](https://docs.oracle.com/en-us/iaas/logging-analytics/doc/kubernetes-solution.html) for monitoring Kubernetes (K8s) cluster deployed in OCI, third party public clouds, private clouds, or on-premises including managed Kubernetes deployments. We will start with discovering the K8s cluster running the OpenTelemetry Demo App. From bbabb4d4be58ff2be970f3728d75a3415fae7084 Mon Sep 17 00:00:00 2001 From: Juergen Fleischer Date: Mon, 10 Feb 2025 18:57:56 +0100 Subject: [PATCH 11/16] Update README.md --- knowledge-content/opentelemetry-demo/README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/knowledge-content/opentelemetry-demo/README.md b/knowledge-content/opentelemetry-demo/README.md index 78af6596..7a028aa3 100644 --- a/knowledge-content/opentelemetry-demo/README.md +++ b/knowledge-content/opentelemetry-demo/README.md @@ -102,10 +102,9 @@ Click on any of the spans to see the span details, which include kubernetes data Services Topology view allows to visualize associations between services, several parameters can be used for the arrow width: -![Service-Topology-06](https://github.com/user-attachments/assets/b98a2b79-b9cc-4bd9-aa4b-e9a1ce21245d) - -![Service-Topology-05](https://github.com/user-attachments/assets/f7f64081-980e-46b3-b0e4-964fb37f3f38) +![Service-Topology-07](https://github.com/user-attachments/assets/78e97dde-f569-4e18-b9e2-ebc5c95077f5) +![Service-Topology-08](https://github.com/user-attachments/assets/be3f58ec-7875-4514-a759-36e8297e2488) ## Using OCI Logging Analytics service to collect and analyze Logs from Kubernetes Infrastructure and Pods OCI Logging Analytics provides a [complete solution](https://docs.oracle.com/en-us/iaas/logging-analytics/doc/kubernetes-solution.html) for monitoring Kubernetes (K8s) cluster deployed in OCI, third party public clouds, private clouds, or on-premises including managed Kubernetes deployments. We will start with discovering the K8s cluster running the OpenTelemetry Demo App. From 594e5cb4c080bd88a57000c45c9e56eea68cca00 Mon Sep 17 00:00:00 2001 From: Juergen Fleischer Date: Tue, 11 Feb 2025 10:30:28 +0100 Subject: [PATCH 12/16] Update README.md --- .../opentelemetry-demo/README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/knowledge-content/opentelemetry-demo/README.md b/knowledge-content/opentelemetry-demo/README.md index 7a028aa3..bb18f685 100644 --- a/knowledge-content/opentelemetry-demo/README.md +++ b/knowledge-content/opentelemetry-demo/README.md @@ -147,6 +147,25 @@ Compare Cluster results: ![K8s-Log-Sources_compare-cluster](https://github.com/user-attachments/assets/27d78650-85fe-4c73-9566-08e115e3ebc4) +## Using OCI Monitoring service to inspect the collected metrics +Metrics from the OpenTelemetry Demo App are routed via OpenTelemetry Collector to OCI APM service which in turn will forwarded them to OCI Monitoring service. In parallel, infrastructure metrics from the Kubernetes cluster itself are getting collected by the OCI Management Agent which is running as statefulset in the cluster. + +The collected metrics can be inspected using the Metrics Explorer from the OCI Monitoring service. + +Metrics collected by the Management Agent can be found in metric namespace *mgmtagent_kubernetes_metrics*: + +![Metrics-Explorer-06](https://github.com/user-attachments/assets/9863f36e-7097-4b34-ae7e-c11454335118) + + +Metrics sent by the OpenTelemetry Collector can be found in metric namespace *oracle_apm_monitoring*: + +![Metrics-Explorer-03](https://github.com/user-attachments/assets/1aa3bea0-4bd1-4bba-81e1-eff9a2d474ea) + +Finally, out-of-the-box or custom dashboards can be used to visualize the collected metrics: + +![k8s-metrics-dashboard-01](https://github.com/user-attachments/assets/5b93d412-4974-4049-a22b-5c8d5be89fc1) + +![k8s-metrics-dashboard-02](https://github.com/user-attachments/assets/8b6ff3d8-f168-4581-b68e-0baf21b5b986) From bd769e854c59bd632e7960856d4dfc756b892022 Mon Sep 17 00:00:00 2001 From: Juergen Fleischer Date: Tue, 11 Feb 2025 15:17:02 +0100 Subject: [PATCH 13/16] Update README.md --- knowledge-content/opentelemetry-demo/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/knowledge-content/opentelemetry-demo/README.md b/knowledge-content/opentelemetry-demo/README.md index bb18f685..845bf090 100644 --- a/knowledge-content/opentelemetry-demo/README.md +++ b/knowledge-content/opentelemetry-demo/README.md @@ -18,7 +18,7 @@ kubectl create namespace otel-demo-app ``` Next, we will create a secret named oci-apm-secret: ```bash -kubectl create secret generic oci-apm-secret -n otel-demo-app --from-literal="OCI_APM_ENDPOINT=" --from-literal="OCI_APM_DATAKEY=" +kubectl create secret generic oci-apm-secret -n otel-demo-app --from-literal="OCI_APM_ENDPOINT=" --from-literal="OCI_APM_DATAKEY=" ``` Add the OpenTelemetry Helm charts site to your repo to allow deploying the OpenTelemetry Demo: ```bash From a4254ffb7fce1f6fc9b9b799f2ffb8d5d2caa901 Mon Sep 17 00:00:00 2001 From: Juergen Fleischer Date: Tue, 11 Feb 2025 15:18:52 +0100 Subject: [PATCH 14/16] Update README.md --- knowledge-content/opentelemetry-demo/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/knowledge-content/opentelemetry-demo/README.md b/knowledge-content/opentelemetry-demo/README.md index 845bf090..f35d74e9 100644 --- a/knowledge-content/opentelemetry-demo/README.md +++ b/knowledge-content/opentelemetry-demo/README.md @@ -20,7 +20,7 @@ Next, we will create a secret named oci-apm-secret: ```bash kubectl create secret generic oci-apm-secret -n otel-demo-app --from-literal="OCI_APM_ENDPOINT=" --from-literal="OCI_APM_DATAKEY=" ``` -Add the OpenTelemetry Helm charts site to your repo to allow deploying the OpenTelemetry Demo: +Add the OpenTelemetry Helm charts repo to your helm configuration to allow deploying the OpenTelemetry Demo: ```bash helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts ``` From 8d6f42dbbd9dde758c467c2a0fb6d4783ba97d65 Mon Sep 17 00:00:00 2001 From: Juergen Fleischer Date: Tue, 11 Feb 2025 15:24:35 +0100 Subject: [PATCH 15/16] Update README.md --- knowledge-content/opentelemetry-demo/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/knowledge-content/opentelemetry-demo/README.md b/knowledge-content/opentelemetry-demo/README.md index f35d74e9..25c5792a 100644 --- a/knowledge-content/opentelemetry-demo/README.md +++ b/knowledge-content/opentelemetry-demo/README.md @@ -9,7 +9,7 @@ The following prerequisites are needed: 1. Ensure to have an [OCI account](https://signup.cloud.oracle.com). 2. In Application Performance Monitoring (APM) service, [create an APM domain.](https://docs.oracle.com/iaas/application-performance-monitoring/doc/create-apm-domain.html) 3. Have the [Data Upload Endpoint URL and the private data key](https://docs.oracle.com/en-us/iaas/application-performance-monitoring/doc/obtain-data-upload-endpoint-and-data-keys.html#GUID-912EA36F-4E58-4954-B9C2-4E9A9BADDAE9) of that domain available. -4. Have a Kubernetes Cluster available, either locally, in OCI or at other cloud vendors. +4. Have a Kubernetes Cluster available, either locally, in OCI or at other cloud vendors, and provide access to it using kubectl. ## Deploy the Demo App We will start by creating a dedicated namespace for the demo app: From 88c4bc607e083a3b3a7b923555b0c5044323604a Mon Sep 17 00:00:00 2001 From: Juergen Fleischer Date: Tue, 11 Feb 2025 15:44:08 +0100 Subject: [PATCH 16/16] Update README.md --- knowledge-content/opentelemetry-demo/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/knowledge-content/opentelemetry-demo/README.md b/knowledge-content/opentelemetry-demo/README.md index 25c5792a..96cb5650 100644 --- a/knowledge-content/opentelemetry-demo/README.md +++ b/knowledge-content/opentelemetry-demo/README.md @@ -92,7 +92,7 @@ Click on the "Traces" tab in the APM console / Trace Explorer. You will see a li ![Trace-Explorer-05](https://github.com/user-attachments/assets/81e98ec3-cac9-4498-9c58-4a204e361dc0) -Select a specific trace to view its details, including the span topology and tree topology: +Select a specific trace to view its details, including the topology of the trace and its spans: ![Trace-Explorer-04](https://github.com/user-attachments/assets/e864abb7-3db0-4491-8bde-a3a7e7141c30)