diff --git a/modules/eks-monitoring/README.md b/modules/eks-monitoring/README.md index 658bd44..e0d1b3b 100644 --- a/modules/eks-monitoring/README.md +++ b/modules/eks-monitoring/README.md @@ -65,6 +65,7 @@ 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 | `string` | `"warn"` | no | | [custom\_metrics\_config](#input\_custom\_metrics\_config) | Configuration object to enable custom metrics collection |
object({
ports = list(number)
# paths = optional(list(string), ["/metrics"])
# list of samples to be dropped by label prefix, ex: go_ -> discards go_.*
dropped_series_prefixes = list(string)
}) | {
"dropped_series_prefixes": [
"unspecified"
],
"ports": []
} | no |
| [eks\_cluster\_id](#input\_eks\_cluster\_id) | EKS Cluster Id | `string` | n/a | yes |
| [enable\_alerting\_rules](#input\_enable\_alerting\_rules) | Enables or disables Managed Prometheus alerting rules | `bool` | `true` | no |
diff --git a/modules/eks-monitoring/main.tf b/modules/eks-monitoring/main.tf
index 0b37a9a..3dcfc53 100644
--- a/modules/eks-monitoring/main.tf
+++ b/modules/eks-monitoring/main.tf
@@ -105,6 +105,10 @@ module "helm_addon" {
name = "globalScrapeTimeout"
value = var.prometheus_config.global_scrape_timeout
},
+ {
+ name = "adotLoglevel"
+ value = var.adot_loglevel
+ },
{
name = "accountId"
value = local.context.aws_caller_identity_account_id
diff --git a/modules/eks-monitoring/otel-config/Chart.yaml b/modules/eks-monitoring/otel-config/Chart.yaml
index f7bee2a..5f55abe 100644
--- a/modules/eks-monitoring/otel-config/Chart.yaml
+++ b/modules/eks-monitoring/otel-config/Chart.yaml
@@ -2,5 +2,5 @@ apiVersion: v2
name: opentelemetry
description: A Helm chart to install otel operator
type: application
-version: 0.5.0
-appVersion: 0.5.0
+version: 0.6.0
+appVersion: 0.6.0
diff --git a/modules/eks-monitoring/otel-config/templates/opentelemetrycollector.yaml b/modules/eks-monitoring/otel-config/templates/opentelemetrycollector.yaml
index 1ff6e00..73ead1a 100644
--- a/modules/eks-monitoring/otel-config/templates/opentelemetrycollector.yaml
+++ b/modules/eks-monitoring/otel-config/templates/opentelemetrycollector.yaml
@@ -83,6 +83,26 @@ spec:
regex: $K8S_NODE_NAME
source_labels: [__meta_kubernetes_node_name]
{{ end }}
+ - job_name: 'kube-admin'
+ scheme: https
+ tls_config:
+ ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+ insecure_skip_verify: true
+ bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
+ kubernetes_sd_configs:
+ - role: node
+ relabel_configs:
+ - target_label: __address__
+ replacement: kubernetes.default.svc.cluster.local:443
+ {{ if .Values.enableTracing }}
+ - action: keep
+ regex: $K8S_NODE_NAME
+ source_labels: [__meta_kubernetes_node_name]
+ {{ end }}
+ metric_relabel_configs:
+ - action: keep
+ source_labels: [__name__]
+ regex: 'apiserver_(request_duration_seconds|storage_list_duration_seconds|admission_controller_admission_duration_seconds|flowcontrol_request_wait_duration_seconds).*|apiserver_(admission_webhook_fail_open_count|tls_handshake_errors_total|request_total)|rest_client_request_duration_seconds.*|rest_client_requests_total|etcd_(request_duration_seconds|db_total_size_in_bytes).*'
- job_name: serviceMonitor/default/kube-prometheus-stack-prometheus-node-exporter/0
honor_timestamps: true
scrape_interval: {{ .Values.globalScrapeInterval }}
@@ -1100,117 +1120,6 @@ spec:
own_namespace: false
names:
- kube-system
- - job_name: serviceMonitor/default/kube-prometheus-stack-kube-etcd/0
- honor_timestamps: true
- scrape_interval: {{ .Values.globalScrapeInterval }}
- scrape_timeout: {{ .Values.globalScrapeTimeout }}
- scheme: http
- authorization:
- type: Bearer
- credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
- follow_redirects: true
- enable_http2: true
- relabel_configs:
- - source_labels: [job]
- separator: ;
- regex: (.*)
- target_label: __tmp_prometheus_job_name
- replacement: $$1
- action: replace
- - source_labels: [__meta_kubernetes_service_label_app, __meta_kubernetes_service_labelpresent_app]
- separator: ;
- regex: (kube-prometheus-stack-kube-etcd);true
- replacement: $$1
- action: keep
- - source_labels: [__meta_kubernetes_service_label_release, __meta_kubernetes_service_labelpresent_release]
- separator: ;
- regex: (kube-prometheus-stack);true
- replacement: $$1
- action: keep
- - source_labels: [__meta_kubernetes_endpoint_port_name]
- separator: ;
- regex: http-metrics
- replacement: $$1
- action: keep
- - source_labels: [__meta_kubernetes_endpoint_address_target_kind, __meta_kubernetes_endpoint_address_target_name]
- separator: ;
- regex: Node;(.*)
- target_label: node
- replacement: $$1
- action: replace
- - source_labels: [__meta_kubernetes_endpoint_address_target_kind, __meta_kubernetes_endpoint_address_target_name]
- separator: ;
- regex: Pod;(.*)
- target_label: pod
- replacement: $$1
- action: replace
- - source_labels: [__meta_kubernetes_namespace]
- separator: ;
- regex: (.*)
- target_label: namespace
- replacement: $$1
- action: replace
- - source_labels: [__meta_kubernetes_service_name]
- separator: ;
- regex: (.*)
- target_label: service
- replacement: $$1
- action: replace
- - source_labels: [__meta_kubernetes_pod_name]
- separator: ;
- regex: (.*)
- target_label: pod
- replacement: $$1
- action: replace
- - source_labels: [__meta_kubernetes_pod_container_name]
- separator: ;
- regex: (.*)
- target_label: container
- replacement: $$1
- action: replace
- - source_labels: [__meta_kubernetes_service_name]
- separator: ;
- regex: (.*)
- target_label: job
- replacement: $$1
- action: replace
- - source_labels: [__meta_kubernetes_service_label_jobLabel]
- separator: ;
- regex: (.+)
- target_label: job
- replacement: $$1
- action: replace
- - separator: ;
- regex: (.*)
- target_label: endpoint
- replacement: http-metrics
- action: replace
- - source_labels: [__address__]
- separator: ;
- regex: (.*)
- modulus: 1
- target_label: __tmp_hash
- replacement: $$1
- action: hashmod
- - source_labels: [__tmp_hash]
- separator: ;
- regex: "0"
- replacement: $$1
- action: keep
- {{ if .Values.enableTracing }}
- - action: keep
- regex: $K8S_NODE_NAME
- source_labels: [__meta_kubernetes_endpoint_node_name]
- {{ end }}
- kubernetes_sd_configs:
- - role: endpoints
- kubeconfig_file: ""
- follow_redirects: true
- enable_http2: true
- namespaces:
- own_namespace: false
- names:
- - kube-system
- job_name: serviceMonitor/default/kube-prometheus-stack-kube-controller-manager/0
honor_timestamps: true
scrape_interval: {{ .Values.globalScrapeInterval }}
@@ -1431,115 +1340,6 @@ spec:
own_namespace: false
names:
- kube-system
- - job_name: serviceMonitor/default/kube-prometheus-stack-apiserver/0
- honor_timestamps: true
- scrape_interval: {{ .Values.globalScrapeInterval }}
- scrape_timeout: {{ .Values.globalScrapeTimeout }}
- scheme: https
- authorization:
- type: Bearer
- credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
- tls_config:
- ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
- server_name: kubernetes
- follow_redirects: true
- enable_http2: true
- relabel_configs:
- - source_labels: [job]
- separator: ;
- regex: (.*)
- target_label: __tmp_prometheus_job_name
- replacement: $$1
- action: replace
- - source_labels: [__meta_kubernetes_service_label_component, __meta_kubernetes_service_labelpresent_component]
- separator: ;
- regex: (kubernetes);true
- replacement: $$1
- action: keep
- - source_labels: [__meta_kubernetes_endpoint_port_name]
- separator: ;
- regex: https
- replacement: $$1
- action: keep
- - source_labels: [__meta_kubernetes_endpoint_address_target_kind, __meta_kubernetes_endpoint_address_target_name]
- separator: ;
- regex: Node;(.*)
- target_label: node
- replacement: $$1
- action: replace
- - source_labels: [__meta_kubernetes_endpoint_address_target_kind, __meta_kubernetes_endpoint_address_target_name]
- separator: ;
- regex: Pod;(.*)
- target_label: pod
- replacement: $$1
- action: replace
- - source_labels: [__meta_kubernetes_namespace]
- separator: ;
- regex: (.*)
- target_label: namespace
- replacement: $$1
- action: replace
- - source_labels: [__meta_kubernetes_service_name]
- separator: ;
- regex: (.*)
- target_label: service
- replacement: $$1
- action: replace
- - source_labels: [__meta_kubernetes_pod_name]
- separator: ;
- regex: (.*)
- target_label: pod
- replacement: $$1
- action: replace
- - source_labels: [__meta_kubernetes_pod_container_name]
- separator: ;
- regex: (.*)
- target_label: container
- replacement: $$1
- action: replace
- - source_labels: [__meta_kubernetes_service_name]
- separator: ;
- regex: (.*)
- target_label: job
- replacement: $$1
- action: replace
- - source_labels: [__meta_kubernetes_service_label_component]
- separator: ;
- regex: (.+)
- target_label: job
- replacement: $$1
- action: replace
- - separator: ;
- regex: (.*)
- target_label: endpoint
- replacement: https
- action: replace
- - source_labels: [__address__]
- separator: ;
- regex: (.*)
- modulus: 1
- target_label: __tmp_hash
- replacement: $$1
- action: hashmod
- - source_labels: [__tmp_hash]
- separator: ;
- regex: "0"
- replacement: $$1
- action: keep
- {{ if .Values.enableTracing }}
- - action: keep
- regex: $K8S_NODE_NAME
- source_labels: [__meta_kubernetes_endpoint_node_name]
- {{ end }}
- kubernetes_sd_configs:
- - role: endpoints
- kubeconfig_file: ""
- follow_redirects: true
- enable_http2: true
- namespaces:
- own_namespace: false
- names:
- - default
- job_name: serviceMonitor/default/kube-prometheus-stack-alertmanager/0
honor_timestamps: true
scrape_interval: {{ .Values.globalScrapeInterval }}
@@ -1776,7 +1576,7 @@ spec:
resource_to_telemetry_conversion:
enabled: true
logging:
- loglevel: warn
+ loglevel: {{ .Values.adotLoglevel }}
extensions:
sigv4auth:
region: {{ .Values.region }}
diff --git a/modules/eks-monitoring/otel-config/values.yaml b/modules/eks-monitoring/otel-config/values.yaml
index 6e4897d..8d77bc8 100644
--- a/modules/eks-monitoring/otel-config/values.yaml
+++ b/modules/eks-monitoring/otel-config/values.yaml
@@ -23,3 +23,5 @@ javaPrometheusMetricsEndpoint: ${java_prometheus_metrics_endpoint}
enableNginx: ${enable_nginx}
nginxScrapeSampleLimit: ${nginx_scrape_sample_limit}
nginxPrometheusMetricsEndpoint: ${nginx_prometheus_metrics_endpoint}
+
+adotLoglevel: ${adot_loglevel}
diff --git a/modules/eks-monitoring/variables.tf b/modules/eks-monitoring/variables.tf
index f242c3a..0e4e03a 100644
--- a/modules/eks-monitoring/variables.tf
+++ b/modules/eks-monitoring/variables.tf
@@ -33,6 +33,12 @@ variable "irsa_iam_permissions_boundary" {
default = null
}
+variable "adot_loglevel" {
+ description = "Verbosity level for ADOT collector logs"
+ type = string
+ default = "warn"
+}
+
variable "managed_prometheus_workspace_endpoint" {
description = "Amazon Managed Prometheus Workspace Endpoint"
type = string