add analytics support

This commit is contained in:
Ori Kotek
2024-02-23 17:30:20 +02:00
parent 4242e157ab
commit b878f64793
2 changed files with 11 additions and 6 deletions

View File

@ -1,5 +1,6 @@
import json import json
import logging import logging
import os
import sys import sys
from enum import Enum from enum import Enum
@ -39,8 +40,10 @@ def setup_logger(level: str = "INFO", fmt: LoggingFormat = LoggingFormat.CONSOLE
logger.remove(None) logger.remove(None)
logger.add(sys.stdout, level=level, colorize=True) logger.add(sys.stdout, level=level, colorize=True)
log_file = get_settings().get("CONFIG.ANALYTICS_FILE", "") log_folder = get_settings().get("CONFIG.ANALYTICS_FOLDER", "")
if log_file: if log_folder:
pid = os.getpid()
log_file = os.path.join(log_folder, f"pr-agent.{pid}.log")
logger.add( logger.add(
log_file, log_file,
filter=analytics_filter, filter=analytics_filter,

View File

@ -1,7 +1,8 @@
/import asyncio.locks
import copy import copy
import os import os
import asyncio.locks
import re import re
import uuid
from typing import Any, Dict, List, Tuple from typing import Any, Dict, List, Tuple
import uvicorn import uvicorn
@ -14,10 +15,10 @@ from pr_agent.agent.pr_agent import PRAgent
from pr_agent.algo.utils import update_settings_from_args from pr_agent.algo.utils import update_settings_from_args
from pr_agent.config_loader import get_settings, global_settings from pr_agent.config_loader import get_settings, global_settings
from pr_agent.git_providers import get_git_provider from pr_agent.git_providers import get_git_provider
from pr_agent.git_providers.utils import apply_repo_settings
from pr_agent.git_providers.git_provider import IncrementalPR from pr_agent.git_providers.git_provider import IncrementalPR
from pr_agent.git_providers.utils import apply_repo_settings
from pr_agent.log import LoggingFormat, get_logger, setup_logger from pr_agent.log import LoggingFormat, get_logger, setup_logger
from pr_agent.servers.utils import verify_signature, DefaultDictWithTimeout from pr_agent.servers.utils import DefaultDictWithTimeout, verify_signature
setup_logger(fmt=LoggingFormat.JSON) setup_logger(fmt=LoggingFormat.JSON)
@ -204,7 +205,8 @@ async def handle_request(body: Dict[str, Any], event: str):
return {} return {}
agent = PRAgent() agent = PRAgent()
sender = body.get("sender", {}).get("login") sender = body.get("sender", {}).get("login")
log_context = {"action": action, "event": event, "sender": sender, "server_type": "github_app"} log_context = {"action": action, "event": event, "sender": sender, "server_type": "github_app",
"request_id": uuid.uuid4().hex}
# handle comments on PRs # handle comments on PRs
if action == 'created': if action == 'created':