#spring-boot #prometheus #spring-boot-actuator #spring-micrometer #servicemonitor
Вопрос:
У нас есть множество микросервисов, развернутых в кластерах AWS EKS. В каждом из этих микросервисов включены зависимости привода пружинного загрузчика/ микрометра прометея. мы можем очистить показатели с помощью /привода/prometheus
Из имеющегося у нас кластера prometheus я развернул servicemonitor, чтобы очистить эти показатели.
servicemonitor выглядит так:
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
labels:
app: spring-apps
release: prometheus
spec:
endpoints:
- paths: "/actuator/prometheus"
interval: 10s
port: http
targetPort: 8443
scheme: https
tlsConfig:
insecureverify: "true"
selector:
matchLabels:
scrape.actuator: "true"
namespaceSelector:
any: true
Все работает/ мы можем очистить показатели, когда у нас есть tlsConfig.insecureverify: «true»
Однако, когда я отключаю tlsConfig.insecureverify: «false» и применяю файлы ca, он просто не может очистить.
Вот как мы настраиваем микросервисы. У нас есть контроллер входа, который указывает на сертификат
Сертификат был взят, и мы сгенерировали из него секрет, используя следующие команды
kubectl -n somenamespace create secret generic api.cer --from-file=api.cer=somecertificate.cer
и секрет был в том, что объем был установлен в капсулах prometheus, а сервисный монитор был обновлен до приведенного ниже.
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
labels:
app: spring-apps
release: prometheus
spec:
endpoints:
- paths: "/actuator/prometheus"
interval: 10s
port: http
targetPort: 8443
scheme: https
tlsConfig:
insecureverify: "false"
serverName: "someapi.com"
caFile: "/etc/prometheus/secrets/api.cer"
selector:
matchLabels:
scrape.actuator: "true"
namespaceSelector:
any: true
Однако мы больше не можем очищать показатели. для promql up{пространство имен=»приложение»} я вижу перечисленные микросервисы, однако значение равно 0. например: hello-world : 0
Please help, a lot of search over internet has not helped so far