HEX
Server: LiteSpeed
System: Linux ws4.angoweb.net 5.14.0-611.13.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 11 04:57:59 EST 2025 x86_64
User: tswangoe (2287)
PHP: 8.1.33
Disabled: show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open
Upload Files
File: //usr/local/lib/python3.9/site-packages/agent360/plugins/__pycache__/unbound.cpython-39.pyc
a

q�dg��@s8ddlZddlZGdd�dej�Zedkr4e���dS)�Nc@sHeZdZdZgd�Zgd�Zgd�Zgd�Zdd�Zdd	�Zd
d�Z	dS)
�Plugin�unbound)z.avgz.medianz.nowz.upz.elapsed)%znum.answer.bogus�num.answer.rcodeznum.answer.securez
num.cachehitsz
num.cachemissznum.dnscrypt.certznum.dnscrypt.cleartextznum.dnscrypt.cryptedznum.dnscrypt.malformedznum.prefetchznum.queriesznum.queries_ip_ratelimited�num.query.aggressiveznum.query.authzone.downznum.query.authzone.up�num.query.classznum.query.dnscrypt.replayz*num.query.dnscrypt.shared_secret.cachemiss�num.query.edns�num.query.flagsznum.query.ipv6�num.query.opcodeznum.query.ratelimitedznum.query.subnetznum.query.subnet_cachez
num.query.tcpznum.query.tcpoutz
num.query.tlsznum.query.tls.resume�num.query.typeznum.recursiverepliesznum.rrset.bogusznum.zero_ttlzrequestlist.exceededzrequestlist.overwrittenzunwanted.querieszunwanted.replies)zdnscrypt_nonce.cache.countz"dnscrypt_shared_secret.cache.countzinfra.cache.countzkey.cache.countzmem.cache.dnscrypt_noncez mem.cache.dnscrypt_shared_secretzmem.cache.messagezmem.cache.rrsetzmem.mod.iteratorzmem.mod.validatorzmem.streamwaitzmsg.cache.countzrecursion.time.avgzrecursion.time.medianzrequestlist.avgzrequestlist.current.allzrequestlist.current.userzrequestlist.maxzrrset.cache.countZtcpusageztime.elapsedztime.nowztime.up)rrrrrr	r
c
CsXd}ztj|tjdd�}Wn8tjyR}zd�|||j�}WYd}~dSd}~00|S)Nz$sudo /usr/sbin/unbound-control statsT)�stderr�shellzERROR CALLING {0}: {1}  {2})�
subprocess�check_output�STDOUT�CalledProcessError�format�output)�self�cmdr�e�	error_msg�r�B/usr/local/lib/python3.9/site-packages/agent360/plugins/unbound.py�	get_statsZszPlugin.get_statscCsRdd�|��D�}|��D]2\}}|�t|j��r@t|�||<qt|�||<q|S)NcSs$i|]}|�d�}|d|d�qS)�=r�)�	partition)�.0�line�trrr�
<dictcomp>g�z%Plugin.parse_stat.<locals>.<dictcomp>)�
splitlines�items�endswith�tuple�	floatKeys�float�int)r�stat�stats�key�valuerrr�
parse_stateszPlugin.parse_statcGs&|��}i}|durdS|�|�}|S)NF)rr-)rZunusedZresdata�finalrrr�runos
z
Plugin.runN)
�__name__�
__module__�__qualname__r&Zrate_metricsZ
gauge_metricsZ
by_tag_labelsrr-r/rrrrrs(

r�__main__)Zpluginsr
Z
BasePluginrr0�executerrrr�<module>ss