Slackbot
12/23/2022, 7:26 AMJiang
12/23/2022, 8:10 AMNavya Dalavayi
12/23/2022, 8:40 AMsvc = bentoml.Service('my_model')
@svc.api(input = JSON(), output = JSON(), route = f'/a/b')
@auth.authorize
def predict(input_data, request_context: bentoml.Context):
pred = get_pred(input_data)
nr_logger.logMessage('status', 'success')
return pred
also sharing entire traceback for the errorNavya Dalavayi
12/23/2022, 8:43 AM{% extends bento_base_template %}
{% block SETUP_BENTO_ENTRYPOINT %}
{{ super() }}
ENTRYPOINT [ "{{ bento__entrypoint }}", "ddtrace-run", "bentoml", "serve", "{{ bento__path }}", "--production" ]
{% endblock %}
Navya Dalavayi
12/23/2022, 8:43 AMJiang
12/23/2022, 9:00 AMget_pred
an async function?Navya Dalavayi
12/23/2022, 9:02 AMJiang
12/23/2022, 9:04 AMddtrace/contrib/asgi/middleware
Jiang
12/23/2022, 9:05 AMNavya Dalavayi
12/23/2022, 9:05 AMJiang
12/23/2022, 9:07 AMNavya Dalavayi
12/23/2022, 9:10 AMNavya Dalavayi
12/23/2022, 9:10 AMJiang
12/23/2022, 9:29 AMpython app.py
of FastAPI is just for debug use case. In production you will also need uvicorn
or other production server to run the app.
bentoml serve
works like uvicorn
, it will start a production ready supervisor too. That could be the reason ddtrace not work.Jiang
12/23/2022, 9:32 AMNavya Dalavayi
12/23/2022, 9:33 AMNavya Dalavayi
12/23/2022, 9:33 AMJiang
12/23/2022, 9:34 AMNavya Dalavayi
12/23/2022, 9:35 AMJiang
12/23/2022, 9:35 AMNavya Dalavayi
12/23/2022, 9:36 AMNavya Dalavayi
12/23/2022, 9:36 AMJiang
12/23/2022, 9:39 AMawait
itJiang
12/23/2022, 9:42 AMNavya Dalavayi
12/23/2022, 9:49 AMNavya Dalavayi
12/23/2022, 9:50 AMNavya Dalavayi
12/23/2022, 9:51 AMNavya Dalavayi
12/23/2022, 9:51 AMJiang
12/23/2022, 9:52 AMNavya Dalavayi
12/23/2022, 9:54 AMNavya Dalavayi
12/23/2022, 9:55 AMJiang
12/23/2022, 9:56 AM--production
flagNavya Dalavayi
12/23/2022, 10:01 AMNavya Dalavayi
12/23/2022, 10:03 AMapi_server:
http:
port: 5000
workers: 2
metrics:
enabled: False
logging:
access:
enabled: False
request_content_length: False
request_content_type: False
response_content_length: False
response_content_type: False
Navya Dalavayi
12/23/2022, 10:09 AM{"message": "Exception in 'lifespan' protocol\n", "exc_info": "Traceback (most recent call last):\n File \"/usr/local/lib/python3.10/site-packages/uvicorn/lifespan/on.py\", line 86, in main\n await app(scope, self.receive, self.send)\n File \"/usr/local/lib/python3.10/site-packages/uvicorn/middleware/proxy_headers.py\", line 78, in __call__\n return await <http://self.app|self.app>(scope, receive, send)\n File \"/usr/local/lib/python3.10/site-packages/uvicorn/middleware/message_logger.py\", line 86, in __call__\n raise exc from None\n File \"/usr/local/lib/python3.10/site-packages/uvicorn/middleware/message_logger.py\", line 82, in __call__\n await <http://self.app|self.app>(scope, inner_receive, inner_send)\n File \"/usr/local/lib/python3.10/site-packages/starlette/applications.py\", line 112, in __call__\n await self.middleware_stack(scope, receive, send)\n File \"<string>\", line 5, in wrapper\n File \"/usr/local/lib/python3.10/site-packages/starlette/middleware/errors.py\", line 146, in __call__\n await <http://self.app|self.app>(scope, receive, send)\n File \"/usr/local/lib/python3.10/site-packages/ddtrace/contrib/asgi/middleware.py\", line 102, in __call__\n return await <http://self.app|self.app>(scope, receive, send)\n File \"/usr/local/lib/python3.10/site-packages/ddtrace/contrib/asgi/utils.py\", line 69, in new_application\n return await instance(receive, send)\nTypeError: 'coroutine' object is not callable", "levelname_bracketed": "[ERROR]", "component": "[dev_api_server]", "trace_msg": "", "request_id": null}
/usr/local/lib/python3.10/site-packages/uvicorn/lifespan/on.py:-1: RuntimeWarning: coroutine 'middleware_wrapper' was never awaited
Navya Dalavayi
12/27/2022, 6:29 AMNavya Dalavayi
02/07/2023, 6:05 PMNavya Dalavayi
02/07/2023, 6:05 PMgiphy
02/07/2023, 6:06 PMBo
02/07/2023, 6:06 PMNavya Dalavayi
02/07/2023, 6:11 PMBo
02/07/2023, 6:15 PM