From 8843f7bc8bff7f311c52de4b60b6445e4d49536f Mon Sep 17 00:00:00 2001 From: Ori Kotek Date: Mon, 26 Feb 2024 16:15:23 +0200 Subject: [PATCH] Add analytics logging --- pr_agent/agent/pr_agent.py | 1 + pr_agent/log/__init__.py | 7 ++++++- pr_agent/servers/github_app.py | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/pr_agent/agent/pr_agent.py b/pr_agent/agent/pr_agent.py index 55c3c267..5be0f779 100644 --- a/pr_agent/agent/pr_agent.py +++ b/pr_agent/agent/pr_agent.py @@ -74,6 +74,7 @@ class PRAgent: action = action.lstrip("/").lower() with get_logger().contextualize(command=action): + get_logger().info("PR-Agent request handler started", analytics=True) if action == "reflect_and_review": get_settings().pr_reviewer.ask_and_reflect = True if action == "answer": diff --git a/pr_agent/log/__init__.py b/pr_agent/log/__init__.py index f618cb76..53430ea1 100644 --- a/pr_agent/log/__init__.py +++ b/pr_agent/log/__init__.py @@ -22,6 +22,10 @@ def analytics_filter(record: dict) -> bool: return record.get("extra", {}).get("analytics", False) +def inv_analytics_filter(record: dict) -> bool: + return not record.get("extra", {}).get("analytics", False) + + def setup_logger(level: str = "INFO", fmt: LoggingFormat = LoggingFormat.CONSOLE): level: int = logging.getLevelName(level.upper()) if type(level) is not int: @@ -31,6 +35,7 @@ def setup_logger(level: str = "INFO", fmt: LoggingFormat = LoggingFormat.CONSOLE logger.remove(None) logger.add( sys.stdout, + filter=inv_analytics_filter, level=level, format="{message}", colorize=False, @@ -38,7 +43,7 @@ def setup_logger(level: str = "INFO", fmt: LoggingFormat = LoggingFormat.CONSOLE ) elif fmt == LoggingFormat.CONSOLE: # does not print the 'extra' fields logger.remove(None) - logger.add(sys.stdout, level=level, colorize=True) + logger.add(sys.stdout, level=level, colorize=True, filter=inv_analytics_filter) log_folder = get_settings().get("CONFIG.ANALYTICS_FOLDER", "") if log_folder: diff --git a/pr_agent/servers/github_app.py b/pr_agent/servers/github_app.py index 83783942..892a2952 100644 --- a/pr_agent/servers/github_app.py +++ b/pr_agent/servers/github_app.py @@ -205,8 +205,9 @@ async def handle_request(body: Dict[str, Any], event: str): return {} agent = PRAgent() sender = body.get("sender", {}).get("login") + app_name = get_settings().get("CONFIG.APP_NAME", "Unknown") log_context = {"action": action, "event": event, "sender": sender, "server_type": "github_app", - "request_id": uuid.uuid4().hex} + "request_id": uuid.uuid4().hex, "app_name": app_name} # handle comments on PRs if action == 'created':