Спецкостыли для клиентов
В состав Emonoda входят несколько полезных скриптов, которые могут использоваться отдельно от нее и не требуют ни ее настроек, ни библиотек. Вызываются они через python -m
, например так:
$ python -m emonoda.apps.hooks.rtorrent.manage_trackers --help
emonoda.apps.hooks.rtorrent.manage_trackers¶
Это костылик для группового управления трекерами в rTorrent. Он позволяет включать и отключать трекеры одновременно для всех раздач. Он подключается к клиенту, выгружает список раздач, а затем производит над их трекерами необходимые операции. Был написан, чтобы отключить использование ретрекеров, которых часто нет в локальных сетях, а rTorrent ругается на то, что не может зарезольвить их хостнеймы или получить из них данные.
Опции¶
-
--enable <s1 ...>
- Если что-то из указанных подстрок входит в имя трекера на раздаче - включить этот трекер.
-
--disable <s1 ...>
- Работает по той же логике, что и
--enable
, но отключает совпавшие трекеры.
- Работает по той же логике, что и
-
-t, --timeout <number>
- Таймаут на все сетевые операции, по умолчанию -
5
секунд.
- Таймаут на все сетевые операции, по умолчанию -
-
--client-url <url>
- URL для подключения к XMLRPC клиента, по умолчанию -
http://localhost/RPC2
.
- URL для подключения к XMLRPC клиента, по умолчанию -
Примеры использования¶
Включить трекеры на домене rutracker.org
и отключить остальное:
$ python -m emonoda.apps.hooks.rtorrent.manage_trackers --enable rutracker.org --disable rutracker.net retracker.local
emonoda.apps.hooks.rtorrent.collectd_stat¶
Это специальный скрипт для Collectd, собирающий статистику с rTorrent. Он использует текстовый протокол для сброса этой информации в плагин Exec. По умолчанию считываются только метрики загрузки и отдачи, лимиты на скорость, а так же объем скачанных и отданных данных. Названия метрик говорят сами за себя.
Опции¶
-t, --timeout <number>
- Таймаут на все сетевые операции, по умолчанию -
5
секунд.
- Таймаут на все сетевые операции, по умолчанию -
--client-url <url>
- URL для подключения к XMLRPC клиента, по умолчанию -
http://localhost/RPC2
.
- URL для подключения к XMLRPC клиента, по умолчанию -
--with-dht
- Добавляет метрики для DHT.
--with-summary
- Добавляет метрики с общим количеством торрентов, с активной отдачей, загрузкой и с ошибками.
-n, --host <hostname>
- Хостнейм в идентификаторах всех метрик. По умолчанию -
localhost
или содержимое переменной окруженияCOLLECTD_HOSTNAME
.
- Хостнейм в идентификаторах всех метрик. По умолчанию -
-i, --interval <number>
- Скрипт запускает внутри себя цикл получения новых метрик с указанной паузой между итерациями. По умолчанию -
60
секунд или содержимое переменной окруженияCOLLECTD_INTERVAL
.
- Скрипт запускает внутри себя цикл получения новых метрик с указанной паузой между итерациями. По умолчанию -
Примеры использования¶
Для включения плагина пропишите в /etc/collectd.conf
что-то типа этого:
LoadPLugin exec <Plugin exec> Exec "data" "python" "-m" "emonoda.apps.hooks.rtorrent.collectd_stat" "--client-url=http://localhost/RPC2" "--with-summary" </Plugin>
Скрипт также можно запустить из консоли и посмотреть, какие метрики и как он выводит:
$ python -m emonoda.apps.hooks.rtorrent.collectd_stat --with-dht --with-summary PUTVAL localhost/rtorrent/gauge-dn_rate interval=60 N:22847 PUTVAL localhost/rtorrent/gauge-dn_rate_limit interval=60 N:0 PUTVAL localhost/rtorrent/bytes-dn_total interval=60 N:71241345665 PUTVAL localhost/rtorrent/gauge-up_rate interval=60 N:11170199 PUTVAL localhost/rtorrent/gauge-up_rate_limit interval=60 N:0 PUTVAL localhost/rtorrent/bytes-up_total interval=60 N:4343293548954 PUTVAL localhost/rtorrent/gauge-dht_active interval=60 N:1 PUTVAL localhost/rtorrent/count-dht_nodes interval=60 N:191 PUTVAL localhost/rtorrent/count-dht_cycle interval=60 N:434 PUTVAL localhost/rtorrent/count-dht_torrents interval=60 N:0 PUTVAL localhost/rtorrent/count-dht_buckets interval=60 N:25 PUTVAL localhost/rtorrent/count-dht_replies_received interval=60 N:8708162 PUTVAL localhost/rtorrent/count-dht_peers interval=60 N:0 PUTVAL localhost/rtorrent/count-dht_peers_max interval=60 N:0 PUTVAL localhost/rtorrent/count-dht_errors_caught interval=60 N:2054 PUTVAL localhost/rtorrent/count-dht_errors_received interval=60 N:775079 PUTVAL localhost/rtorrent/count-dht_queries_sent interval=60 N:17309084 PUTVAL localhost/rtorrent/count-dht_queries_received interval=60 N:27524 PUTVAL localhost/rtorrent/bytes-dht_bytes_written interval=60 N:1809635518 PUTVAL localhost/rtorrent/bytes-dht_bytes_read interval=60 N:2285090405 PUTVAL localhost/rtorrent/count-summary_total interval=60 N:546 PUTVAL localhost/rtorrent/count-summary_dn interval=60 N:0 PUTVAL localhost/rtorrent/count-summary_up interval=60 N:100 PUTVAL localhost/rtorrent/count-summary_errors interval=60 N:219