async def test_invalid_accepts_headers(self): """ check only valid accepts_headers types can be provided """ registry = aioprometheus.Registry() for accepts_headers in ["nope", None, 42, dict()]: with self.assertRaises(Exception) as cm: aioprometheus.render(registry, accepts_headers) self.assertIn("accepts_headers must be a sequence, got:", str(cm.exception))
async def test_invalid_registry(self): """ check only valid registry can be provided """ for invalid_registry in ["nope", dict(), list()]: with self.assertRaises(Exception) as cm: aioprometheus.render(invalid_registry, []) self.assertIn("registry must be a Registry, got:", str(cm.exception))
async def test_render_default(self): """ check metrics can be rendered using default format """ accepts_headers = ("application/json", "*/*", "application/nothing") registry = aioprometheus.Registry() content, http_headers = aioprometheus.render(registry, accepts_headers) self.assertEqual(http_headers["Content-Type"], aioprometheus.formats.TEXT_CONTENT_TYPE)
async def handle_metrics(): if self.system_metrics: self.system_metrics.collect() content, http_headers = render(registry, request.headers.getlist("accept")) return content, http_headers
async def test_render_text(self): """ check metrics can be rendered using text format """ accepts_headers = ("text/plain;", ) registry = aioprometheus.Registry() content, http_headers = aioprometheus.render(registry, accepts_headers) self.assertEqual(http_headers["Content-Type"], aioprometheus.formats.TEXT_CONTENT_TYPE)
async def test_render_binary(self): """ check metrics can be rendered using binary format """ accepts_headers = (aioprometheus.formats.BINARY_CONTENT_TYPE, ) registry = aioprometheus.Registry() content, http_headers = aioprometheus.render(registry, accepts_headers) self.assertEqual(http_headers["Content-Type"], aioprometheus.formats.BINARY_CONTENT_TYPE)
async def test_render_binary(self): """ check metrics can be rendered using binary format """ accepts_headers = (aioprometheus.formats.BINARY_CONTENT_TYPE,) registry = aioprometheus.Registry() content, http_headers = aioprometheus.render(registry, accepts_headers) self.assertEqual( http_headers["Content-Type"], aioprometheus.formats.BINARY_CONTENT_TYPE )
async def test_render_text(self): """ check metrics can be rendered using text format """ accepts_headers = ("text/plain;",) registry = aioprometheus.Registry() content, http_headers = aioprometheus.render(registry, accepts_headers) self.assertEqual( http_headers["Content-Type"], aioprometheus.formats.TEXT_CONTENT_TYPE )
async def test_render_default(self): """ check metrics can be rendered using default format """ accepts_headers = ("application/json", "*/*", "application/nothing") registry = aioprometheus.Registry() content, http_headers = aioprometheus.render(registry, accepts_headers) self.assertEqual( http_headers["Content-Type"], aioprometheus.formats.TEXT_CONTENT_TYPE )
async def handle_metrics(request: Request): """ Negotiate a response format by inspecting the ACCEPTS headers and selecting the most efficient format. Render metrics in the registry into the chosen format and return a response. """ content, http_headers = render(app.registry, [request.headers.get("accept")]) return Response(content, headers=http_headers)
async def handle_scrape(request): if not "target" in request.query: return web.HTTPBadRequest() collector = PageSpeedCollector(aiohttp_client=request.app.aiohttp_client) registry = await collector.collect(request.query.get("target")) content, http_headers = render(registry, request.headers.getall(ACCEPT, [])) return web.Response(body=content, headers=http_headers)
async def handle_metrics(request): content, http_headers = aioprometheus.render( app.registry, request.headers.getall(aiohttp.hdrs.ACCEPT, []) ) return aiohttp.web.Response(body=content, headers=http_headers)
async def handle_metrics(): content, http_headers = render(app.registry, request.headers.getlist('accept')) return content, http_headers
async def handle_metrics(): content, http_headers = render(app.registry, request.headers.getlist("accept")) return content, http_headers
async def handle_metrics(request): content, http_headers = render(app.registry, request.headers.getall(ACCEPT, [])) return web.Response(body=content, headers=http_headers)
async def metrics(request: Request): content, http_headers = render( app.registry, [request.headers.get("accept", "application/json")]) return PlainTextResponse(content, headers=http_headers)
async def handle_metrics(response: Response, accept: List[str] = Header(None)): content, http_headers = aioprometheus.render(app.registry, accept) return Response(content=content, media_type=http_headers["Content-Type"])
async def handle_metrics(): content, http_headers = aioprometheus.render( app.registry, request.headers.getlist("accept") ) return content, http_headers