def prometheus_metrics():
if not test_restricted(request['REMOTE_ADDR']):
return ''
dhcpstat = {'shared-networks': []}
dhcp6stat = {'shared-networks': []}
try:
dhcpstat = json.loads(exec_command([args.binary, '-c', args.dhcp4_config, '-l', args.dhcp4_leases, '-f', 'j']))
except:
pass
try:
dhcp6stat = json.loads(exec_command([args.binary, '-c', args.dhcp6_config, '-l', args.dhcp6_leases, '-f', 'j']))
except:
pass
data = []
for shared_network in dhcpstat['shared-networks']:
data.append('dhcp_pool_used{ip_version="%s",network="%s"} %s' % (4,shared_network['location'],shared_network['used']))
data.append('dhcp_pool_free{ip_version="%s",network="%s"} %s' % (4,shared_network['location'],shared_network['free']))
defined_leases = float(shared_network['defined'])
leases_used_percentage = 0
if defined_leases > 0:
leases_used_percentage = float(shared_network['used'])/defined_leases
data.append('dhcp_pool_usage{ip_version="%s",network="%s"} %s' % (4,shared_network['location'],leases_used_percentage))
for shared_network in dhcp6stat['shared-networks']:
data.append('dhcp_pool_used{ip_version="%s",network="%s"} %s' % (6,shared_network['location'],shared_network['used']))
data.append('dhcp_pool_free{ip_version="%s",network="%s"} %s' % (6,shared_network['location'],shared_network['free']))
defined_leases = float(shared_network['defined'])
leases_used_percentage = 0
if defined_leases > 0:
leases_used_percentage = float(shared_network['used'])/defined_leases
data.append('dhcp_pool_usage{ip_version="%s",network="%s"} %s' % (6,shared_network['location'],leases_used_percentage))
response.content_type = 'text/plain'
return '%s\n' % ('\n'.join(data))
dhcp-stats-prometheus.py 文件源码
python
阅读 26
收藏 0
点赞 0
评论 0
评论列表
文章目录