현재상황
kube-Prometheus-stack을 설치한 후 ingress-nginx를 yaml형태로 설치할 경우 모니터링이 잡혔었는데 helm으로 설치할 경우 조회가 되지않았음
그에 대해 알아보니 공식문서에서는 values.yaml에 더 적어야 메트릭이 잡혔음
Since Prometheus is running in a different namespace and not in the ingress-nginx namespace, it would not be able to discover ServiceMonitors in other namespaces when installed. Reconfigure your kube-prometheus-stack Helm installation to set serviceMonitorSelectorNilUsesHelmValues flag to false. By default, Prometheus only discovers PodMonitors within its own namespace. This should be disabled by setting podMonitorSelectorNilUsesHelmValues to false
기존 yaml에서
prometheus.prometheusSpec.podMonitorSelectorNilUsesHelmValues: false
prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues: false
Ingress-nginx helm으로 설치할 때 옵션
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm install ingress-nginx ingress-nginx/ingress-nginx --set controller.metrics.enabled=true \
--set controller.metrics.serviceMonitor.enabled=true \
--set controller.metrics.serviceMonitor.additionalLables.release="prometheus" \
--set-string controller.podAnnotations."prometheus\.io/scrape"="true" \
--set-string controller.podAnnotations."prometheus\.io/port"="10254" \
-n ingress-nginx
servicemonitor생성 시 APIextention에서 인식이 가능하도록 대소문자 구분이 확실해야하고
프로메테우스에서 다른 namespace의 서비스모니터를 조회가 되려면 위와 같이 옵션을 줘야함