--- apiVersion: v1 kind: ConfigMap metadata: name: adot-collector-conf namespace: adot-col labels: app: aws-adot component: adot-collector-conf data: adot-collector-config: | receivers: prometheus: config: global: scrape_interval: 15s scrape_timeout: 10s scrape_configs: - job_name: "kubernetes-service-endpoints" kubernetes_sd_configs: - role: endpoints relabel_configs: - source_labels: [__meta_kubernetes_service_annotation_scrape] action: keep regex: true exporters: prometheusremotewrite: # replace this with your endpoint, in double quotes: endpoint: auth: authenticator: sigv4auth logging: loglevel: debug extensions: health_check: pprof: endpoint: :1888 zpages: endpoint: :55679 sigv4auth: # replace this with your region, in double quotes: region: service: "aps" service: extensions: [pprof, zpages, health_check, sigv4auth] pipelines: metrics: receivers: [prometheus] exporters: [logging, prometheusremotewrite] --- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: adotcol-admin-role 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: adotcol-admin-role-binding subjects: - kind: ServiceAccount name: adot-collector namespace: adot-col roleRef: kind: ClusterRole name: adotcol-admin-role apiGroup: rbac.authorization.k8s.io --- apiVersion: v1 kind: Service metadata: name: adot-collector namespace: adot-col labels: app: aws-adot component: adot-collector spec: ports: - name: metrics port: 8888 selector: component: adot-collector type: NodePort --- apiVersion: apps/v1 kind: Deployment metadata: name: adot-collector namespace: adot-col labels: app: aws-adot component: adot-collector spec: selector: matchLabels: app: aws-adot component: adot-collector minReadySeconds: 5 template: metadata: labels: app: aws-adot component: adot-collector spec: serviceAccountName: adot-collector containers: - command: - "/awscollector" - "--config=/conf/adot-collector-config.yaml" image: public.ecr.aws/aws-observability/aws-otel-collector:latest name: adot-collector resources: limits: cpu: 1 memory: 2Gi requests: cpu: 200m memory: 400Mi ports: - containerPort: 8888 volumeMounts: - name: adot-collector-config-vol mountPath: /conf livenessProbe: httpGet: path: / port: 13133 readinessProbe: httpGet: path: / port: 13133 volumes: - configMap: name: adot-collector-conf items: - key: adot-collector-config path: adot-collector-config.yaml name: adot-collector-config-vol