Я пытаюсь получить некоторые пользовательские метрики приложения, захваченные в golang, с помощью клиентской библиотеки prometheus, чтобы они отображались в Prometheus.
У меня работает следующее:
У меня есть приложение go, которое отображает метрики на localhost: 8080 / metrics, как описано в этой статье:
https://godoc.org/github.com/prometheus/client_golang/prometheus
У меня работает мини-куб kubernates, в котором работают Prometheus, Grafana и AlertManager с использованием оператора из этой статьи:
https://github.com/coreos/prometheus-operator/tree/master/contrib/kube-prometheus
Я создал образ докера для своего приложения go, когда я запускаю его и перехожу на localhost: 8080 / metrics, я вижу, что метрики Prometheus отображаются в браузере.
Я использую следующий pod.yaml для развертывания образа докера в модуле в k8s.
apiVersion: v1 kind: Pod metadata: name: my-app-pod labels: zone: prod version: v1 annotations: prometheus.io/scrape: 'true' prometheus.io/port: '8080' spec: containers: - name: my-container image: name/my-app:latest imagePullPolicy: IfNotPresent ports: - containerPort: 8080
- Если я подключаюсь к своему модулю, используя:
kubectl exec -it my-app-pod - / bin / bash
затем выполните wget на "localhost: 8080 / metrics", я могу увидеть свои показатели
Пока все хорошо, вот где я наткнулся на стену. У меня могло бы быть несколько модулей с одним и тем же изображением. Я хочу показать все изображения Прометею как мишеням. Как мне настроить свои модули так, чтобы они отображались в Prometheus, чтобы я мог сообщать о своих пользовательских показателях?
Спасибо за любую предложенную помощь!