Я выясняю проблемы в сети между Prometheus и Python-приложением в Docker.Как я могу сделать Prometheus способным очищать метрики, сгенерированные приложением python в докере, и отображать его на конце Prometheus.
Docker-compose.yml
version: '3'
services:
prometheus:
image: prom/prometheus:v2.0.0
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
links:
- web
web:
image: python:3.5-alpine
build: ./test
ports:
- "5000:8002"
Dockerfile:
FROM python:3.5-alpine
ADD app1.py /
RUN pip install prometheus_client
CMD ["python", "./app1.py"]
EXPOSE 8002
prometheus.yml
# my global config
global:
scrape_interval: 15s
evaluation_interval: 15s
external_labels:
monitor: 'codelab-monitor'
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['docker.for.mac.host.internal:9090']
- job_name: 'python_app'
metrics_path: /
static_configs:
- targets: ['docker.for.mac.host.internal:8002']
До сих пор я вижу, что Прометей работает хорошо, и статус его целей показывает UP на 'docker.for.mac.host.internal: 9090'и 'docker.for.mac.host.internal: 8002'
И приложение python также работает, я вижу выходные метрики на порту
Так что теперь все должно работать, Прометей может очистить метрики через указанный порт.Однако таких метрик там нет.