Package: glances Version: 4.0.5+dfsg-1 I use glances with Debian testing and with API mode, so I can query glances parameters over the included REST interface:
glances -w --disable-webui -B 0.0.0.0 But since version 4, this seems to be broken in Debian, because there is no "orjson" library found (orjson python package is not available in Debian testing). Steps to reproduce: 1.) start glances in RESTful API mode: glances -w --disable-webui -B 0.0.0.0 2.) access API, eg. status: curl http://localhost:61208/api/4/status it returns: "Internal Server Error" and glances log-file logs the following error message: Jun 21 10:20:47 mapout systemd[1]: Started glances.service - Glances. Jun 21 10:20:47 mapout glances[1168]: INFO: Started server process [1168] Jun 21 10:20:47 mapout glances[1168]: INFO: Waiting for application startup. Jun 21 10:20:47 mapout glances[1168]: INFO: Application startup complete. Jun 21 10:20:47 mapout glances[1168]: INFO: Uvicorn running on http://0.0.0.0:61208 (Press CTRL+C to quit) Jun 21 14:23:41 mapout glances[1168]: ERROR: Exception in ASGI application Jun 21 14:23:41 mapout glances[1168]: Traceback (most recent call last): Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/uvicorn/protocols/http/h11_impl.py", line 407, in run_asgi Jun 21 14:23:41 mapout glances[1168]: result = await app( # type: ignore[func-returns-value] Jun 21 14:23:41 mapout glances[1168]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/uvicorn/middleware/proxy_headers.py", line 69, in __call__ Jun 21 14:23:41 mapout glances[1168]: return await self.app(scope, receive, send) Jun 21 14:23:41 mapout glances[1168]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/fastapi/applications.py", line 1054, in __call__ Jun 21 14:23:41 mapout glances[1168]: await super().__call__(scope, receive, send) Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/starlette/applications.py", line 123, in __call__ Jun 21 14:23:41 mapout glances[1168]: await self.middleware_stack(scope, receive, send) Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/starlette/middleware/errors.py", line 186, in __call__ Jun 21 14:23:41 mapout glances[1168]: raise exc Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/starlette/middleware/errors.py", line 164, in __call__ Jun 21 14:23:41 mapout glances[1168]: await self.app(scope, receive, _send) Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/starlette/middleware/gzip.py", line 26, in __call__ Jun 21 14:23:41 mapout glances[1168]: await self.app(scope, receive, send) Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/starlette/middleware/cors.py", line 85, in __call__ Jun 21 14:23:41 mapout glances[1168]: await self.app(scope, receive, send) Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/starlette/middleware/exceptions.py", line 65, in __call__ Jun 21 14:23:41 mapout glances[1168]: await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/starlette/_exception_handler.py", line 64, in wrapped_app Jun 21 14:23:41 mapout glances[1168]: raise exc Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/starlette/_exception_handler.py", line 53, in wrapped_app Jun 21 14:23:41 mapout glances[1168]: await app(scope, receive, sender) Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/starlette/routing.py", line 756, in __call__ Jun 21 14:23:41 mapout glances[1168]: await self.middleware_stack(scope, receive, send) Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/starlette/routing.py", line 776, in app Jun 21 14:23:41 mapout glances[1168]: await route.handle(scope, receive, send) Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/starlette/routing.py", line 297, in handle Jun 21 14:23:41 mapout glances[1168]: await self.app(scope, receive, send) Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/starlette/routing.py", line 77, in app Jun 21 14:23:41 mapout glances[1168]: await wrap_app_handling_exceptions(app, request)(scope, receive, send) Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/starlette/_exception_handler.py", line 64, in wrapped_app Jun 21 14:23:41 mapout glances[1168]: raise exc Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/starlette/_exception_handler.py", line 53, in wrapped_app Jun 21 14:23:41 mapout glances[1168]: await app(scope, receive, sender) Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/starlette/routing.py", line 72, in app Jun 21 14:23:41 mapout glances[1168]: response = await func(request) Jun 21 14:23:41 mapout glances[1168]: ^^^^^^^^^^^^^^^^^^^ Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/fastapi/routing.py", line 278, in app Jun 21 14:23:41 mapout glances[1168]: raw_response = await run_endpoint_function( Jun 21 14:23:41 mapout glances[1168]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/fastapi/routing.py", line 193, in run_endpoint_function Jun 21 14:23:41 mapout glances[1168]: return await run_in_threadpool(dependant.call, **values) Jun 21 14:23:41 mapout glances[1168]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/starlette/concurrency.py", line 42, in run_in_threadpool Jun 21 14:23:41 mapout glances[1168]: return await anyio.to_thread.run_sync(func, *args) Jun 21 14:23:41 mapout glances[1168]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/anyio/to_thread.py", line 56, in run_sync Jun 21 14:23:41 mapout glances[1168]: return await get_async_backend().run_sync_in_worker_thread( Jun 21 14:23:41 mapout glances[1168]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/anyio/_backends/_asyncio.py", line 2144, in run_sync_in_worker_thread Jun 21 14:23:41 mapout glances[1168]: return await future Jun 21 14:23:41 mapout glances[1168]: ^^^^^^^^^^^^ Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/anyio/_backends/_asyncio.py", line 851, in run Jun 21 14:23:41 mapout glances[1168]: result = context.run(func, *args) Jun 21 14:23:41 mapout glances[1168]: ^^^^^^^^^^^^^^^^^^^^^^^^ Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/glances/outputs/glances_restful_api.py", line 361, in _api_status Jun 21 14:23:41 mapout glances[1168]: return ORJSONResponse({'version': __version__}) Jun 21 14:23:41 mapout glances[1168]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/starlette/responses.py", line 184, in __init__ Jun 21 14:23:41 mapout glances[1168]: super().__init__(content, status_code, headers, media_type, background) Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/starlette/responses.py", line 41, in __init__ Jun 21 14:23:41 mapout glances[1168]: self.body = self.render(content) Jun 21 14:23:41 mapout glances[1168]: ^^^^^^^^^^^^^^^^^^^^ Jun 21 14:23:41 mapout glances[1168]: File "/usr/lib/python3/dist-packages/fastapi/responses.py", line 45, in render Jun 21 14:23:41 mapout glances[1168]: assert orjson is not None, "orjson must be installed to use ORJSONResponse" Jun 21 14:23:41 mapout glances[1168]: ^^^^^^^^^^^^^^^^^^ Jun 21 14:23:41 mapout glances[1168]: AssertionError: orjson must be installed to use ORJSONResponse