def do_GET(self): if self.path == "/favicon.ico": self.favicon() elif "/metrics" in self.path: q = parse_qs(urlsplit(self.path).query) target = q.get("target") if target is None: self.target_missing() else: self.send_response(HTTPStatus.OK) self.send_header(contentType, typePrometheus) self.end_headers() consumer = Consumer(target) success = 0 if consumer.load(): success = 1 sn = consumer.serial_number() subject = consumer.subject() san = consumer.alternative_name() not_before = consumer.not_before() not_after = consumer.not_after() self.metric_write( h_ssl_tls_version_info, t_ssl_tls_version_info, ssl_tls_version_info % consumer.version()) self.metric_write( none, none, ssl_tls_version_info % consumer.protocol()) self.metric_write( h_ssl_cert_not_after, t_ssl_cert_not_after, ssl_cert_not_after % (subject, san, sn, not_after)) self.metric_write( h_ssl_cert_not_before, t_ssl_cert_not_before, ssl_cert_not_before % (subject, san, sn, not_before)) # if load self.metric_write(h_ssl_tls_connect_success, t_ssl_tls_connect_success, ssl_tls_connect_success % success) self.wfile.write(NL) # if target is None elif self.path == "/": self.main_page() else: self.send_response(HTTPStatus.INTERNAL_SERVER_ERROR) self.end_headers()