![](https://secure.gravatar.com/avatar/9e1312e82732ddc84c53cabd2ef975b4.jpg?s=120&d=mm&r=g)
• km@krot.org [2024-12-14 18:18]: [...]
In November last year I challenged myself with a task to make a service monitoring solution to replace NodePing for me, and I was considering asyncio vs Twisted. In the end, I went with the asyncio route and managed to get away using just standard Python libs (to run checks, and to send alerts, I use external commands such as ping/ping6, drill, ldns-dane, nc, curl -- especially the latter is able do do *a lot*). Now I'm tempted to make it work under Twisted, too. The checks themselves are not themselves dependent on asyncio, so I'd have to orchestrating facilities, including some queue.
so now I've got a prototype, a simple test run with 100K checks on my 3 y.o. thinkpad gives me 1425 check/second with twisted and 1130 check/second with asyncio and standard loop and something very horrible with asyncio with uvloop. the checks were simple calls to /usr/bin/true, which always succeeds. that's more that enough for my needs (I'm doing about 2-3 check/second), so I'll see if I can complete the twisted version of the mointor and have it run along the current one. in any case, I have a possible other usage in sight: custom auth <-> ldap proxy via ldaptor (to see if it would work with stalwart mail server). this is fun!