apiVersion: v1 kind: ConfigMap metadata: name: otel-config namespace: default data: # aws-otel-collector config otel-config.yaml: | extensions: health_check: sigv4auth: service: "aps" region: "{{AWS_REGION}}" receivers: otlp: protocols: grpc: endpoint: 0.0.0.0:4317 http: endpoint: 0.0.0.0:4318 prometheus: config: global: scrape_interval: 20s scrape_timeout: 10s scrape_configs: - job_name: "otel-collector" kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_container_port_number] action: keep target_label: '^8080$' - source_labels: [ __meta_kubernetes_pod_container_name ] action: keep target_label: '^pethistory$' - source_labels: [ __meta_kubernetes_pod_name ] action: replace target_label: pod_name - source_labels: [ __meta_kubernetes_pod_container_name ] action: replace target_label: container_name processors: batch/metrics: timeout: 60s exporters: logging: loglevel: debug awsxray: awsemf: namespace: "PetAdoptionsHistory" resource_to_telemetry_conversion: enabled: true dimension_rollup_option: NoDimensionRollup metric_declarations: - dimensions: [ [ pod_name, container_name ] ] metric_name_selectors: - "^transactions_get_count_total$" - "^transactions_history_count$" - "^process_.*" label_matchers: - label_names: - container_name regex: ^pethistory$ - dimensions: [ [ pod_name, container_name, generation ] ] metric_name_selectors: - "^python_gc_objects_.*" label_matchers: - label_names: - container_name regex: ^pethistory$ - dimensions: [ [ pod_name, container_name, endpoint, method, status ] ] metric_name_selectors: - "^flask_http_request_duration_seconds_created$" label_matchers: - label_names: - container_name regex: ^pethistory$ - dimensions: [ [ pod_name, container_name, method, status ] ] metric_name_selectors: - "^flask_http_request_total$" - "^flask_http_request_created$" label_matchers: - label_names: - container_name regex: ^pethistory$ - dimensions: [ [ pod_name, container_name, implementation, major, minor, patchlegel, version ] ] metric_name_selectors: - "^python_info$" label_matchers: - label_names: - container_name regex: ^pethistory$ - dimensions: [ [ pod_name, container_name, version ] ] metric_name_selectors: - "^flask_exporter_info$" label_matchers: - label_names: - container_name regex: ^pethistory$ # prometheusremotewrite: # endpoint: "{{AMP_WORKSPACE_URL}}" # auth: # authenticator: sigv4auth service: extensions: [sigv4auth, health_check] pipelines: traces: receivers: [otlp] exporters: [awsxray] metrics: receivers: [prometheus] processors: [batch/metrics] exporters: [awsemf]