Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Well yes, but like another comment here on HN points out, it's not universal, and there are trade-offs, and different systems have chosen differently. E.g.

Monitoring: Mostly push, except prometheus which is pull.

Config management: Mostly pull, except ansible which is push (yes, there is ansible-pull, but most ansible code out there assumes push).



In both monitoring and config management, the majority is right.

Monitoring: you don't want to have all your applications and even scripts run a thread to listen on a dedicated port to allow pulling. It's bad for security, code complexity, configuration complexity (all those ports) and reliability (when an application stops the datapoints are lost).

Config management: with a push model you can easily end up having 2 developers push to the same system (or to systems that should be updated in sequence) in an unmanaged manner.


Push based monitoring has its own flaws. Mainly service discovery is coupled with service health.

Pull based monitoring makes it so you can remove the service and independently recognize failures.


You can do the same easily with push.


And now InfluxDB 2.0 which uses push for Telegraf, and pull to scrape Prometheus-style metrics.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: