-
-
Save iMilnb/eb79dd24e1bac491b9d7188fdddcfe39 to your computer and use it in GitHub Desktop.
<Plugin python> | |
ModulePath "/home/imil/collectd" | |
Import "ethermine" | |
<Module ethermine> | |
wallet "0xf00f00f00" | |
interval "300" | |
url "https://ethermine.org/api/miner_new" | |
</Module> | |
</Plugin> |
from __future__ import division | |
import requests | |
import collectd | |
cfg = { | |
'wallet': '0xf00b', | |
'interval': '300', | |
'url': 'http://localhost' | |
} | |
def readconf(config): | |
for node in config.children: | |
for k in ['wallet', 'interval', 'url']: | |
if node.key == k: | |
cfg[k] = node.values[0] | |
collectd.info('{0} set to: {1}'.format(k, cfg[k])) | |
cfg['url'] = '{0}/{1}'.format(cfg['url'], cfg['wallet'][2:]) | |
def readvals(): | |
collectd.info('calling {0}'.format(cfg['url'])) | |
try: | |
j = requests.get(cfg['url']).json() | |
except ValueError, e: | |
collectd.info(str(e)) | |
return | |
val = [ | |
{ | |
'k': 'reportedHashRate', | |
'v': j['reportedHashRate'].split()[0], | |
't': 'gauge' | |
}, | |
{ | |
'k': 'unpaid', | |
'v': float(j['unpaid']) / 1000000000000000000, | |
't': 'gauge' | |
}, | |
{ 'k': 'usdPerMin', 'v': j['usdPerMin'], 't': 'gauge' } | |
] | |
for v in val: | |
c = collectd.Values(type = v['t']) | |
c.plugin = v['k'] | |
c.dispatch(values = [v['v']]) | |
collectd.register_config(readconf) | |
collectd.register_read(readvals, int(cfg['interval'])) |
Having some trouble getting this working...
collectd to influxdb is working since I can see system measurements showing up in my collectd_db, but none of this plugin's measurements are showing up.
I verified that the python plugin is loaded and I see the ethermin.pyc file being generated after restarting collectd so plugin is at least executed.
I also added the measurement keys to my influxdb's types.db file for collectd.
Wallet and URL are the valid values, and even inserted them in both the py and the Plugin def in the conf to be sure.
Ultimately I want to add individual worker measurements, but hitting a roadblock with just the initial setup of the base measurements.
Don't know what step I missed here.
@jedimstr did you have a look to the logs? Usually collectd
logs to syslog
and has pretty comprehensive output
Feel free to send your appreciation to Ξ
0x7144ddbe4c3B43F892534d0B73549e87933FE7bc
;)