apiVersion: opentelemetry.io/v1alpha1 kind: OpenTelemetryCollector metadata: name: adot spec: {{ if .Values.enableTracing }} mode: daemonset hostNetwork: true {{ else }} mode: deployment {{ end }} serviceAccount: adot-collector-kubeprometheus env: - name: "K8S_NODE_NAME" valueFrom: fieldRef: fieldPath: "spec.nodeName" - name: "K8S_POD_NAME" valueFrom: fieldRef: fieldPath: "metadata.name" - name: "K8S_NAMESPACE" valueFrom: fieldRef: fieldPath: "metadata.namespace" config: | receivers: otlp: protocols: grpc: endpoint: {{ .Values.otlpGrpcEndpoint }} http: endpoint: {{ .Values.otlpHttpEndpoint }} prometheus: config: global: scrape_interval: {{ .Values.globalScrapeInterval }} scrape_timeout: {{ .Values.globalScrapeTimeout }} scrape_configs: - job_name: 'kubernetes-kubelet' scrape_interval: {{ .Values.globalScrapeInterval }} scrape_timeout: {{ .Values.globalScrapeTimeout }} 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: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - target_label: __address__ replacement: kubernetes.default.svc.cluster.local:443 - source_labels: [__meta_kubernetes_node_name] regex: (.+) target_label: __metrics_path__ replacement: /api/v1/nodes/$${1}/proxy/metrics {{ if .Values.enableTracing }} - action: keep regex: $K8S_NODE_NAME source_labels: [__meta_kubernetes_node_name] {{ end }} - job_name: 'kubelet' 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: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - target_label: __address__ replacement: kubernetes.default.svc.cluster.local:443 - source_labels: [__meta_kubernetes_node_name] regex: (.+) target_label: __metrics_path__ replacement: /api/v1/nodes/$${1}/proxy/metrics/cadvisor {{ if .Values.enableTracing }} - action: keep 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 - action: keep regex: $K8S_NODE_NAME source_labels: [__meta_kubernetes_node_name] 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 }} scrape_timeout: {{ .Values.globalScrapeInterval }} scheme: http 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: (prometheus-node-exporter);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: - default - job_name: serviceMonitor/default/kube-prometheus-stack-prometheus/0 honor_timestamps: true scrape_interval: {{ .Values.globalScrapeInterval }} scrape_timeout: {{ .Values.globalScrapeTimeout }} scheme: http 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-prometheus);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_service_label_self_monitor, __meta_kubernetes_service_labelpresent_self_monitor] separator: ; regex: (true);true replacement: $$1 action: keep - source_labels: [__meta_kubernetes_endpoint_port_name] separator: ; regex: http-web 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 - separator: ; regex: (.*) target_label: endpoint replacement: http-web 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-operator/0 honor_labels: true honor_timestamps: true scrape_interval: {{ .Values.globalScrapeInterval }} scrape_timeout: {{ .Values.globalScrapeTimeout }} scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt insecure_skip_verify: true 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-operator);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: 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 - 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-kubelet/2 honor_labels: true honor_timestamps: true scrape_interval: {{ .Values.globalScrapeInterval }} scrape_timeout: {{ .Values.globalScrapeTimeout }} metrics_path: /metrics/probes 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 insecure_skip_verify: true 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_kubernetes_io_name, __meta_kubernetes_service_labelpresent_app_kubernetes_io_name] separator: ; regex: (kubelet);true replacement: $$1 action: keep - source_labels: [__meta_kubernetes_service_label_k8s_app, __meta_kubernetes_service_labelpresent_k8s_app] separator: ; regex: (kubelet);true replacement: $$1 action: keep - source_labels: [__meta_kubernetes_endpoint_port_name] separator: ; regex: https-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_k8s_app] separator: ; regex: (.+) target_label: job replacement: $$1 action: replace - separator: ; regex: (.*) target_label: endpoint replacement: https-metrics action: replace - source_labels: [__metrics_path__] separator: ; regex: (.*) target_label: metrics_path replacement: $$1 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-kubelet/1 honor_labels: true honor_timestamps: true scrape_interval: {{ .Values.globalScrapeInterval }} scrape_timeout: {{ .Values.globalScrapeTimeout }} metrics_path: /metrics/cadvisor 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 insecure_skip_verify: true 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_kubernetes_io_name, __meta_kubernetes_service_labelpresent_app_kubernetes_io_name] separator: ; regex: (kubelet);true replacement: $$1 action: keep - source_labels: [__meta_kubernetes_service_label_k8s_app, __meta_kubernetes_service_labelpresent_k8s_app] separator: ; regex: (kubelet);true replacement: $$1 action: keep - source_labels: [__meta_kubernetes_endpoint_port_name] separator: ; regex: https-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_k8s_app] separator: ; regex: (.+) target_label: job replacement: $$1 action: replace - separator: ; regex: (.*) target_label: endpoint replacement: https-metrics action: replace - source_labels: [__metrics_path__] separator: ; regex: (.*) target_label: metrics_path replacement: $$1 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-kubelet/0 honor_labels: true 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 insecure_skip_verify: true 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_kubernetes_io_name, __meta_kubernetes_service_labelpresent_app_kubernetes_io_name] separator: ; regex: (kubelet);true replacement: $$1 action: keep - source_labels: [__meta_kubernetes_service_label_k8s_app, __meta_kubernetes_service_labelpresent_k8s_app] separator: ; regex: (kubelet);true replacement: $$1 action: keep - source_labels: [__meta_kubernetes_endpoint_port_name] separator: ; regex: https-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_k8s_app] separator: ; regex: (.+) target_label: job replacement: $$1 action: replace - separator: ; regex: (.*) target_label: endpoint replacement: https-metrics action: replace - source_labels: [__metrics_path__] separator: ; regex: (.*) target_label: metrics_path replacement: $$1 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-state-metrics/0 honor_labels: true honor_timestamps: true scrape_interval: {{ .Values.globalScrapeInterval }} scrape_timeout: {{ .Values.globalScrapeTimeout }} scheme: http 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_kubernetes_io_instance, __meta_kubernetes_service_labelpresent_app_kubernetes_io_instance] separator: ; regex: (kube-prometheus-stack);true replacement: $$1 action: keep - source_labels: [__meta_kubernetes_service_label_app_kubernetes_io_name, __meta_kubernetes_service_labelpresent_app_kubernetes_io_name] separator: ; regex: (kube-state-metrics);true replacement: $$1 action: keep - source_labels: [__meta_kubernetes_endpoint_port_name] separator: ; regex: http 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_app_kubernetes_io_name] separator: ; regex: (.+) target_label: job replacement: $$1 action: replace - separator: ; regex: (.*) target_label: endpoint replacement: http 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-kube-scheduler/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-scheduler);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-proxy/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-proxy);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 }} 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-controller-manager);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-coredns/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-coredns);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: "" namespaces: own_namespace: false names: - kube-system - job_name: serviceMonitor/default/kube-prometheus-stack-alertmanager/0 honor_timestamps: true scrape_interval: {{ .Values.globalScrapeInterval }} scrape_timeout: {{ .Values.globalScrapeTimeout }} scheme: http 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-alertmanager);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_service_label_self_monitor, __meta_kubernetes_service_labelpresent_self_monitor] separator: ; regex: (true);true replacement: $$1 action: keep - source_labels: [__meta_kubernetes_endpoint_port_name] separator: ; regex: http-web 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 - separator: ; regex: (.*) target_label: endpoint replacement: http-web 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: 'kube-state-metrics' static_configs: - targets: ['kube-state-metrics.kube-system.svc.cluster.local:8080'] - job_name: 'node-exporter' kubernetes_sd_configs: - role: endpoints ec2_sd_configs: relabel_configs: - source_labels: [ __address__ ] action: keep regex: '.*:9100$' - action: replace source_labels: [__meta_kubernetes_endpoint_node_name] target_label: nodename {{ if .Values.enableTracing }} - action: keep regex: $K8S_NODE_NAME source_labels: [__meta_kubernetes_endpoint_node_name] {{ end }} - job_name: "custom-metrics" kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [ __address__ ] action: keep regex: '{{ .Values.customMetricsPorts }}' - action: replace source_labels: [__meta_kubernetes_pod_node_name] target_label: nodename - action: replace source_labels: [__meta_kubernetes_namespace] target_label: namespace - 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 - action: replace source_labels: [__meta_kubernetes_pod_controller_kind] target_label: pod_controller_kind {{ if .Values.enableTracing }} - action: keep regex: $K8S_NODE_NAME source_labels: [__meta_kubernetes_pod_node_name] {{ end }} metric_relabel_configs: - source_labels: [ __name__ ] regex: '{{ .Values.customMetricsDroppedSeriesPrefixes }}' action: drop {{ if .Values.enableJava }} - job_name: 'kubernetes-java-jmx' sample_limit: {{ .Values.javaScrapeSampleLimit }} metrics_path: {{ .Values.javaPrometheusMetricsEndpoint }} kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [ __address__ ] action: keep regex: '.*:9404$' - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - action: replace source_labels: [ __meta_kubernetes_namespace ] target_label: Namespace - source_labels: [ __meta_kubernetes_pod_name ] action: replace target_label: pod_name - action: replace source_labels: [ __meta_kubernetes_pod_container_name ] target_label: container_name - action: replace source_labels: [ __meta_kubernetes_pod_controller_kind ] target_label: pod_controller_kind - action: replace source_labels: [ __meta_kubernetes_pod_phase ] target_label: pod_controller_phase metric_relabel_configs: - source_labels: [ __name__ ] regex: 'jvm_gc_collection_seconds.*' action: drop {{ end }} {{ if .Values.enableNginx }} - job_name: 'kubernetes-nginx' sample_limit: {{ .Values.nginxScrapeSampleLimit }} metrics_path: {{ .Values.nginxPrometheusMetricsEndpoint }} kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [ __address__ ] action: keep regex: '.*:10254$' - source_labels: [__meta_kubernetes_pod_container_name] target_label: container action: replace - source_labels: [__meta_kubernetes_pod_node_name] target_label: host action: replace - source_labels: [__meta_kubernetes_namespace] target_label: namespace action: replace metric_relabel_configs: - source_labels: [__name__] regex: 'go_memstats.*' action: drop - source_labels: [__name__] regex: 'go_gc.*' action: drop - source_labels: [__name__] regex: 'go_threads' action: drop - regex: exported_host action: labeldrop {{ end }} {{ if .Values.enableIstio }} - honor_labels: true job_name: kubernetes-istio kubernetes_sd_configs: - role: pod relabel_configs: - action: keep regex: true source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_scrape - action: drop regex: true source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow - action: replace regex: (https?) source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_scheme target_label: __scheme__ - action: replace regex: (.+) source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_path target_label: __metrics_path__ - action: replace regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4}) replacement: '[$$2]:$$1' source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_port - __meta_kubernetes_pod_ip target_label: __address__ - action: replace regex: (\d+);((([0-9]+?)(\.|$)){4}) replacement: $$2:$$1 source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_port - __meta_kubernetes_pod_ip target_label: __address__ - action: labelmap regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+) replacement: __param_$1 - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - action: replace source_labels: - __meta_kubernetes_namespace target_label: namespace - action: replace source_labels: - __meta_kubernetes_pod_name target_label: pod - action: keep source_labels: [ __address__ ] regex: '.*:15020$$' - action: drop regex: Pending|Succeeded|Failed|Completed source_labels: - __meta_kubernetes_pod_phase {{ end }} exporters: {{ if .Values.enableTracing }} awsxray: region: {{ .Values.region }} {{ end }} prometheusremotewrite: endpoint: {{ .Values.ampurl }} auth: authenticator: sigv4auth resource_to_telemetry_conversion: enabled: true logging: loglevel: {{ .Values.adotLoglevel }} extensions: sigv4auth: region: {{ .Values.region }} service: aps health_check: pprof: endpoint: :1888 zpages: endpoint: :55679 processors: batch/metrics: timeout: 30s send_batch_size: 500 attributes/metrics: actions: - key: cluster action: upsert value: {{ .Values.ekscluster }} - key: region action: upsert value: {{ .Values.region }} - key: account_id action: upsert value: {{ .Values.accountId }} {{ if .Values.enableTracing }} batch/traces: timeout: {{ .Values.tracingTimeout }} send_batch_size: {{ .Values.tracingBatchSize }} {{ end }} service: extensions: [pprof, zpages, health_check, sigv4auth] pipelines: metrics: receivers: [prometheus, otlp] processors: [batch/metrics, attributes/metrics] exporters: [logging, prometheusremotewrite] {{ if .Values.enableTracing }} traces: receivers: [otlp] processors: [batch/traces] exporters: [logging, awsxray] {{ end }}