From 6ca939d9232b87b2d4a8e3bcf22fcdf159551d38 Mon Sep 17 00:00:00 2001 From: Reshma Mathews <114662591+RAMathews@users.noreply.github.com> Date: Thu, 17 Aug 2023 15:50:34 +0100 Subject: [PATCH] Adot health monitoring (#212) * Added adot health metric collection * corrected alignment related error in Opentelemetry config * reverted the links * pre-commit * Update dashboards.tf split adothealth dashboard * split dashboards * changed dashboard link * corrected flux_kustomization_path * Pre-commit --- modules/eks-monitoring/README.md | 3 +++ modules/eks-monitoring/dashboards.tf | 26 +++++++++++++++++++ modules/eks-monitoring/locals.tf | 13 ++++++++++ modules/eks-monitoring/main.tf | 5 ++++ .../templates/opentelemetrycollector.yaml | 21 +++++++++++++++ .../eks-monitoring/otel-config/values.yaml | 2 ++ modules/eks-monitoring/variables.tf | 24 +++++++++++++++++ 7 files changed, 94 insertions(+) diff --git a/modules/eks-monitoring/README.md b/modules/eks-monitoring/README.md index eed5281..9817be9 100644 --- a/modules/eks-monitoring/README.md +++ b/modules/eks-monitoring/README.md @@ -55,6 +55,7 @@ See examples using this Terraform modules in the **Amazon EKS** section of [this | [helm_release.grafana_operator](https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release) | resource | | [helm_release.kube_state_metrics](https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release) | resource | | [helm_release.prometheus_node_exporter](https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release) | resource | +| [kubectl_manifest.adothealth_monitoring_dashboards](https://registry.terraform.io/providers/gavinbunney/kubectl/latest/docs/resources/manifest) | resource | | [kubectl_manifest.api_server_dashboards](https://registry.terraform.io/providers/gavinbunney/kubectl/latest/docs/resources/manifest) | resource | | [kubectl_manifest.flux_gitrepository](https://registry.terraform.io/providers/gavinbunney/kubectl/latest/docs/resources/manifest) | resource | | [kubectl_manifest.flux_kustomization](https://registry.terraform.io/providers/gavinbunney/kubectl/latest/docs/resources/manifest) | resource | @@ -68,9 +69,11 @@ See examples using this Terraform modules in the **Amazon EKS** section of [this | Name | Description | Type | Default | Required | |------|-------------|------|---------|:--------:| | [adot\_loglevel](#input\_adot\_loglevel) | Verbosity level for ADOT collector logs. This accepts (detailed\|normal\|basic), see https://aws-otel.github.io/docs/components/misc-exporters for mor infos. | `string` | `"normal"` | no | +| [adothealth\_monitoring\_config](#input\_adothealth\_monitoring\_config) | Config object for API server monitoring |
object({
flux_gitrepository_name = string
flux_gitrepository_url = string
flux_gitrepository_branch = string
flux_kustomization_name = string
flux_kustomization_path = string
dashboards = object({
grafana_adothealth_dashboard_url = string
})
}) | `null` | no |
| [apiserver\_monitoring\_config](#input\_apiserver\_monitoring\_config) | Config object for API server monitoring | object({
flux_gitrepository_name = string
flux_gitrepository_url = string
flux_gitrepository_branch = string
flux_kustomization_name = string
flux_kustomization_path = string
dashboards = object({
basic = string
advanced = string
troubleshooting = string
})
}) | `null` | no |
| [custom\_metrics\_config](#input\_custom\_metrics\_config) | Configuration object to enable custom metrics collection | map(object({
enableBasicAuth = bool
path = string
basicAuthUsername = string
basicAuthPassword = string
ports = string
droppedSeriesPrefixes = string
})) | `null` | no |
| [eks\_cluster\_id](#input\_eks\_cluster\_id) | EKS Cluster Id | `string` | n/a | yes |
+| [enable\_adotcollector\_metrics](#input\_enable\_adotcollector\_metrics) | Enables collection of ADOT collector metrics | `bool` | `true` | no |
| [enable\_alerting\_rules](#input\_enable\_alerting\_rules) | Enables or disables Managed Prometheus alerting rules | `bool` | `true` | no |
| [enable\_amazon\_eks\_adot](#input\_enable\_amazon\_eks\_adot) | Enables the ADOT Operator on the EKS Cluster | `bool` | `true` | no |
| [enable\_apiserver\_monitoring](#input\_enable\_apiserver\_monitoring) | Enable EKS kube-apiserver monitoring, alerting and dashboards | `bool` | `true` | no |
diff --git a/modules/eks-monitoring/dashboards.tf b/modules/eks-monitoring/dashboards.tf
index 672ea1c..a427bdc 100644
--- a/modules/eks-monitoring/dashboards.tf
+++ b/modules/eks-monitoring/dashboards.tf
@@ -74,3 +74,29 @@ YAML
count = var.enable_apiserver_monitoring ? 1 : 0
depends_on = [module.external_secrets]
}
+
+# adot health dashboards
+resource "kubectl_manifest" "adothealth_monitoring_dashboards" {
+ yaml_body = <