summaryrefslogtreecommitdiff
path: root/src/op_mode/dns_forwarding_statistics.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/op_mode/dns_forwarding_statistics.py')
-rwxr-xr-xsrc/op_mode/dns_forwarding_statistics.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/op_mode/dns_forwarding_statistics.py b/src/op_mode/dns_forwarding_statistics.py
new file mode 100755
index 000000000..1fb61d263
--- /dev/null
+++ b/src/op_mode/dns_forwarding_statistics.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python3
+
+import jinja2
+from sys import exit
+
+from vyos.config import Config
+from vyos.util import cmd
+
+PDNS_CMD='/usr/bin/rec_control --socket-dir=/run/powerdns'
+
+OUT_TMPL_SRC = """
+DNS forwarding statistics:
+
+Cache entries: {{ cache_entries -}}
+Cache size: {{ cache_size }} kbytes
+
+"""
+
+if __name__ == '__main__':
+ # Do nothing if service is not configured
+ c = Config()
+ if not c.exists_effective('service dns forwarding'):
+ print("DNS forwarding is not configured")
+ exit(0)
+
+ data = {}
+
+ data['cache_entries'] = cmd(f'{PDNS_CMD} get cache-entries')
+ data['cache_size'] = "{0:.2f}".format( int(cmd(f'{PDNS_CMD} get cache-bytes')) / 1024 )
+
+ tmpl = jinja2.Template(OUT_TMPL_SRC)
+ print(tmpl.render(data))