[tor-relays] Tor-Plugin for munin
Damian Johnson
atagar at torproject.org
Thu Mar 27 16:57:32 UTC 2014
> Everybody likes graphs, right?
>
> I tried some of the available munin plugins, but none of those were
> really working anymore. So I sat down and began writing my own, using
> stem, which is really awesome.
>
> These are really early stages, but it already supports autoconf
> determination and suggestions. If you want to take a look, it is
> hosted on github[1].
>
> At the moment it supports a connection graph, getting its data from
> orconn-status. More graphs are possible, but not yet implemented.
> Ideas are welcome.
Neat, thanks Martin! Added munin-tor to our examples...
https://stem.torproject.org/tutorials/double_double_toil_and_trouble.html
Few quick thoughts about the Stem bits...
> with Controller.from_port(port=port) as controller:
> controller.authenticate()
> if controller.is_authenticated():
> print('yes')
> else:
> print('no (Authentication failed)')
The is_authenticated() is unnecessary. The authenticate() call will
raise an AuthenticationFailure if unsuccessful...
https://stem.torproject.org/api/connection.html#stem.connection.authenticate
> response = controller.get_info('orconn-status')
You might want to do the following instead if you'd rather not risk
exceptions...
response = controller.get_info('orconn-status', None)
if response is None:
return
> states = {'NEW': 0, 'LAUNCHED': 0, 'CONNECTED': 0, 'FAILED': 0, 'CLOSED': 0}
Up to you but you could also use Stem's ORStatus enum.
>>> import stem
>>> dict((state, 0) for state in stem.ORStatus)
{'NEW': 0, 'CONNECTED': 0, 'CLOSED': 0, 'LAUNCHED': 0, 'FAILED': 0}
> response = controller.get_info('traffic/read')
> print('read.value {}'.format(response))
> response = controller.get_info('traffic/written')
> print('written.value {}'.format(response))
Again, this could potentially raise exceptions unless you provide
get_info() a default value.
Cheers! -Damian
More information about the tor-relays
mailing list