From d7443c703861a0e72a3115dd014f276a431d9934 Mon Sep 17 00:00:00 2001 From: Prithvi Reddy Date: Sun, 28 Jan 2024 08:39:54 -0600 Subject: [PATCH 01/14] Checking in version 1 --- ...-new-eks-istio-opensource-observability.md | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md diff --git a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md new file mode 100644 index 00000000..46e50c31 --- /dev/null +++ b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md @@ -0,0 +1,120 @@ +# Single Cluster Open Source Observability - Istio Monitoring + +## Objective + +This pattern demonstrates how to use the _New EKS Cluster Open Source Observability Accelerator_ with Istio based workloads. + +It also enables control plane logging for comprehensive monitoring on the EKS cluster. + +## Prerequisites + +Ensure that you have installed the following tools on your machine. + +1. [aws cli](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) +2. [kubectl](https://Kubernetes.io/docs/tasks/tools/) +3. [cdk](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install) +4. [npm](https://docs.npmjs.com/cli/v8/commands/npm-install) + +## Deploying + +Please follow the _Deploying_ instructions of the [New EKS Cluster Open Source Observability Accelerator](./single-new-eks-opensource-observability.md) pattern, except for step 7, where you need to replace "context" in `~/.cdk.json` with the following: + +```typescript + "context": { + "fluxRepository": { + "name": "grafana-dashboards", + "namespace": "grafana-operator", + "repository": { + "repoUrl": "https://github.com/aws-observability/aws-observability-accelerator", + "name": "grafana-dashboards", + "targetRevision": "main", + "path": "./artifacts/grafana-operator-manifests/eks/infrastructure" + }, + "values": { + "GRAFANA_ISTIO_CP_DASH_URL" : "https://raw.githubusercontent.com/aws-observability/aws-observability-accelerator/v0.2.0/artifacts/grafana-dashboards/eks/istio/istio-control-plane-dashboard.json", + "GRAFANA_ISTIO_MESH_DASH_URL" : "https://raw.githubusercontent.com/aws-observability/aws-observability-accelerator/v0.2.0/artifacts/grafana-dashboards/eks/istio/istio-mesh-dashboard.json", + "GRAFANA_ISTIO_PERF_DASH_URL" : "https://raw.githubusercontent.com/aws-observability/aws-observability-accelerator/v0.2.0/artifacts/grafana-dashboards/eks/istio/istio-performance-dashboard.json", + "GRAFANA_ISTIO_SERVICE_DASH_URL" : "https://raw.githubusercontent.com/aws-observability/aws-observability-accelerator/v0.2.0/artifacts/grafana-dashboards/eks/istio/istio-service-dashboard.json" + }, + "kustomizations": [ + { + "kustomizationPath": "./artifacts/grafana-operator-manifests/eks/infrastructure" + }, + { + "kustomizationPath": "./artifacts/grafana-operator-manifests/eks/Istio" + } + ] + }, + "Istio.pattern.enabled": true + } +``` + +Once completed the rest of the _Deploying_ steps, you can move on with the deployment of the Istio workload. + +## Deploy an example Istio application + +In this section we will reuse an example from the AWS OpenTelemetry collector [repository](https://github.com/aws-observability/aws-otel-collector/blob/main/docs/developers/container-insights-eks-jmx.md). For convenience, the steps can be found below. + +1. Clone [this repository](https://github.com/aws-observability/aws-otel-test-framework) and navigate to the `sample-apps/jmx/` directory. + +2. Authenticate to Amazon ECR (_AWS_REGION_ was set during the deployment stage) + +```bash +export AWS_ACCOUNT_ID=`aws sts get-caller-identity --query Account --output text` +aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com +``` + +3. Create an Amazon ECR repository + +```bash +aws ecr create-repository --repository-name prometheus-sample-tomcat-jmx \ + --image-scanning-configuration scanOnPush=true \ + --region $AWS_REGION +``` + +4. Build Docker image and push to ECR. + +```bash +docker build -t $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/prometheus-sample-tomcat-jmx:latest . +docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/prometheus-sample-tomcat-jmx:latest +``` + +5. Install the sample application in the cluster + +```bash +SAMPLE_TRAFFIC_NAMESPACE=Istiojmx-sample +curl https://raw.githubusercontent.com/aws-observability/aws-otel-test-framework/terraform/sample-apps/jmx/examples/prometheus-metrics-sample.yaml | +sed "s/{{aws_account_id}}/$AWS_ACCOUNT_ID/g" | +sed "s/{{region}}/$AWS_REGION/g" | +sed "s/{{namespace}}/$SAMPLE_TRAFFIC_NAMESPACE/g" | +kubectl apply -f - +``` + +## Verify the resources + +```bash +kubectl get pods -n $SAMPLE_TRAFFIC_NAMESPACE + +NAME READY STATUS RESTARTS AGE +tomcat-bad-traffic-generator 1/1 Running 0 90m +tomcat-example-77b46cc546-z22jf 1/1 Running 0 25m +tomcat-traffic-generator 1/1 Running 0 90m +``` + +## Visualization + +Login to your Grafana workspace and navigate to the Dashboards panel. You should see a new dashboard named `Istio/JMX`, under `Observability Accelerator Dashboards`: + +![Dashboard](../images/all-dashboards-Istio.png) + +Open the `Istio/JMX` dashboard and you should be able to view its visualization as shown below: + +![NodeExporter_Dashboard](../images/Istio-dashboard.png) + +## Teardown + +You can teardown the whole CDK stack with the following command: + +```bash +make pattern single-new-eks-opensource-observability destroy +``` \ No newline at end of file From 09f50c355cebe4fef65ac6bd19be2465c872beff Mon Sep 17 00:00:00 2001 From: Prithvi Reddy <47993564+preddy727@users.noreply.github.com> Date: Mon, 5 Feb 2024 08:25:01 -0600 Subject: [PATCH 02/14] Update single-new-eks-istio-opensource-observability.md --- ...-new-eks-istio-opensource-observability.md | 93 ++++++++++--------- 1 file changed, 51 insertions(+), 42 deletions(-) diff --git a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md index 46e50c31..66a5f17b 100644 --- a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md +++ b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md @@ -41,7 +41,7 @@ Please follow the _Deploying_ instructions of the [New EKS Cluster Open Source O "kustomizationPath": "./artifacts/grafana-operator-manifests/eks/infrastructure" }, { - "kustomizationPath": "./artifacts/grafana-operator-manifests/eks/Istio" + "kustomizationPath": "./artifacts/grafana-operator-manifests/eks/istio" } ] }, @@ -51,65 +51,74 @@ Please follow the _Deploying_ instructions of the [New EKS Cluster Open Source O Once completed the rest of the _Deploying_ steps, you can move on with the deployment of the Istio workload. -## Deploy an example Istio application +## Visualization -In this section we will reuse an example from the AWS OpenTelemetry collector [repository](https://github.com/aws-observability/aws-otel-collector/blob/main/docs/developers/container-insights-eks-jmx.md). For convenience, the steps can be found below. +### 1. Grafana dashboards -1. Clone [this repository](https://github.com/aws-observability/aws-otel-test-framework) and navigate to the `sample-apps/jmx/` directory. +Go to the Dashboards panel of your Grafana workspace. You will see a list of Istio dashboards under the `Observability Accelerator Dashboards` -2. Authenticate to Amazon ECR (_AWS_REGION_ was set during the deployment stage) +image -```bash -export AWS_ACCOUNT_ID=`aws sts get-caller-identity --query Account --output text` -aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com -``` +Open one of the Istio dasbhoards and you will be able to view its visualization -3. Create an Amazon ECR repository +image -```bash -aws ecr create-repository --repository-name prometheus-sample-tomcat-jmx \ - --image-scanning-configuration scanOnPush=true \ - --region $AWS_REGION -``` +### 2. Amazon Managed Service for Prometheus rules and alerts -4. Build Docker image and push to ECR. +Open the Amazon Managed Service for Prometheus console and view the details of your workspace. Under the `Rules management` tab, you will find new rules deployed. -```bash -docker build -t $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/prometheus-sample-tomcat-jmx:latest . -docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/prometheus-sample-tomcat-jmx:latest -``` +image -5. Install the sample application in the cluster +!!! note + To setup your alert receiver, with Amazon SNS, follow [this documentation](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-alertmanager-receiver.html) -```bash -SAMPLE_TRAFFIC_NAMESPACE=Istiojmx-sample -curl https://raw.githubusercontent.com/aws-observability/aws-otel-test-framework/terraform/sample-apps/jmx/examples/prometheus-metrics-sample.yaml | -sed "s/{{aws_account_id}}/$AWS_ACCOUNT_ID/g" | -sed "s/{{region}}/$AWS_REGION/g" | -sed "s/{{namespace}}/$SAMPLE_TRAFFIC_NAMESPACE/g" | -kubectl apply -f - -``` +## Deploy an example application to visualize metrics -## Verify the resources +In this section we will deploy Istio's Bookinfo sample application and extract metrics using the AWS OpenTelemetry collector. When downloading and configuring `istioctl`, there are samples included in the Istio package directory. The deployment files for Bookinfo are found in the `samples` folder. Additional details can be found on Istio's [Getting Started](https://istio.io/latest/docs/setup/getting-started/) documentation -```bash -kubectl get pods -n $SAMPLE_TRAFFIC_NAMESPACE +### 1. Deploy the Bookinfo Application -NAME READY STATUS RESTARTS AGE -tomcat-bad-traffic-generator 1/1 Running 0 90m -tomcat-example-77b46cc546-z22jf 1/1 Running 0 25m -tomcat-traffic-generator 1/1 Running 0 90m +1. Using the AWS CLI, configure kubectl so you can connect to your EKS cluster. Update for your region and EKS cluster name +```sh +aws eks update-kubeconfig --region --name +``` +2. Label the default namespace for automatic Istio sidecar injection +```sh +kubectl label namespace default istio-injection=enabled +``` +3. Navigate to the Istio folder location. For example, if using Istio v1.18.2 in Downloads folder: +```sh +cd ~/Downloads/istio-1.18.2 +``` +4. Deploy the Bookinfo sample application +```sh +kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml +``` +5. Connect the Bookinfo application with the Istio gateway +```sh +kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml +``` +6. Validate that there are no issues with the Istio configuration +```sh +istioctl analyze +``` +7. Get the DNS name of the load balancer for the Istio gateway +```sh +GATEWAY_URL=$(kubectl get svc istio-ingressgateway -n istio-system -o=jsonpath='{.status.loadBalancer.ingress[0].hostname}') ``` -## Visualization +### 2. Generate traffic for the Istio Bookinfo sample application -Login to your Grafana workspace and navigate to the Dashboards panel. You should see a new dashboard named `Istio/JMX`, under `Observability Accelerator Dashboards`: +For the Bookinfo sample application, visit `http://$GATEWAY_URL/productpage` in your web browser. To see trace data, you must send requests to your service. The number of requests depends on Istio’s sampling rate and can be configured using the Telemetry API. With the default sampling rate of 1%, you need to send at least 100 requests before the first trace is visible. To send a 100 requests to the productpage service, use the following command: +```sh +for i in $(seq 1 100); do curl -s -o /dev/null "http://$GATEWAY_URL/productpage"; done +``` -![Dashboard](../images/all-dashboards-Istio.png) +### 3. Explore the Istio dashboards -Open the `Istio/JMX` dashboard and you should be able to view its visualization as shown below: +Log back into your Amazon Managed Grafana workspace and navigate to the dashboard side panel. Click on the `Observability Accelerator Dashboards` folder and open the `Istio Service` Dashboard. Use the Service dropdown menu to select the `reviews.default.svc.cluster.local` service. This gives details about metrics for the service, client workloads (workloads that are calling this service), and service workloads (workloads that are providing this service). -![NodeExporter_Dashboard](../images/Istio-dashboard.png) +Explore the Istio Control Plane, Mesh, and Performance dashboards as well. ## Teardown @@ -117,4 +126,4 @@ You can teardown the whole CDK stack with the following command: ```bash make pattern single-new-eks-opensource-observability destroy -``` \ No newline at end of file +``` From ba50b6b47cb2e4f281fc2fd388c668c6c8548d07 Mon Sep 17 00:00:00 2001 From: Prithvi Reddy <47993564+preddy727@users.noreply.github.com> Date: Tue, 6 Feb 2024 15:08:41 -0600 Subject: [PATCH 03/14] Update mkdocs.yml Add istio linking --- mkdocs.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 84740ccf..02242146 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -43,9 +43,10 @@ nav: - OSS : patterns/single-new-eks-observability-accelerators/single-new-eks-opensource-observability.md - OSS Apiserver Mon: patterns/single-new-eks-observability-accelerators/single-new-eks-apiserver-opensource-observability.md - OSS GPU: patterns/single-new-eks-observability-accelerators/single-new-eks-gpu-opensource-observability.md - - OSS Java Mon : patterns/single-new-eks-observability-accelerators/single-new-eks-java-opensource-observability.md - - OSS Nginx Mon : patterns/single-new-eks-observability-accelerators/single-new-eks-nginx-opensource-observability.md + - OSS Java Mon: patterns/single-new-eks-observability-accelerators/single-new-eks-java-opensource-observability.md + - OSS Nginx Mon: patterns/single-new-eks-observability-accelerators/single-new-eks-nginx-opensource-observability.md - OSS ADOT Collector Mon: patterns/single-new-eks-observability-accelerators/single-new-eks-adotmetrics-collection-opensource-observability.md + - OSS Istio Mon: patterns/single-new-eks-observability-accelerators/single-new-eks-istio-collection-opensource-observability.md - Logs: logs.md - Tracing: tracing.md - Supporting Examples: From 833e118e345ed73e329f101effc08b45c0d21282 Mon Sep 17 00:00:00 2001 From: Prithvi Reddy <47993564+preddy727@users.noreply.github.com> Date: Tue, 6 Feb 2024 15:11:58 -0600 Subject: [PATCH 04/14] Update mkdocs.yml --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index 02242146..c0fc23cb 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -46,7 +46,7 @@ nav: - OSS Java Mon: patterns/single-new-eks-observability-accelerators/single-new-eks-java-opensource-observability.md - OSS Nginx Mon: patterns/single-new-eks-observability-accelerators/single-new-eks-nginx-opensource-observability.md - OSS ADOT Collector Mon: patterns/single-new-eks-observability-accelerators/single-new-eks-adotmetrics-collection-opensource-observability.md - - OSS Istio Mon: patterns/single-new-eks-observability-accelerators/single-new-eks-istio-collection-opensource-observability.md + - OSS Istio Mon: patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md - Logs: logs.md - Tracing: tracing.md - Supporting Examples: From 5f705ea8ea6bb4f56d314999f0e9e2e47c20eb9f Mon Sep 17 00:00:00 2001 From: Prithvi Reddy <47993564+preddy727@users.noreply.github.com> Date: Tue, 6 Feb 2024 15:15:13 -0600 Subject: [PATCH 05/14] Update single-new-eks-istio-opensource-observability.md --- .../single-new-eks-istio-opensource-observability.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md index 66a5f17b..ec6b1551 100644 --- a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md +++ b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md @@ -31,6 +31,12 @@ Please follow the _Deploying_ instructions of the [New EKS Cluster Open Source O "path": "./artifacts/grafana-operator-manifests/eks/infrastructure" }, "values": { + "GRAFANA_CLUSTER_DASH_URL" : "https://raw.githubusercontent.com/aws-observability/aws-observability-accelerator/main/artifacts/grafana-dashboards/eks/infrastructure/cluster.json", + "GRAFANA_KUBELET_DASH_URL" : "https://raw.githubusercontent.com/aws-observability/aws-observability-accelerator/main/artifacts/grafana-dashboards/eks/infrastructure/kubelet.json", + "GRAFANA_NSWRKLDS_DASH_URL" : "https://raw.githubusercontent.com/aws-observability/aws-observability-accelerator/main/artifacts/grafana-dashboards/eks/infrastructure/namespace-workloads.json", + "GRAFANA_NODEEXP_DASH_URL" : "https://raw.githubusercontent.com/aws-observability/aws-observability-accelerator/main/artifacts/grafana-dashboards/eks/infrastructure/nodeexporter-nodes.json", + "GRAFANA_NODES_DASH_URL" : "https://raw.githubusercontent.com/aws-observability/aws-observability-accelerator/main/artifacts/grafana-dashboards/eks/infrastructure/nodes.json", + "GRAFANA_WORKLOADS_DASH_URL" : "https://raw.githubusercontent.com/aws-observability/aws-observability-accelerator/main/artifacts/grafana-dashboards/eks/infrastructure/workloads.json", "GRAFANA_ISTIO_CP_DASH_URL" : "https://raw.githubusercontent.com/aws-observability/aws-observability-accelerator/v0.2.0/artifacts/grafana-dashboards/eks/istio/istio-control-plane-dashboard.json", "GRAFANA_ISTIO_MESH_DASH_URL" : "https://raw.githubusercontent.com/aws-observability/aws-observability-accelerator/v0.2.0/artifacts/grafana-dashboards/eks/istio/istio-mesh-dashboard.json", "GRAFANA_ISTIO_PERF_DASH_URL" : "https://raw.githubusercontent.com/aws-observability/aws-observability-accelerator/v0.2.0/artifacts/grafana-dashboards/eks/istio/istio-performance-dashboard.json", From f40d926a1ffdf5f19a83a76d91ec4daeb8e6979f Mon Sep 17 00:00:00 2001 From: Prithvi Reddy <47993564+preddy727@users.noreply.github.com> Date: Tue, 6 Feb 2024 15:19:07 -0600 Subject: [PATCH 06/14] Update single-new-eks-istio-opensource-observability.md --- .../single-new-eks-istio-opensource-observability.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md index ec6b1551..039dd50c 100644 --- a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md +++ b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md @@ -2,9 +2,6 @@ ## Objective -This pattern demonstrates how to use the _New EKS Cluster Open Source Observability Accelerator_ with Istio based workloads. - -It also enables control plane logging for comprehensive monitoring on the EKS cluster. ## Prerequisites From 08d2725c04f2578706a0d730be4988af0950ceba Mon Sep 17 00:00:00 2001 From: Prithvi Reddy <47993564+preddy727@users.noreply.github.com> Date: Tue, 6 Feb 2024 15:26:05 -0600 Subject: [PATCH 07/14] Update single-new-eks-istio-opensource-observability.md --- .../single-new-eks-istio-opensource-observability.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md index 039dd50c..c313e716 100644 --- a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md +++ b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md @@ -60,17 +60,20 @@ Once completed the rest of the _Deploying_ steps, you can move on with the deplo Go to the Dashboards panel of your Grafana workspace. You will see a list of Istio dashboards under the `Observability Accelerator Dashboards` -image +![image](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/75c98c21-58f0-4876-8e6f-d88e625ea400) + Open one of the Istio dasbhoards and you will be able to view its visualization -image +![image](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/4cd23a12-70ec-43a6-8410-3c1191530a82) + ### 2. Amazon Managed Service for Prometheus rules and alerts Open the Amazon Managed Service for Prometheus console and view the details of your workspace. Under the `Rules management` tab, you will find new rules deployed. -image +![image](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/33c89dcb-853a-479c-a210-3870144161e5) + !!! note To setup your alert receiver, with Amazon SNS, follow [this documentation](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-alertmanager-receiver.html) From 88774729766bf7ca59622315d727d9b1bd47f50e Mon Sep 17 00:00:00 2001 From: Prithvi Reddy <47993564+preddy727@users.noreply.github.com> Date: Tue, 6 Feb 2024 15:37:18 -0600 Subject: [PATCH 08/14] Update single-new-eks-istio-opensource-observability.md --- .../single-new-eks-istio-opensource-observability.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md index c313e716..0805d6e8 100644 --- a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md +++ b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md @@ -2,6 +2,14 @@ ## Objective +Service Meshes are an integral part of the Kubernetes environment that enables secure, reliable, and observable communication. Istio is an open-source service mesh that provides advanced network features without requiring any changes to the application code. These capabilities include service-to-service authentication, monitoring, and more. + +Istio generates detailed telemetry for all service communications within a mesh. This telemetry provides observability of service behavior, thereby empowering operators to troubleshoot, maintain, and optimize their applications. These features don’t impose additional burdens on service developers. To monitor service behavior, Istio generates metrics for all service traffic in, out, and within an Istio service mesh. These metrics provide information on behaviors, like traffic volume, traffic error rates, and request-response latency. + +In addition to monitoring the behavior of services within a mesh, it’s essential to monitor the behavior of the mesh itself. Istio components export metrics which provides insights into the health and function of the mesh control plane. + +This pattern configures an Amazon Elastic Kubernetes Service (Amazon EKS) cluster with Istio as a service mesh, Amazon Managed service for Prometheus, and Amazon Managed Grafana for monitoring your Istio Control and Data plane metrics + ## Prerequisites From 9220d0b230ef2a07e7f2c3abe8edd35bc662e425 Mon Sep 17 00:00:00 2001 From: Prithvi Reddy <47993564+preddy727@users.noreply.github.com> Date: Tue, 6 Feb 2024 15:53:53 -0600 Subject: [PATCH 09/14] Update single-new-eks-istio-opensource-observability.md --- .../single-new-eks-istio-opensource-observability.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md index 0805d6e8..e2aacbf4 100644 --- a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md +++ b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md @@ -132,6 +132,9 @@ for i in $(seq 1 100); do curl -s -o /dev/null "http://$GATEWAY_URL/productpage" Log back into your Amazon Managed Grafana workspace and navigate to the dashboard side panel. Click on the `Observability Accelerator Dashboards` folder and open the `Istio Service` Dashboard. Use the Service dropdown menu to select the `reviews.default.svc.cluster.local` service. This gives details about metrics for the service, client workloads (workloads that are calling this service), and service workloads (workloads that are providing this service). +![04CBB260-EE0E-405E-BD23-EBCF8333A29D](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/60b9e537-4e69-476e-861d-7969bf1b91ef) + + Explore the Istio Control Plane, Mesh, and Performance dashboards as well. ## Teardown From f336b101b1c33ba1a4a2ea7bbc3a3409fe781b34 Mon Sep 17 00:00:00 2001 From: Prithvi Reddy <47993564+preddy727@users.noreply.github.com> Date: Tue, 6 Feb 2024 16:04:29 -0600 Subject: [PATCH 10/14] Update single-new-eks-istio-opensource-observability.md --- .../single-new-eks-istio-opensource-observability.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md index e2aacbf4..3c62dc08 100644 --- a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md +++ b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md @@ -135,6 +135,10 @@ Log back into your Amazon Managed Grafana workspace and navigate to the dashboar ![04CBB260-EE0E-405E-BD23-EBCF8333A29D](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/60b9e537-4e69-476e-861d-7969bf1b91ef) +![04CBB260-EE0E-405E-BD23-EBCF8333A29D](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/ba85e89b-a9ab-4b80-bf4a-c597b2bfd4c7) +![AD2E46A3-4BC0-4F5A-BEA0-27D2136E6C06](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/3c913641-8101-459d-87c1-d418433c1960) +![9B04E4D9-6A47-4E4F-AF42-E3A2426B344C](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/366e33f5-5a54-4bef-afa6-c218aa31bdab) + Explore the Istio Control Plane, Mesh, and Performance dashboards as well. ## Teardown From 94dab3ac38f20f6a4db04fe2e84356088d5dc58e Mon Sep 17 00:00:00 2001 From: Prithvi Reddy <47993564+preddy727@users.noreply.github.com> Date: Tue, 6 Feb 2024 16:06:39 -0600 Subject: [PATCH 11/14] Update single-new-eks-istio-opensource-observability.md --- .../single-new-eks-istio-opensource-observability.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md index 3c62dc08..0930e882 100644 --- a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md +++ b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md @@ -135,11 +135,16 @@ Log back into your Amazon Managed Grafana workspace and navigate to the dashboar ![04CBB260-EE0E-405E-BD23-EBCF8333A29D](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/60b9e537-4e69-476e-861d-7969bf1b91ef) -![04CBB260-EE0E-405E-BD23-EBCF8333A29D](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/ba85e89b-a9ab-4b80-bf4a-c597b2bfd4c7) +Explore the Istio Control Plane, Mesh, and Performance dashboards as well. + +Control Plane +![68AC86D7-4959-4527-A723-A19E8FD9E8F5_1_105_c](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/7c0fa04d-beed-45f4-a5dc-97418323b4a9) + +Mesh ![AD2E46A3-4BC0-4F5A-BEA0-27D2136E6C06](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/3c913641-8101-459d-87c1-d418433c1960) -![9B04E4D9-6A47-4E4F-AF42-E3A2426B344C](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/366e33f5-5a54-4bef-afa6-c218aa31bdab) -Explore the Istio Control Plane, Mesh, and Performance dashboards as well. +Performance +![9B04E4D9-6A47-4E4F-AF42-E3A2426B344C](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/366e33f5-5a54-4bef-afa6-c218aa31bdab) ## Teardown From 7bab5b0dd2e052464c41e3649c62df1bcb80ace3 Mon Sep 17 00:00:00 2001 From: Prithvi Reddy <47993564+preddy727@users.noreply.github.com> Date: Tue, 6 Feb 2024 16:07:21 -0600 Subject: [PATCH 12/14] Update single-new-eks-istio-opensource-observability.md --- .../single-new-eks-istio-opensource-observability.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md index 0930e882..df707015 100644 --- a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md +++ b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md @@ -140,10 +140,9 @@ Explore the Istio Control Plane, Mesh, and Performance dashboards as well. Control Plane ![68AC86D7-4959-4527-A723-A19E8FD9E8F5_1_105_c](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/7c0fa04d-beed-45f4-a5dc-97418323b4a9) -Mesh ![AD2E46A3-4BC0-4F5A-BEA0-27D2136E6C06](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/3c913641-8101-459d-87c1-d418433c1960) -Performance +Mesh ![9B04E4D9-6A47-4E4F-AF42-E3A2426B344C](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/366e33f5-5a54-4bef-afa6-c218aa31bdab) ## Teardown From 1a7084373c113b73dcf3ef2267640d4c7a72711b Mon Sep 17 00:00:00 2001 From: Prithvi Reddy <47993564+preddy727@users.noreply.github.com> Date: Tue, 6 Feb 2024 16:09:37 -0600 Subject: [PATCH 13/14] Update single-new-eks-istio-opensource-observability.md --- .../single-new-eks-istio-opensource-observability.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md index df707015..88a7d1c0 100644 --- a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md +++ b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md @@ -145,7 +145,10 @@ Control Plane Mesh ![9B04E4D9-6A47-4E4F-AF42-E3A2426B344C](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/366e33f5-5a54-4bef-afa6-c218aa31bdab) -## Teardown +Performance + +## Teardown![9429081E-E4CC-4674-81BD-DB7F0B15BC87](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/5a08bb92-27a5-4cfe-9a52-e6fb6b8210fc) + You can teardown the whole CDK stack with the following command: From 5bdcaaf4a42f98a9d4c0787d811a2aaabb32052d Mon Sep 17 00:00:00 2001 From: Prithvi Reddy <47993564+preddy727@users.noreply.github.com> Date: Tue, 6 Feb 2024 16:10:13 -0600 Subject: [PATCH 14/14] Update single-new-eks-istio-opensource-observability.md --- .../single-new-eks-istio-opensource-observability.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md index 88a7d1c0..b1e99c77 100644 --- a/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md +++ b/docs/patterns/single-new-eks-observability-accelerators/single-new-eks-istio-opensource-observability.md @@ -147,8 +147,10 @@ Mesh Performance -## Teardown![9429081E-E4CC-4674-81BD-DB7F0B15BC87](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/5a08bb92-27a5-4cfe-9a52-e6fb6b8210fc) +![9429081E-E4CC-4674-81BD-DB7F0B15BC87](https://github.com/preddy727/cdk-aws-observability-accelerator/assets/47993564/5a797d88-06b5-4063-91b0-28c7647f0c9d) + +## Teardown You can teardown the whole CDK stack with the following command: