OlaBola

Find the config map you want to edit:

kubectl get configmap -n monitoring

If you wish to edit with nano then set the env var

export KUBE_EDITOR="nano"

Edit the config map

kubectl edit configmap prometheus-server -n monitoring

[!example]- Put this inside it (or whatever else you want):

- job_name: spark-job-metrics
  honor_labels: true
  honor_timestamps: true
  scrape_interval: 15s # Adjust the scrape interval as needed
  scrape_timeout: 10s
  metrics_path: /metrics
  scheme: http
  follow_redirects: true
  enable_http2: true
  relabel_configs:
    - source_labels: [__meta_kubernetes_namespace]
      separator: ;
      regex: emr-workspace
      action: keep
    - source_labels: [__meta_kubernetes_service_name]
      separator: ;
      regex: spark-job-metrics
      action: keep
    - source_labels:
        [__meta_kubernetes_service_annotation_prometheus_io_scheme]
      separator: ;
      regex: (https?)
      target_label: __scheme__
      replacement: $1
      action: replace
    - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]
      separator: ;
      regex: (.+)
      target_label: __metrics_path__
      replacement: $1
      action: replace
    - source_labels:
        [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
      separator: ;
      regex: (.+?)(?::\d+)?;(\d+)
      target_label: __address__
      replacement: $1:$2
      action: replace
    - separator: ;
      regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+)
      replacement: __param_$1
      action: labelmap
    - separator: ;
      regex: __meta_kubernetes_service_label_(.+)
      replacement: $1
      action: labelmap
    - 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_node_name]
      separator: ;
      regex: (.*)
      target_label: node
      replacement: $1
      action: replace
  kubernetes_sd_configs:
    - role: endpoints
      kubeconfig_file: ''
      follow_redirects: true
      enable_http2: true

Restart Prometheus. If you have deployed as a stateful set then you can restart like this: How to restart a Kubernetes StatefulSet