Beispiel #1
0
 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))
Beispiel #2
0
 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))
Beispiel #3
0
 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))
Beispiel #4
0
 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
Beispiel #6
0
 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)
Beispiel #7
0
 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)
Beispiel #8
0
 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
     )
Beispiel #9
0
 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
     )
Beispiel #10
0
 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
     )
Beispiel #11
0
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)
Beispiel #12
0
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)
Beispiel #13
0
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)
Beispiel #14
0
 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)
Beispiel #15
0
async def handle_metrics():
    content, http_headers = render(app.registry,
                                   request.headers.getlist('accept'))
    return content, http_headers
Beispiel #16
0
 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))
Beispiel #17
0
async def handle_metrics():
    content, http_headers = render(app.registry, request.headers.getlist("accept"))
    return content, http_headers
Beispiel #18
0
async def handle_metrics(request):
    content, http_headers = render(app.registry, request.headers.getall(ACCEPT, []))
    return web.Response(body=content, headers=http_headers)
Beispiel #19
0
async def metrics(request: Request):
    content, http_headers = render(
        app.registry, [request.headers.get("accept", "application/json")])
    return PlainTextResponse(content, headers=http_headers)
Beispiel #20
0
async def handle_metrics(request):
    content, http_headers = render(app.registry,
                                   request.headers.getall(ACCEPT, []))
    return web.Response(body=content, headers=http_headers)
Beispiel #21
0
 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"])
Beispiel #22
0
 async def handle_metrics():
     content, http_headers = aioprometheus.render(
         app.registry, request.headers.getlist("accept")
     )
     return content, http_headers
Beispiel #23
0
 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)