receivers: prometheus: config: global: scrape_interval: 1m scrape_timeout: 10s scrape_configs: - job_name: 'kubernetes-pod-appmesh-envoy' sample_limit: 10000 metrics_path: /stats/prometheus kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [ __meta_kubernetes_pod_container_name ] action: keep regex: '^envoy$' - source_labels: [ __address__, __meta_kubernetes_pod_annotation_prometheus_io_port ] action: replace regex: ([^:]+)(?::\d+)?;(\d+) replacement: $${1}:9901 target_label: __address__ - 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_name target_label: pod_controller_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_phase - job_name: 'kubernetes-pod-fluentbit-plugin' sample_limit: 10000 metrics_path: /api/v1/metrics/prometheus kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [ __meta_kubernetes_pod_container_name ] action: keep regex: '^fluent-bit.*$' - source_labels: [ __address__ ] action: replace regex: ([^:]+)(?::\d+)? replacement: ${1}:2020 target_label: __address__ - 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_name target_label: pod_controller_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_phase - action: replace source_labels: - __meta_kubernetes_pod_node_name target_label: container_name metric_relabel_configs: - source_labels: [ __name__ ] regex: 'go_gc_duration_seconds.*' action: drop - source_labels: [ __name__, proxy ] regex: "haproxy_frontend.+;(.+)" target_label: frontend replacement: "$$1" - source_labels: [ __name__, proxy ] regex: "haproxy_server.+;(.+)" target_label: backend replacement: "$$1" - source_labels: [ __name__, proxy ] regex: "haproxy_backend.+;(.+)" target_label: backend replacement: "$$1" - regex: proxy action: labeldrop - 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 metric_relabel_configs: - source_labels: [ __name__ ] regex: 'go_gc_duration_seconds.*' action: drop - source_labels: [ __name__, proxy ] regex: "haproxy_frontend.+;(.+)" target_label: frontend replacement: "$$1" - source_labels: [ __name__, proxy ] regex: "haproxy_server.+;(.+)" target_label: backend replacement: "$$1" - source_labels: [ __name__, proxy ] regex: "haproxy_backend.+;(.+)" target_label: backend replacement: "$$1" - regex: proxy action: labeldrop - job_name: 'kubernetes-pod-jmx' sample_limit: 10000 metrics_path: /metrics 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_name target_label: pod_controller_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_phase metric_relabel_configs: - source_labels: [ __name__ ] regex: 'jvm_gc_collection_seconds.*' action: drop processors: resourcedetection/ec2: detectors: [ env ] timeout: 2s override: false resource: attributes: - key: TaskId from_attribute: service.name action: insert - key: receiver value: "prometheus" action: insert exporters: awsemf: namespace: ContainerInsights/Prometheus log_group_name: "/aws/containerinsights/{ClusterName}/prometheus" log_stream_name: "{TaskId}" resource_to_telemetry_conversion: enabled: true dimension_rollup_option: NoDimensionRollup metric_declarations: - dimensions: [ [ ClusterName, Namespace ] ] metric_name_selectors: - "^envoy_http_downstream_rq_(total|xx)$" - "^envoy_cluster_upstream_cx_(r|t)x_bytes_total$" - "^envoy_cluster_membership_(healthy|total)$" - "^envoy_server_memory_(allocated|heap_size)$" - "^envoy_cluster_upstream_cx_(connect_timeout|destroy_local_with_active_rq)$" - "^envoy_cluster_upstream_rq_(pending_failure_eject|pending_overflow|timeout|per_try_timeout|rx_reset|maintenance_mode)$" - "^envoy_http_downstream_cx_destroy_remote_active_rq$" - "^envoy_cluster_upstream_flow_control_(paused_reading_total|resumed_reading_total|backed_up_total|drained_total)$" - "^envoy_cluster_upstream_rq_retry$" - "^envoy_cluster_upstream_rq_retry_(success|overflow)$" - "^envoy_server_(version|uptime|live)$" label_matchers: - label_names: - container_name regex: ^envoy$ - dimensions: [ [ ClusterName, Namespace, envoy_http_conn_manager_prefix, envoy_response_code_class ] ] metric_name_selectors: - "^envoy_http_downstream_rq_xx$" label_matchers: - label_names: - container_name regex: ^envoy$ - dimensions: [ [ ClusterName, Namespace, NodeName ] ] metric_name_selectors: - "^fluentbit_output_errors_total$" - "^fluentbit_input_bytes_total$" - "^fluentbit_output_proc_bytes_total$" - "^fluentbit_input_records_total$" - "^fluentbit_output_proc_records_total$" - "^fluentbit_output_retries_(total|failed_total)$" label_matchers: - label_names: - container_name regex: "^fluent-bit.*$" - dimensions: [ [ Service, Namespace, ClusterName, frontend, code ] ] metric_name_selectors: - "^haproxy_frontend_http_responses_total$" label_matchers: - label_names: - Service - frontend regex: ".*haproxy-ingress-.*metrics;(httpfront-shared-frontend|httpfront-default-backend|httpsfront|_front_http)" - dimensions: [ [ Service, Namespace, ClusterName, backend, code ] ] metric_name_selectors: - "^haproxy_backend_http_responses_total$" label_matchers: - label_names: - Service - backend regex: ".*haproxy-ingress-.*metrics;(httpback-shared-backend|httpback-default-backend|httpsback-shared-backend|_default_backend|.*backend_http)" - dimensions: [ [ Service, Namespace, ClusterName ] ] metric_name_selectors: - "^haproxy_backend_up$" - "^haproxy_backend_status$" - "^haproxy_backend_bytes_(in|out)_total$" - "^haproxy_backend_connections_total$" - "^haproxy_backend_connection_errors_total$" - "^haproxy_backend_current_sessions$" - "^haproxy_frontend_bytes_(in|out)_total$" - "^haproxy_frontend_connections_total$" - "^haproxy_frontend_http_requests_total$" - "^haproxy_frontend_request_errors_total$" - "^haproxy_frontend_requests_denied_total$" - "^haproxy_frontend_current_sessions$" label_matchers: - label_names: - Service regex: ".*haproxy-ingress-.*metrics" - dimensions: [ [ ClusterName, Namespace ] ] metric_name_selectors: - "^jvm_threads_(current|daemon)$" - "^jvm_classes_loaded$" - "^java_lang_operatingsystem_(freephysicalmemorysize|totalphysicalmemorysize|freeswapspacesize|totalswapspacesize|systemcpuload|processcpuload|availableprocessors|openfiledescriptorcount)$" - "^catalina_manager_(rejectedsessions|activesessions)$" - "^jvm_gc_collection_seconds_(count|sum)$" - "^catalina_globalrequestprocessor_(bytesreceived|bytessent|requestcount|errorcount|processingtime)$" label_matchers: - label_names: - service.name regex: ^kubernetes-pod-jmx$ - dimensions: [ [ ClusterName, Namespace, area ] ] metric_name_selectors: - "^jvm_memory_bytes_used$" label_matchers: - label_names: - service.name regex: ^kubernetes-pod-jmx$ - dimensions: [ [ ClusterName, Namespace, pool ] ] metric_name_selectors: - "^jvm_memory_pool_bytes_used$" label_matchers: - label_names: - service.name regex: ^kubernetes-pod-jmx$ - dimensions: [ [ Service, Namespace, ClusterName ] ] metric_name_selectors: - "^memcached_current_(bytes|items|connections)$" - "^memcached_items_(reclaimed|evicted)_total$" - "^memcached_(written|read)_bytes_total$" - "^memcached_limit_bytes$" - "^memcached_commands_total$" label_matchers: - label_names: - Service regex: ".*memcached.*" - dimensions: [ [ Service, Namespace, ClusterName, status, command ] ] metric_name_selectors: - "^memcached_commands_total$" label_matchers: - label_names: - Service - status - command regex: ".*memcached.*;hit;get" - dimensions: [ [ Service, Namespace, ClusterName, command ] ] metric_name_selectors: - "^memcached_commands_total$" label_matchers: - label_names: - Service - command regex: ".*memcached.*;(get|set)" - dimensions: [ [ Service, Namespace, ClusterName ] ] metric_name_selectors: - "^nginx_ingress_controller_(requests|success)$" - "^nginx_ingress_controller_nginx_process_connections$" - "^nginx_ingress_controller_nginx_process_connections_total$" - "^nginx_ingress_controller_nginx_process_resident_memory_bytes$" - "^nginx_ingress_controller_nginx_process_cpu_seconds_total$" - "^nginx_ingress_controller_config_last_reload_successful$" label_matchers: - label_names: - Service regex: ".*nginx.*" - dimensions: [ [ Service, Namespace, ClusterName, ingress ],[ Service, Namespace, ClusterName, status ] ] metric_name_selectors: - "^nginx_ingress_controller_requests$" label_matchers: - label_names: - Service regex: ".*nginx.*" - dimensions: [ [ Namespace, ClusterName ] ] metric_name_selectors: - "^redis_net_(in|out)put_bytes_total$" - "^redis_(expired|evicted)_keys_total$" - "^redis_keyspace_(hits|misses)_total$" - "^redis_memory_used_bytes$" - "^redis_connected_clients$" label_matchers: - label_names: - pod_name regex: "^redis-instance$" - dimensions: [ [ Namespace, ClusterName, cmd ] ] metric_name_selectors: - "^redis_commands_total$" label_matchers: - label_names: - pod_name regex: "^redis-instance$" - dimensions: [ [ Namespace, ClusterName, db ] ] metric_name_selectors: - "^redis_db_keys$" label_matchers: - label_names: - pod_name regex: "^redis-instance$" logging: loglevel: debug extensions: pprof: service: pipelines: metrics: receivers: [ prometheus ] processors: [ resourcedetection/ec2, resource ] exporters: [ awsemf ]