Skip to content
Snippets Groups Projects
Unverified Commit a88dcf99 authored by anarcat's avatar anarcat
Browse files

pipeline HTTP requests

another attempt at fixing perf issues
parent 5905b9e1
No related branches found
No related tags found
No related merge requests found
......@@ -117,10 +117,15 @@ def parse_args():
return args
def prom_query(args, query):
resp = requests.get(args.prometheus + "/query?query=" + query)
resp.raise_for_status()
return float(resp.json()['data']['result'][0]['value'][1])
class PromRequestor(object):
def __init__(self):
"docstring"
self.session = requests.Session()
def query(self, args, query):
resp = self.session.get(args.prometheus + "/query?query=" + query)
resp.raise_for_status()
return float(resp.json()['data']['result'][0]['value'][1])
def host_count_puppet(args):
......@@ -230,39 +235,40 @@ def sizeof_fmt_decimal(num, suffix='B', sep=' ', precision=2, sign=False):
def main():
logging.basicConfig()
args = parse_args()
prom = PromRequestor()
print(" * hosts in Puppet: %d, LDAP: %d, Prometheus exporters: %d" %
(host_count_puppet(args),
host_count_ldap(args),
prom_query(args, 'sum(up)')))
prom.query(args, 'sum(up)')))
print(" * number of Apache servers monitored: %d, hits per second: %d" %
(prom_query(args, 'count(apache_up)'),
(prom.query(args, 'count(apache_up)'),
# XXX: wtf vs http_requests_total
prom_query(args, 'sum(rate(apache_accesses_total[30d]))')))
prom.query(args, 'sum(rate(apache_accesses_total[30d]))')))
print(" * number of Nginx servers: %d, hits per second: %d, hit ratio: %0.2f" % # noqa: E501
(prom_query(args, 'count(count(nginx_http_request_details_total) by (alias))'), # noqa: E501
prom_query(args, 'sum(rate(nginx_http_request_details_total[30d]))'), # noqa: E501
prom_query(args, 'sum(nginx_http_request_details_total{upstream_cache_status="HIT"})/sum(nginx_http_request_details_total)'), # noqa: E501
(prom.query(args, 'count(count(nginx_http_request_details_total) by (alias))'), # noqa: E501
prom.query(args, 'sum(rate(nginx_http_request_details_total[30d]))'), # noqa: E501
prom.query(args, 'sum(nginx_http_request_details_total{upstream_cache_status="HIT"})/sum(nginx_http_request_details_total)'), # noqa: E501
))
print(" * number of self-hosted nameservers: %d, mail servers: %d" %
(prom_query(args, 'sum(bind_up)'),
prom_query(args, 'sum(postfix_up)')))
(prom.query(args, 'sum(bind_up)'),
prom.query(args, 'sum(postfix_up)')))
print(" * pending upgrades: %d, reboots: %d" %
(prom_query(args, 'sum(apt_upgrades_pending)'),
prom_query(args, 'sum(node_reboot_required)')))
(prom.query(args, 'sum(apt_upgrades_pending)'),
prom.query(args, 'sum(node_reboot_required)')))
print(" * average load: %0.2f, memory available: %s/%s, running processes: %d" % # noqa: E501
(prom_query(args, 'avg(node_load15)'),
sizeof_fmt_iec(prom_query(args, 'sum(node_memory_MemFree_bytes)')),
sizeof_fmt_iec(prom_query(args, 'sum(node_memory_MemTotal_bytes)')),
prom_query(args, 'sum(node_procs_running)')))
(prom.query(args, 'avg(node_load15)'),
sizeof_fmt_iec(prom.query(args, 'sum(node_memory_MemFree_bytes)')),
sizeof_fmt_iec(prom.query(args, 'sum(node_memory_MemTotal_bytes)')),
prom.query(args, 'sum(node_procs_running)')))
print(" * bytes sent: %s/s, received: %s/s" %
(sizeof_fmt_decimal(prom_query(args, 'sum(rate(node_network_transmit_bytes_total[30d]))')), # noqa: E501
sizeof_fmt_decimal(prom_query(args, 'sum(rate(node_network_receive_bytes_total[30d]))')))) # noqa: E501
(sizeof_fmt_decimal(prom.query(args, 'sum(rate(node_network_transmit_bytes_total[30d]))')), # noqa: E501
sizeof_fmt_decimal(prom.query(args, 'sum(rate(node_network_receive_bytes_total[30d]))')))) # noqa: E501
print(" * planned buster upgrades completion date: ???")
print(""" * [GitLab tickets][]: ? tickets including...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment