https://tools.ietf.org/html/draft-vandergaast-edns-client-ip... was designed to handle this exact problem.
708 karma · joined January 3, 2012
https://tools.ietf.org/html/draft-vandergaast-edns-client-ip... was designed to handle this exact problem.
For example if a sysadmin is investigating a problem they're less likely to accidentally see a user's data in human-readable form, it also provides a level of defence against unsophisticated attackers.
https://blog.cloudflare.com/route-leak-incident-on-october-2... has more information from a previous time this happened. A key idea is that internet routing depends a lot on trust, and it's possible for a single misconfigured site to cause serious issues across the internet.
What's interesting is when customs collide. For example my German relatives wonder why we keep asking them if they want something when they've already said no, whereas I'm waiting for them to offer another two times before I can say yes.
Similarly if the server dies before sending the metrics, so that's a draw.
> The flip side is no automatic discovery and dynamic scaling where a server going down might not necessarily be a bad thing.
That's more about top-down vs. bottom-up target discovery than the scraping itself, see http://www.boxever.com/push-vs-pull-for-monitoring
As of Prometheus 0.14.0 which was released earlier in the week, Prometheus supports target discovery. http://prometheus.io/blog/2015/06/01/advanced-service-discov...
> Security. Not super thrilled with exposing something that says "Hey come get my data".
That's a fair concern, though I'd expect your metric endpoint not to be internet accessible (and some of the push options will have a HTTP endpoint for debugging).
https://support.google.com/a/answer/174124 https://support.google.com/a/answer/2466580
Go is strongly typed, and so is it's templating language. This means that you need to take a much more rigorous approach to using them, as a single unhandled edge case value can break the entire page. Contrast this with something like Jinja2 where if you mess up it'll only break a small bit of the page.
I managed to produce a usable template system, but it's still a tad more verbose than I'd like. It'd have been nice if a more scripting-language style templating language had been an option.
The challenge is that whether HAProxy's own support for graceful restarts works depends on which OS and kernel version you're running and what network socket features are supported, so ensuring that's all kosher is a bit of a challenge. I took the approach that it's simpler to do something that takes a bit longer without having to worry about all that.
Doesn't Rocket also use cgroups?
We've fleshed this out a bit more in the Prometheus best practices at http://prometheus.io/docs/practices/alerting/
Taking this approach at our company greatly reduced the alert count and improved responsiveness with no degradation in service.
Prometheus is designed with this in mind. Instrumentation is easy to add and takes care of things like concurrency and state maintenance for you, so you can sprinkle it anywhere safely. http://www.slideshare.net/brianbrazil/python-ireland-monitor... goes into this a bit more.
That repo also has Atlas, Zabbix and KairosDB plugins.
I've implemented similar at my current job, as that sort of naming is very convenient. http://www.boxever.com/using-google-apps-openid-connect-with... has a sketch of how to do this with Apache as a reverse proxy with Google Auth, though we're using a PAC file now going to a HTTPS forward proxy to avoid limitations of SSL wildcard certs.
Cryptography is used to verify them.
http://www.thoughtcrime.org/blog/the-cryptographic-doom-prin...
In 3s on one disk you can do roughly 5k seeks and read up to 300MB. They only need to do 1 seek and read 4MB.
4MB/s is only around 4% of the bandwidth of a modern 1TB hard disk.