Repository URL to install this package:
|
Version:
0.6.9.post12 ▾
|
"""Web endpoint showing graph of running :pypi:`mode` services."""
import io
from faust import web
__all__ = ["Graph", "blueprint"]
blueprint = web.Blueprint("graph")
@blueprint.route("/", name="detail")
class Graph(web.View):
"""Render image from graph of running services."""
async def get(self, request: web.Request) -> web.Response:
"""Draw image of the services running in this worker."""
try:
import pydot
except ImportError:
return self.text("Please install pydot: pip install pydot", status=500)
o = io.StringIO()
beacon = self.app.beacon.root or self.app.beacon
beacon.as_graph().to_dot(o)
(graph,) = pydot.graph_from_dot_data(o.getvalue())
return self.bytes(graph.create_png(), content_type="image/png")