--- apiVersion: v1 kind: ConfigMap metadata: name: adot-collector namespace: ho11y labels: app: aws-adot component: adot-collector data: adot-collector-config: | receivers: prometheus: config: global: scrape_interval: 10s scrape_timeout: 5s scrape_configs: - job_name: kubernetes-service-endpoints sample_limit: 10000 kubernetes_sd_configs: - role: endpoints relabel_configs: - action: keep regex: true source_labels: - __meta_kubernetes_service_annotation_prometheus_io_scrape - action: replace regex: (https?) source_labels: - __meta_kubernetes_service_annotation_prometheus_io_scheme target_label: __scheme__ - action: replace regex: (.+) source_labels: - __meta_kubernetes_service_annotation_prometheus_io_path target_label: __metrics_path__ - action: replace regex: ([^:]+)(?::\d+)?;(\d+) replacement: $$1:$$2 source_labels: - __address__ - __meta_kubernetes_service_annotation_prometheus_io_port target_label: __address__ - action: labelmap regex: __meta_kubernetes_service_label_(.+) - action: replace source_labels: - __meta_kubernetes_namespace target_label: Namespace - action: replace source_labels: - __meta_kubernetes_service_name target_label: Service - action: replace source_labels: - __meta_kubernetes_pod_node_name target_label: kubernetes_node - action: replace source_labels: - __meta_kubernetes_pod_name target_label: pod_name - action: replace source_labels: - __meta_kubernetes_pod_container_name target_label: container_name - job_name: adot kubernetes_sd_configs: - role: pod relabel_configs: - action: replace regex: ([^:]+)(?::\d+)? replacement: 8077{1}:8888 source_labels: [__address__] target_label: __address__ - action: replace source_labels: [__meta_kubernetes_namespace] target_label: k8s_namespace - action: replace source_labels: [__meta_kubernetes_pod_name] target_label: k8s_pod - action: keep source_labels: [__meta_kubernetes_pod_label_app] regex: adot - job_name: ho11y kubernetes_sd_configs: - role: pod relabel_configs: - action: replace source_labels: [__meta_kubernetes_namespace] target_label: k8s_namespace - action: replace source_labels: [__meta_kubernetes_pod_name] target_label: k8s_pod - action: keep source_labels: [__meta_kubernetes_pod_label_app] regex: frontend|downstream(.*) processors: batch/metrics: timeout: 10s exporters: awsemf: namespace: AWSObservability/Keda/PrometheusMetrics log_group_name: '/aws/eks/{{CW_KEDA_CLUSTER}}/keda/prometheus' log_stream_name: "AWSObservability/KedaLogStream" region: {{CW_AWS_REGION}} resource_to_telemetry_conversion: enabled: true dimension_rollup_option: NoDimensionRollup parse_json_encoded_attr_values: [Sources, kubernetes] metric_declarations: # pod metrics - dimensions: [[k8s_namespace, service.name]] # Reduce exported dimensions metric_name_selectors: - ho11y_total extensions: health_check: pprof: zpages: service: extensions: [pprof, zpages, health_check] pipelines: metrics: receivers: [prometheus] processors: [batch/metrics] exporters: [awsemf] --- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: adot-collector namespace: ho11y rules: - apiGroups: [""] resources: - nodes - nodes/proxy - services - endpoints - pods verbs: ["get", "list", "watch"] - apiGroups: - extensions resources: - ingresses verbs: ["get", "list", "watch"] - nonResourceURLs: ["/metrics"] verbs: ["get"] --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: adot-collector-binding namespace: ho11y subjects: - kind: ServiceAccount name: adot-collector namespace: ho11y roleRef: kind: ClusterRole name: adot-collector apiGroup: rbac.authorization.k8s.io --- apiVersion: apps/v1 kind: Deployment metadata: name: adot namespace: ho11y labels: app: aws-adot component: adot-collector spec: selector: matchLabels: app: adot replicas: 1 template: metadata: labels: app: adot spec: serviceAccountName: adot-collector containers: - name: adot-collector image: public.ecr.aws/aws-observability/aws-otel-collector:v0.11.0 command: - "/awscollector" - "--config=/conf/adot-collector-config.yaml" - "--log-level=DEBUG" ports: - containerPort: 55681 - containerPort: 55680 - containerPort: 4317 - containerPort: 8888 env: - name: CW_AWS_REGION value: "us-west-2" volumeMounts: - name: adot-collector-config-vol mountPath: /conf livenessProbe: httpGet: path: / port: 13133 readinessProbe: httpGet: path: / port: 13133 volumes: - configMap: name: adot-collector items: - key: adot-collector-config path: adot-collector-config.yaml name: adot-collector-config-vol --- apiVersion: v1 kind: Service metadata: name: adot namespace: ho11y labels: app: aws-adot component: adot-collector spec: ports: - name: receiver-http port: 55681 - name: receiver-grpc-legacy port: 55680 - name: receiver-grpc port: 4317 - name: metrics port: 8888 selector: app: adot ---