chatgpt-1 commented on PR #742:
URL:
https://github.com/apache/apisix-helm-chart/pull/742#issuecomment-2019838429
If we deploy multi helm releases in one cluster, prometheus operator will
create a large number of jobs,looks like:
```yaml
- job_name: serviceMonitor/sa/release-yl363akodi-apisix-l7/0
honor_labels: false
kubernetes_sd_configs:
- role: endpoints
namespaces:
names:
- sa
scrape_interval: 15s
metrics_path: /metrics
scheme: http
relabel_configs:
- source_labels:
- job
target_label: __tmp_prometheus_job_name
- action: keep
source_labels:
- __meta_kubernetes_service_label_app_kubernetes_io_instance
- __meta_kubernetes_service_labelpresent_app_kubernetes_io_instance
regex: (release-yl363akodi);true
- action: keep
source_labels:
- __meta_kubernetes_service_label_app_kubernetes_io_managed_by
- __meta_kubernetes_service_labelpresent_app_kubernetes_io_managed_by
regex: (Helm);true
- action: keep
source_labels:
- __meta_kubernetes_service_label_app_kubernetes_io_name
- __meta_kubernetes_service_labelpresent_app_kubernetes_io_name
regex: (apisix-l7);true
- action: keep
source_labels:
- __meta_kubernetes_service_label_app_kubernetes_io_service
- __meta_kubernetes_service_labelpresent_app_kubernetes_io_service
regex: (apisix-gateway);true
- action: keep
source_labels:
- __meta_kubernetes_service_label_app_kubernetes_io_version
- __meta_kubernetes_service_labelpresent_app_kubernetes_io_version
regex: (2.15.3);true
- action: keep
source_labels:
- __meta_kubernetes_service_label_helm_sh_chart
- __meta_kubernetes_service_labelpresent_helm_sh_chart
regex: (apisix-l7-1.0.1);true
- action: keep
source_labels:
- __meta_kubernetes_service_label_lb_id
- __meta_kubernetes_service_labelpresent_lb_id
regex: (yl363akodi);true
- action: keep
source_labels:
- __meta_kubernetes_service_label_lb_service
- __meta_kubernetes_service_labelpresent_lb_service
regex: (sheindatahub-uswest7-prod-p2center);true
- action: keep
source_labels:
- __meta_kubernetes_pod_container_port_name
regex: prometheus
- source_labels:
- __meta_kubernetes_endpoint_address_target_kind
- __meta_kubernetes_endpoint_address_target_name
separator: ;
regex: Node;(.*)
replacement: ${1}
target_label: node
- source_labels:
- __meta_kubernetes_endpoint_address_target_kind
- __meta_kubernetes_endpoint_address_target_name
separator: ;
regex: Pod;(.*)
replacement: ${1}
target_label: pod
- source_labels:
- __meta_kubernetes_namespace
target_label: namespace
- source_labels:
- __meta_kubernetes_service_name
target_label: service
- source_labels:
- __meta_kubernetes_pod_name
target_label: pod
- source_labels:
- __meta_kubernetes_pod_container_name
target_label: container
- source_labels:
- __meta_kubernetes_service_name
target_label: job
replacement: ${1}
- target_label: endpoint
replacement: prometheus
- source_labels:
- __address__
target_label: __tmp_hash
modulus: 1
action: hashmod
- source_labels:
- __tmp_hash
regex: 0
action: keep
metric_relabel_configs: []
```
Each job will scrape all the resources under the same namespace and then
relabel to select its own targets. This leads to a significant amount of
redundant work for Prometheus. For example, if there are 100 releases in the
same namespace, Prometheus will scrape the same set of resources 100 times, and
then each job will filter out its own targets through relabeling.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]