You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update module to use the new container insights with CW for EKS (#252)
* Adding Module and Example for ECS cluster monitoring with ecs_observer
* Adding Module and Example for ECS cluster monitoring with ecs_observer
* Incorporating PR comments
* Restructuring Examples and modules folder for ECS, Added content in main Readme
* Fixing path as per PR comments
* Parameterzing the config files, incorporated PR review comments
* Adding condition for AMP WS and fixing AMP endpoint
* Adding Document for ECS Monitoring and parameterized some variables
* Added sample dashboard
* Adding Document for ECS Monitoring and parameterized some variables
* Fixing failures detected by pre-commit
* Fixing failures detected by pre-commit
* Fixing failures detected by pre-commit
* Pre-commit fixes
* Fixing failures detected by pre-commit
* Fixing failures detected by pre-commit
* Pre-commit
* Fixing HIGH security alerts detected by pre-commit
* Fixing HIGH security alerts detected by pre-commit
* Fixing HIGH security alerts detected by pre-commit, 31stOct
* Add links after merge
* 2ndNov - Added condiotnal creation for Grafana WS and module versions for AMG, AMP
* Module to use the new container insights with CW for EKS
* Module to use the new container insights with CW for EKS
* Fixing precommit error
* Updating EKS container insights to replace deamonset with tf resource
* Updating EKS container insights to replace deamonset with tf resource
* Updating EKS container insights to replace deamonset with tf resource
* Updating EKS container insights to replace deamonset with tf resource
* Updating EKS container insights- Adding doc and fixing pre-commit errors
* Update Images in the doc
* Update data.tf pre-commit error
* Apply suggestions from code review
* fixing broken hyperlink
* EKS Container Insights - updating docs and few varibaleable names, definitions
Copy file name to clipboardExpand all lines: docs/container-insights/eks.md
+44-5Lines changed: 44 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,9 @@
1
1
# Setting Up Container Insights for your EKS Cluster
2
2
3
-
This example deploys AWS Distro of OpenTelemetry on your EKS cluster as a Daemonset which will enable
4
-
Container Insights metrics Dashboard on Amazon CloudWatch.
3
+
This example deploys CloudWatch Observability EKS add-on on an exisiting Amazon EKS cluster, which enables Container Insights enhanced observability for Amazon EKS and CloudWatch Application Signals by default.
5
4
5
+
1. Enables the CloudWatch Observability Add-on on EKS using the IAM service account role
6
+
2. Creates an IAM Service Linked role for enabling Application Signals
6
7
7
8
## Prerequisites
8
9
@@ -34,6 +35,16 @@ Specify the EKS Cluster Name where the resources will be deployed:
34
35
export TF_VAR_eks_cluster_id=xxx
35
36
```
36
37
38
+
### 3. Disable creation of `Cloudwatch Application Signals Service-linked Role`
39
+
If you already have Application Signals deployed in your AWS account, please set the value of this variable to `false`
description = "Create a Cloudwatch Application Signals service-linked role"
45
+
}
46
+
```
47
+
37
48
## Deploy
38
49
39
50
Simply run this command to deploy the example
@@ -42,12 +53,40 @@ Simply run this command to deploy the example
42
53
terraform apply
43
54
```
44
55
45
-
## Visualization
56
+
## Enabling Application Signals (preview) for your services
57
+
CloudWatch Application Signals (preview) is currenlty supported for **Java** applications running on your Amazon EKS cluster.
58
+
59
+
Next, you have to update your Application to `Configure application metrics and trace sampling`. For this, you must add an annotation to a manifest YAML in your cluster. Adding this annotation auto-instruments the application to send metrics, traces, and logs to Application Signals. You have two options for the annotation:
60
+
61
+
1.**Annotate Workload** auto-instruments a single workload in the cluster.
62
+
- Paste the below line into the PodTemplate section of the workload manifest.
- In your terminal, enter `kubectl apply -f your_namespace_yaml` to apply the change.
74
+
- In your terminal, enter a command to restart all pods in the namespace. An example command to restart deployment workloads is `kubectl rollout restart deployment -n namespace_name`
75
+
76
+
## Visualization of Container Insights data
77
+
78
+
After `terraform apply` is successful, open your Amazon CloudWatch console in the same region as your EKS cluster, then from the left hand side choose `Insights -> Container Insights`, there choose the `EKS` from the drop down and you will see the metrics shown on the dashboard:
## Visualization of CloudWatch Application Signals (preview) data
46
84
47
-
After apply, open your Amazon CloudWatch console in the same region as your EKS cluster, then from the left hand side choose `Insights -> Container Insights`, there choose the `Performance montoring` from the drop down, choose the `cluster name`and you will see the metrics shown on the dashboard:
85
+
After enabling your Application to pass metrics and traces by following [the steps provided above](#enabling-application-signals-preview-for-your-services), open your Amazon CloudWatch console in the same region as your EKS cluster, then from the left hand side choose `Application Signals -> Services` and you will see the metrics shown on the sample dashboard below:
Copy file name to clipboardExpand all lines: examples/eks-container-insights/README.md
+6-10Lines changed: 6 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,8 @@
1
1
# Enable Container Insights for EKS cluster
2
2
3
-
This example deploys ADOT as a daemonset on your EKS cluster which enables Container Insights metrics on CloudWatch.
4
-
5
-
Step-by-step instructions available on our [docs site](https://aws-observability.github.io/terraform-aws-observability-accelerator/)
6
-
under **Amazon CloudWatch Container Insights**
3
+
This example enables enhanced CloudWatch Container Insights for EKS and CloudWatch Application Signals (preview) through our CloudWatch EKS add-ons, providing comprehensive metrics, logs, and insights for cluster and application monitoring.
7
4
5
+
Step-by-step instructions available on our [docs site](https://aws-observability.github.io/terraform-aws-observability-accelerator/container-insights/eks/)
8
6
9
7
<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
10
8
## Requirements
@@ -13,9 +11,6 @@ under **Amazon CloudWatch Container Insights**
| <aname="input_irsa_iam_permissions_boundary"></a> [irsa\_iam\_permissions\_boundary](#input\_irsa\_iam\_permissions\_boundary)| IAM permissions boundary for IRSA roles |`string`|`null`| no |
48
-
| <aname="input_irsa_iam_role_path"></a> [irsa\_iam\_role\_path](#input\_irsa\_iam\_role\_path)| IAM role path for IRSA roles |`string`|`"/"`| no |
42
+
| <aname="input_eks_cluster_version"></a> [eks\_cluster\_version](#input\_eks\_cluster\_version)| The Kubernetes version for the cluster |`string`|`"1.28"`| no |
43
+
| <aname="input_eks_oidc_provider"></a> [eks\_oidc\_provider](#input\_eks\_oidc\_provider)| The OpenID Connect identity provider (issuer URL without leading `https://`) |`string`|`null`| no |
44
+
| <aname="input_eks_oidc_provider_arn"></a> [eks\_oidc\_provider\_arn](#input\_eks\_oidc\_provider\_arn)| The OpenID Connect identity provider ARN |`string`|`null`| no |
49
45
| <aname="input_tags"></a> [tags](#input\_tags)| Additional tags (e.g. `map('BusinessUnit`,`XYZ`) |`map(string)`|`{}`| no |
Copy file name to clipboardExpand all lines: modules/eks-container-insights/README.md
+17-19Lines changed: 17 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,10 @@
1
-
# Container Insights ADOT implementation for EKS Cluster Observability
1
+
# Container Insights CloudWatch implementation for EKS Cluster Observability
2
2
3
-
This module provides an automated experience around enabling Container Insights for your EKS cluster using ADOT (AWS Distro for OpenTelemetry).
4
-
It provides the following resources:
3
+
This module configures AWS CloudWatch Agent used for CloudWatch Application signals and Container Insights.
5
4
6
-
- ADOT Collector Deployment to your EKS cluster
7
-
- Enabling Container Insights on CloudWatch
5
+
Use CloudWatch Application Signals to automatically instrument your applications on AWS so that you can monitor current application health and track long-term application performance against your business objectives. Application Signals provides you with a unified, application-centric view of your applications, services, and dependencies, and helps you monitor and triage application health.
6
+
7
+
Use CloudWatch Container Insights to collect, aggregate, and summarize metrics and logs from your containerized applications and microservices. CloudWatch automatically collects metrics for many resources, such as CPU, memory, disk, and network. Container Insights also provides diagnostic information, such as container restart failures, to help you isolate issues and resolve them quickly. You can also set CloudWatch alarms on metrics that Container Insights collects.
8
8
9
9
10
10
<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
@@ -14,9 +14,6 @@ It provides the following resources:
|[aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity)| data source |
37
+
|[aws_eks_addon_version.eks_addon_version](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/eks_addon_version)| data source |
38
38
|[aws_eks_cluster.eks_cluster](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/eks_cluster)| data source |
39
-
|[aws_iam_policy.irsa](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy)| data source |
40
39
|[aws_partition.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/partition)| data source |
41
40
|[aws_region.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/region)| data source |
42
41
43
42
## Inputs
44
43
45
44
| Name | Description | Type | Default | Required |
| <aname="input_helm_config"></a> [helm\_config](#input\_helm\_config)| Helm provider config for adot-exporter-for-eks-on-ec2 |`any`|`{}`| no |
50
-
| <aname="input_irsa_iam_permissions_boundary"></a> [irsa\_iam\_permissions\_boundary](#input\_irsa\_iam\_permissions\_boundary)| IAM permissions boundary for IRSA roles |`string`|`null`| no |
51
-
| <aname="input_irsa_iam_role_path"></a> [irsa\_iam\_role\_path](#input\_irsa\_iam\_role\_path)| IAM role path for IRSA roles |`string`|`"/"`| no |
52
-
| <aname="input_irsa_policies"></a> [irsa\_policies](#input\_irsa\_policies)| Additional IAM policies for a IAM role for service accounts |`list(string)`|`[]`| no |
53
-
| <aname="input_manage_via_gitops"></a> [manage\_via\_gitops](#input\_manage\_via\_gitops)| Determines if the add-on should be managed via GitOps. |`bool`|`false`| no |
54
-
| <aname="input_service_exporters"></a> [service\_exporters](#input\_service\_exporters)| exporter for adot-ci setup |`string`|`"awsemf"`| no |
55
-
| <aname="input_service_receivers"></a> [service\_receivers](#input\_service\_receivers)| receiver for adot-ci setup |`string`|`"awscontainerinsightreceiver"`| no |
| <aname="input_create_cloudwatch_application_signals_role"></a> [create\_cloudwatch\_application\_signals\_role](#input\_create\_cloudwatch\_application\_signals\_role)| Create a Cloudwatch Application Signals service-linked role |`bool`|`true`| no |
48
+
| <aname="input_create_cloudwatch_observability_irsa_role"></a> [create\_cloudwatch\_observability\_irsa\_role](#input\_create\_cloudwatch\_observability\_irsa\_role)| Create a Cloudwatch Observability IRSA |`bool`|`true`| no |
49
+
| <aname="input_eks_cluster_id"></a> [eks\_cluster\_id](#input\_eks\_cluster\_id)| Name of the EKS cluster |`string`|`"eks-cw"`| no |
50
+
| <aname="input_eks_oidc_provider_arn"></a> [eks\_oidc\_provider\_arn](#input\_eks\_oidc\_provider\_arn)| The OIDC Provider ARN of AWS EKS cluster |`string`|`""`| no |
| <aname="input_kubernetes_version"></a> [kubernetes\_version](#input\_kubernetes\_version)| Kubernetes version |`string`|`"1.28"`| no |
53
+
| <aname="input_most_recent"></a> [most\_recent](#input\_most\_recent)| Determines if the most recent or default version of the addon should be returned. |`bool`|`false`| no |
56
54
| <aname="input_tags"></a> [tags](#input\_tags)| Additional tags (e.g. `map('BusinessUnit`,`XYZ`) |`map(string)`|`{}`| no |
0 commit comments