| 16 | namespace DB |
| 17 | { |
| 18 | void PrometheusRequestHandler::handleRequest(HTTPServerRequest & request, HTTPServerResponse & response) |
| 19 | { |
| 20 | try |
| 21 | { |
| 22 | const auto & config = server.config(); |
| 23 | unsigned keep_alive_timeout = config.getUInt("keep_alive_timeout", 10); |
| 24 | |
| 25 | setResponseDefaultHeaders(response, keep_alive_timeout); |
| 26 | |
| 27 | response.setContentType("text/plain; version=0.0.4; charset=UTF-8"); |
| 28 | |
| 29 | WriteBufferFromHTTPServerResponse wb(response, request.getMethod() == Poco::Net::HTTPRequest::HTTP_HEAD, keep_alive_timeout); |
| 30 | try |
| 31 | { |
| 32 | metrics_writer->write(wb); |
| 33 | wb.finalize(); |
| 34 | } |
| 35 | catch (...) |
| 36 | { |
| 37 | wb.finalize(); |
| 38 | } |
| 39 | } |
| 40 | catch (...) |
| 41 | { |
| 42 | tryLogCurrentException("PrometheusRequestHandler"); |
| 43 | } |
| 44 | } |
| 45 | |
| 46 | HTTPRequestHandlerFactoryPtr createPrometheusHandlerFactory( |
| 47 | IServer & server, AsynchronousMetrics & async_metrics, const std::string & config_prefix, ContextMutablePtr context) |
nothing calls this directly
no test coverage detected