Почему push, а не pull (как Prometheus)
Pull-проблемы для нашего use case
- Требует inbound port на хосте клиента — фаервол клиента надо открывать
- Через NAT/cloud LB не работает без хитростей (Prometheus pushgateway = хак)
- Edge-устройства с интермиттент-связью теряют scrape когда оффлайн
Push-плюсы
- Outbound-only через mTLS на нашу сторону — клиент не открывает порты
- Edge может буферизовать локально и пушить когда связь есть
- Прямая identity через peer cert
Когда pull лучше
- Service discovery в стабильном кластере (K8s) — там pull нормален
- Нужны health-checks scrape-target отдельно от метрик (pull даёт это бесплатно)
Мы поддерживаем обе модели: push агенты как первичный, OTLP-pull (через Prometheus-compatible endpoint) как опция для существующих стэков.