From c40e6e01a0ce36fbe6afee14c2ec734561a22a94 Mon Sep 17 00:00:00 2001 From: QuantumGhost Date: Tue, 6 May 2025 23:01:54 +0800 Subject: [PATCH] chore(api): caching flask.request in a local variable Avoid multiple attribute lookups and simplify code. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- api/extensions/ext_otel.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/api/extensions/ext_otel.py b/api/extensions/ext_otel.py index 7881c5964f..3cbdc8560b 100644 --- a/api/extensions/ext_otel.py +++ b/api/extensions/ext_otel.py @@ -56,10 +56,11 @@ def init_app(app: DifyApp): status_code = int(status) status_class = f"{status_code // 100}xx" attributes: dict[str, str | int] = {"status_code": status_code, "status_class": status_class} - if flask.request and flask.request.url_rule: - attributes[SpanAttributes.HTTP_TARGET] = str(flask.request.url_rule.rule) - if flask.request and flask.request.method: - attributes[SpanAttributes.HTTP_METHOD] = str(flask.request.method) + request = flask.request + if request and request.url_rule: + attributes[SpanAttributes.HTTP_TARGET] = str(request.url_rule.rule) + if request and request.method: + attributes[SpanAttributes.HTTP_METHOD] = str(request.method) _http_response_counter.add(1, attributes) instrumentor = FlaskInstrumentor()