scales: Greplin's new open source Python server metrics library
github.com
github.com
The client modules simply emit non-blocking UDP packets and get on with their business, avoiding slowing down their response time. You can graph 4 types of stats: counters (ex: transactions) averages (ex: size of transactions), accumulators (ex: bandwidth used) and elapsed time (ex: time per transaction)
It's pretty nice to see Ganglia graphing system metrics along side of all the stats we have the backend emit. For example, one of the stats graphed are revenue events. There's clear relationship between network health issues and revenue.
http://www.kalzumeus.com/2010/01/24/startup-seo/
That said, we really need to at least put up the git browser so you can browse on the site. Thanks for the reminder.
That's not something I've heard before. Is it generally true of localhost-UDP? OS Specific? Particular to your usage?
In order to not block your program, you'll have to do it like one always has with non-blocking sockets: have a buffer and poll for the "write-able" event.
Unix sockets would involve less overhead and provide more security if you only send to localhost. I really don't see a reason to use UDP on localhost at least if you are not running on Windows.
Now, you're just ignoring the possibility of a problem, which might be fine and dandy, but you're not actually getting anything in return (well, about 5 lines of C code to set up the TCP connection in non-blocking mode, and tear it down if there's an error).
(You can change the port the HTTP server listens on, though. If you have ten workers, you can have them listen on ten different ports.)